Skip to content

Instantly share code, notes, and snippets.

@evanphx
Last active December 18, 2015 10:19
Show Gist options
  • Save evanphx/5767345 to your computer and use it in GitHub Desktop.
Save evanphx/5767345 to your computer and use it in GitHub Desktop.
The cost of std::function
#include <functional>
extern void run(std::function<int(int)> f);
void foo() {
auto l = [](int x) { return x + 1; };
run(l);
}
.section __TEXT,__text,regular,pure_instructions
.globl __Z3foov
.align 4, 0x90
__Z3foov: ## @_Z3foov
.cfi_startproc
.cfi_personality 155, ___gxx_personality_v0
Leh_func_begin0:
.cfi_lsda 16, Lexception0
## BB#0:
pushq %rbp
Ltmp5:
.cfi_def_cfa_offset 16
Ltmp6:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp7:
.cfi_def_cfa_register %rbp
subq $96, %rsp
leaq -64(%rbp), %rax
xorl %esi, %esi
movq %rax, %rdi
movq %rax, -96(%rbp) ## 8-byte Spill
callq __ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE
Ltmp0:
movq -96(%rbp), %rdi ## 8-byte Reload
callq __Z3runNSt3__18functionIFiiEEE
Ltmp1:
jmp LBB0_1
LBB0_1:
leaq -64(%rbp), %rdi
callq __ZNSt3__18functionIFiiEED1Ev
addq $96, %rsp
popq %rbp
ret
LBB0_2:
Ltmp2:
leaq -64(%rbp), %rdi
movl %edx, %ecx
movq %rax, -80(%rbp)
movl %ecx, -84(%rbp)
callq __ZNSt3__18functionIFiiEED1Ev
## BB#3:
movq -80(%rbp), %rdi
callq __Unwind_Resume
.cfi_endproc
Leh_func_end0:
.section __TEXT,__gcc_except_tab
.align 2
GCC_except_table0:
Lexception0:
.byte 255 ## @LPStart Encoding = omit
.byte 155 ## @TType Encoding = indirect pcrel sdata4
.byte 41 ## @TType base offset
.byte 3 ## Call site Encoding = udata4
.byte 39 ## Call site table length
Lset0 = Leh_func_begin0-Leh_func_begin0 ## >> Call Site 1 <<
.long Lset0
Lset1 = Ltmp0-Leh_func_begin0 ## Call between Leh_func_begin0 and Ltmp0
.long Lset1
.long 0 ## has no landing pad
.byte 0 ## On action: cleanup
Lset2 = Ltmp0-Leh_func_begin0 ## >> Call Site 2 <<
.long Lset2
Lset3 = Ltmp1-Ltmp0 ## Call between Ltmp0 and Ltmp1
.long Lset3
Lset4 = Ltmp2-Leh_func_begin0 ## jumps to Ltmp2
.long Lset4
.byte 0 ## On action: cleanup
Lset5 = Ltmp1-Leh_func_begin0 ## >> Call Site 3 <<
.long Lset5
Lset6 = Leh_func_end0-Ltmp1 ## Call between Ltmp1 and Leh_func_end0
.long Lset6
.long 0 ## has no landing pad
.byte 0 ## On action: cleanup
.align 2
.section __TEXT,__text,regular,pure_instructions
.align 4, 0x90
__ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE: ## @"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp10:
.cfi_def_cfa_offset 16
Ltmp11:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp12:
.cfi_def_cfa_register %rbp
subq $32, %rsp
movq %rdi, -8(%rbp)
movq %rsi, -24(%rbp)
movq -8(%rbp), %rdi
movq -24(%rbp), %rsi
callq __ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE
addq $32, %rsp
popq %rbp
ret
.cfi_endproc
.section __TEXT,__textcoal_nt,coalesced,pure_instructions
.globl __ZNSt3__18functionIFiiEED1Ev
.weak_definition __ZNSt3__18functionIFiiEED1Ev
.align 4, 0x90
__ZNSt3__18functionIFiiEED1Ev: ## @_ZNSt3__18functionIFiiEED1Ev
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp15:
.cfi_def_cfa_offset 16
Ltmp16:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp17:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq %rdi, -8(%rbp)
movq -8(%rbp), %rdi
callq __ZNSt3__18functionIFiiEED2Ev
addq $16, %rsp
popq %rbp
ret
.cfi_endproc
.globl __ZNSt3__18functionIFiiEED2Ev
.weak_definition __ZNSt3__18functionIFiiEED2Ev
.align 4, 0x90
__ZNSt3__18functionIFiiEED2Ev: ## @_ZNSt3__18functionIFiiEED2Ev
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp20:
.cfi_def_cfa_offset 16
Ltmp21:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp22:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq %rdi, -8(%rbp)
movq -8(%rbp), %rdi
movq 32(%rdi), %rax
movq %rdi, %rcx
cmpq %rcx, %rax
movq %rdi, -16(%rbp) ## 8-byte Spill
jne LBB3_2
## BB#1:
movq -16(%rbp), %rax ## 8-byte Reload
movq 32(%rax), %rcx
movq (%rcx), %rdx
movq %rcx, %rdi
callq *32(%rdx)
jmp LBB3_5
LBB3_2:
movq -16(%rbp), %rax ## 8-byte Reload
cmpq $0, 32(%rax)
je LBB3_4
## BB#3:
movq -16(%rbp), %rax ## 8-byte Reload
movq 32(%rax), %rcx
movq (%rcx), %rdx
movq %rcx, %rdi
callq *40(%rdx)
LBB3_4:
LBB3_5:
addq $16, %rsp
popq %rbp
ret
.cfi_endproc
.section __TEXT,__text,regular,pure_instructions
.align 4, 0x90
__ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE: ## @"_ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp26:
.cfi_def_cfa_offset 16
Ltmp27:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp28:
.cfi_def_cfa_register %rbp
pushq %rbx
subq $816, %rsp ## imm = 0x330
Ltmp29:
.cfi_offset %rbx, -24
movb $1, %al
leaq -928(%rbp), %rcx
movq %rdi, -920(%rbp)
movq %rsi, -936(%rbp)
movq -920(%rbp), %rsi
movq $0, 32(%rsi)
movq %rcx, -912(%rbp)
testb $1, %al
movq %rsi, -944(%rbp) ## 8-byte Spill
jne LBB4_1
jmp LBB4_4
LBB4_1:
movq -944(%rbp), %rax ## 8-byte Reload
movq -944(%rbp), %rcx ## 8-byte Reload
movq %rax, 32(%rcx)
movq 32(%rcx), %rax
cmpq $0, %rax
movq %rax, -952(%rbp) ## 8-byte Spill
je LBB4_3
## BB#2:
leaq -760(%rbp), %rax
leaq -744(%rbp), %rcx
leaq -856(%rbp), %rdx
leaq -512(%rbp), %rsi
leaq -864(%rbp), %rdi
leaq -368(%rbp), %r8
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE(%rip), %r9
addq $16, %r9
movq __ZTVNSt3__110__function6__baseIFiiEEE@GOTPCREL(%rip), %r10
addq $16, %r10
leaq -928(%rbp), %r11
movq -952(%rbp), %rbx ## 8-byte Reload
movq %r11, -16(%rbp)
movq -16(%rbp), %r11
movq %rbx, -896(%rbp)
movq %r11, -904(%rbp)
movq -896(%rbp), %r11
movq -904(%rbp), %rbx
movq %r11, -832(%rbp)
movq %rbx, -840(%rbp)
movq -832(%rbp), %r11
movq %r11, %rbx
movq %rbx, -824(%rbp)
movq -824(%rbp), %rbx
movq %r10, (%rbx)
movq %r9, (%r11)
addq $8, %r11
movq -840(%rbp), %r9
movq %r9, -24(%rbp)
movq -24(%rbp), %r9
movq %r9, -360(%rbp)
movq -360(%rbp), %r9
movq %r9, -352(%rbp)
movq -352(%rbp), %r9
movq %r8, -216(%rbp)
movq %r9, -224(%rbp)
movq -216(%rbp), %r9
movq -224(%rbp), %r10
movq %r9, -168(%rbp)
movq %r10, -176(%rbp)
movq -168(%rbp), %r9
movq -176(%rbp), %r10
movq %r10, -160(%rbp)
movq -160(%rbp), %r10
movq %r9, -112(%rbp)
movq %r10, -152(%rbp)
movq -112(%rbp), %r9
movq -152(%rbp), %r10
movq %r9, -64(%rbp)
movq %r10, -104(%rbp)
movq -64(%rbp), %r9
movq -104(%rbp), %r10
movq %r10, -56(%rbp)
movq -56(%rbp), %r10
movq %r9, -40(%rbp)
movq %r10, -48(%rbp)
movq -40(%rbp), %r9
movq -48(%rbp), %r10
movq %r10, -32(%rbp)
movq -32(%rbp), %r10
movq %r10, (%r9)
movq %rdi, -336(%rbp)
movq %r8, -344(%rbp)
movq -336(%rbp), %r8
movq -344(%rbp), %r9
movq %r8, -320(%rbp)
movq %r9, -328(%rbp)
movq -320(%rbp), %r8
movq -328(%rbp), %r9
movq %r9, -312(%rbp)
movq -312(%rbp), %r9
movq %r8, -296(%rbp)
movq %r9, -304(%rbp)
movq -296(%rbp), %r8
movq -304(%rbp), %r9
movq %r8, -280(%rbp)
movq %r9, -288(%rbp)
movq -280(%rbp), %r8
movq -288(%rbp), %r9
movq %r9, -272(%rbp)
movq -272(%rbp), %r9
movq %r9, -264(%rbp)
movq -264(%rbp), %r9
movq (%r9), %r9
movq %r9, -232(%rbp)
movq -232(%rbp), %r9
movq %r8, -248(%rbp)
movq %r9, -256(%rbp)
movq -248(%rbp), %r8
movq -256(%rbp), %r9
movq %r9, -240(%rbp)
movq -240(%rbp), %r9
movq %r9, (%r8)
movq %rdx, -480(%rbp)
movq %rdi, -488(%rbp)
movq -480(%rbp), %rdi
movq -488(%rbp), %r8
movq %rdi, -464(%rbp)
movq %r8, -472(%rbp)
movq -464(%rbp), %rdi
movq -472(%rbp), %r8
movq %r8, -456(%rbp)
movq -456(%rbp), %r8
movq %rdi, -440(%rbp)
movq %r8, -448(%rbp)
movq -440(%rbp), %rdi
movq -448(%rbp), %r8
movq %rdi, -424(%rbp)
movq %r8, -432(%rbp)
movq -424(%rbp), %rdi
movq -432(%rbp), %r8
movq %r8, -416(%rbp)
movq -416(%rbp), %r8
movq %r8, -408(%rbp)
movq -408(%rbp), %r8
movq (%r8), %r8
movq %r8, -376(%rbp)
movq -376(%rbp), %r8
movq %rdi, -392(%rbp)
movq %r8, -400(%rbp)
movq -392(%rbp), %rdi
movq -400(%rbp), %r8
movq %r8, -384(%rbp)
movq -384(%rbp), %r8
movq %r8, (%rdi)
movq %rsi, -504(%rbp)
movq -504(%rbp), %rsi
movq %rsi, -496(%rbp)
movq %r11, -792(%rbp)
movq -792(%rbp), %rsi
movq %rsi, -728(%rbp)
movq -728(%rbp), %rsi
movq %rdx, -720(%rbp)
movq -720(%rbp), %rdx
movq %rax, -624(%rbp)
movq %rdx, -632(%rbp)
movq -624(%rbp), %rdx
movq -632(%rbp), %rdi
movq %rdx, -608(%rbp)
movq %rdi, -616(%rbp)
movq -608(%rbp), %rdx
movq -616(%rbp), %rdi
movq %rdi, -600(%rbp)
movq -600(%rbp), %rdi
movq %rdx, -584(%rbp)
movq %rdi, -592(%rbp)
movq -584(%rbp), %rdx
movq -592(%rbp), %rdi
movq %rdx, -568(%rbp)
movq %rdi, -576(%rbp)
movq -568(%rbp), %rdx
movq -576(%rbp), %rdi
movq %rdi, -560(%rbp)
movq -560(%rbp), %rdi
movq %rdi, -552(%rbp)
movq -552(%rbp), %rdi
movq (%rdi), %rdi
movq %rdi, -520(%rbp)
movq -520(%rbp), %rdi
movq %rdx, -536(%rbp)
movq %rdi, -544(%rbp)
movq -536(%rbp), %rdx
movq -544(%rbp), %rdi
movq %rdi, -528(%rbp)
movq -528(%rbp), %rdi
movq %rdi, (%rdx)
movq %rcx, -640(%rbp)
movq %rsi, -680(%rbp)
movq -680(%rbp), %rcx
movq %rax, -672(%rbp)
movq -672(%rbp), %rax
movq %rax, -664(%rbp)
movq -664(%rbp), %rax
movq (%rax), %rax
movq %rax, -648(%rbp)
movq %rcx, -656(%rbp)
LBB4_3:
LBB4_4:
addq $816, %rsp ## imm = 0x330
popq %rbx
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp32:
.cfi_def_cfa_offset 16
Ltmp33:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp34:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq %rdi, -8(%rbp)
movq -8(%rbp), %rdi
callq __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev
addq $16, %rsp
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp37:
.cfi_def_cfa_offset 16
Ltmp38:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp39:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq %rdi, -8(%rbp)
movq -8(%rbp), %rdi
movq %rdi, -16(%rbp) ## 8-byte Spill
callq __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev
movq -16(%rbp), %rdi ## 8-byte Reload
callq __ZdlPv
addq $16, %rsp
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp43:
.cfi_def_cfa_offset 16
Ltmp44:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp45:
.cfi_def_cfa_register %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $2344, %rsp ## imm = 0x928
Ltmp46:
.cfi_offset %rbx, -56
Ltmp47:
.cfi_offset %r12, -48
Ltmp48:
.cfi_offset %r13, -40
Ltmp49:
.cfi_offset %r14, -32
Ltmp50:
.cfi_offset %r15, -24
leaq -2272(%rbp), %rax
movq %rdi, -2264(%rbp)
movq -2264(%rbp), %rdi
movq %rdi, %rcx
addq $8, %rcx
movq %rcx, -2256(%rbp)
movq -2256(%rbp), %rcx
movq %rcx, -2248(%rbp)
movq -2248(%rbp), %rcx
movq %rax, -2080(%rbp)
movq %rcx, -2088(%rbp)
movq -2080(%rbp), %rcx
movq -2088(%rbp), %rdx
movq %rcx, -2064(%rbp)
movq %rdx, -2072(%rbp)
movq %rax, -1888(%rbp)
movq $1, -1896(%rbp)
movq $0, -1904(%rbp)
movq -1896(%rbp), %rax
shlq $4, %rax
movq %rdi, -2344(%rbp) ## 8-byte Spill
movq %rax, %rdi
callq __Znwm
leaq -2312(%rbp), %rcx
leaq -2296(%rbp), %rdx
leaq -2272(%rbp), %rdi
movq %rcx, -1864(%rbp)
movq %rdi, -1872(%rbp)
movq $1, -1880(%rbp)
movq -1864(%rbp), %rdi
movq -1880(%rbp), %rsi
movq -1872(%rbp), %r8
movq %rdi, -1840(%rbp)
movq %r8, -1848(%rbp)
movq %rsi, -1856(%rbp)
movq -1840(%rbp), %rsi
movq -1848(%rbp), %rdi
movq %rdi, (%rsi)
movq -1856(%rbp), %rdi
movq %rdi, 8(%rsi)
movq %rdx, -240(%rbp)
movq %rax, -248(%rbp)
movq %rcx, -256(%rbp)
movq -240(%rbp), %rax
movq -248(%rbp), %rcx
movq -256(%rbp), %rdx
movq %rax, -200(%rbp)
movq %rcx, -208(%rbp)
movq %rdx, -216(%rbp)
movq -200(%rbp), %rax
movq -208(%rbp), %rcx
movq -216(%rbp), %rdx
movq %rdx, -192(%rbp)
movq -192(%rbp), %rdx
movq (%rdx), %rsi
movq %rsi, -232(%rbp)
movq 8(%rdx), %rdx
movq %rdx, -224(%rbp)
leaq -136(%rbp), %rdx
leaq -120(%rbp), %rsi
movq -232(%rbp), %rdi
movq -224(%rbp), %r8
movq %rax, -160(%rbp)
movq %rcx, -168(%rbp)
movq %rdi, -184(%rbp)
movq %r8, -176(%rbp)
movq -160(%rbp), %rax
movq -168(%rbp), %rcx
movq -184(%rbp), %rdi
movq -176(%rbp), %r8
movq %rax, -112(%rbp)
movq %rcx, -120(%rbp)
movq %rdi, -136(%rbp)
movq %r8, -128(%rbp)
movq -112(%rbp), %rax
movq %rsi, -104(%rbp)
movq -104(%rbp), %rcx
movq (%rcx), %rcx
movq %rdx, -48(%rbp)
movq -48(%rbp), %rdx
movq (%rdx), %rsi
movq %rsi, -152(%rbp)
movq 8(%rdx), %rdx
movq %rdx, -144(%rbp)
leaq -96(%rbp), %rdx
leaq -80(%rbp), %rsi
movq -152(%rbp), %rdi
movq -144(%rbp), %r8
movq %rax, -72(%rbp)
movq %rcx, -80(%rbp)
movq %rdi, -96(%rbp)
movq %r8, -88(%rbp)
movq -72(%rbp), %rax
movq %rsi, -64(%rbp)
movq -64(%rbp), %rcx
movq (%rcx), %rcx
movq %rcx, (%rax)
movq %rdx, -56(%rbp)
movq -56(%rbp), %rcx
movq (%rcx), %rdx
movq %rdx, 8(%rax)
movq 8(%rcx), %rcx
movq %rcx, 16(%rax)
leaq -2296(%rbp), %rax
movq %rax, -280(%rbp)
movq -280(%rbp), %rax
movq %rax, -272(%rbp)
movq -272(%rbp), %rax
movq %rax, -264(%rbp)
movq -264(%rbp), %rax
movq (%rax), %rax
cmpq $0, %rax
movq %rax, -2352(%rbp) ## 8-byte Spill
je LBB7_3
## BB#1:
leaq -1632(%rbp), %rax
leaq -1624(%rbp), %rcx
leaq -1752(%rbp), %rdx
leaq -1720(%rbp), %rsi
leaq -1760(%rbp), %rdi
leaq -1136(%rbp), %r8
leaq -1728(%rbp), %r9
leaq -664(%rbp), %r10
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE(%rip), %r11
addq $16, %r11
movq __ZTVNSt3__110__function6__baseIFiiEEE@GOTPCREL(%rip), %rbx
addq $16, %rbx
leaq -2320(%rbp), %r14
leaq -2272(%rbp), %r15
movq -2352(%rbp), %r12 ## 8-byte Reload
movq -2344(%rbp), %r13 ## 8-byte Reload
addq $8, %r13
movq %r13, -296(%rbp)
movq -296(%rbp), %r13
movq %r13, -288(%rbp)
movq -288(%rbp), %r13
movq %r14, -320(%rbp)
movq %r15, -328(%rbp)
movq -320(%rbp), %r15
movq %rax, -2360(%rbp) ## 8-byte Spill
movq -328(%rbp), %rax
movq %r15, -304(%rbp)
movq %rax, -312(%rbp)
movq %r12, -1768(%rbp)
movq %r13, -1776(%rbp)
movq %r14, -1784(%rbp)
movq -1768(%rbp), %rax
movq -1776(%rbp), %r14
movq -1784(%rbp), %r15
movq %rax, -1688(%rbp)
movq %r14, -1696(%rbp)
movq %r15, -1704(%rbp)
movq -1688(%rbp), %rax
movq %rax, %r14
movq %r14, -1680(%rbp)
movq -1680(%rbp), %r14
movq %rbx, (%r14)
movq %r11, (%rax)
addq $8, %rax
movq -1696(%rbp), %r11
movq %r11, -656(%rbp)
movq -656(%rbp), %r11
movq %r11, -648(%rbp)
movq -648(%rbp), %r11
movq %r10, -512(%rbp)
movq %r11, -520(%rbp)
movq -512(%rbp), %r11
movq -520(%rbp), %rbx
movq %r11, -464(%rbp)
movq %rbx, -472(%rbp)
movq -464(%rbp), %r11
movq -472(%rbp), %rbx
movq %r11, -416(%rbp)
movq %rbx, -456(%rbp)
movq -416(%rbp), %r11
movq -456(%rbp), %rbx
movq %r11, -368(%rbp)
movq %rbx, -408(%rbp)
movq -368(%rbp), %r11
movq -408(%rbp), %rbx
movq %rbx, -360(%rbp)
movq -360(%rbp), %rbx
movq %r11, -344(%rbp)
movq %rbx, -352(%rbp)
movq -344(%rbp), %r11
movq -352(%rbp), %rbx
movq %rbx, -336(%rbp)
movq -336(%rbp), %rbx
movq %rbx, (%r11)
movq %r9, -632(%rbp)
movq %r10, -640(%rbp)
movq -632(%rbp), %r10
movq -640(%rbp), %r11
movq %r10, -616(%rbp)
movq %r11, -624(%rbp)
movq -616(%rbp), %r10
movq -624(%rbp), %r11
movq %r11, -608(%rbp)
movq -608(%rbp), %r11
movq %r10, -592(%rbp)
movq %r11, -600(%rbp)
movq -592(%rbp), %r10
movq -600(%rbp), %r11
movq %r10, -576(%rbp)
movq %r11, -584(%rbp)
movq -576(%rbp), %r10
movq -584(%rbp), %r11
movq %r11, -568(%rbp)
movq -568(%rbp), %r11
movq %r11, -560(%rbp)
movq -560(%rbp), %r11
movq (%r11), %r11
movq %r11, -528(%rbp)
movq -528(%rbp), %r11
movq %r10, -544(%rbp)
movq %r11, -552(%rbp)
movq -544(%rbp), %r10
movq -552(%rbp), %r11
movq %r11, -536(%rbp)
movq -536(%rbp), %r11
movq %r11, (%r10)
movq %rsi, -776(%rbp)
movq %r9, -784(%rbp)
movq -776(%rbp), %r9
movq -784(%rbp), %r10
movq %r9, -760(%rbp)
movq %r10, -768(%rbp)
movq -760(%rbp), %r9
movq -768(%rbp), %r10
movq %r10, -752(%rbp)
movq -752(%rbp), %r10
movq %r9, -736(%rbp)
movq %r10, -744(%rbp)
movq -736(%rbp), %r9
movq -744(%rbp), %r10
movq %r9, -720(%rbp)
movq %r10, -728(%rbp)
movq -720(%rbp), %r9
movq -728(%rbp), %r10
movq %r10, -712(%rbp)
movq -712(%rbp), %r10
movq %r10, -704(%rbp)
movq -704(%rbp), %r10
movq (%r10), %r10
movq %r10, -672(%rbp)
movq -672(%rbp), %r10
movq %r9, -688(%rbp)
movq %r10, -696(%rbp)
movq -688(%rbp), %r9
movq -696(%rbp), %r10
movq %r10, -680(%rbp)
movq -680(%rbp), %r10
movq %r10, (%r9)
movq -1704(%rbp), %r9
movq %r9, -792(%rbp)
movq -792(%rbp), %r9
movq %r9, -1128(%rbp)
movq -1128(%rbp), %r9
movq %r9, -1120(%rbp)
movq -1120(%rbp), %r9
movq %r8, -984(%rbp)
movq %r9, -992(%rbp)
movq -984(%rbp), %r9
movq -992(%rbp), %r10
movq %r9, -936(%rbp)
movq %r10, -944(%rbp)
movq -936(%rbp), %r9
movq -944(%rbp), %r10
movq %r10, -928(%rbp)
movq -928(%rbp), %r10
movq %r9, -880(%rbp)
movq %r10, -920(%rbp)
movq -880(%rbp), %r9
movq -920(%rbp), %r10
movq %r9, -832(%rbp)
movq %r10, -872(%rbp)
movq -832(%rbp), %r9
movq -872(%rbp), %r10
movq %r10, -824(%rbp)
movq -824(%rbp), %r10
movq %r9, -808(%rbp)
movq %r10, -816(%rbp)
movq -808(%rbp), %r9
movq -816(%rbp), %r10
movq %r10, -800(%rbp)
movq -800(%rbp), %r10
movq %r10, (%r9)
movq %rdi, -1104(%rbp)
movq %r8, -1112(%rbp)
movq -1104(%rbp), %r8
movq -1112(%rbp), %r9
movq %r8, -1088(%rbp)
movq %r9, -1096(%rbp)
movq -1088(%rbp), %r8
movq -1096(%rbp), %r9
movq %r9, -1080(%rbp)
movq -1080(%rbp), %r9
movq %r8, -1064(%rbp)
movq %r9, -1072(%rbp)
movq -1064(%rbp), %r8
movq -1072(%rbp), %r9
movq %r8, -1048(%rbp)
movq %r9, -1056(%rbp)
movq -1048(%rbp), %r8
movq -1056(%rbp), %r9
movq %r9, -1040(%rbp)
movq -1040(%rbp), %r9
movq %r9, -1032(%rbp)
movq -1032(%rbp), %r9
movq (%r9), %r9
movq %r9, -1000(%rbp)
movq -1000(%rbp), %r9
movq %r8, -1016(%rbp)
movq %r9, -1024(%rbp)
movq -1016(%rbp), %r8
movq -1024(%rbp), %r9
movq %r9, -1008(%rbp)
movq -1008(%rbp), %r9
movq %r9, (%r8)
movq %rdx, -1248(%rbp)
movq %rdi, -1256(%rbp)
movq -1248(%rbp), %rdi
movq -1256(%rbp), %r8
movq %rdi, -1232(%rbp)
movq %r8, -1240(%rbp)
movq -1232(%rbp), %rdi
movq -1240(%rbp), %r8
movq %r8, -1224(%rbp)
movq -1224(%rbp), %r8
movq %rdi, -1208(%rbp)
movq %r8, -1216(%rbp)
movq -1208(%rbp), %rdi
movq -1216(%rbp), %r8
movq %rdi, -1192(%rbp)
movq %r8, -1200(%rbp)
movq -1192(%rbp), %rdi
movq -1200(%rbp), %r8
movq %r8, -1184(%rbp)
movq -1184(%rbp), %r8
movq %r8, -1176(%rbp)
movq -1176(%rbp), %r8
movq (%r8), %r8
movq %r8, -1144(%rbp)
movq -1144(%rbp), %r8
movq %rdi, -1160(%rbp)
movq %r8, -1168(%rbp)
movq -1160(%rbp), %rdi
movq -1168(%rbp), %r8
movq %r8, -1152(%rbp)
movq -1152(%rbp), %r8
movq %r8, (%rdi)
movq %rax, -1656(%rbp)
movq -1656(%rbp), %rax
movq %rax, -1600(%rbp)
movq -1600(%rbp), %rax
movq %rsi, -1592(%rbp)
movq -1592(%rbp), %rsi
movq %rcx, -1368(%rbp)
movq %rsi, -1376(%rbp)
movq -1368(%rbp), %rsi
movq -1376(%rbp), %rdi
movq %rsi, -1352(%rbp)
movq %rdi, -1360(%rbp)
movq -1352(%rbp), %rsi
movq -1360(%rbp), %rdi
movq %rdi, -1344(%rbp)
movq -1344(%rbp), %rdi
movq %rsi, -1328(%rbp)
movq %rdi, -1336(%rbp)
movq -1328(%rbp), %rsi
movq -1336(%rbp), %rdi
movq %rsi, -1312(%rbp)
movq %rdi, -1320(%rbp)
movq -1312(%rbp), %rsi
movq -1320(%rbp), %rdi
movq %rdi, -1304(%rbp)
movq -1304(%rbp), %rdi
movq %rdi, -1296(%rbp)
movq -1296(%rbp), %rdi
movq (%rdi), %rdi
movq %rdi, -1264(%rbp)
movq -1264(%rbp), %rdi
movq %rsi, -1280(%rbp)
movq %rdi, -1288(%rbp)
movq -1280(%rbp), %rsi
movq -1288(%rbp), %rdi
movq %rdi, -1272(%rbp)
movq -1272(%rbp), %rdi
movq %rdi, (%rsi)
movq %rdx, -1384(%rbp)
movq -1384(%rbp), %rdx
movq -2360(%rbp), %rsi ## 8-byte Reload
movq %rsi, -1496(%rbp)
movq %rdx, -1504(%rbp)
movq -1496(%rbp), %rdx
movq -1504(%rbp), %rdi
movq %rdx, -1480(%rbp)
movq %rdi, -1488(%rbp)
movq -1480(%rbp), %rdx
movq -1488(%rbp), %rdi
movq %rdi, -1472(%rbp)
movq -1472(%rbp), %rdi
movq %rdx, -1456(%rbp)
movq %rdi, -1464(%rbp)
movq -1456(%rbp), %rdx
movq -1464(%rbp), %rdi
movq %rdx, -1440(%rbp)
movq %rdi, -1448(%rbp)
movq -1440(%rbp), %rdx
movq -1448(%rbp), %rdi
movq %rdi, -1432(%rbp)
movq -1432(%rbp), %rdi
movq %rdi, -1424(%rbp)
movq -1424(%rbp), %rdi
movq (%rdi), %rdi
movq %rdi, -1392(%rbp)
movq -1392(%rbp), %rdi
movq %rdx, -1408(%rbp)
movq %rdi, -1416(%rbp)
movq -1408(%rbp), %rdx
movq -1416(%rbp), %rdi
movq %rdi, -1400(%rbp)
movq -1400(%rbp), %rdi
movq %rdi, (%rdx)
movq %rax, -1560(%rbp)
movq %rcx, -1552(%rbp)
movq -1552(%rbp), %rax
movq %rax, -1544(%rbp)
movq -1544(%rbp), %rax
movq (%rax), %rax
movq %rax, -1512(%rbp)
movq %rsi, -1528(%rbp)
movq -1528(%rbp), %rax
movq %rax, -1520(%rbp)
movq -1520(%rbp), %rax
movq (%rax), %rax
movq %rax, -1536(%rbp)
## BB#2:
LBB7_3:
leaq -2296(%rbp), %rax
movq %rax, -1824(%rbp)
movq -1824(%rbp), %rcx
movq %rcx, -1816(%rbp)
movq -1816(%rbp), %rdx
movq %rdx, -1808(%rbp)
movq -1808(%rbp), %rdx
movq (%rdx), %rdx
movq %rdx, -1832(%rbp)
movq %rcx, -1800(%rbp)
movq -1800(%rbp), %rcx
movq %rcx, -1792(%rbp)
movq -1792(%rbp), %rcx
movq $0, (%rcx)
movq -1832(%rbp), %rcx
movl $1, -2336(%rbp)
movq %rax, -2056(%rbp)
movq -2056(%rbp), %rax
movq %rax, -2048(%rbp)
movq -2048(%rbp), %rax
movq %rax, -2024(%rbp)
movq $0, -2032(%rbp)
movq -2024(%rbp), %rax
movq %rax, -2016(%rbp)
movq -2016(%rbp), %rdx
movq %rdx, -2008(%rbp)
movq -2008(%rbp), %rdx
movq (%rdx), %rdx
movq %rdx, -2040(%rbp)
movq -2032(%rbp), %rdx
movq %rax, -1936(%rbp)
movq -1936(%rbp), %rsi
movq %rsi, -1928(%rbp)
movq -1928(%rbp), %rsi
movq %rdx, (%rsi)
cmpq $0, -2040(%rbp)
movq %rcx, -2368(%rbp) ## 8-byte Spill
movq %rax, -2376(%rbp) ## 8-byte Spill
je LBB7_5
## BB#4:
movq -2376(%rbp), %rax ## 8-byte Reload
movq %rax, -1920(%rbp)
movq -1920(%rbp), %rcx
movq %rcx, -1912(%rbp)
movq -1912(%rbp), %rcx
addq $8, %rcx
movq -2040(%rbp), %rdx
movq %rcx, -1992(%rbp)
movq %rdx, -2000(%rbp)
movq -1992(%rbp), %rcx
movq (%rcx), %rdx
movq -2000(%rbp), %rsi
movq 8(%rcx), %rcx
movq %rdx, -1968(%rbp)
movq %rsi, -1976(%rbp)
movq %rcx, -1984(%rbp)
movq -1968(%rbp), %rcx
movq -1976(%rbp), %rdx
movq -1984(%rbp), %rsi
movq %rcx, -1944(%rbp)
movq %rdx, -1952(%rbp)
movq %rsi, -1960(%rbp)
movq -1952(%rbp), %rcx
movq %rcx, %rdi
callq __ZdlPv
LBB7_5: ## %_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit2
movq -2368(%rbp), %rax ## 8-byte Reload
addq $2344, %rsp ## imm = 0x928
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp54:
.cfi_def_cfa_offset 16
Ltmp55:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp56:
.cfi_def_cfa_register %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $1376, %rsp ## imm = 0x560
Ltmp57:
.cfi_offset %rbx, -48
Ltmp58:
.cfi_offset %r12, -40
Ltmp59:
.cfi_offset %r14, -32
Ltmp60:
.cfi_offset %r15, -24
movq %rdi, -1512(%rbp)
movq %rsi, -1520(%rbp)
movq -1512(%rbp), %rsi
movq -1520(%rbp), %rdi
cmpq $0, %rdi
movq %rsi, -1528(%rbp) ## 8-byte Spill
movq %rdi, -1536(%rbp) ## 8-byte Spill
je LBB8_2
## BB#1:
leaq -1336(%rbp), %rax
leaq -1328(%rbp), %rcx
leaq -1456(%rbp), %rdx
leaq -1424(%rbp), %rsi
leaq -1464(%rbp), %rdi
leaq -840(%rbp), %r8
leaq -1432(%rbp), %r9
leaq -384(%rbp), %r10
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE(%rip), %r11
addq $16, %r11
movq __ZTVNSt3__110__function6__baseIFiiEEE@GOTPCREL(%rip), %rbx
addq $16, %rbx
movq -1536(%rbp), %r14 ## 8-byte Reload
movq -1528(%rbp), %r15 ## 8-byte Reload
addq $8, %r15
movq %r15, -1504(%rbp)
movq -1504(%rbp), %r15
movq %r15, -1496(%rbp)
movq -1496(%rbp), %r15
movq -1528(%rbp), %r12 ## 8-byte Reload
addq $8, %r12
movq %r12, -48(%rbp)
movq -48(%rbp), %r12
movq %r12, -40(%rbp)
movq -40(%rbp), %r12
movq %r14, -1472(%rbp)
movq %r15, -1480(%rbp)
movq %r12, -1488(%rbp)
movq -1472(%rbp), %r14
movq -1480(%rbp), %r15
movq -1488(%rbp), %r12
movq %r14, -1392(%rbp)
movq %r15, -1400(%rbp)
movq %r12, -1408(%rbp)
movq -1392(%rbp), %r14
movq %r14, %r15
movq %r15, -1384(%rbp)
movq -1384(%rbp), %r15
movq %rbx, (%r15)
movq %r11, (%r14)
addq $8, %r14
movq -1400(%rbp), %r11
movq %r11, -376(%rbp)
movq -376(%rbp), %r11
movq %r11, -368(%rbp)
movq -368(%rbp), %r11
movq %r10, -232(%rbp)
movq %r11, -240(%rbp)
movq -232(%rbp), %r11
movq -240(%rbp), %rbx
movq %r11, -184(%rbp)
movq %rbx, -192(%rbp)
movq -184(%rbp), %r11
movq -192(%rbp), %rbx
movq %r11, -136(%rbp)
movq %rbx, -176(%rbp)
movq -136(%rbp), %r11
movq -176(%rbp), %rbx
movq %r11, -88(%rbp)
movq %rbx, -128(%rbp)
movq -88(%rbp), %r11
movq -128(%rbp), %rbx
movq %rbx, -80(%rbp)
movq -80(%rbp), %rbx
movq %r11, -64(%rbp)
movq %rbx, -72(%rbp)
movq -64(%rbp), %r11
movq -72(%rbp), %rbx
movq %rbx, -56(%rbp)
movq -56(%rbp), %rbx
movq %rbx, (%r11)
movq %r9, -352(%rbp)
movq %r10, -360(%rbp)
movq -352(%rbp), %r10
movq -360(%rbp), %r11
movq %r10, -336(%rbp)
movq %r11, -344(%rbp)
movq -336(%rbp), %r10
movq -344(%rbp), %r11
movq %r11, -328(%rbp)
movq -328(%rbp), %r11
movq %r10, -312(%rbp)
movq %r11, -320(%rbp)
movq -312(%rbp), %r10
movq -320(%rbp), %r11
movq %r10, -296(%rbp)
movq %r11, -304(%rbp)
movq -296(%rbp), %r10
movq -304(%rbp), %r11
movq %r11, -288(%rbp)
movq -288(%rbp), %r11
movq %r11, -280(%rbp)
movq -280(%rbp), %r11
movq (%r11), %r11
movq %r11, -248(%rbp)
movq -248(%rbp), %r11
movq %r10, -264(%rbp)
movq %r11, -272(%rbp)
movq -264(%rbp), %r10
movq -272(%rbp), %r11
movq %r11, -256(%rbp)
movq -256(%rbp), %r11
movq %r11, (%r10)
movq %rsi, -496(%rbp)
movq %r9, -504(%rbp)
movq -496(%rbp), %r9
movq -504(%rbp), %r10
movq %r9, -480(%rbp)
movq %r10, -488(%rbp)
movq -480(%rbp), %r9
movq -488(%rbp), %r10
movq %r10, -472(%rbp)
movq -472(%rbp), %r10
movq %r9, -456(%rbp)
movq %r10, -464(%rbp)
movq -456(%rbp), %r9
movq -464(%rbp), %r10
movq %r9, -440(%rbp)
movq %r10, -448(%rbp)
movq -440(%rbp), %r9
movq -448(%rbp), %r10
movq %r10, -432(%rbp)
movq -432(%rbp), %r10
movq %r10, -424(%rbp)
movq -424(%rbp), %r10
movq (%r10), %r10
movq %r10, -392(%rbp)
movq -392(%rbp), %r10
movq %r9, -408(%rbp)
movq %r10, -416(%rbp)
movq -408(%rbp), %r9
movq -416(%rbp), %r10
movq %r10, -400(%rbp)
movq -400(%rbp), %r10
movq %r10, (%r9)
movq -1408(%rbp), %r9
movq %r9, -832(%rbp)
movq -832(%rbp), %r9
movq %r9, -824(%rbp)
movq -824(%rbp), %r9
movq %r8, -688(%rbp)
movq %r9, -696(%rbp)
movq -688(%rbp), %r9
movq -696(%rbp), %r10
movq %r9, -640(%rbp)
movq %r10, -648(%rbp)
movq -640(%rbp), %r9
movq -648(%rbp), %r10
movq %r9, -592(%rbp)
movq %r10, -632(%rbp)
movq -592(%rbp), %r9
movq -632(%rbp), %r10
movq %r9, -544(%rbp)
movq %r10, -584(%rbp)
movq -544(%rbp), %r9
movq -584(%rbp), %r10
movq %r10, -536(%rbp)
movq -536(%rbp), %r10
movq %r9, -520(%rbp)
movq %r10, -528(%rbp)
movq -520(%rbp), %r9
movq -528(%rbp), %r10
movq %r10, -512(%rbp)
movq -512(%rbp), %r10
movq %r10, (%r9)
movq %rdi, -808(%rbp)
movq %r8, -816(%rbp)
movq -808(%rbp), %r8
movq -816(%rbp), %r9
movq %r8, -792(%rbp)
movq %r9, -800(%rbp)
movq -792(%rbp), %r8
movq -800(%rbp), %r9
movq %r9, -784(%rbp)
movq -784(%rbp), %r9
movq %r8, -768(%rbp)
movq %r9, -776(%rbp)
movq -768(%rbp), %r8
movq -776(%rbp), %r9
movq %r8, -752(%rbp)
movq %r9, -760(%rbp)
movq -752(%rbp), %r8
movq -760(%rbp), %r9
movq %r9, -744(%rbp)
movq -744(%rbp), %r9
movq %r9, -736(%rbp)
movq -736(%rbp), %r9
movq (%r9), %r9
movq %r9, -704(%rbp)
movq -704(%rbp), %r9
movq %r8, -720(%rbp)
movq %r9, -728(%rbp)
movq -720(%rbp), %r8
movq -728(%rbp), %r9
movq %r9, -712(%rbp)
movq -712(%rbp), %r9
movq %r9, (%r8)
movq %rdx, -952(%rbp)
movq %rdi, -960(%rbp)
movq -952(%rbp), %rdi
movq -960(%rbp), %r8
movq %rdi, -936(%rbp)
movq %r8, -944(%rbp)
movq -936(%rbp), %rdi
movq -944(%rbp), %r8
movq %r8, -928(%rbp)
movq -928(%rbp), %r8
movq %rdi, -912(%rbp)
movq %r8, -920(%rbp)
movq -912(%rbp), %rdi
movq -920(%rbp), %r8
movq %rdi, -896(%rbp)
movq %r8, -904(%rbp)
movq -896(%rbp), %rdi
movq -904(%rbp), %r8
movq %r8, -888(%rbp)
movq -888(%rbp), %r8
movq %r8, -880(%rbp)
movq -880(%rbp), %r8
movq (%r8), %r8
movq %r8, -848(%rbp)
movq -848(%rbp), %r8
movq %rdi, -864(%rbp)
movq %r8, -872(%rbp)
movq -864(%rbp), %rdi
movq -872(%rbp), %r8
movq %r8, -856(%rbp)
movq -856(%rbp), %r8
movq %r8, (%rdi)
movq %r14, -1360(%rbp)
movq -1360(%rbp), %rdi
movq %rdi, -1304(%rbp)
movq -1304(%rbp), %rdi
movq %rsi, -1296(%rbp)
movq -1296(%rbp), %rsi
movq %rcx, -1072(%rbp)
movq %rsi, -1080(%rbp)
movq -1072(%rbp), %rsi
movq -1080(%rbp), %r8
movq %rsi, -1056(%rbp)
movq %r8, -1064(%rbp)
movq -1056(%rbp), %rsi
movq -1064(%rbp), %r8
movq %r8, -1048(%rbp)
movq -1048(%rbp), %r8
movq %rsi, -1032(%rbp)
movq %r8, -1040(%rbp)
movq -1032(%rbp), %rsi
movq -1040(%rbp), %r8
movq %rsi, -1016(%rbp)
movq %r8, -1024(%rbp)
movq -1016(%rbp), %rsi
movq -1024(%rbp), %r8
movq %r8, -1008(%rbp)
movq -1008(%rbp), %r8
movq %r8, -1000(%rbp)
movq -1000(%rbp), %r8
movq (%r8), %r8
movq %r8, -968(%rbp)
movq -968(%rbp), %r8
movq %rsi, -984(%rbp)
movq %r8, -992(%rbp)
movq -984(%rbp), %rsi
movq -992(%rbp), %r8
movq %r8, -976(%rbp)
movq -976(%rbp), %r8
movq %r8, (%rsi)
movq %rdx, -1088(%rbp)
movq -1088(%rbp), %rdx
movq %rax, -1200(%rbp)
movq %rdx, -1208(%rbp)
movq -1200(%rbp), %rdx
movq -1208(%rbp), %rsi
movq %rdx, -1184(%rbp)
movq %rsi, -1192(%rbp)
movq -1184(%rbp), %rdx
movq -1192(%rbp), %rsi
movq %rsi, -1176(%rbp)
movq -1176(%rbp), %rsi
movq %rdx, -1160(%rbp)
movq %rsi, -1168(%rbp)
movq -1160(%rbp), %rdx
movq -1168(%rbp), %rsi
movq %rdx, -1144(%rbp)
movq %rsi, -1152(%rbp)
movq -1144(%rbp), %rdx
movq -1152(%rbp), %rsi
movq %rsi, -1136(%rbp)
movq -1136(%rbp), %rsi
movq %rsi, -1128(%rbp)
movq -1128(%rbp), %rsi
movq (%rsi), %rsi
movq %rsi, -1096(%rbp)
movq -1096(%rbp), %rsi
movq %rdx, -1112(%rbp)
movq %rsi, -1120(%rbp)
movq -1112(%rbp), %rdx
movq -1120(%rbp), %rsi
movq %rsi, -1104(%rbp)
movq -1104(%rbp), %rsi
movq %rsi, (%rdx)
movq %rdi, -1264(%rbp)
movq %rcx, -1256(%rbp)
movq -1256(%rbp), %rcx
movq %rcx, -1248(%rbp)
movq -1248(%rbp), %rcx
movq (%rcx), %rcx
movq %rcx, -1216(%rbp)
movq %rax, -1232(%rbp)
movq -1232(%rbp), %rax
movq %rax, -1224(%rbp)
movq -1224(%rbp), %rax
movq (%rax), %rax
movq %rax, -1240(%rbp)
LBB8_2:
addq $1376, %rsp ## imm = 0x560
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp63:
.cfi_def_cfa_offset 16
Ltmp64:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp65:
.cfi_def_cfa_register %rbp
movq %rdi, -8(%rbp)
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp68:
.cfi_def_cfa_offset 16
Ltmp69:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp70:
.cfi_def_cfa_register %rbp
subq $96, %rsp
leaq -88(%rbp), %rax
movq %rdi, -80(%rbp)
movq -80(%rbp), %rdi
movq %rdi, %rcx
addq $8, %rcx
movq %rcx, -72(%rbp)
movq -72(%rbp), %rcx
movq %rcx, -64(%rbp)
movq -64(%rbp), %rcx
movq %rax, -24(%rbp)
movq %rcx, -32(%rbp)
movq -24(%rbp), %rcx
movq -32(%rbp), %rdx
movq %rcx, -8(%rbp)
movq %rdx, -16(%rbp)
movq %rax, -40(%rbp)
movq %rdi, -48(%rbp)
movq $1, -56(%rbp)
movq -48(%rbp), %rax
movq %rax, %rdi
callq __ZdlPv
addq $96, %rsp
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp73:
.cfi_def_cfa_offset 16
Ltmp74:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp75:
.cfi_def_cfa_register %rbp
subq $80, %rsp
movq %rdi, -64(%rbp)
movq %rsi, -72(%rbp)
movq -64(%rbp), %rsi
addq $8, %rsi
movq %rsi, -56(%rbp)
movq -56(%rbp), %rsi
movq %rsi, -48(%rbp)
movq -48(%rbp), %rsi
movq -72(%rbp), %rdi
movq %rdi, -8(%rbp)
movq -8(%rbp), %rdi
movq %rsi, -32(%rbp)
movq %rdi, -40(%rbp)
movq -32(%rbp), %rsi
movq %rsi, -24(%rbp)
movq -24(%rbp), %rdi
movq -40(%rbp), %rsi
movq %rsi, -16(%rbp)
movq -16(%rbp), %rsi
movl (%rsi), %esi
callq __ZZ3foovENK3$_0clEi
addq $80, %rsp
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp78:
.cfi_def_cfa_offset 16
Ltmp79:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp80:
.cfi_def_cfa_register %rbp
leaq __ZTIZ3foovE3$_0(%rip), %rax
movq %rdi, -48(%rbp)
movq %rsi, -56(%rbp)
movq -48(%rbp), %rsi
movq -56(%rbp), %rdi
movq %rdi, -24(%rbp)
movq %rax, -32(%rbp)
movq -24(%rbp), %rax
movq 8(%rax), %rax
movq -32(%rbp), %rdi
cmpq 8(%rdi), %rax
movq %rsi, -64(%rbp) ## 8-byte Spill
jne LBB12_2
## BB#1:
movq -64(%rbp), %rax ## 8-byte Reload
addq $8, %rax
movq %rax, -16(%rbp)
movq -16(%rbp), %rax
movq %rax, -8(%rbp)
movq -8(%rbp), %rax
movq %rax, -40(%rbp)
jmp LBB12_3
LBB12_2:
movq $0, -40(%rbp)
LBB12_3:
movq -40(%rbp), %rax
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp83:
.cfi_def_cfa_offset 16
Ltmp84:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp85:
.cfi_def_cfa_register %rbp
leaq __ZTIZ3foovE3$_0(%rip), %rax
movq %rdi, -8(%rbp)
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZZ3foovENK3$_0clEi: ## @"_ZZ3foovENK3$_0clEi"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp88:
.cfi_def_cfa_offset 16
Ltmp89:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp90:
.cfi_def_cfa_register %rbp
movq %rdi, -8(%rbp)
movl %esi, -12(%rbp)
movl -12(%rbp), %esi
addl $1, %esi
movl %esi, %eax
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp93:
.cfi_def_cfa_offset 16
Ltmp94:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp95:
.cfi_def_cfa_register %rbp
movq %rdi, -16(%rbp)
movq -16(%rbp), %rdi
movq %rdi, -8(%rbp)
popq %rbp
ret
.cfi_endproc
.section __TEXT,__textcoal_nt,coalesced,pure_instructions
.private_extern __ZNSt3__110__function6__baseIFiiEED1Ev
.globl __ZNSt3__110__function6__baseIFiiEED1Ev
.weak_definition __ZNSt3__110__function6__baseIFiiEED1Ev
.align 4, 0x90
__ZNSt3__110__function6__baseIFiiEED1Ev: ## @_ZNSt3__110__function6__baseIFiiEED1Ev
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp98:
.cfi_def_cfa_offset 16
Ltmp99:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp100:
.cfi_def_cfa_register %rbp
movq %rdi, -16(%rbp)
movq -16(%rbp), %rdi
movq %rdi, -8(%rbp)
popq %rbp
ret
.cfi_endproc
.private_extern __ZNSt3__110__function6__baseIFiiEED0Ev
.globl __ZNSt3__110__function6__baseIFiiEED0Ev
.weak_definition __ZNSt3__110__function6__baseIFiiEED0Ev
.align 4, 0x90
__ZNSt3__110__function6__baseIFiiEED0Ev: ## @_ZNSt3__110__function6__baseIFiiEED0Ev
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp103:
.cfi_def_cfa_offset 16
Ltmp104:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp105:
.cfi_def_cfa_register %rbp
subq $32, %rsp
movq %rdi, -24(%rbp)
movq -24(%rbp), %rdi
movq %rdi, -16(%rbp)
movq -16(%rbp), %rax
movq %rax, -8(%rbp)
callq __ZdlPv
addq $32, %rsp
popq %rbp
ret
.cfi_endproc
.section __TEXT,__const
__ZNSt3__112_GLOBAL__N_1L6ignoreE: ## @_ZNSt3__112_GLOBAL__N_1L6ignoreE
.space 1
.section __DATA,__const
.align 4 ## @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE"
__ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE:
.quad 0
.quad __ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv
.section __TEXT,__const
.align 4 ## @"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE"
__ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE:
.asciz "NSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE"
.section __TEXT,__const_coal,coalesced
.globl __ZTSNSt3__110__function6__baseIFiiEEE ## @_ZTSNSt3__110__function6__baseIFiiEEE
.weak_definition __ZTSNSt3__110__function6__baseIFiiEEE
.align 4
__ZTSNSt3__110__function6__baseIFiiEEE:
.asciz "NSt3__110__function6__baseIFiiEEE"
.section __DATA,__datacoal_nt,coalesced
.globl __ZTINSt3__110__function6__baseIFiiEEE ## @_ZTINSt3__110__function6__baseIFiiEEE
.weak_definition __ZTINSt3__110__function6__baseIFiiEEE
.align 3
__ZTINSt3__110__function6__baseIFiiEEE:
.quad __ZTVN10__cxxabiv117__class_type_infoE+16
.quad __ZTSNSt3__110__function6__baseIFiiEEE
.section __DATA,__const
.align 4 ## @"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE"
__ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE:
.quad __ZTVN10__cxxabiv120__si_class_type_infoE+16
.quad __ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE
.quad __ZTINSt3__110__function6__baseIFiiEEE
.section __TEXT,__const
__ZTSZ3foovE3$_0: ## @"_ZTSZ3foovE3$_0"
.asciz "Z3foovE3$_0"
.section __DATA,__const
.align 3 ## @"_ZTIZ3foovE3$_0"
__ZTIZ3foovE3$_0:
.quad __ZTVN10__cxxabiv117__class_type_infoE+16
.quad __ZTSZ3foovE3$_0
.section __DATA,__datacoal_nt,coalesced
.globl __ZTVNSt3__110__function6__baseIFiiEEE ## @_ZTVNSt3__110__function6__baseIFiiEEE
.weak_definition __ZTVNSt3__110__function6__baseIFiiEEE
.align 4
__ZTVNSt3__110__function6__baseIFiiEEE:
.quad 0
.quad __ZTINSt3__110__function6__baseIFiiEEE
.quad __ZNSt3__110__function6__baseIFiiEED1Ev
.quad __ZNSt3__110__function6__baseIFiiEED0Ev
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
.subsections_via_symbols
std_func_overhead.o:
(__TEXT,__text) section
__Z3foov:
0000000000000000 pushq %rbp
0000000000000001 movq %rsp,%rbp
0000000000000004 subq $0x60,%rsp
0000000000000008 leaq 0xc0(%rbp),%rax
000000000000000c xorl %esi,%esi
000000000000000e movq %rax,%rdi
0000000000000011 movq %rax,0xa0(%rbp)
0000000000000015 callq 0x0000001a
000000000000001a movq 0xa0(%rbp),%rdi
000000000000001e callq 0x00000023
0000000000000023 jmp 0x00000028
0000000000000028 leaq 0xc0(%rbp),%rdi
000000000000002c callq 0x00000031
0000000000000031 addq $0x60,%rsp
0000000000000035 popq %rbp
0000000000000036 ret
0000000000000037 leaq 0xc0(%rbp),%rdi
000000000000003b movl %edx,%ecx
000000000000003d movq %rax,0xb0(%rbp)
0000000000000041 movl %ecx,0xac(%rbp)
0000000000000044 callq 0x00000049
0000000000000049 movq 0xb0(%rbp),%rdi
000000000000004d callq 0x00000052
0000000000000052 nopw %cs:0x00000000(%rax,%rax)
__ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE:
0000000000000060 pushq %rbp
0000000000000061 movq %rsp,%rbp
0000000000000064 subq $0x20,%rsp
0000000000000068 movq %rdi,0xf8(%rbp)
000000000000006c movq %rsi,0xe8(%rbp)
0000000000000070 movq 0xf8(%rbp),%rdi
0000000000000074 movq 0xe8(%rbp),%rsi
0000000000000078 callq 0x0000007d
000000000000007d addq $0x20,%rsp
0000000000000081 popq %rbp
0000000000000082 ret
0000000000000083 nopl %cs:0x00000000(%rax,%rax)
__ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE:
0000000000000090 pushq %rbp
0000000000000091 movq %rsp,%rbp
0000000000000094 pushq %rbx
0000000000000095 subq $0x00000330,%rsp
000000000000009c movb $0x01,%al
000000000000009e leaq 0xfffffc60(%rbp),%rcx
00000000000000a5 movq %rdi,0xfffffc68(%rbp)
00000000000000ac movq %rsi,0xfffffc58(%rbp)
00000000000000b3 movq 0xfffffc68(%rbp),%rsi
00000000000000ba movq $0x00000000,0x20(%rsi)
00000000000000c2 movq %rcx,0xfffffc70(%rbp)
00000000000000c9 testb $0x01,%al
00000000000000cb movq %rsi,0xfffffc50(%rbp)
00000000000000d2 jne 0x000000dd
00000000000000d8 jmp 0x00000574
00000000000000dd movq 0xfffffc50(%rbp),%rax
00000000000000e4 movq 0xfffffc50(%rbp),%rcx
00000000000000eb movq %rax,0x20(%rcx)
00000000000000ef movq 0x20(%rcx),%rax
00000000000000f3 cmpq $0x00000000,%eax
00000000000000f9 movq %rax,0xfffffc48(%rbp)
0000000000000100 je 0x00000574
0000000000000106 leaq 0xfffffd08(%rbp),%rax
000000000000010d leaq 0xfffffd18(%rbp),%rcx
0000000000000114 leaq 0xfffffca8(%rbp),%rdx
000000000000011b leaq 0xfffffe00(%rbp),%rsi
0000000000000122 leaq 0xfffffca0(%rbp),%rdi
0000000000000129 leaq 0xfffffe90(%rbp),%r8
0000000000000130 leaq 0x00000000(%rip),%r9
0000000000000137 addq $0x00000010,%r9
000000000000013e movq 0x00000000(%rip),%r10
0000000000000145 addq $0x00000010,%r10
000000000000014c leaq 0xfffffc60(%rbp),%r11
0000000000000153 movq 0xfffffc48(%rbp),%rbx
000000000000015a movq %r11,0xf0(%rbp)
000000000000015e movq 0xf0(%rbp),%r11
0000000000000162 movq %rbx,0xfffffc80(%rbp)
0000000000000169 movq %r11,0xfffffc78(%rbp)
0000000000000170 movq 0xfffffc80(%rbp),%r11
0000000000000177 movq 0xfffffc78(%rbp),%rbx
000000000000017e movq %r11,0xfffffcc0(%rbp)
0000000000000185 movq %rbx,0xfffffcb8(%rbp)
000000000000018c movq 0xfffffcc0(%rbp),%r11
0000000000000193 movq %r11,%rbx
0000000000000196 movq %rbx,0xfffffcc8(%rbp)
000000000000019d movq 0xfffffcc8(%rbp),%rbx
00000000000001a4 movq %r10,(%rbx)
00000000000001a7 movq %r9,(%r11)
00000000000001aa addq $0x00000008,%r11
00000000000001b1 movq 0xfffffcb8(%rbp),%r9
00000000000001b8 movq %r9,0xe8(%rbp)
00000000000001bc movq 0xe8(%rbp),%r9
00000000000001c0 movq %r9,0xfffffe98(%rbp)
00000000000001c7 movq 0xfffffe98(%rbp),%r9
00000000000001ce movq %r9,0xfffffea0(%rbp)
00000000000001d5 movq 0xfffffea0(%rbp),%r9
00000000000001dc movq %r8,0xffffff28(%rbp)
00000000000001e3 movq %r9,0xffffff20(%rbp)
00000000000001ea movq 0xffffff28(%rbp),%r9
00000000000001f1 movq 0xffffff20(%rbp),%r10
00000000000001f8 movq %r9,0xffffff58(%rbp)
00000000000001ff movq %r10,0xffffff50(%rbp)
0000000000000206 movq 0xffffff58(%rbp),%r9
000000000000020d movq 0xffffff50(%rbp),%r10
0000000000000214 movq %r10,0xffffff60(%rbp)
000000000000021b movq 0xffffff60(%rbp),%r10
0000000000000222 movq %r9,0x90(%rbp)
0000000000000226 movq %r10,0xffffff68(%rbp)
000000000000022d movq 0x90(%rbp),%r9
0000000000000231 movq 0xffffff68(%rbp),%r10
0000000000000238 movq %r9,0xc0(%rbp)
000000000000023c movq %r10,0x98(%rbp)
0000000000000240 movq 0xc0(%rbp),%r9
0000000000000244 movq 0x98(%rbp),%r10
0000000000000248 movq %r10,0xc8(%rbp)
000000000000024c movq 0xc8(%rbp),%r10
0000000000000250 movq %r9,0xd8(%rbp)
0000000000000254 movq %r10,0xd0(%rbp)
0000000000000258 movq 0xd8(%rbp),%r9
000000000000025c movq 0xd0(%rbp),%r10
0000000000000260 movq %r10,0xe0(%rbp)
0000000000000264 movq 0xe0(%rbp),%r10
0000000000000268 movq %r10,(%r9)
000000000000026b movq %rdi,0xfffffeb0(%rbp)
0000000000000272 movq %r8,0xfffffea8(%rbp)
0000000000000279 movq 0xfffffeb0(%rbp),%r8
0000000000000280 movq 0xfffffea8(%rbp),%r9
0000000000000287 movq %r8,0xfffffec0(%rbp)
000000000000028e movq %r9,0xfffffeb8(%rbp)
0000000000000295 movq 0xfffffec0(%rbp),%r8
000000000000029c movq 0xfffffeb8(%rbp),%r9
00000000000002a3 movq %r9,0xfffffec8(%rbp)
00000000000002aa movq 0xfffffec8(%rbp),%r9
00000000000002b1 movq %r8,0xfffffed8(%rbp)
00000000000002b8 movq %r9,0xfffffed0(%rbp)
00000000000002bf movq 0xfffffed8(%rbp),%r8
00000000000002c6 movq 0xfffffed0(%rbp),%r9
00000000000002cd movq %r8,0xfffffee8(%rbp)
00000000000002d4 movq %r9,0xfffffee0(%rbp)
00000000000002db movq 0xfffffee8(%rbp),%r8
00000000000002e2 movq 0xfffffee0(%rbp),%r9
00000000000002e9 movq %r9,0xfffffef0(%rbp)
00000000000002f0 movq 0xfffffef0(%rbp),%r9
00000000000002f7 movq %r9,0xfffffef8(%rbp)
00000000000002fe movq 0xfffffef8(%rbp),%r9
0000000000000305 movq (%r9),%r9
0000000000000308 movq %r9,0xffffff18(%rbp)
000000000000030f movq 0xffffff18(%rbp),%r9
0000000000000316 movq %r8,0xffffff08(%rbp)
000000000000031d movq %r9,0xffffff00(%rbp)
0000000000000324 movq 0xffffff08(%rbp),%r8
000000000000032b movq 0xffffff00(%rbp),%r9
0000000000000332 movq %r9,0xffffff10(%rbp)
0000000000000339 movq 0xffffff10(%rbp),%r9
0000000000000340 movq %r9,(%r8)
0000000000000343 movq %rdx,0xfffffe20(%rbp)
000000000000034a movq %rdi,0xfffffe18(%rbp)
0000000000000351 movq 0xfffffe20(%rbp),%rdi
0000000000000358 movq 0xfffffe18(%rbp),%r8
000000000000035f movq %rdi,0xfffffe30(%rbp)
0000000000000366 movq %r8,0xfffffe28(%rbp)
000000000000036d movq 0xfffffe30(%rbp),%rdi
0000000000000374 movq 0xfffffe28(%rbp),%r8
000000000000037b movq %r8,0xfffffe38(%rbp)
0000000000000382 movq 0xfffffe38(%rbp),%r8
0000000000000389 movq %rdi,0xfffffe48(%rbp)
0000000000000390 movq %r8,0xfffffe40(%rbp)
0000000000000397 movq 0xfffffe48(%rbp),%rdi
000000000000039e movq 0xfffffe40(%rbp),%r8
00000000000003a5 movq %rdi,0xfffffe58(%rbp)
00000000000003ac movq %r8,0xfffffe50(%rbp)
00000000000003b3 movq 0xfffffe58(%rbp),%rdi
00000000000003ba movq 0xfffffe50(%rbp),%r8
00000000000003c1 movq %r8,0xfffffe60(%rbp)
00000000000003c8 movq 0xfffffe60(%rbp),%r8
00000000000003cf movq %r8,0xfffffe68(%rbp)
00000000000003d6 movq 0xfffffe68(%rbp),%r8
00000000000003dd movq (%r8),%r8
00000000000003e0 movq %r8,0xfffffe88(%rbp)
00000000000003e7 movq 0xfffffe88(%rbp),%r8
00000000000003ee movq %rdi,0xfffffe78(%rbp)
00000000000003f5 movq %r8,0xfffffe70(%rbp)
00000000000003fc movq 0xfffffe78(%rbp),%rdi
0000000000000403 movq 0xfffffe70(%rbp),%r8
000000000000040a movq %r8,0xfffffe80(%rbp)
0000000000000411 movq 0xfffffe80(%rbp),%r8
0000000000000418 movq %r8,(%rdi)
000000000000041b movq %rsi,0xfffffe08(%rbp)
0000000000000422 movq 0xfffffe08(%rbp),%rsi
0000000000000429 movq %rsi,0xfffffe10(%rbp)
0000000000000430 movq %r11,0xfffffce8(%rbp)
0000000000000437 movq 0xfffffce8(%rbp),%rsi
000000000000043e movq %rsi,0xfffffd28(%rbp)
0000000000000445 movq 0xfffffd28(%rbp),%rsi
000000000000044c movq %rdx,0xfffffd30(%rbp)
0000000000000453 movq 0xfffffd30(%rbp),%rdx
000000000000045a movq %rax,0xfffffd90(%rbp)
0000000000000461 movq %rdx,0xfffffd88(%rbp)
0000000000000468 movq 0xfffffd90(%rbp),%rdx
000000000000046f movq 0xfffffd88(%rbp),%rdi
0000000000000476 movq %rdx,0xfffffda0(%rbp)
000000000000047d movq %rdi,0xfffffd98(%rbp)
0000000000000484 movq 0xfffffda0(%rbp),%rdx
000000000000048b movq 0xfffffd98(%rbp),%rdi
0000000000000492 movq %rdi,0xfffffda8(%rbp)
0000000000000499 movq 0xfffffda8(%rbp),%rdi
00000000000004a0 movq %rdx,0xfffffdb8(%rbp)
00000000000004a7 movq %rdi,0xfffffdb0(%rbp)
00000000000004ae movq 0xfffffdb8(%rbp),%rdx
00000000000004b5 movq 0xfffffdb0(%rbp),%rdi
00000000000004bc movq %rdx,0xfffffdc8(%rbp)
00000000000004c3 movq %rdi,0xfffffdc0(%rbp)
00000000000004ca movq 0xfffffdc8(%rbp),%rdx
00000000000004d1 movq 0xfffffdc0(%rbp),%rdi
00000000000004d8 movq %rdi,0xfffffdd0(%rbp)
00000000000004df movq 0xfffffdd0(%rbp),%rdi
00000000000004e6 movq %rdi,0xfffffdd8(%rbp)
00000000000004ed movq 0xfffffdd8(%rbp),%rdi
00000000000004f4 movq (%rdi),%rdi
00000000000004f7 movq %rdi,0xfffffdf8(%rbp)
00000000000004fe movq 0xfffffdf8(%rbp),%rdi
0000000000000505 movq %rdx,0xfffffde8(%rbp)
000000000000050c movq %rdi,0xfffffde0(%rbp)
0000000000000513 movq 0xfffffde8(%rbp),%rdx
000000000000051a movq 0xfffffde0(%rbp),%rdi
0000000000000521 movq %rdi,0xfffffdf0(%rbp)
0000000000000528 movq 0xfffffdf0(%rbp),%rdi
000000000000052f movq %rdi,(%rdx)
0000000000000532 movq %rcx,0xfffffd80(%rbp)
0000000000000539 movq %rsi,0xfffffd58(%rbp)
0000000000000540 movq 0xfffffd58(%rbp),%rcx
0000000000000547 movq %rax,0xfffffd60(%rbp)
000000000000054e movq 0xfffffd60(%rbp),%rax
0000000000000555 movq %rax,0xfffffd68(%rbp)
000000000000055c movq 0xfffffd68(%rbp),%rax
0000000000000563 movq (%rax),%rax
0000000000000566 movq %rax,0xfffffd78(%rbp)
000000000000056d movq %rcx,0xfffffd70(%rbp)
0000000000000574 addq $0x00000330,%rsp
000000000000057b popq %rbx
000000000000057c popq %rbp
000000000000057d ret
000000000000057e nop
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev:
0000000000000580 pushq %rbp
0000000000000581 movq %rsp,%rbp
0000000000000584 subq $0x10,%rsp
0000000000000588 movq %rdi,0xf8(%rbp)
000000000000058c movq 0xf8(%rbp),%rdi
0000000000000590 callq 0x00000595
0000000000000595 addq $0x10,%rsp
0000000000000599 popq %rbp
000000000000059a ret
000000000000059b nopl 0x00(%rax,%rax)
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev:
00000000000005a0 pushq %rbp
00000000000005a1 movq %rsp,%rbp
00000000000005a4 subq $0x10,%rsp
00000000000005a8 movq %rdi,0xf8(%rbp)
00000000000005ac movq 0xf8(%rbp),%rdi
00000000000005b0 movq %rdi,0xf0(%rbp)
00000000000005b4 callq 0x000005b9
00000000000005b9 movq 0xf0(%rbp),%rdi
00000000000005bd callq 0x000005c2
00000000000005c2 addq $0x10,%rsp
00000000000005c6 popq %rbp
00000000000005c7 ret
00000000000005c8 nopl 0x00000000(%rax,%rax)
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv:
00000000000005d0 pushq %rbp
00000000000005d1 movq %rsp,%rbp
00000000000005d4 pushq %r15
00000000000005d6 pushq %r14
00000000000005d8 pushq %r13
00000000000005da pushq %r12
00000000000005dc pushq %rbx
00000000000005dd subq $0x00000928,%rsp
00000000000005e4 leaq 0xfffff720(%rbp),%rax
00000000000005eb movq %rdi,0xfffff728(%rbp)
00000000000005f2 movq 0xfffff728(%rbp),%rdi
00000000000005f9 movq %rdi,%rcx
00000000000005fc addq $0x00000008,%rcx
0000000000000603 movq %rcx,0xfffff730(%rbp)
000000000000060a movq 0xfffff730(%rbp),%rcx
0000000000000611 movq %rcx,0xfffff738(%rbp)
0000000000000618 movq 0xfffff738(%rbp),%rcx
000000000000061f movq %rax,0xfffff7e0(%rbp)
0000000000000626 movq %rcx,0xfffff7d8(%rbp)
000000000000062d movq 0xfffff7e0(%rbp),%rcx
0000000000000634 movq 0xfffff7d8(%rbp),%rdx
000000000000063b movq %rcx,0xfffff7f0(%rbp)
0000000000000642 movq %rdx,0xfffff7e8(%rbp)
0000000000000649 movq %rax,0xfffff8a0(%rbp)
0000000000000650 movq $0x00000001,0xfffff898(%rbp)
000000000000065b movq $0x00000000,0xfffff890(%rbp)
0000000000000666 movq 0xfffff898(%rbp),%rax
000000000000066d shlq $0x04,%rax
0000000000000671 movq %rdi,0xfffff6d8(%rbp)
0000000000000678 movq %rax,%rdi
000000000000067b callq 0x00000680
0000000000000680 leaq 0xfffff6f8(%rbp),%rcx
0000000000000687 leaq 0xfffff708(%rbp),%rdx
000000000000068e leaq 0xfffff720(%rbp),%rdi
0000000000000695 movq %rcx,0xfffff8b8(%rbp)
000000000000069c movq %rdi,0xfffff8b0(%rbp)
00000000000006a3 movq $0x00000001,0xfffff8a8(%rbp)
00000000000006ae movq 0xfffff8b8(%rbp),%rdi
00000000000006b5 movq 0xfffff8a8(%rbp),%rsi
00000000000006bc movq 0xfffff8b0(%rbp),%r8
00000000000006c3 movq %rdi,0xfffff8d0(%rbp)
00000000000006ca movq %r8,0xfffff8c8(%rbp)
00000000000006d1 movq %rsi,0xfffff8c0(%rbp)
00000000000006d8 movq 0xfffff8d0(%rbp),%rsi
00000000000006df movq 0xfffff8c8(%rbp),%rdi
00000000000006e6 movq %rdi,(%rsi)
00000000000006e9 movq 0xfffff8c0(%rbp),%rdi
00000000000006f0 movq %rdi,0x08(%rsi)
00000000000006f4 movq %rdx,0xffffff10(%rbp)
00000000000006fb movq %rax,0xffffff08(%rbp)
0000000000000702 movq %rcx,0xffffff00(%rbp)
0000000000000709 movq 0xffffff10(%rbp),%rax
0000000000000710 movq 0xffffff08(%rbp),%rcx
0000000000000717 movq 0xffffff00(%rbp),%rdx
000000000000071e movq %rax,0xffffff38(%rbp)
0000000000000725 movq %rcx,0xffffff30(%rbp)
000000000000072c movq %rdx,0xffffff28(%rbp)
0000000000000733 movq 0xffffff38(%rbp),%rax
000000000000073a movq 0xffffff30(%rbp),%rcx
0000000000000741 movq 0xffffff28(%rbp),%rdx
0000000000000748 movq %rdx,0xffffff40(%rbp)
000000000000074f movq 0xffffff40(%rbp),%rdx
0000000000000756 movq (%rdx),%rsi
0000000000000759 movq %rsi,0xffffff18(%rbp)
0000000000000760 movq 0x08(%rdx),%rdx
0000000000000764 movq %rdx,0xffffff20(%rbp)
000000000000076b leaq 0xffffff78(%rbp),%rdx
0000000000000772 leaq 0x88(%rbp),%rsi
0000000000000776 movq 0xffffff18(%rbp),%rdi
000000000000077d movq 0xffffff20(%rbp),%r8
0000000000000784 movq %rax,0xffffff60(%rbp)
000000000000078b movq %rcx,0xffffff58(%rbp)
0000000000000792 movq %rdi,0xffffff48(%rbp)
0000000000000799 movq %r8,0xffffff50(%rbp)
00000000000007a0 movq 0xffffff60(%rbp),%rax
00000000000007a7 movq 0xffffff58(%rbp),%rcx
00000000000007ae movq 0xffffff48(%rbp),%rdi
00000000000007b5 movq 0xffffff50(%rbp),%r8
00000000000007bc movq %rax,0x90(%rbp)
00000000000007c0 movq %rcx,0x88(%rbp)
00000000000007c4 movq %rdi,0xffffff78(%rbp)
00000000000007cb movq %r8,0x80(%rbp)
00000000000007cf movq 0x90(%rbp),%rax
00000000000007d3 movq %rsi,0x98(%rbp)
00000000000007d7 movq 0x98(%rbp),%rcx
00000000000007db movq (%rcx),%rcx
00000000000007de movq %rdx,0xd0(%rbp)
00000000000007e2 movq 0xd0(%rbp),%rdx
00000000000007e6 movq (%rdx),%rsi
00000000000007e9 movq %rsi,0xffffff68(%rbp)
00000000000007f0 movq 0x08(%rdx),%rdx
00000000000007f4 movq %rdx,0xffffff70(%rbp)
00000000000007fb leaq 0xa0(%rbp),%rdx
00000000000007ff leaq 0xb0(%rbp),%rsi
0000000000000803 movq 0xffffff68(%rbp),%rdi
000000000000080a movq 0xffffff70(%rbp),%r8
0000000000000811 movq %rax,0xb8(%rbp)
0000000000000815 movq %rcx,0xb0(%rbp)
0000000000000819 movq %rdi,0xa0(%rbp)
000000000000081d movq %r8,0xa8(%rbp)
0000000000000821 movq 0xb8(%rbp),%rax
0000000000000825 movq %rsi,0xc0(%rbp)
0000000000000829 movq 0xc0(%rbp),%rcx
000000000000082d movq (%rcx),%rcx
0000000000000830 movq %rcx,(%rax)
0000000000000833 movq %rdx,0xc8(%rbp)
0000000000000837 movq 0xc8(%rbp),%rcx
000000000000083b movq (%rcx),%rdx
000000000000083e movq %rdx,0x08(%rax)
0000000000000842 movq 0x08(%rcx),%rcx
0000000000000846 movq %rcx,0x10(%rax)
000000000000084a leaq 0xfffff708(%rbp),%rax
0000000000000851 movq %rax,0xfffffee8(%rbp)
0000000000000858 movq 0xfffffee8(%rbp),%rax
000000000000085f movq %rax,0xfffffef0(%rbp)
0000000000000866 movq 0xfffffef0(%rbp),%rax
000000000000086d movq %rax,0xfffffef8(%rbp)
0000000000000874 movq 0xfffffef8(%rbp),%rax
000000000000087b movq (%rax),%rax
000000000000087e cmpq $0x00000000,%eax
0000000000000884 movq %rax,0xfffff6d0(%rbp)
000000000000088b je 0x00001112
0000000000000891 leaq 0xfffff9a0(%rbp),%rax
0000000000000898 leaq 0xfffff9a8(%rbp),%rcx
000000000000089f leaq 0xfffff928(%rbp),%rdx
00000000000008a6 leaq 0xfffff948(%rbp),%rsi
00000000000008ad leaq 0xfffff920(%rbp),%rdi
00000000000008b4 leaq 0xfffffb90(%rbp),%r8
00000000000008bb leaq 0xfffff940(%rbp),%r9
00000000000008c2 leaq 0xfffffd68(%rbp),%r10
00000000000008c9 leaq 0x00000000(%rip),%r11
00000000000008d0 addq $0x00000010,%r11
00000000000008d7 movq 0x00000000(%rip),%rbx
00000000000008de addq $0x00000010,%rbx
00000000000008e5 leaq 0xfffff6f0(%rbp),%r14
00000000000008ec leaq 0xfffff720(%rbp),%r15
00000000000008f3 movq 0xfffff6d0(%rbp),%r12
00000000000008fa movq 0xfffff6d8(%rbp),%r13
0000000000000901 addq $0x00000008,%r13
0000000000000908 movq %r13,0xfffffed8(%rbp)
000000000000090f movq 0xfffffed8(%rbp),%r13
0000000000000916 movq %r13,0xfffffee0(%rbp)
000000000000091d movq 0xfffffee0(%rbp),%r13
0000000000000924 movq %r14,0xfffffec0(%rbp)
000000000000092b movq %r15,0xfffffeb8(%rbp)
0000000000000932 movq 0xfffffec0(%rbp),%r15
0000000000000939 movq %rax,0xfffff6c8(%rbp)
0000000000000940 movq 0xfffffeb8(%rbp),%rax
0000000000000947 movq %r15,0xfffffed0(%rbp)
000000000000094e movq %rax,0xfffffec8(%rbp)
0000000000000955 movq %r12,0xfffff918(%rbp)
000000000000095c movq %r13,0xfffff910(%rbp)
0000000000000963 movq %r14,0xfffff908(%rbp)
000000000000096a movq 0xfffff918(%rbp),%rax
0000000000000971 movq 0xfffff910(%rbp),%r14
0000000000000978 movq 0xfffff908(%rbp),%r15
000000000000097f movq %rax,0xfffff968(%rbp)
0000000000000986 movq %r14,0xfffff960(%rbp)
000000000000098d movq %r15,0xfffff958(%rbp)
0000000000000994 movq 0xfffff968(%rbp),%rax
000000000000099b movq %rax,%r14
000000000000099e movq %r14,0xfffff970(%rbp)
00000000000009a5 movq 0xfffff970(%rbp),%r14
00000000000009ac movq %rbx,(%r14)
00000000000009af movq %r11,(%rax)
00000000000009b2 addq $0x00000008,%eax
00000000000009b8 movq 0xfffff960(%rbp),%r11
00000000000009bf movq %r11,0xfffffd70(%rbp)
00000000000009c6 movq 0xfffffd70(%rbp),%r11
00000000000009cd movq %r11,0xfffffd78(%rbp)
00000000000009d4 movq 0xfffffd78(%rbp),%r11
00000000000009db movq %r10,0xfffffe00(%rbp)
00000000000009e2 movq %r11,0xfffffdf8(%rbp)
00000000000009e9 movq 0xfffffe00(%rbp),%r11
00000000000009f0 movq 0xfffffdf8(%rbp),%rbx
00000000000009f7 movq %r11,0xfffffe30(%rbp)
00000000000009fe movq %rbx,0xfffffe28(%rbp)
0000000000000a05 movq 0xfffffe30(%rbp),%r11
0000000000000a0c movq 0xfffffe28(%rbp),%rbx
0000000000000a13 movq %r11,0xfffffe60(%rbp)
0000000000000a1a movq %rbx,0xfffffe38(%rbp)
0000000000000a21 movq 0xfffffe60(%rbp),%r11
0000000000000a28 movq 0xfffffe38(%rbp),%rbx
0000000000000a2f movq %r11,0xfffffe90(%rbp)
0000000000000a36 movq %rbx,0xfffffe68(%rbp)
0000000000000a3d movq 0xfffffe90(%rbp),%r11
0000000000000a44 movq 0xfffffe68(%rbp),%rbx
0000000000000a4b movq %rbx,0xfffffe98(%rbp)
0000000000000a52 movq 0xfffffe98(%rbp),%rbx
0000000000000a59 movq %r11,0xfffffea8(%rbp)
0000000000000a60 movq %rbx,0xfffffea0(%rbp)
0000000000000a67 movq 0xfffffea8(%rbp),%r11
0000000000000a6e movq 0xfffffea0(%rbp),%rbx
0000000000000a75 movq %rbx,0xfffffeb0(%rbp)
0000000000000a7c movq 0xfffffeb0(%rbp),%rbx
0000000000000a83 movq %rbx,(%r11)
0000000000000a86 movq %r9,0xfffffd88(%rbp)
0000000000000a8d movq %r10,0xfffffd80(%rbp)
0000000000000a94 movq 0xfffffd88(%rbp),%r10
0000000000000a9b movq 0xfffffd80(%rbp),%r11
0000000000000aa2 movq %r10,0xfffffd98(%rbp)
0000000000000aa9 movq %r11,0xfffffd90(%rbp)
0000000000000ab0 movq 0xfffffd98(%rbp),%r10
0000000000000ab7 movq 0xfffffd90(%rbp),%r11
0000000000000abe movq %r11,0xfffffda0(%rbp)
0000000000000ac5 movq 0xfffffda0(%rbp),%r11
0000000000000acc movq %r10,0xfffffdb0(%rbp)
0000000000000ad3 movq %r11,0xfffffda8(%rbp)
0000000000000ada movq 0xfffffdb0(%rbp),%r10
0000000000000ae1 movq 0xfffffda8(%rbp),%r11
0000000000000ae8 movq %r10,0xfffffdc0(%rbp)
0000000000000aef movq %r11,0xfffffdb8(%rbp)
0000000000000af6 movq 0xfffffdc0(%rbp),%r10
0000000000000afd movq 0xfffffdb8(%rbp),%r11
0000000000000b04 movq %r11,0xfffffdc8(%rbp)
0000000000000b0b movq 0xfffffdc8(%rbp),%r11
0000000000000b12 movq %r11,0xfffffdd0(%rbp)
0000000000000b19 movq 0xfffffdd0(%rbp),%r11
0000000000000b20 movq (%r11),%r11
0000000000000b23 movq %r11,0xfffffdf0(%rbp)
0000000000000b2a movq 0xfffffdf0(%rbp),%r11
0000000000000b31 movq %r10,0xfffffde0(%rbp)
0000000000000b38 movq %r11,0xfffffdd8(%rbp)
0000000000000b3f movq 0xfffffde0(%rbp),%r10
0000000000000b46 movq 0xfffffdd8(%rbp),%r11
0000000000000b4d movq %r11,0xfffffde8(%rbp)
0000000000000b54 movq 0xfffffde8(%rbp),%r11
0000000000000b5b movq %r11,(%r10)
0000000000000b5e movq %rsi,0xfffffcf8(%rbp)
0000000000000b65 movq %r9,0xfffffcf0(%rbp)
0000000000000b6c movq 0xfffffcf8(%rbp),%r9
0000000000000b73 movq 0xfffffcf0(%rbp),%r10
0000000000000b7a movq %r9,0xfffffd08(%rbp)
0000000000000b81 movq %r10,0xfffffd00(%rbp)
0000000000000b88 movq 0xfffffd08(%rbp),%r9
0000000000000b8f movq 0xfffffd00(%rbp),%r10
0000000000000b96 movq %r10,0xfffffd10(%rbp)
0000000000000b9d movq 0xfffffd10(%rbp),%r10
0000000000000ba4 movq %r9,0xfffffd20(%rbp)
0000000000000bab movq %r10,0xfffffd18(%rbp)
0000000000000bb2 movq 0xfffffd20(%rbp),%r9
0000000000000bb9 movq 0xfffffd18(%rbp),%r10
0000000000000bc0 movq %r9,0xfffffd30(%rbp)
0000000000000bc7 movq %r10,0xfffffd28(%rbp)
0000000000000bce movq 0xfffffd30(%rbp),%r9
0000000000000bd5 movq 0xfffffd28(%rbp),%r10
0000000000000bdc movq %r10,0xfffffd38(%rbp)
0000000000000be3 movq 0xfffffd38(%rbp),%r10
0000000000000bea movq %r10,0xfffffd40(%rbp)
0000000000000bf1 movq 0xfffffd40(%rbp),%r10
0000000000000bf8 movq (%r10),%r10
0000000000000bfb movq %r10,0xfffffd60(%rbp)
0000000000000c02 movq 0xfffffd60(%rbp),%r10
0000000000000c09 movq %r9,0xfffffd50(%rbp)
0000000000000c10 movq %r10,0xfffffd48(%rbp)
0000000000000c17 movq 0xfffffd50(%rbp),%r9
0000000000000c1e movq 0xfffffd48(%rbp),%r10
0000000000000c25 movq %r10,0xfffffd58(%rbp)
0000000000000c2c movq 0xfffffd58(%rbp),%r10
0000000000000c33 movq %r10,(%r9)
0000000000000c36 movq 0xfffff958(%rbp),%r9
0000000000000c3d movq %r9,0xfffffce8(%rbp)
0000000000000c44 movq 0xfffffce8(%rbp),%r9
0000000000000c4b movq %r9,0xfffffb98(%rbp)
0000000000000c52 movq 0xfffffb98(%rbp),%r9
0000000000000c59 movq %r9,0xfffffba0(%rbp)
0000000000000c60 movq 0xfffffba0(%rbp),%r9
0000000000000c67 movq %r8,0xfffffc28(%rbp)
0000000000000c6e movq %r9,0xfffffc20(%rbp)
0000000000000c75 movq 0xfffffc28(%rbp),%r9
0000000000000c7c movq 0xfffffc20(%rbp),%r10
0000000000000c83 movq %r9,0xfffffc58(%rbp)
0000000000000c8a movq %r10,0xfffffc50(%rbp)
0000000000000c91 movq 0xfffffc58(%rbp),%r9
0000000000000c98 movq 0xfffffc50(%rbp),%r10
0000000000000c9f movq %r10,0xfffffc60(%rbp)
0000000000000ca6 movq 0xfffffc60(%rbp),%r10
0000000000000cad movq %r9,0xfffffc90(%rbp)
0000000000000cb4 movq %r10,0xfffffc68(%rbp)
0000000000000cbb movq 0xfffffc90(%rbp),%r9
0000000000000cc2 movq 0xfffffc68(%rbp),%r10
0000000000000cc9 movq %r9,0xfffffcc0(%rbp)
0000000000000cd0 movq %r10,0xfffffc98(%rbp)
0000000000000cd7 movq 0xfffffcc0(%rbp),%r9
0000000000000cde movq 0xfffffc98(%rbp),%r10
0000000000000ce5 movq %r10,0xfffffcc8(%rbp)
0000000000000cec movq 0xfffffcc8(%rbp),%r10
0000000000000cf3 movq %r9,0xfffffcd8(%rbp)
0000000000000cfa movq %r10,0xfffffcd0(%rbp)
0000000000000d01 movq 0xfffffcd8(%rbp),%r9
0000000000000d08 movq 0xfffffcd0(%rbp),%r10
0000000000000d0f movq %r10,0xfffffce0(%rbp)
0000000000000d16 movq 0xfffffce0(%rbp),%r10
0000000000000d1d movq %r10,(%r9)
0000000000000d20 movq %rdi,0xfffffbb0(%rbp)
0000000000000d27 movq %r8,0xfffffba8(%rbp)
0000000000000d2e movq 0xfffffbb0(%rbp),%r8
0000000000000d35 movq 0xfffffba8(%rbp),%r9
0000000000000d3c movq %r8,0xfffffbc0(%rbp)
0000000000000d43 movq %r9,0xfffffbb8(%rbp)
0000000000000d4a movq 0xfffffbc0(%rbp),%r8
0000000000000d51 movq 0xfffffbb8(%rbp),%r9
0000000000000d58 movq %r9,0xfffffbc8(%rbp)
0000000000000d5f movq 0xfffffbc8(%rbp),%r9
0000000000000d66 movq %r8,0xfffffbd8(%rbp)
0000000000000d6d movq %r9,0xfffffbd0(%rbp)
0000000000000d74 movq 0xfffffbd8(%rbp),%r8
0000000000000d7b movq 0xfffffbd0(%rbp),%r9
0000000000000d82 movq %r8,0xfffffbe8(%rbp)
0000000000000d89 movq %r9,0xfffffbe0(%rbp)
0000000000000d90 movq 0xfffffbe8(%rbp),%r8
0000000000000d97 movq 0xfffffbe0(%rbp),%r9
0000000000000d9e movq %r9,0xfffffbf0(%rbp)
0000000000000da5 movq 0xfffffbf0(%rbp),%r9
0000000000000dac movq %r9,0xfffffbf8(%rbp)
0000000000000db3 movq 0xfffffbf8(%rbp),%r9
0000000000000dba movq (%r9),%r9
0000000000000dbd movq %r9,0xfffffc18(%rbp)
0000000000000dc4 movq 0xfffffc18(%rbp),%r9
0000000000000dcb movq %r8,0xfffffc08(%rbp)
0000000000000dd2 movq %r9,0xfffffc00(%rbp)
0000000000000dd9 movq 0xfffffc08(%rbp),%r8
0000000000000de0 movq 0xfffffc00(%rbp),%r9
0000000000000de7 movq %r9,0xfffffc10(%rbp)
0000000000000dee movq 0xfffffc10(%rbp),%r9
0000000000000df5 movq %r9,(%r8)
0000000000000df8 movq %rdx,0xfffffb20(%rbp)
0000000000000dff movq %rdi,0xfffffb18(%rbp)
0000000000000e06 movq 0xfffffb20(%rbp),%rdi
0000000000000e0d movq 0xfffffb18(%rbp),%r8
0000000000000e14 movq %rdi,0xfffffb30(%rbp)
0000000000000e1b movq %r8,0xfffffb28(%rbp)
0000000000000e22 movq 0xfffffb30(%rbp),%rdi
0000000000000e29 movq 0xfffffb28(%rbp),%r8
0000000000000e30 movq %r8,0xfffffb38(%rbp)
0000000000000e37 movq 0xfffffb38(%rbp),%r8
0000000000000e3e movq %rdi,0xfffffb48(%rbp)
0000000000000e45 movq %r8,0xfffffb40(%rbp)
0000000000000e4c movq 0xfffffb48(%rbp),%rdi
0000000000000e53 movq 0xfffffb40(%rbp),%r8
0000000000000e5a movq %rdi,0xfffffb58(%rbp)
0000000000000e61 movq %r8,0xfffffb50(%rbp)
0000000000000e68 movq 0xfffffb58(%rbp),%rdi
0000000000000e6f movq 0xfffffb50(%rbp),%r8
0000000000000e76 movq %r8,0xfffffb60(%rbp)
0000000000000e7d movq 0xfffffb60(%rbp),%r8
0000000000000e84 movq %r8,0xfffffb68(%rbp)
0000000000000e8b movq 0xfffffb68(%rbp),%r8
0000000000000e92 movq (%r8),%r8
0000000000000e95 movq %r8,0xfffffb88(%rbp)
0000000000000e9c movq 0xfffffb88(%rbp),%r8
0000000000000ea3 movq %rdi,0xfffffb78(%rbp)
0000000000000eaa movq %r8,0xfffffb70(%rbp)
0000000000000eb1 movq 0xfffffb78(%rbp),%rdi
0000000000000eb8 movq 0xfffffb70(%rbp),%r8
0000000000000ebf movq %r8,0xfffffb80(%rbp)
0000000000000ec6 movq 0xfffffb80(%rbp),%r8
0000000000000ecd movq %r8,(%rdi)
0000000000000ed0 movq %rax,0xfffff988(%rbp)
0000000000000ed7 movq 0xfffff988(%rbp),%rax
0000000000000ede movq %rax,0xfffff9c0(%rbp)
0000000000000ee5 movq 0xfffff9c0(%rbp),%rax
0000000000000eec movq %rsi,0xfffff9c8(%rbp)
0000000000000ef3 movq 0xfffff9c8(%rbp),%rsi
0000000000000efa movq %rcx,0xfffffaa8(%rbp)
0000000000000f01 movq %rsi,0xfffffaa0(%rbp)
0000000000000f08 movq 0xfffffaa8(%rbp),%rsi
0000000000000f0f movq 0xfffffaa0(%rbp),%rdi
0000000000000f16 movq %rsi,0xfffffab8(%rbp)
0000000000000f1d movq %rdi,0xfffffab0(%rbp)
0000000000000f24 movq 0xfffffab8(%rbp),%rsi
0000000000000f2b movq 0xfffffab0(%rbp),%rdi
0000000000000f32 movq %rdi,0xfffffac0(%rbp)
0000000000000f39 movq 0xfffffac0(%rbp),%rdi
0000000000000f40 movq %rsi,0xfffffad0(%rbp)
0000000000000f47 movq %rdi,0xfffffac8(%rbp)
0000000000000f4e movq 0xfffffad0(%rbp),%rsi
0000000000000f55 movq 0xfffffac8(%rbp),%rdi
0000000000000f5c movq %rsi,0xfffffae0(%rbp)
0000000000000f63 movq %rdi,0xfffffad8(%rbp)
0000000000000f6a movq 0xfffffae0(%rbp),%rsi
0000000000000f71 movq 0xfffffad8(%rbp),%rdi
0000000000000f78 movq %rdi,0xfffffae8(%rbp)
0000000000000f7f movq 0xfffffae8(%rbp),%rdi
0000000000000f86 movq %rdi,0xfffffaf0(%rbp)
0000000000000f8d movq 0xfffffaf0(%rbp),%rdi
0000000000000f94 movq (%rdi),%rdi
0000000000000f97 movq %rdi,0xfffffb10(%rbp)
0000000000000f9e movq 0xfffffb10(%rbp),%rdi
0000000000000fa5 movq %rsi,0xfffffb00(%rbp)
0000000000000fac movq %rdi,0xfffffaf8(%rbp)
0000000000000fb3 movq 0xfffffb00(%rbp),%rsi
0000000000000fba movq 0xfffffaf8(%rbp),%rdi
0000000000000fc1 movq %rdi,0xfffffb08(%rbp)
0000000000000fc8 movq 0xfffffb08(%rbp),%rdi
0000000000000fcf movq %rdi,(%rsi)
0000000000000fd2 movq %rdx,0xfffffa98(%rbp)
0000000000000fd9 movq 0xfffffa98(%rbp),%rdx
0000000000000fe0 movq 0xfffff6c8(%rbp),%rsi
0000000000000fe7 movq %rsi,0xfffffa28(%rbp)
0000000000000fee movq %rdx,0xfffffa20(%rbp)
0000000000000ff5 movq 0xfffffa28(%rbp),%rdx
0000000000000ffc movq 0xfffffa20(%rbp),%rdi
0000000000001003 movq %rdx,0xfffffa38(%rbp)
000000000000100a movq %rdi,0xfffffa30(%rbp)
0000000000001011 movq 0xfffffa38(%rbp),%rdx
0000000000001018 movq 0xfffffa30(%rbp),%rdi
000000000000101f movq %rdi,0xfffffa40(%rbp)
0000000000001026 movq 0xfffffa40(%rbp),%rdi
000000000000102d movq %rdx,0xfffffa50(%rbp)
0000000000001034 movq %rdi,0xfffffa48(%rbp)
000000000000103b movq 0xfffffa50(%rbp),%rdx
0000000000001042 movq 0xfffffa48(%rbp),%rdi
0000000000001049 movq %rdx,0xfffffa60(%rbp)
0000000000001050 movq %rdi,0xfffffa58(%rbp)
0000000000001057 movq 0xfffffa60(%rbp),%rdx
000000000000105e movq 0xfffffa58(%rbp),%rdi
0000000000001065 movq %rdi,0xfffffa68(%rbp)
000000000000106c movq 0xfffffa68(%rbp),%rdi
0000000000001073 movq %rdi,0xfffffa70(%rbp)
000000000000107a movq 0xfffffa70(%rbp),%rdi
0000000000001081 movq (%rdi),%rdi
0000000000001084 movq %rdi,0xfffffa90(%rbp)
000000000000108b movq 0xfffffa90(%rbp),%rdi
0000000000001092 movq %rdx,0xfffffa80(%rbp)
0000000000001099 movq %rdi,0xfffffa78(%rbp)
00000000000010a0 movq 0xfffffa80(%rbp),%rdx
00000000000010a7 movq 0xfffffa78(%rbp),%rdi
00000000000010ae movq %rdi,0xfffffa88(%rbp)
00000000000010b5 movq 0xfffffa88(%rbp),%rdi
00000000000010bc movq %rdi,(%rdx)
00000000000010bf movq %rax,0xfffff9e8(%rbp)
00000000000010c6 movq %rcx,0xfffff9f0(%rbp)
00000000000010cd movq 0xfffff9f0(%rbp),%rax
00000000000010d4 movq %rax,0xfffff9f8(%rbp)
00000000000010db movq 0xfffff9f8(%rbp),%rax
00000000000010e2 movq (%rax),%rax
00000000000010e5 movq %rax,0xfffffa18(%rbp)
00000000000010ec movq %rsi,0xfffffa08(%rbp)
00000000000010f3 movq 0xfffffa08(%rbp),%rax
00000000000010fa movq %rax,0xfffffa10(%rbp)
0000000000001101 movq 0xfffffa10(%rbp),%rax
0000000000001108 movq (%rax),%rax
000000000000110b movq %rax,0xfffffa00(%rbp)
0000000000001112 leaq 0xfffff708(%rbp),%rax
0000000000001119 movq %rax,0xfffff8e0(%rbp)
0000000000001120 movq 0xfffff8e0(%rbp),%rcx
0000000000001127 movq %rcx,0xfffff8e8(%rbp)
000000000000112e movq 0xfffff8e8(%rbp),%rdx
0000000000001135 movq %rdx,0xfffff8f0(%rbp)
000000000000113c movq 0xfffff8f0(%rbp),%rdx
0000000000001143 movq (%rdx),%rdx
0000000000001146 movq %rdx,0xfffff8d8(%rbp)
000000000000114d movq %rcx,0xfffff8f8(%rbp)
0000000000001154 movq 0xfffff8f8(%rbp),%rcx
000000000000115b movq %rcx,0xfffff900(%rbp)
0000000000001162 movq 0xfffff900(%rbp),%rcx
0000000000001169 movq $0x00000000,(%rcx)
0000000000001170 movq 0xfffff8d8(%rbp),%rcx
0000000000001177 movl $0x00000001,0xfffff6e0(%rbp)
0000000000001181 movq %rax,0xfffff7f8(%rbp)
0000000000001188 movq 0xfffff7f8(%rbp),%rax
000000000000118f movq %rax,0xfffff800(%rbp)
0000000000001196 movq 0xfffff800(%rbp),%rax
000000000000119d movq %rax,0xfffff818(%rbp)
00000000000011a4 movq $0x00000000,0xfffff810(%rbp)
00000000000011af movq 0xfffff818(%rbp),%rax
00000000000011b6 movq %rax,0xfffff820(%rbp)
00000000000011bd movq 0xfffff820(%rbp),%rdx
00000000000011c4 movq %rdx,0xfffff828(%rbp)
00000000000011cb movq 0xfffff828(%rbp),%rdx
00000000000011d2 movq (%rdx),%rdx
00000000000011d5 movq %rdx,0xfffff808(%rbp)
00000000000011dc movq 0xfffff810(%rbp),%rdx
00000000000011e3 movq %rax,0xfffff870(%rbp)
00000000000011ea movq 0xfffff870(%rbp),%rsi
00000000000011f1 movq %rsi,0xfffff878(%rbp)
00000000000011f8 movq 0xfffff878(%rbp),%rsi
00000000000011ff movq %rdx,(%rsi)
0000000000001202 cmpq $0x00000000,0xfffff808(%rbp)
000000000000120d movq %rcx,0xfffff6c0(%rbp)
0000000000001214 movq %rax,0xfffff6b8(%rbp)
000000000000121b je 0x000012c3
0000000000001221 movq 0xfffff6b8(%rbp),%rax
0000000000001228 movq %rax,0xfffff880(%rbp)
000000000000122f movq 0xfffff880(%rbp),%rcx
0000000000001236 movq %rcx,0xfffff888(%rbp)
000000000000123d movq 0xfffff888(%rbp),%rcx
0000000000001244 addq $0x00000008,%rcx
000000000000124b movq 0xfffff808(%rbp),%rdx
0000000000001252 movq %rcx,0xfffff838(%rbp)
0000000000001259 movq %rdx,0xfffff830(%rbp)
0000000000001260 movq 0xfffff838(%rbp),%rcx
0000000000001267 movq (%rcx),%rdx
000000000000126a movq 0xfffff830(%rbp),%rsi
0000000000001271 movq 0x08(%rcx),%rcx
0000000000001275 movq %rdx,0xfffff850(%rbp)
000000000000127c movq %rsi,0xfffff848(%rbp)
0000000000001283 movq %rcx,0xfffff840(%rbp)
000000000000128a movq 0xfffff850(%rbp),%rcx
0000000000001291 movq 0xfffff848(%rbp),%rdx
0000000000001298 movq 0xfffff840(%rbp),%rsi
000000000000129f movq %rcx,0xfffff868(%rbp)
00000000000012a6 movq %rdx,0xfffff860(%rbp)
00000000000012ad movq %rsi,0xfffff858(%rbp)
00000000000012b4 movq 0xfffff860(%rbp),%rcx
00000000000012bb movq %rcx,%rdi
00000000000012be callq 0x000012c3
00000000000012c3 movq 0xfffff6c0(%rbp),%rax
00000000000012ca addq $0x00000928,%rsp
00000000000012d1 popq %rbx
00000000000012d2 popq %r12
00000000000012d4 popq %r13
00000000000012d6 popq %r14
00000000000012d8 popq %r15
00000000000012da popq %rbp
00000000000012db ret
00000000000012dc nopl 0x00(%rax)
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE:
00000000000012e0 pushq %rbp
00000000000012e1 movq %rsp,%rbp
00000000000012e4 pushq %r15
00000000000012e6 pushq %r14
00000000000012e8 pushq %r12
00000000000012ea pushq %rbx
00000000000012eb subq $0x00000560,%rsp
00000000000012f2 movq %rdi,0xfffffa18(%rbp)
00000000000012f9 movq %rsi,0xfffffa10(%rbp)
0000000000001300 movq 0xfffffa18(%rbp),%rsi
0000000000001307 movq 0xfffffa10(%rbp),%rdi
000000000000130e cmpq $0x00000000,%rdi
0000000000001315 movq %rsi,0xfffffa08(%rbp)
000000000000131c movq %rdi,0xfffffa00(%rbp)
0000000000001323 je 0x00001b43
0000000000001329 leaq 0xfffffac8(%rbp),%rax
0000000000001330 leaq 0xfffffad0(%rbp),%rcx
0000000000001337 leaq 0xfffffa50(%rbp),%rdx
000000000000133e leaq 0xfffffa70(%rbp),%rsi
0000000000001345 leaq 0xfffffa48(%rbp),%rdi
000000000000134c leaq 0xfffffcb8(%rbp),%r8
0000000000001353 leaq 0xfffffa68(%rbp),%r9
000000000000135a leaq 0xfffffe80(%rbp),%r10
0000000000001361 leaq 0x00000000(%rip),%r11
0000000000001368 addq $0x00000010,%r11
000000000000136f movq 0x00000000(%rip),%rbx
0000000000001376 addq $0x00000010,%rbx
000000000000137d movq 0xfffffa00(%rbp),%r14
0000000000001384 movq 0xfffffa08(%rbp),%r15
000000000000138b addq $0x00000008,%r15
0000000000001392 movq %r15,0xfffffa20(%rbp)
0000000000001399 movq 0xfffffa20(%rbp),%r15
00000000000013a0 movq %r15,0xfffffa28(%rbp)
00000000000013a7 movq 0xfffffa28(%rbp),%r15
00000000000013ae movq 0xfffffa08(%rbp),%r12
00000000000013b5 addq $0x00000008,%r12
00000000000013bc movq %r12,0xd0(%rbp)
00000000000013c0 movq 0xd0(%rbp),%r12
00000000000013c4 movq %r12,0xd8(%rbp)
00000000000013c8 movq 0xd8(%rbp),%r12
00000000000013cc movq %r14,0xfffffa40(%rbp)
00000000000013d3 movq %r15,0xfffffa38(%rbp)
00000000000013da movq %r12,0xfffffa30(%rbp)
00000000000013e1 movq 0xfffffa40(%rbp),%r14
00000000000013e8 movq 0xfffffa38(%rbp),%r15
00000000000013ef movq 0xfffffa30(%rbp),%r12
00000000000013f6 movq %r14,0xfffffa90(%rbp)
00000000000013fd movq %r15,0xfffffa88(%rbp)
0000000000001404 movq %r12,0xfffffa80(%rbp)
000000000000140b movq 0xfffffa90(%rbp),%r14
0000000000001412 movq %r14,%r15
0000000000001415 movq %r15,0xfffffa98(%rbp)
000000000000141c movq 0xfffffa98(%rbp),%r15
0000000000001423 movq %rbx,(%r15)
0000000000001426 movq %r11,(%r14)
0000000000001429 addq $0x00000008,%r14
0000000000001430 movq 0xfffffa88(%rbp),%r11
0000000000001437 movq %r11,0xfffffe88(%rbp)
000000000000143e movq 0xfffffe88(%rbp),%r11
0000000000001445 movq %r11,0xfffffe90(%rbp)
000000000000144c movq 0xfffffe90(%rbp),%r11
0000000000001453 movq %r10,0xffffff18(%rbp)
000000000000145a movq %r11,0xffffff10(%rbp)
0000000000001461 movq 0xffffff18(%rbp),%r11
0000000000001468 movq 0xffffff10(%rbp),%rbx
000000000000146f movq %r11,0xffffff48(%rbp)
0000000000001476 movq %rbx,0xffffff40(%rbp)
000000000000147d movq 0xffffff48(%rbp),%r11
0000000000001484 movq 0xffffff40(%rbp),%rbx
000000000000148b movq %r11,0xffffff78(%rbp)
0000000000001492 movq %rbx,0xffffff50(%rbp)
0000000000001499 movq 0xffffff78(%rbp),%r11
00000000000014a0 movq 0xffffff50(%rbp),%rbx
00000000000014a7 movq %r11,0xa8(%rbp)
00000000000014ab movq %rbx,0x80(%rbp)
00000000000014af movq 0xa8(%rbp),%r11
00000000000014b3 movq 0x80(%rbp),%rbx
00000000000014b7 movq %rbx,0xb0(%rbp)
00000000000014bb movq 0xb0(%rbp),%rbx
00000000000014bf movq %r11,0xc0(%rbp)
00000000000014c3 movq %rbx,0xb8(%rbp)
00000000000014c7 movq 0xc0(%rbp),%r11
00000000000014cb movq 0xb8(%rbp),%rbx
00000000000014cf movq %rbx,0xc8(%rbp)
00000000000014d3 movq 0xc8(%rbp),%rbx
00000000000014d7 movq %rbx,(%r11)
00000000000014da movq %r9,0xfffffea0(%rbp)
00000000000014e1 movq %r10,0xfffffe98(%rbp)
00000000000014e8 movq 0xfffffea0(%rbp),%r10
00000000000014ef movq 0xfffffe98(%rbp),%r11
00000000000014f6 movq %r10,0xfffffeb0(%rbp)
00000000000014fd movq %r11,0xfffffea8(%rbp)
0000000000001504 movq 0xfffffeb0(%rbp),%r10
000000000000150b movq 0xfffffea8(%rbp),%r11
0000000000001512 movq %r11,0xfffffeb8(%rbp)
0000000000001519 movq 0xfffffeb8(%rbp),%r11
0000000000001520 movq %r10,0xfffffec8(%rbp)
0000000000001527 movq %r11,0xfffffec0(%rbp)
000000000000152e movq 0xfffffec8(%rbp),%r10
0000000000001535 movq 0xfffffec0(%rbp),%r11
000000000000153c movq %r10,0xfffffed8(%rbp)
0000000000001543 movq %r11,0xfffffed0(%rbp)
000000000000154a movq 0xfffffed8(%rbp),%r10
0000000000001551 movq 0xfffffed0(%rbp),%r11
0000000000001558 movq %r11,0xfffffee0(%rbp)
000000000000155f movq 0xfffffee0(%rbp),%r11
0000000000001566 movq %r11,0xfffffee8(%rbp)
000000000000156d movq 0xfffffee8(%rbp),%r11
0000000000001574 movq (%r11),%r11
0000000000001577 movq %r11,0xffffff08(%rbp)
000000000000157e movq 0xffffff08(%rbp),%r11
0000000000001585 movq %r10,0xfffffef8(%rbp)
000000000000158c movq %r11,0xfffffef0(%rbp)
0000000000001593 movq 0xfffffef8(%rbp),%r10
000000000000159a movq 0xfffffef0(%rbp),%r11
00000000000015a1 movq %r11,0xffffff00(%rbp)
00000000000015a8 movq 0xffffff00(%rbp),%r11
00000000000015af movq %r11,(%r10)
00000000000015b2 movq %rsi,0xfffffe10(%rbp)
00000000000015b9 movq %r9,0xfffffe08(%rbp)
00000000000015c0 movq 0xfffffe10(%rbp),%r9
00000000000015c7 movq 0xfffffe08(%rbp),%r10
00000000000015ce movq %r9,0xfffffe20(%rbp)
00000000000015d5 movq %r10,0xfffffe18(%rbp)
00000000000015dc movq 0xfffffe20(%rbp),%r9
00000000000015e3 movq 0xfffffe18(%rbp),%r10
00000000000015ea movq %r10,0xfffffe28(%rbp)
00000000000015f1 movq 0xfffffe28(%rbp),%r10
00000000000015f8 movq %r9,0xfffffe38(%rbp)
00000000000015ff movq %r10,0xfffffe30(%rbp)
0000000000001606 movq 0xfffffe38(%rbp),%r9
000000000000160d movq 0xfffffe30(%rbp),%r10
0000000000001614 movq %r9,0xfffffe48(%rbp)
000000000000161b movq %r10,0xfffffe40(%rbp)
0000000000001622 movq 0xfffffe48(%rbp),%r9
0000000000001629 movq 0xfffffe40(%rbp),%r10
0000000000001630 movq %r10,0xfffffe50(%rbp)
0000000000001637 movq 0xfffffe50(%rbp),%r10
000000000000163e movq %r10,0xfffffe58(%rbp)
0000000000001645 movq 0xfffffe58(%rbp),%r10
000000000000164c movq (%r10),%r10
000000000000164f movq %r10,0xfffffe78(%rbp)
0000000000001656 movq 0xfffffe78(%rbp),%r10
000000000000165d movq %r9,0xfffffe68(%rbp)
0000000000001664 movq %r10,0xfffffe60(%rbp)
000000000000166b movq 0xfffffe68(%rbp),%r9
0000000000001672 movq 0xfffffe60(%rbp),%r10
0000000000001679 movq %r10,0xfffffe70(%rbp)
0000000000001680 movq 0xfffffe70(%rbp),%r10
0000000000001687 movq %r10,(%r9)
000000000000168a movq 0xfffffa80(%rbp),%r9
0000000000001691 movq %r9,0xfffffcc0(%rbp)
0000000000001698 movq 0xfffffcc0(%rbp),%r9
000000000000169f movq %r9,0xfffffcc8(%rbp)
00000000000016a6 movq 0xfffffcc8(%rbp),%r9
00000000000016ad movq %r8,0xfffffd50(%rbp)
00000000000016b4 movq %r9,0xfffffd48(%rbp)
00000000000016bb movq 0xfffffd50(%rbp),%r9
00000000000016c2 movq 0xfffffd48(%rbp),%r10
00000000000016c9 movq %r9,0xfffffd80(%rbp)
00000000000016d0 movq %r10,0xfffffd78(%rbp)
00000000000016d7 movq 0xfffffd80(%rbp),%r9
00000000000016de movq 0xfffffd78(%rbp),%r10
00000000000016e5 movq %r9,0xfffffdb0(%rbp)
00000000000016ec movq %r10,0xfffffd88(%rbp)
00000000000016f3 movq 0xfffffdb0(%rbp),%r9
00000000000016fa movq 0xfffffd88(%rbp),%r10
0000000000001701 movq %r9,0xfffffde0(%rbp)
0000000000001708 movq %r10,0xfffffdb8(%rbp)
000000000000170f movq 0xfffffde0(%rbp),%r9
0000000000001716 movq 0xfffffdb8(%rbp),%r10
000000000000171d movq %r10,0xfffffde8(%rbp)
0000000000001724 movq 0xfffffde8(%rbp),%r10
000000000000172b movq %r9,0xfffffdf8(%rbp)
0000000000001732 movq %r10,0xfffffdf0(%rbp)
0000000000001739 movq 0xfffffdf8(%rbp),%r9
0000000000001740 movq 0xfffffdf0(%rbp),%r10
0000000000001747 movq %r10,0xfffffe00(%rbp)
000000000000174e movq 0xfffffe00(%rbp),%r10
0000000000001755 movq %r10,(%r9)
0000000000001758 movq %rdi,0xfffffcd8(%rbp)
000000000000175f movq %r8,0xfffffcd0(%rbp)
0000000000001766 movq 0xfffffcd8(%rbp),%r8
000000000000176d movq 0xfffffcd0(%rbp),%r9
0000000000001774 movq %r8,0xfffffce8(%rbp)
000000000000177b movq %r9,0xfffffce0(%rbp)
0000000000001782 movq 0xfffffce8(%rbp),%r8
0000000000001789 movq 0xfffffce0(%rbp),%r9
0000000000001790 movq %r9,0xfffffcf0(%rbp)
0000000000001797 movq 0xfffffcf0(%rbp),%r9
000000000000179e movq %r8,0xfffffd00(%rbp)
00000000000017a5 movq %r9,0xfffffcf8(%rbp)
00000000000017ac movq 0xfffffd00(%rbp),%r8
00000000000017b3 movq 0xfffffcf8(%rbp),%r9
00000000000017ba movq %r8,0xfffffd10(%rbp)
00000000000017c1 movq %r9,0xfffffd08(%rbp)
00000000000017c8 movq 0xfffffd10(%rbp),%r8
00000000000017cf movq 0xfffffd08(%rbp),%r9
00000000000017d6 movq %r9,0xfffffd18(%rbp)
00000000000017dd movq 0xfffffd18(%rbp),%r9
00000000000017e4 movq %r9,0xfffffd20(%rbp)
00000000000017eb movq 0xfffffd20(%rbp),%r9
00000000000017f2 movq (%r9),%r9
00000000000017f5 movq %r9,0xfffffd40(%rbp)
00000000000017fc movq 0xfffffd40(%rbp),%r9
0000000000001803 movq %r8,0xfffffd30(%rbp)
000000000000180a movq %r9,0xfffffd28(%rbp)
0000000000001811 movq 0xfffffd30(%rbp),%r8
0000000000001818 movq 0xfffffd28(%rbp),%r9
000000000000181f movq %r9,0xfffffd38(%rbp)
0000000000001826 movq 0xfffffd38(%rbp),%r9
000000000000182d movq %r9,(%r8)
0000000000001830 movq %rdx,0xfffffc48(%rbp)
0000000000001837 movq %rdi,0xfffffc40(%rbp)
000000000000183e movq 0xfffffc48(%rbp),%rdi
0000000000001845 movq 0xfffffc40(%rbp),%r8
000000000000184c movq %rdi,0xfffffc58(%rbp)
0000000000001853 movq %r8,0xfffffc50(%rbp)
000000000000185a movq 0xfffffc58(%rbp),%rdi
0000000000001861 movq 0xfffffc50(%rbp),%r8
0000000000001868 movq %r8,0xfffffc60(%rbp)
000000000000186f movq 0xfffffc60(%rbp),%r8
0000000000001876 movq %rdi,0xfffffc70(%rbp)
000000000000187d movq %r8,0xfffffc68(%rbp)
0000000000001884 movq 0xfffffc70(%rbp),%rdi
000000000000188b movq 0xfffffc68(%rbp),%r8
0000000000001892 movq %rdi,0xfffffc80(%rbp)
0000000000001899 movq %r8,0xfffffc78(%rbp)
00000000000018a0 movq 0xfffffc80(%rbp),%rdi
00000000000018a7 movq 0xfffffc78(%rbp),%r8
00000000000018ae movq %r8,0xfffffc88(%rbp)
00000000000018b5 movq 0xfffffc88(%rbp),%r8
00000000000018bc movq %r8,0xfffffc90(%rbp)
00000000000018c3 movq 0xfffffc90(%rbp),%r8
00000000000018ca movq (%r8),%r8
00000000000018cd movq %r8,0xfffffcb0(%rbp)
00000000000018d4 movq 0xfffffcb0(%rbp),%r8
00000000000018db movq %rdi,0xfffffca0(%rbp)
00000000000018e2 movq %r8,0xfffffc98(%rbp)
00000000000018e9 movq 0xfffffca0(%rbp),%rdi
00000000000018f0 movq 0xfffffc98(%rbp),%r8
00000000000018f7 movq %r8,0xfffffca8(%rbp)
00000000000018fe movq 0xfffffca8(%rbp),%r8
0000000000001905 movq %r8,(%rdi)
0000000000001908 movq %r14,0xfffffab0(%rbp)
000000000000190f movq 0xfffffab0(%rbp),%rdi
0000000000001916 movq %rdi,0xfffffae8(%rbp)
000000000000191d movq 0xfffffae8(%rbp),%rdi
0000000000001924 movq %rsi,0xfffffaf0(%rbp)
000000000000192b movq 0xfffffaf0(%rbp),%rsi
0000000000001932 movq %rcx,0xfffffbd0(%rbp)
0000000000001939 movq %rsi,0xfffffbc8(%rbp)
0000000000001940 movq 0xfffffbd0(%rbp),%rsi
0000000000001947 movq 0xfffffbc8(%rbp),%r8
000000000000194e movq %rsi,0xfffffbe0(%rbp)
0000000000001955 movq %r8,0xfffffbd8(%rbp)
000000000000195c movq 0xfffffbe0(%rbp),%rsi
0000000000001963 movq 0xfffffbd8(%rbp),%r8
000000000000196a movq %r8,0xfffffbe8(%rbp)
0000000000001971 movq 0xfffffbe8(%rbp),%r8
0000000000001978 movq %rsi,0xfffffbf8(%rbp)
000000000000197f movq %r8,0xfffffbf0(%rbp)
0000000000001986 movq 0xfffffbf8(%rbp),%rsi
000000000000198d movq 0xfffffbf0(%rbp),%r8
0000000000001994 movq %rsi,0xfffffc08(%rbp)
000000000000199b movq %r8,0xfffffc00(%rbp)
00000000000019a2 movq 0xfffffc08(%rbp),%rsi
00000000000019a9 movq 0xfffffc00(%rbp),%r8
00000000000019b0 movq %r8,0xfffffc10(%rbp)
00000000000019b7 movq 0xfffffc10(%rbp),%r8
00000000000019be movq %r8,0xfffffc18(%rbp)
00000000000019c5 movq 0xfffffc18(%rbp),%r8
00000000000019cc movq (%r8),%r8
00000000000019cf movq %r8,0xfffffc38(%rbp)
00000000000019d6 movq 0xfffffc38(%rbp),%r8
00000000000019dd movq %rsi,0xfffffc28(%rbp)
00000000000019e4 movq %r8,0xfffffc20(%rbp)
00000000000019eb movq 0xfffffc28(%rbp),%rsi
00000000000019f2 movq 0xfffffc20(%rbp),%r8
00000000000019f9 movq %r8,0xfffffc30(%rbp)
0000000000001a00 movq 0xfffffc30(%rbp),%r8
0000000000001a07 movq %r8,(%rsi)
0000000000001a0a movq %rdx,0xfffffbc0(%rbp)
0000000000001a11 movq 0xfffffbc0(%rbp),%rdx
0000000000001a18 movq %rax,0xfffffb50(%rbp)
0000000000001a1f movq %rdx,0xfffffb48(%rbp)
0000000000001a26 movq 0xfffffb50(%rbp),%rdx
0000000000001a2d movq 0xfffffb48(%rbp),%rsi
0000000000001a34 movq %rdx,0xfffffb60(%rbp)
0000000000001a3b movq %rsi,0xfffffb58(%rbp)
0000000000001a42 movq 0xfffffb60(%rbp),%rdx
0000000000001a49 movq 0xfffffb58(%rbp),%rsi
0000000000001a50 movq %rsi,0xfffffb68(%rbp)
0000000000001a57 movq 0xfffffb68(%rbp),%rsi
0000000000001a5e movq %rdx,0xfffffb78(%rbp)
0000000000001a65 movq %rsi,0xfffffb70(%rbp)
0000000000001a6c movq 0xfffffb78(%rbp),%rdx
0000000000001a73 movq 0xfffffb70(%rbp),%rsi
0000000000001a7a movq %rdx,0xfffffb88(%rbp)
0000000000001a81 movq %rsi,0xfffffb80(%rbp)
0000000000001a88 movq 0xfffffb88(%rbp),%rdx
0000000000001a8f movq 0xfffffb80(%rbp),%rsi
0000000000001a96 movq %rsi,0xfffffb90(%rbp)
0000000000001a9d movq 0xfffffb90(%rbp),%rsi
0000000000001aa4 movq %rsi,0xfffffb98(%rbp)
0000000000001aab movq 0xfffffb98(%rbp),%rsi
0000000000001ab2 movq (%rsi),%rsi
0000000000001ab5 movq %rsi,0xfffffbb8(%rbp)
0000000000001abc movq 0xfffffbb8(%rbp),%rsi
0000000000001ac3 movq %rdx,0xfffffba8(%rbp)
0000000000001aca movq %rsi,0xfffffba0(%rbp)
0000000000001ad1 movq 0xfffffba8(%rbp),%rdx
0000000000001ad8 movq 0xfffffba0(%rbp),%rsi
0000000000001adf movq %rsi,0xfffffbb0(%rbp)
0000000000001ae6 movq 0xfffffbb0(%rbp),%rsi
0000000000001aed movq %rsi,(%rdx)
0000000000001af0 movq %rdi,0xfffffb10(%rbp)
0000000000001af7 movq %rcx,0xfffffb18(%rbp)
0000000000001afe movq 0xfffffb18(%rbp),%rcx
0000000000001b05 movq %rcx,0xfffffb20(%rbp)
0000000000001b0c movq 0xfffffb20(%rbp),%rcx
0000000000001b13 movq (%rcx),%rcx
0000000000001b16 movq %rcx,0xfffffb40(%rbp)
0000000000001b1d movq %rax,0xfffffb30(%rbp)
0000000000001b24 movq 0xfffffb30(%rbp),%rax
0000000000001b2b movq %rax,0xfffffb38(%rbp)
0000000000001b32 movq 0xfffffb38(%rbp),%rax
0000000000001b39 movq (%rax),%rax
0000000000001b3c movq %rax,0xfffffb28(%rbp)
0000000000001b43 addq $0x00000560,%rsp
0000000000001b4a popq %rbx
0000000000001b4b popq %r12
0000000000001b4d popq %r14
0000000000001b4f popq %r15
0000000000001b51 popq %rbp
0000000000001b52 ret
0000000000001b53 nopl %cs:0x00000000(%rax,%rax)
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv:
0000000000001b60 pushq %rbp
0000000000001b61 movq %rsp,%rbp
0000000000001b64 movq %rdi,0xf8(%rbp)
0000000000001b68 popq %rbp
0000000000001b69 ret
0000000000001b6a nopw 0x00(%rax,%rax)
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv:
0000000000001b70 pushq %rbp
0000000000001b71 movq %rsp,%rbp
0000000000001b74 subq $0x60,%rsp
0000000000001b78 leaq 0xa8(%rbp),%rax
0000000000001b7c movq %rdi,0xb0(%rbp)
0000000000001b80 movq 0xb0(%rbp),%rdi
0000000000001b84 movq %rdi,%rcx
0000000000001b87 addq $0x00000008,%rcx
0000000000001b8e movq %rcx,0xb8(%rbp)
0000000000001b92 movq 0xb8(%rbp),%rcx
0000000000001b96 movq %rcx,0xc0(%rbp)
0000000000001b9a movq 0xc0(%rbp),%rcx
0000000000001b9e movq %rax,0xe8(%rbp)
0000000000001ba2 movq %rcx,0xe0(%rbp)
0000000000001ba6 movq 0xe8(%rbp),%rcx
0000000000001baa movq 0xe0(%rbp),%rdx
0000000000001bae movq %rcx,0xf8(%rbp)
0000000000001bb2 movq %rdx,0xf0(%rbp)
0000000000001bb6 movq %rax,0xd8(%rbp)
0000000000001bba movq %rdi,0xd0(%rbp)
0000000000001bbe movq $0x00000001,0xc8(%rbp)
0000000000001bc6 movq 0xd0(%rbp),%rax
0000000000001bca movq %rax,%rdi
0000000000001bcd callq 0x00001bd2
0000000000001bd2 addq $0x60,%rsp
0000000000001bd6 popq %rbp
0000000000001bd7 ret
0000000000001bd8 nopl 0x00000000(%rax,%rax)
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi:
0000000000001be0 pushq %rbp
0000000000001be1 movq %rsp,%rbp
0000000000001be4 subq $0x50,%rsp
0000000000001be8 movq %rdi,0xc0(%rbp)
0000000000001bec movq %rsi,0xb8(%rbp)
0000000000001bf0 movq 0xc0(%rbp),%rsi
0000000000001bf4 addq $0x00000008,%rsi
0000000000001bfb movq %rsi,0xc8(%rbp)
0000000000001bff movq 0xc8(%rbp),%rsi
0000000000001c03 movq %rsi,0xd0(%rbp)
0000000000001c07 movq 0xd0(%rbp),%rsi
0000000000001c0b movq 0xb8(%rbp),%rdi
0000000000001c0f movq %rdi,0xf8(%rbp)
0000000000001c13 movq 0xf8(%rbp),%rdi
0000000000001c17 movq %rsi,0xe0(%rbp)
0000000000001c1b movq %rdi,0xd8(%rbp)
0000000000001c1f movq 0xe0(%rbp),%rsi
0000000000001c23 movq %rsi,0xe8(%rbp)
0000000000001c27 movq 0xe8(%rbp),%rdi
0000000000001c2b movq 0xd8(%rbp),%rsi
0000000000001c2f movq %rsi,0xf0(%rbp)
0000000000001c33 movq 0xf0(%rbp),%rsi
0000000000001c37 movl (%rsi),%esi
0000000000001c39 callq 0x00001c3e
0000000000001c3e addq $0x50,%rsp
0000000000001c42 popq %rbp
0000000000001c43 ret
0000000000001c44 nopw %cs:0x00000000(%rax,%rax)
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info:
0000000000001c50 pushq %rbp
0000000000001c51 movq %rsp,%rbp
0000000000001c54 leaq 0x00000000(%rip),%rax
0000000000001c5b movq %rdi,0xd0(%rbp)
0000000000001c5f movq %rsi,0xc8(%rbp)
0000000000001c63 movq 0xd0(%rbp),%rsi
0000000000001c67 movq 0xc8(%rbp),%rdi
0000000000001c6b movq %rdi,0xe8(%rbp)
0000000000001c6f movq %rax,0xe0(%rbp)
0000000000001c73 movq 0xe8(%rbp),%rax
0000000000001c77 movq 0x08(%rax),%rax
0000000000001c7b movq 0xe0(%rbp),%rdi
0000000000001c7f cmpq 0x08(%rdi),%rax
0000000000001c83 movq %rsi,0xc0(%rbp)
0000000000001c87 jne 0x00001cb0
0000000000001c8d movq 0xc0(%rbp),%rax
0000000000001c91 addq $0x00000008,%eax
0000000000001c97 movq %rax,0xf0(%rbp)
0000000000001c9b movq 0xf0(%rbp),%rax
0000000000001c9f movq %rax,0xf8(%rbp)
0000000000001ca3 movq 0xf8(%rbp),%rax
0000000000001ca7 movq %rax,0xd8(%rbp)
0000000000001cab jmp 0x00001cb8
0000000000001cb0 movq $0x00000000,0xd8(%rbp)
0000000000001cb8 movq 0xd8(%rbp),%rax
0000000000001cbc popq %rbp
0000000000001cbd ret
0000000000001cbe nop
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv:
0000000000001cc0 pushq %rbp
0000000000001cc1 movq %rsp,%rbp
0000000000001cc4 leaq 0x00000000(%rip),%rax
0000000000001ccb movq %rdi,0xf8(%rbp)
0000000000001ccf popq %rbp
0000000000001cd0 ret
0000000000001cd1 nopl %cs:0x00000000(%rax,%rax)
__ZZ3foovENK3$_0clEi:
0000000000001ce0 pushq %rbp
0000000000001ce1 movq %rsp,%rbp
0000000000001ce4 movq %rdi,0xf8(%rbp)
0000000000001ce8 movl %esi,0xf4(%rbp)
0000000000001ceb movl 0xf4(%rbp),%esi
0000000000001cee addl $0x00000001,%esi
0000000000001cf4 movl %esi,%eax
0000000000001cf6 popq %rbp
0000000000001cf7 ret
0000000000001cf8 nopl 0x00000000(%rax,%rax)
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev:
0000000000001d00 pushq %rbp
0000000000001d01 movq %rsp,%rbp
0000000000001d04 movq %rdi,0xf0(%rbp)
0000000000001d08 movq 0xf0(%rbp),%rdi
0000000000001d0c movq %rdi,0xf8(%rbp)
0000000000001d10 popq %rbp
0000000000001d11 ret
; ModuleID = 'std_func_overhead.cpp'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.8.0"
%"struct.std::__1::__ignore_t" = type { i8 }
%"struct.std::__1::piecewise_construct_t" = type { i8 }
%class.anon = type { i8 }
%"class.std::__1::function" = type { %"struct.std::__1::aligned_storage<24, 16>::type", %"class.std::__1::__function::__base"*, [8 x i8] }
%"struct.std::__1::aligned_storage<24, 16>::type" = type { [24 x i8], [8 x i8] }
%"class.std::__1::__function::__base" = type { i32 (...)** }
%"class.std::__1::__tuple_leaf" = type { %class.anon* }
%"struct.std::__1::__tuple_impl" = type { %"class.std::__1::__tuple_leaf" }
%"struct.std::__1::__tuple_indices" = type { i8 }
%"struct.std::__1::__tuple_types.18" = type { i8 }
%"struct.std::__1::__tuple_indices.9" = type { i8 }
%"struct.std::__1::__tuple_types.10" = type { i8 }
%"class.std::__1::tuple" = type { %"struct.std::__1::__tuple_impl" }
%"class.std::__1::tuple.0" = type { i8 }
%"class.std::__1::allocator" = type { i8 }
%"class.std::__1::__libcpp_compressed_pair_imp" = type { i8 }
%"class.std::__1::__compressed_pair" = type { i8 }
%"class.std::__1::__function::__func" = type { %"class.std::__1::__function::__base", %"class.std::__1::__compressed_pair" }
%"struct.std::__1::__function::__maybe_derive_from_unary_function" = type { i8 }
%"struct.std::__1::__function::__maybe_derive_from_binary_function" = type { i8 }
%"class.std::__1::__allocator_destructor" = type { %"class.std::__1::allocator.1"*, i64 }
%"class.std::__1::allocator.1" = type { i8 }
%"class.std::__1::__libcpp_compressed_pair_imp.13" = type { %"class.std::__1::__function::__func"*, %"class.std::__1::__allocator_destructor" }
%"class.std::__1::__compressed_pair.12" = type { %"class.std::__1::__libcpp_compressed_pair_imp.13" }
%"class.std::__1::unique_ptr" = type { %"class.std::__1::__compressed_pair.12" }
%"class.std::__1::__tuple_leaf.5" = type { %class.anon* }
%"struct.std::__1::__tuple_impl.4" = type { %"class.std::__1::__tuple_leaf.5" }
%"struct.std::__1::__tuple_types.11" = type { i8 }
%"class.std::__1::tuple.3" = type { %"struct.std::__1::__tuple_impl.4" }
%"class.std::__1::__tuple_leaf.16" = type { %"class.std::__1::allocator"* }
%"struct.std::__1::__tuple_impl.15" = type { %"class.std::__1::__tuple_leaf.16" }
%"struct.std::__1::__tuple_types.17" = type { i8 }
%"class.std::__1::tuple.14" = type { %"struct.std::__1::__tuple_impl.15" }
%"class.std::__1::__tuple_leaf.8" = type { %"class.std::__1::allocator"* }
%"struct.std::__1::__tuple_impl.7" = type { %"class.std::__1::__tuple_leaf.8" }
%"struct.std::__1::__tuple_types" = type { i8 }
%"class.std::__1::tuple.6" = type { %"struct.std::__1::__tuple_impl.7" }
%"class.std::type_info" = type { i32 (...)**, i8* }
@_ZNSt3__112_GLOBAL__N_1L6ignoreE = internal constant %"struct.std::__1::__ignore_t" undef, align 1
@"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal unnamed_addr constant [11 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev" to i8*), i8* bitcast (%"class.std::__1::__function::__base"* (%"class.std::__1::__function::__func"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*, %"class.std::__1::__function::__base"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv" to i8*), i8* bitcast (i32 (%"class.std::__1::__function::__func"*, i32*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi" to i8*), i8* bitcast (i8* (%"class.std::__1::__function::__func"*, %"class.std::type_info"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info" to i8*), i8* bitcast (%"class.std::type_info"* (%"class.std::__1::__function::__func"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv" to i8*)]
@_ZNSt3__119piecewise_constructE = external global %"struct.std::__1::piecewise_construct_t"
@_ZTVN10__cxxabiv120__si_class_type_infoE = external global i8*
@"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal constant [64 x i8] c"NSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE\00"
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
@_ZTSNSt3__110__function6__baseIFiiEEE = linkonce_odr constant [34 x i8] c"NSt3__110__function6__baseIFiiEEE\00"
@_ZTINSt3__110__function6__baseIFiiEEE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([34 x i8]* @_ZTSNSt3__110__function6__baseIFiiEEE, i32 0, i32 0) }
@"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([64 x i8]* @"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTINSt3__110__function6__baseIFiiEEE to i8*) }
@"_ZTSZ3foovE3$_0" = internal constant [12 x i8] c"Z3foovE3$_0\00"
@"_ZTIZ3foovE3$_0" = internal unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([12 x i8]* @"_ZTSZ3foovE3$_0", i32 0, i32 0) }
@_ZTVNSt3__110__function6__baseIFiiEEE = linkonce_odr unnamed_addr constant [11 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTINSt3__110__function6__baseIFiiEEE to i8*), i8* bitcast (void (%"class.std::__1::__function::__base"*)* @_ZNSt3__110__function6__baseIFiiEED1Ev to i8*), i8* bitcast (void (%"class.std::__1::__function::__base"*)* @_ZNSt3__110__function6__baseIFiiEED0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)]
define void @_Z3foov() uwtable ssp {
%l = alloca %class.anon, align 1
%1 = alloca %"class.std::__1::function", align 16
%2 = alloca %class.anon, align 1
%3 = alloca i8*
%4 = alloca i32
call void @"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"(%"class.std::__1::function"* %1, i8* null)
invoke void @_Z3runNSt3__18functionIFiiEEE(%"class.std::__1::function"* %1)
to label %5 unwind label %6
; <label>:5 ; preds = %0
call void @_ZNSt3__18functionIFiiEED1Ev(%"class.std::__1::function"* %1) nounwind
ret void
; <label>:6 ; preds = %0
%7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
cleanup
%8 = extractvalue { i8*, i32 } %7, 0
store i8* %8, i8** %3
%9 = extractvalue { i8*, i32 } %7, 1
store i32 %9, i32* %4
call void @_ZNSt3__18functionIFiiEED1Ev(%"class.std::__1::function"* %1) nounwind
br label %10
; <label>:10 ; preds = %6
%11 = load i8** %3
%12 = load i32* %4
%13 = insertvalue { i8*, i32 } undef, i8* %11, 0
%14 = insertvalue { i8*, i32 } %13, i32 %12, 1
resume { i8*, i32 } %14
}
declare void @_Z3runNSt3__18functionIFiiEEE(%"class.std::__1::function"*)
define internal void @"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"(%"class.std::__1::function"* %this, i8*) unnamed_addr uwtable ssp align 2 {
%2 = alloca %"class.std::__1::function"*, align 8
%__f = alloca %class.anon, align 1
%3 = alloca i8*, align 8
store %"class.std::__1::function"* %this, %"class.std::__1::function"** %2, align 8
store i8* %0, i8** %3, align 8
%4 = load %"class.std::__1::function"** %2
%5 = load i8** %3, align 8
call void @"_ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"(%"class.std::__1::function"* %4, i8* %5)
ret void
}
declare i32 @__gxx_personality_v0(...)
define linkonce_odr void @_ZNSt3__18functionIFiiEED1Ev(%"class.std::__1::function"* %this) unnamed_addr nounwind uwtable ssp align 2 {
%1 = alloca %"class.std::__1::function"*, align 8
store %"class.std::__1::function"* %this, %"class.std::__1::function"** %1, align 8
%2 = load %"class.std::__1::function"** %1
call void @_ZNSt3__18functionIFiiEED2Ev(%"class.std::__1::function"* %2) nounwind
ret void
}
define linkonce_odr void @_ZNSt3__18functionIFiiEED2Ev(%"class.std::__1::function"* %this) unnamed_addr nounwind uwtable ssp align 2 {
%1 = alloca %"class.std::__1::function"*, align 8
store %"class.std::__1::function"* %this, %"class.std::__1::function"** %1, align 8
%2 = load %"class.std::__1::function"** %1
%3 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 1
%4 = load %"class.std::__1::__function::__base"** %3, align 8
%5 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 0
%6 = bitcast %"struct.std::__1::aligned_storage<24, 16>::type"* %5 to %"class.std::__1::__function::__base"*
%7 = icmp eq %"class.std::__1::__function::__base"* %4, %6
br i1 %7, label %8, label %15
; <label>:8 ; preds = %0
%9 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 1
%10 = load %"class.std::__1::__function::__base"** %9, align 8
%11 = bitcast %"class.std::__1::__function::__base"* %10 to void (%"class.std::__1::__function::__base"*)***
%12 = load void (%"class.std::__1::__function::__base"*)*** %11
%13 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %12, i64 4
%14 = load void (%"class.std::__1::__function::__base"*)** %13
call void %14(%"class.std::__1::__function::__base"* %10) nounwind
br label %27
; <label>:15 ; preds = %0
%16 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 1
%17 = load %"class.std::__1::__function::__base"** %16, align 8
%18 = icmp ne %"class.std::__1::__function::__base"* %17, null
br i1 %18, label %19, label %26
; <label>:19 ; preds = %15
%20 = getelementptr inbounds %"class.std::__1::function"* %2, i32 0, i32 1
%21 = load %"class.std::__1::__function::__base"** %20, align 8
%22 = bitcast %"class.std::__1::__function::__base"* %21 to void (%"class.std::__1::__function::__base"*)***
%23 = load void (%"class.std::__1::__function::__base"*)*** %22
%24 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %23, i64 5
%25 = load void (%"class.std::__1::__function::__base"*)** %24
call void %25(%"class.std::__1::__function::__base"* %21) nounwind
br label %26
; <label>:26 ; preds = %19, %15
br label %27
; <label>:27 ; preds = %26, %8
ret void
}
define internal void @"_ZNSt3__18functionIFiiEEC2IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE"(%"class.std::__1::function"* %this, i8*) unnamed_addr uwtable ssp align 2 {
%2 = alloca %class.anon*, align 8
%3 = alloca %class.anon*, align 8
%4 = alloca %class.anon*, align 8
%5 = alloca %"class.std::__1::__tuple_leaf"*, align 8
%6 = alloca %class.anon*, align 8
%7 = alloca %class.anon*, align 8
%8 = alloca %"struct.std::__1::__tuple_impl"*, align 8
%9 = alloca %"struct.std::__1::__tuple_indices", align 1
%10 = alloca %"struct.std::__1::__tuple_types.18", align 1
%11 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%12 = alloca %"struct.std::__1::__tuple_types.10", align 1
%13 = alloca %class.anon*, align 8
%14 = alloca %"struct.std::__1::__tuple_impl"*, align 8
%15 = alloca %"struct.std::__1::__tuple_indices", align 1
%16 = alloca %"struct.std::__1::__tuple_types.18", align 1
%17 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%18 = alloca %"struct.std::__1::__tuple_types.10", align 1
%19 = alloca %class.anon*, align 8
%20 = alloca %class.anon*, align 8
%21 = alloca %"class.std::__1::tuple"*, align 8
%22 = alloca %class.anon*, align 8
%23 = alloca %"struct.std::__1::__tuple_indices", align 1
%24 = alloca %"struct.std::__1::__tuple_types.18", align 1
%25 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%26 = alloca %"struct.std::__1::__tuple_types.10", align 1
%27 = alloca %"class.std::__1::tuple"*, align 8
%28 = alloca %class.anon*, align 8
%29 = alloca %class.anon*, align 8
%30 = alloca %class.anon*, align 8
%31 = alloca %"class.std::__1::__tuple_leaf"*, align 8
%32 = alloca %class.anon*, align 8
%33 = alloca %"class.std::__1::__tuple_leaf"*, align 8
%34 = alloca %"class.std::__1::tuple"*, align 8
%35 = alloca %"struct.std::__1::__tuple_impl"*, align 8
%36 = alloca %"class.std::__1::tuple"*, align 8
%37 = alloca %"struct.std::__1::__tuple_impl"*, align 8
%38 = alloca %"class.std::__1::tuple"*, align 8
%39 = alloca %"class.std::__1::tuple"*, align 8
%40 = alloca %"class.std::__1::tuple"*, align 8
%41 = alloca %"class.std::__1::tuple"*, align 8
%42 = alloca %"class.std::__1::tuple"*, align 8
%43 = alloca %"class.std::__1::tuple"*, align 8
%44 = alloca %class.anon*, align 8
%45 = alloca %class.anon*, align 8
%46 = alloca %"class.std::__1::tuple", align 8
%47 = alloca %class.anon*, align 8
%48 = alloca %class.anon*, align 8
%49 = alloca %"class.std::__1::__tuple_leaf"*, align 8
%50 = alloca %class.anon*, align 8
%51 = alloca %"class.std::__1::__tuple_leaf"*, align 8
%52 = alloca %"class.std::__1::tuple"*, align 8
%53 = alloca %"struct.std::__1::__tuple_impl"*, align 8
%54 = alloca %"class.std::__1::tuple"*, align 8
%55 = alloca %"struct.std::__1::__tuple_impl"*, align 8
%56 = alloca %"class.std::__1::tuple"*, align 8
%57 = alloca %"class.std::__1::tuple"*, align 8
%58 = alloca %"class.std::__1::tuple"*, align 8
%59 = alloca %"class.std::__1::tuple"*, align 8
%60 = alloca %"class.std::__1::tuple"*, align 8
%61 = alloca %"class.std::__1::tuple"*, align 8
%62 = alloca %"class.std::__1::tuple.0"*, align 8
%63 = alloca %"class.std::__1::tuple.0"*, align 8
%64 = alloca %"class.std::__1::tuple.0", align 1
%65 = alloca %class.anon*, align 8
%66 = alloca %class.anon*, align 8
%67 = alloca %"class.std::__1::__tuple_leaf"*, align 8
%68 = alloca %class.anon*, align 8
%69 = alloca %"class.std::__1::__tuple_leaf"*, align 8
%70 = alloca %"class.std::__1::tuple"*, align 8
%71 = alloca %"struct.std::__1::__tuple_impl"*, align 8
%72 = alloca %"class.std::__1::tuple"*, align 8
%73 = alloca %"struct.std::__1::__tuple_impl"*, align 8
%74 = alloca %"class.std::__1::tuple"*, align 8
%75 = alloca %"class.std::__1::tuple"*, align 8
%76 = alloca %"class.std::__1::tuple"*, align 8
%77 = alloca %"class.std::__1::tuple"*, align 8
%78 = alloca %"class.std::__1::tuple"*, align 8
%79 = alloca %"class.std::__1::tuple"*, align 8
%80 = alloca %"class.std::__1::tuple.0"*, align 8
%81 = alloca %class.anon*, align 8
%82 = alloca %"class.std::__1::allocator"*, align 8
%83 = alloca %"class.std::__1::__tuple_leaf"*, align 8
%84 = alloca %"class.std::__1::tuple"*, align 8
%85 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%__pc.i.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%__second_args.i.i.i.i.i = alloca %"class.std::__1::tuple.0", align 1
%86 = alloca %"struct.std::__1::__tuple_indices", align 1
%87 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%88 = alloca %"class.std::__1::tuple"*, align 8
%89 = alloca %"class.std::__1::__compressed_pair"*, align 8
%__pc.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%__second_args.i.i.i.i = alloca %"class.std::__1::tuple.0", align 1
%90 = alloca %"struct.std::__1::piecewise_construct_t", align 1
%91 = alloca %"class.std::__1::tuple", align 8
%92 = alloca %"class.std::__1::tuple.0", align 1
%93 = alloca %"struct.std::__1::__tuple_indices", align 1
%94 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%95 = alloca %"class.std::__1::__compressed_pair"*, align 8
%__pc.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%__second_args.i.i.i = alloca %"class.std::__1::tuple.0", align 1
%96 = alloca %"class.std::__1::__function::__base"*, align 8
%97 = alloca %"class.std::__1::__function::__base"*, align 8
%98 = alloca %"class.std::__1::__function::__func"*, align 8
%99 = alloca %class.anon*, align 8
%100 = alloca %"struct.std::__1::piecewise_construct_t", align 1
%101 = alloca %"class.std::__1::tuple", align 8
%102 = alloca %"class.std::__1::tuple", align 8
%103 = alloca i8*
%104 = alloca i32
%105 = alloca %"class.std::__1::tuple.0", align 1
%106 = alloca %"class.std::__1::tuple.0", align 1
%107 = alloca %"class.std::__1::__function::__func"*, align 8
%108 = alloca %class.anon*, align 8
%109 = alloca %class.anon*, align 8
%110 = alloca %"class.std::__1::function"*, align 8
%__f = alloca %class.anon, align 1
%111 = alloca i8*, align 8
store %"class.std::__1::function"* %this, %"class.std::__1::function"** %110, align 8
store i8* %0, i8** %111, align 8
%112 = load %"class.std::__1::function"** %110
%113 = bitcast %"class.std::__1::function"* %112 to %"struct.std::__1::__function::__maybe_derive_from_unary_function"*
%114 = bitcast %"class.std::__1::function"* %112 to %"struct.std::__1::__function::__maybe_derive_from_binary_function"*
%115 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 0
%116 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 1
store %"class.std::__1::__function::__base"* null, %"class.std::__1::__function::__base"** %116, align 8
store %class.anon* %__f, %class.anon** %109, align 8
br i1 true, label %117, label %242
; <label>:117 ; preds = %1
%118 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 0
%119 = bitcast %"struct.std::__1::aligned_storage<24, 16>::type"* %118 to %"class.std::__1::__function::__base"*
%120 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 1
store %"class.std::__1::__function::__base"* %119, %"class.std::__1::__function::__base"** %120, align 8
%121 = getelementptr inbounds %"class.std::__1::function"* %112, i32 0, i32 1
%122 = load %"class.std::__1::__function::__base"** %121, align 8
%123 = bitcast %"class.std::__1::__function::__base"* %122 to i8*
%124 = icmp eq i8* %123, null
br i1 %124, label %240, label %125
; <label>:125 ; preds = %117
%126 = bitcast i8* %123 to %"class.std::__1::__function::__func"*
store %class.anon* %__f, %class.anon** %2, align 8
%127 = load %class.anon** %2, align 8
store %"class.std::__1::__function::__func"* %126, %"class.std::__1::__function::__func"** %107, align 8
store %class.anon* %127, %class.anon** %108, align 8
%128 = load %"class.std::__1::__function::__func"** %107
%129 = load %class.anon** %108
store %"class.std::__1::__function::__func"* %128, %"class.std::__1::__function::__func"** %98, align 8
store %class.anon* %129, %class.anon** %99, align 8
%130 = load %"class.std::__1::__function::__func"** %98
%131 = bitcast %"class.std::__1::__function::__func"* %130 to %"class.std::__1::__function::__base"*
store %"class.std::__1::__function::__base"* %131, %"class.std::__1::__function::__base"** %97, align 8
%132 = load %"class.std::__1::__function::__base"** %97
%133 = bitcast %"class.std::__1::__function::__base"* %132 to i8***
store i8** getelementptr inbounds ([11 x i8*]* @_ZTVNSt3__110__function6__baseIFiiEEE, i64 0, i64 2), i8*** %133
%134 = bitcast %"class.std::__1::__function::__func"* %130 to i8***
store i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2), i8*** %134
%135 = getelementptr inbounds %"class.std::__1::__function::__func"* %130, i32 0, i32 1
%136 = load %class.anon** %99, align 8
store %class.anon* %136, %class.anon** %3, align 8
%137 = load %class.anon** %3, align 8
store %class.anon* %137, %class.anon** %45, align 8
%138 = load %class.anon** %45, align 8
store %class.anon* %138, %class.anon** %44, align 8
%139 = load %class.anon** %44, align 8
store %"class.std::__1::tuple"* %46, %"class.std::__1::tuple"** %27, align 8
store %class.anon* %139, %class.anon** %28, align 8
%140 = load %"class.std::__1::tuple"** %27
%141 = load %class.anon** %28
store %"class.std::__1::tuple"* %140, %"class.std::__1::tuple"** %21, align 8
store %class.anon* %141, %class.anon** %22, align 8
%142 = load %"class.std::__1::tuple"** %21
%143 = getelementptr inbounds %"class.std::__1::tuple"* %142, i32 0, i32 0
%144 = load %class.anon** %22, align 8
store %class.anon* %144, %class.anon** %20, align 8
%145 = load %class.anon** %20, align 8
store %"struct.std::__1::__tuple_impl"* %143, %"struct.std::__1::__tuple_impl"** %14, align 8
store %class.anon* %145, %class.anon** %19, align 8
%146 = load %"struct.std::__1::__tuple_impl"** %14
%147 = load %class.anon** %19
store %"struct.std::__1::__tuple_impl"* %146, %"struct.std::__1::__tuple_impl"** %8, align 8
store %class.anon* %147, %class.anon** %13, align 8
%148 = load %"struct.std::__1::__tuple_impl"** %8
%149 = bitcast %"struct.std::__1::__tuple_impl"* %148 to %"class.std::__1::__tuple_leaf"*
%150 = load %class.anon** %13, align 8
store %class.anon* %150, %class.anon** %7, align 8
%151 = load %class.anon** %7, align 8
store %"class.std::__1::__tuple_leaf"* %149, %"class.std::__1::__tuple_leaf"** %5, align 8
store %class.anon* %151, %class.anon** %6, align 8
%152 = load %"class.std::__1::__tuple_leaf"** %5
%153 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %152, i32 0, i32 0
%154 = load %class.anon** %6, align 8
store %class.anon* %154, %class.anon** %4, align 8
%155 = load %class.anon** %4, align 8
store %class.anon* %155, %class.anon** %153, align 8
store %"class.std::__1::tuple"* %102, %"class.std::__1::tuple"** %42, align 8
store %"class.std::__1::tuple"* %46, %"class.std::__1::tuple"** %43, align 8
%156 = load %"class.std::__1::tuple"** %42
%157 = load %"class.std::__1::tuple"** %43
store %"class.std::__1::tuple"* %156, %"class.std::__1::tuple"** %40, align 8
store %"class.std::__1::tuple"* %157, %"class.std::__1::tuple"** %41, align 8
%158 = load %"class.std::__1::tuple"** %40
%159 = getelementptr inbounds %"class.std::__1::tuple"* %158, i32 0, i32 0
%160 = load %"class.std::__1::tuple"** %41, align 8
store %"class.std::__1::tuple"* %160, %"class.std::__1::tuple"** %39, align 8
%161 = load %"class.std::__1::tuple"** %39, align 8
store %"struct.std::__1::__tuple_impl"* %159, %"struct.std::__1::__tuple_impl"** %37, align 8
store %"class.std::__1::tuple"* %161, %"class.std::__1::tuple"** %38, align 8
%162 = load %"struct.std::__1::__tuple_impl"** %37
%163 = load %"class.std::__1::tuple"** %38
store %"struct.std::__1::__tuple_impl"* %162, %"struct.std::__1::__tuple_impl"** %35, align 8
store %"class.std::__1::tuple"* %163, %"class.std::__1::tuple"** %36, align 8
%164 = load %"struct.std::__1::__tuple_impl"** %35
%165 = bitcast %"struct.std::__1::__tuple_impl"* %164 to %"class.std::__1::__tuple_leaf"*
%166 = load %"class.std::__1::tuple"** %36, align 8
store %"class.std::__1::tuple"* %166, %"class.std::__1::tuple"** %34, align 8
%167 = load %"class.std::__1::tuple"** %34, align 8
%168 = getelementptr inbounds %"class.std::__1::tuple"* %167, i32 0, i32 0
%169 = bitcast %"struct.std::__1::__tuple_impl"* %168 to %"class.std::__1::__tuple_leaf"*
store %"class.std::__1::__tuple_leaf"* %169, %"class.std::__1::__tuple_leaf"** %33, align 8
%170 = load %"class.std::__1::__tuple_leaf"** %33
%171 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %170, i32 0, i32 0
%172 = load %class.anon** %171, align 8
store %class.anon* %172, %class.anon** %29, align 8
%173 = load %class.anon** %29, align 8
store %"class.std::__1::__tuple_leaf"* %165, %"class.std::__1::__tuple_leaf"** %31, align 8
store %class.anon* %173, %class.anon** %32, align 8
%174 = load %"class.std::__1::__tuple_leaf"** %31
%175 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %174, i32 0, i32 0
%176 = load %class.anon** %32, align 8
store %class.anon* %176, %class.anon** %30, align 8
%177 = load %class.anon** %30, align 8
store %class.anon* %177, %class.anon** %175, align 8
store %"class.std::__1::tuple"* %101, %"class.std::__1::tuple"** %60, align 8
store %"class.std::__1::tuple"* %102, %"class.std::__1::tuple"** %61, align 8
%178 = load %"class.std::__1::tuple"** %60
%179 = load %"class.std::__1::tuple"** %61
store %"class.std::__1::tuple"* %178, %"class.std::__1::tuple"** %58, align 8
store %"class.std::__1::tuple"* %179, %"class.std::__1::tuple"** %59, align 8
%180 = load %"class.std::__1::tuple"** %58
%181 = getelementptr inbounds %"class.std::__1::tuple"* %180, i32 0, i32 0
%182 = load %"class.std::__1::tuple"** %59, align 8
store %"class.std::__1::tuple"* %182, %"class.std::__1::tuple"** %57, align 8
%183 = load %"class.std::__1::tuple"** %57, align 8
store %"struct.std::__1::__tuple_impl"* %181, %"struct.std::__1::__tuple_impl"** %55, align 8
store %"class.std::__1::tuple"* %183, %"class.std::__1::tuple"** %56, align 8
%184 = load %"struct.std::__1::__tuple_impl"** %55
%185 = load %"class.std::__1::tuple"** %56
store %"struct.std::__1::__tuple_impl"* %184, %"struct.std::__1::__tuple_impl"** %53, align 8
store %"class.std::__1::tuple"* %185, %"class.std::__1::tuple"** %54, align 8
%186 = load %"struct.std::__1::__tuple_impl"** %53
%187 = bitcast %"struct.std::__1::__tuple_impl"* %186 to %"class.std::__1::__tuple_leaf"*
%188 = load %"class.std::__1::tuple"** %54, align 8
store %"class.std::__1::tuple"* %188, %"class.std::__1::tuple"** %52, align 8
%189 = load %"class.std::__1::tuple"** %52, align 8
%190 = getelementptr inbounds %"class.std::__1::tuple"* %189, i32 0, i32 0
%191 = bitcast %"struct.std::__1::__tuple_impl"* %190 to %"class.std::__1::__tuple_leaf"*
store %"class.std::__1::__tuple_leaf"* %191, %"class.std::__1::__tuple_leaf"** %51, align 8
%192 = load %"class.std::__1::__tuple_leaf"** %51
%193 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %192, i32 0, i32 0
%194 = load %class.anon** %193, align 8
store %class.anon* %194, %class.anon** %47, align 8
%195 = load %class.anon** %47, align 8
store %"class.std::__1::__tuple_leaf"* %187, %"class.std::__1::__tuple_leaf"** %49, align 8
store %class.anon* %195, %class.anon** %50, align 8
%196 = load %"class.std::__1::__tuple_leaf"** %49
%197 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %196, i32 0, i32 0
%198 = load %class.anon** %50, align 8
store %class.anon* %198, %class.anon** %48, align 8
%199 = load %class.anon** %48, align 8
store %class.anon* %199, %class.anon** %197, align 8
store %"class.std::__1::tuple.0"* %64, %"class.std::__1::tuple.0"** %63, align 8
%200 = load %"class.std::__1::tuple.0"** %63
store %"class.std::__1::tuple.0"* %200, %"class.std::__1::tuple.0"** %62, align 8
%201 = load %"class.std::__1::tuple.0"** %62
store %"class.std::__1::__compressed_pair"* %135, %"class.std::__1::__compressed_pair"** %95, align 8
%202 = load %"class.std::__1::__compressed_pair"** %95
store %"class.std::__1::__compressed_pair"* %202, %"class.std::__1::__compressed_pair"** %89, align 8
%203 = load %"class.std::__1::__compressed_pair"** %89
%204 = bitcast %"class.std::__1::__compressed_pair"* %203 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::tuple"* %101, %"class.std::__1::tuple"** %88, align 8
%205 = load %"class.std::__1::tuple"** %88, align 8
store %"class.std::__1::tuple"* %91, %"class.std::__1::tuple"** %78, align 8
store %"class.std::__1::tuple"* %205, %"class.std::__1::tuple"** %79, align 8
%206 = load %"class.std::__1::tuple"** %78
%207 = load %"class.std::__1::tuple"** %79
store %"class.std::__1::tuple"* %206, %"class.std::__1::tuple"** %76, align 8
store %"class.std::__1::tuple"* %207, %"class.std::__1::tuple"** %77, align 8
%208 = load %"class.std::__1::tuple"** %76
%209 = getelementptr inbounds %"class.std::__1::tuple"* %208, i32 0, i32 0
%210 = load %"class.std::__1::tuple"** %77, align 8
store %"class.std::__1::tuple"* %210, %"class.std::__1::tuple"** %75, align 8
%211 = load %"class.std::__1::tuple"** %75, align 8
store %"struct.std::__1::__tuple_impl"* %209, %"struct.std::__1::__tuple_impl"** %73, align 8
store %"class.std::__1::tuple"* %211, %"class.std::__1::tuple"** %74, align 8
%212 = load %"struct.std::__1::__tuple_impl"** %73
%213 = load %"class.std::__1::tuple"** %74
store %"struct.std::__1::__tuple_impl"* %212, %"struct.std::__1::__tuple_impl"** %71, align 8
store %"class.std::__1::tuple"* %213, %"class.std::__1::tuple"** %72, align 8
%214 = load %"struct.std::__1::__tuple_impl"** %71
%215 = bitcast %"struct.std::__1::__tuple_impl"* %214 to %"class.std::__1::__tuple_leaf"*
%216 = load %"class.std::__1::tuple"** %72, align 8
store %"class.std::__1::tuple"* %216, %"class.std::__1::tuple"** %70, align 8
%217 = load %"class.std::__1::tuple"** %70, align 8
%218 = getelementptr inbounds %"class.std::__1::tuple"* %217, i32 0, i32 0
%219 = bitcast %"struct.std::__1::__tuple_impl"* %218 to %"class.std::__1::__tuple_leaf"*
store %"class.std::__1::__tuple_leaf"* %219, %"class.std::__1::__tuple_leaf"** %69, align 8
%220 = load %"class.std::__1::__tuple_leaf"** %69
%221 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %220, i32 0, i32 0
%222 = load %class.anon** %221, align 8
store %class.anon* %222, %class.anon** %65, align 8
%223 = load %class.anon** %65, align 8
store %"class.std::__1::__tuple_leaf"* %215, %"class.std::__1::__tuple_leaf"** %67, align 8
store %class.anon* %223, %class.anon** %68, align 8
%224 = load %"class.std::__1::__tuple_leaf"** %67
%225 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %224, i32 0, i32 0
%226 = load %class.anon** %68, align 8
store %class.anon* %226, %class.anon** %66, align 8
%227 = load %class.anon** %66, align 8
store %class.anon* %227, %class.anon** %225, align 8
store %"class.std::__1::tuple.0"* %__second_args.i.i.i.i, %"class.std::__1::tuple.0"** %80, align 8
%228 = load %"class.std::__1::tuple.0"** %80, align 8
store %"class.std::__1::__libcpp_compressed_pair_imp"* %204, %"class.std::__1::__libcpp_compressed_pair_imp"** %85, align 8
%229 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %85
%230 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %229 to %class.anon*
store %"class.std::__1::tuple"* %91, %"class.std::__1::tuple"** %84, align 8
%231 = load %"class.std::__1::tuple"** %84, align 8
%232 = getelementptr inbounds %"class.std::__1::tuple"* %231, i32 0, i32 0
%233 = bitcast %"struct.std::__1::__tuple_impl"* %232 to %"class.std::__1::__tuple_leaf"*
store %"class.std::__1::__tuple_leaf"* %233, %"class.std::__1::__tuple_leaf"** %83, align 8
%234 = load %"class.std::__1::__tuple_leaf"** %83
%235 = getelementptr inbounds %"class.std::__1::__tuple_leaf"* %234, i32 0, i32 0
%236 = load %class.anon** %235, align 8
store %class.anon* %236, %class.anon** %81, align 8
%237 = load %class.anon** %81, align 8
%238 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %229 to %"class.std::__1::allocator"*
store %"class.std::__1::allocator"* %238, %"class.std::__1::allocator"** %82, align 8
%239 = load %"class.std::__1::allocator"** %82
br label %240
; <label>:240 ; preds = %125, %117
%241 = phi %"class.std::__1::__function::__func"* [ %126, %125 ], [ null, %117 ]
br label %242
; <label>:242 ; preds = %240, %1
ret void
}
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev"(%"class.std::__1::__function::__func"* %this) unnamed_addr nounwind uwtable inlinehint ssp align 2 {
%1 = alloca %"class.std::__1::__function::__func"*, align 8
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %1, align 8
%2 = load %"class.std::__1::__function::__func"** %1
call void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev"(%"class.std::__1::__function::__func"* %2) nounwind
ret void
}
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev"(%"class.std::__1::__function::__func"* %this) unnamed_addr nounwind uwtable inlinehint ssp align 2 {
%1 = alloca %"class.std::__1::__function::__func"*, align 8
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %1, align 8
%2 = load %"class.std::__1::__function::__func"** %1
call void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev"(%"class.std::__1::__function::__func"* %2) nounwind
%3 = bitcast %"class.std::__1::__function::__func"* %2 to i8*
call void @_ZdlPv(i8* %3) nounwind
ret void
}
define internal %"class.std::__1::__function::__base"* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv"(%"class.std::__1::__function::__func"* %this) uwtable ssp align 2 {
%1 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%2 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%3 = alloca %"class.std::__1::__function::__func"**, align 8
%4 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%5 = alloca %"class.std::__1::__function::__func"*, align 8
%__t2.i.i.i.i.i = alloca %"class.std::__1::__allocator_destructor", align 8
%6 = alloca %"class.std::__1::__function::__func"**, align 8
%7 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%8 = alloca %"class.std::__1::__function::__func"*, align 8
%__t2.i.i.i.i = alloca %"class.std::__1::__allocator_destructor", align 8
%9 = alloca %"class.std::__1::__allocator_destructor", align 8
%10 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%11 = alloca %"class.std::__1::__function::__func"*, align 8
%__t2.i.i.i = alloca %"class.std::__1::__allocator_destructor", align 8
%12 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%13 = alloca %"class.std::__1::unique_ptr"*, align 8
%14 = alloca %"class.std::__1::__function::__func"*, align 8
%15 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%16 = alloca %"class.std::__1::__allocator_destructor", align 8
%17 = alloca %"class.std::__1::unique_ptr"*, align 8
%18 = alloca %"class.std::__1::__function::__func"*, align 8
%19 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%20 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%21 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%22 = alloca %"class.std::__1::unique_ptr"*, align 8
%23 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%24 = alloca %"class.std::__1::__compressed_pair"*, align 8
%25 = alloca %"class.std::__1::allocator"*, align 8
%26 = alloca %"class.std::__1::allocator.1"*, align 8
%27 = alloca %"class.std::__1::allocator"*, align 8
%28 = alloca %"class.std::__1::allocator.1"*, align 8
%29 = alloca %class.anon*, align 8
%30 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%31 = alloca %class.anon*, align 8
%32 = alloca %class.anon*, align 8
%33 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%34 = alloca %"struct.std::__1::__tuple_indices", align 1
%35 = alloca %"struct.std::__1::__tuple_types.11", align 1
%36 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%37 = alloca %"struct.std::__1::__tuple_types.10", align 1
%38 = alloca %class.anon*, align 8
%39 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%40 = alloca %"struct.std::__1::__tuple_indices", align 1
%41 = alloca %"struct.std::__1::__tuple_types.11", align 1
%42 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%43 = alloca %"struct.std::__1::__tuple_types.10", align 1
%44 = alloca %class.anon*, align 8
%45 = alloca %"class.std::__1::tuple.3"*, align 8
%46 = alloca %class.anon*, align 8
%47 = alloca %"struct.std::__1::__tuple_indices", align 1
%48 = alloca %"struct.std::__1::__tuple_types.11", align 1
%49 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%50 = alloca %"struct.std::__1::__tuple_types.10", align 1
%51 = alloca %"class.std::__1::tuple.3"*, align 8
%52 = alloca %class.anon*, align 8
%53 = alloca %class.anon*, align 8
%54 = alloca %class.anon*, align 8
%55 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%56 = alloca %class.anon*, align 8
%57 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%58 = alloca %"class.std::__1::tuple.3"*, align 8
%59 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%60 = alloca %"class.std::__1::tuple.3"*, align 8
%61 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%62 = alloca %"class.std::__1::tuple.3"*, align 8
%63 = alloca %"class.std::__1::tuple.3"*, align 8
%64 = alloca %"class.std::__1::tuple.3"*, align 8
%65 = alloca %"class.std::__1::tuple.3"*, align 8
%66 = alloca %"class.std::__1::tuple.3"*, align 8
%67 = alloca %"class.std::__1::tuple.3"*, align 8
%68 = alloca %class.anon*, align 8
%69 = alloca %class.anon*, align 8
%70 = alloca %"class.std::__1::tuple.3", align 8
%71 = alloca %class.anon*, align 8
%72 = alloca %class.anon*, align 8
%73 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%74 = alloca %class.anon*, align 8
%75 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%76 = alloca %"class.std::__1::tuple.3"*, align 8
%77 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%78 = alloca %"class.std::__1::tuple.3"*, align 8
%79 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%80 = alloca %"class.std::__1::tuple.3"*, align 8
%81 = alloca %"class.std::__1::tuple.3"*, align 8
%82 = alloca %"class.std::__1::tuple.3"*, align 8
%83 = alloca %"class.std::__1::tuple.3"*, align 8
%84 = alloca %"class.std::__1::tuple.3"*, align 8
%85 = alloca %"class.std::__1::tuple.3"*, align 8
%86 = alloca %"class.std::__1::allocator"*, align 8
%87 = alloca %"class.std::__1::allocator"*, align 8
%88 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8
%89 = alloca %"class.std::__1::allocator"*, align 8
%90 = alloca %"class.std::__1::allocator"*, align 8
%91 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8
%92 = alloca %"struct.std::__1::__tuple_indices", align 1
%93 = alloca %"struct.std::__1::__tuple_types.17", align 1
%94 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%95 = alloca %"struct.std::__1::__tuple_types.10", align 1
%96 = alloca %"class.std::__1::allocator"*, align 8
%97 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8
%98 = alloca %"struct.std::__1::__tuple_indices", align 1
%99 = alloca %"struct.std::__1::__tuple_types.17", align 1
%100 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%101 = alloca %"struct.std::__1::__tuple_types.10", align 1
%102 = alloca %"class.std::__1::allocator"*, align 8
%103 = alloca %"class.std::__1::allocator"*, align 8
%104 = alloca %"class.std::__1::tuple.14"*, align 8
%105 = alloca %"class.std::__1::allocator"*, align 8
%106 = alloca %"struct.std::__1::__tuple_indices", align 1
%107 = alloca %"struct.std::__1::__tuple_types.17", align 1
%108 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%109 = alloca %"struct.std::__1::__tuple_types.10", align 1
%110 = alloca %"class.std::__1::tuple.14"*, align 8
%111 = alloca %"class.std::__1::allocator"*, align 8
%112 = alloca %"class.std::__1::allocator"*, align 8
%113 = alloca %"class.std::__1::allocator"*, align 8
%114 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8
%115 = alloca %"class.std::__1::allocator"*, align 8
%116 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8
%117 = alloca %"class.std::__1::tuple.14"*, align 8
%118 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8
%119 = alloca %"class.std::__1::tuple.14"*, align 8
%120 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8
%121 = alloca %"class.std::__1::tuple.14"*, align 8
%122 = alloca %"class.std::__1::tuple.14"*, align 8
%123 = alloca %"class.std::__1::tuple.14"*, align 8
%124 = alloca %"class.std::__1::tuple.14"*, align 8
%125 = alloca %"class.std::__1::tuple.14"*, align 8
%126 = alloca %"class.std::__1::tuple.14"*, align 8
%127 = alloca %"class.std::__1::allocator"*, align 8
%128 = alloca %"class.std::__1::allocator"*, align 8
%129 = alloca %"class.std::__1::tuple.14", align 8
%130 = alloca %"class.std::__1::allocator"*, align 8
%131 = alloca %"class.std::__1::allocator"*, align 8
%132 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8
%133 = alloca %"class.std::__1::allocator"*, align 8
%134 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8
%135 = alloca %"class.std::__1::tuple.14"*, align 8
%136 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8
%137 = alloca %"class.std::__1::tuple.14"*, align 8
%138 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8
%139 = alloca %"class.std::__1::tuple.14"*, align 8
%140 = alloca %"class.std::__1::tuple.14"*, align 8
%141 = alloca %"class.std::__1::tuple.14"*, align 8
%142 = alloca %"class.std::__1::tuple.14"*, align 8
%143 = alloca %"class.std::__1::tuple.14"*, align 8
%144 = alloca %"class.std::__1::tuple.14"*, align 8
%145 = alloca %class.anon*, align 8
%146 = alloca %class.anon*, align 8
%147 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%148 = alloca %class.anon*, align 8
%149 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%150 = alloca %"class.std::__1::tuple.3"*, align 8
%151 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%152 = alloca %"class.std::__1::tuple.3"*, align 8
%153 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%154 = alloca %"class.std::__1::tuple.3"*, align 8
%155 = alloca %"class.std::__1::tuple.3"*, align 8
%156 = alloca %"class.std::__1::tuple.3"*, align 8
%157 = alloca %"class.std::__1::tuple.3"*, align 8
%158 = alloca %"class.std::__1::tuple.3"*, align 8
%159 = alloca %"class.std::__1::tuple.3"*, align 8
%160 = alloca %"class.std::__1::tuple.14"*, align 8
%161 = alloca %"class.std::__1::allocator"*, align 8
%162 = alloca %"class.std::__1::allocator"*, align 8
%163 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8
%164 = alloca %"class.std::__1::allocator"*, align 8
%165 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8
%166 = alloca %"class.std::__1::tuple.14"*, align 8
%167 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8
%168 = alloca %"class.std::__1::tuple.14"*, align 8
%169 = alloca %"struct.std::__1::__tuple_impl.15"*, align 8
%170 = alloca %"class.std::__1::tuple.14"*, align 8
%171 = alloca %"class.std::__1::tuple.14"*, align 8
%172 = alloca %"class.std::__1::tuple.14"*, align 8
%173 = alloca %"class.std::__1::tuple.14"*, align 8
%174 = alloca %"class.std::__1::tuple.14"*, align 8
%175 = alloca %"class.std::__1::tuple.14"*, align 8
%176 = alloca %class.anon*, align 8
%177 = alloca %"class.std::__1::__tuple_leaf.16"*, align 8
%178 = alloca %"class.std::__1::tuple.14"*, align 8
%179 = alloca %"class.std::__1::allocator"*, align 8
%180 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%181 = alloca %"class.std::__1::tuple.3"*, align 8
%182 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%__pc.i.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%183 = alloca %"struct.std::__1::__tuple_indices", align 1
%184 = alloca %"struct.std::__1::__tuple_indices", align 1
%185 = alloca %"class.std::__1::tuple.3"*, align 8
%186 = alloca %"class.std::__1::__compressed_pair"*, align 8
%__pc.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%187 = alloca %"struct.std::__1::piecewise_construct_t", align 1
%188 = alloca %"class.std::__1::tuple.3", align 8
%189 = alloca %"class.std::__1::tuple.14", align 8
%190 = alloca %"struct.std::__1::__tuple_indices", align 1
%191 = alloca %"struct.std::__1::__tuple_indices", align 1
%192 = alloca %"class.std::__1::__compressed_pair"*, align 8
%__pc.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%193 = alloca %"class.std::__1::__function::__base"*, align 8
%194 = alloca %"class.std::__1::__function::__base"*, align 8
%195 = alloca %"class.std::__1::__function::__func"*, align 8
%196 = alloca %class.anon*, align 8
%197 = alloca %"class.std::__1::allocator"*, align 8
%198 = alloca %"struct.std::__1::piecewise_construct_t", align 1
%199 = alloca %"class.std::__1::tuple.3", align 8
%200 = alloca %"class.std::__1::tuple.3", align 8
%201 = alloca i8*
%202 = alloca i32
%203 = alloca %"class.std::__1::tuple.14", align 8
%204 = alloca %"class.std::__1::tuple.14", align 8
%205 = alloca %"class.std::__1::__function::__func"*, align 8
%206 = alloca %class.anon*, align 8
%207 = alloca %"class.std::__1::allocator"*, align 8
%208 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%209 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%210 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%211 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%212 = alloca %"class.std::__1::unique_ptr"*, align 8
%__t.i = alloca %"class.std::__1::__function::__func"*, align 8
%213 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%214 = alloca %"class.std::__1::allocator.1"*, align 8
%215 = alloca i64, align 8
%216 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%217 = alloca %"class.std::__1::allocator.1"*, align 8
%218 = alloca i64, align 8
%219 = alloca %"class.std::__1::allocator.1"*, align 8
%220 = alloca i64, align 8
%221 = alloca i8*, align 8
%222 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%223 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%224 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%225 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%226 = alloca %"class.std::__1::allocator.1"*, align 8
%227 = alloca %"class.std::__1::__function::__func"*, align 8
%228 = alloca i64, align 8
%229 = alloca %"class.std::__1::allocator.1"*, align 8
%230 = alloca %"class.std::__1::__function::__func"*, align 8
%231 = alloca i64, align 8
%232 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%233 = alloca %"class.std::__1::__function::__func"*, align 8
%234 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%235 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%236 = alloca %"class.std::__1::unique_ptr"*, align 8
%237 = alloca %"class.std::__1::__function::__func"*, align 8
%__tmp.i.i.i1 = alloca %"class.std::__1::__function::__func"*, align 8
%238 = alloca %"class.std::__1::unique_ptr"*, align 8
%239 = alloca %"class.std::__1::unique_ptr"*, align 8
%240 = alloca %"class.std::__1::allocator.1"*, align 8
%241 = alloca %"class.std::__1::allocator"*, align 8
%242 = alloca %"class.std::__1::allocator.1"*, align 8
%243 = alloca %"class.std::__1::allocator"*, align 8
%244 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%245 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%246 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%247 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%248 = alloca %"class.std::__1::allocator.1"*, align 8
%249 = alloca %"class.std::__1::__function::__func"*, align 8
%250 = alloca i64, align 8
%251 = alloca %"class.std::__1::allocator.1"*, align 8
%252 = alloca %"class.std::__1::__function::__func"*, align 8
%253 = alloca i64, align 8
%254 = alloca %"class.std::__1::__allocator_destructor"*, align 8
%255 = alloca %"class.std::__1::__function::__func"*, align 8
%256 = alloca %"class.std::__1::__libcpp_compressed_pair_imp.13"*, align 8
%257 = alloca %"class.std::__1::__compressed_pair.12"*, align 8
%258 = alloca %"class.std::__1::unique_ptr"*, align 8
%259 = alloca %"class.std::__1::__function::__func"*, align 8
%__tmp.i.i.i = alloca %"class.std::__1::__function::__func"*, align 8
%260 = alloca %"class.std::__1::unique_ptr"*, align 8
%261 = alloca %"class.std::__1::unique_ptr"*, align 8
%262 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%263 = alloca %"class.std::__1::__compressed_pair"*, align 8
%264 = alloca %"class.std::__1::__function::__func"*, align 8
%__a = alloca %"class.std::__1::allocator.1", align 1
%__hold = alloca %"class.std::__1::unique_ptr", align 8
%265 = alloca %"class.std::__1::__allocator_destructor", align 8
%266 = alloca %"class.std::__1::allocator", align 1
%267 = alloca i8*
%268 = alloca i32
%269 = alloca i32
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %264, align 8
%270 = load %"class.std::__1::__function::__func"** %264
%271 = getelementptr inbounds %"class.std::__1::__function::__func"* %270, i32 0, i32 1
store %"class.std::__1::__compressed_pair"* %271, %"class.std::__1::__compressed_pair"** %263, align 8
%272 = load %"class.std::__1::__compressed_pair"** %263
%273 = bitcast %"class.std::__1::__compressed_pair"* %272 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::__libcpp_compressed_pair_imp"* %273, %"class.std::__1::__libcpp_compressed_pair_imp"** %262, align 8
%274 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %262
%275 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %274 to %"class.std::__1::allocator"*
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %242, align 8
store %"class.std::__1::allocator"* %275, %"class.std::__1::allocator"** %243, align 8
%276 = load %"class.std::__1::allocator.1"** %242
%277 = load %"class.std::__1::allocator"** %243
store %"class.std::__1::allocator.1"* %276, %"class.std::__1::allocator.1"** %240, align 8
store %"class.std::__1::allocator"* %277, %"class.std::__1::allocator"** %241, align 8
%278 = load %"class.std::__1::allocator.1"** %240
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %219, align 8
store i64 1, i64* %220, align 8
store i8* null, i8** %221, align 8
%279 = load %"class.std::__1::allocator.1"** %219
%280 = load i64* %220, align 8
%281 = mul i64 %280, 16
%282 = call noalias i8* @_Znwm(i64 %281)
%283 = bitcast i8* %282 to %"class.std::__1::__function::__func"*
store %"class.std::__1::__allocator_destructor"* %265, %"class.std::__1::__allocator_destructor"** %216, align 8
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %217, align 8
store i64 1, i64* %218, align 8
%284 = load %"class.std::__1::__allocator_destructor"** %216
%285 = load i64* %218, align 8
%286 = load %"class.std::__1::allocator.1"** %217
store %"class.std::__1::__allocator_destructor"* %284, %"class.std::__1::__allocator_destructor"** %213, align 8
store %"class.std::__1::allocator.1"* %286, %"class.std::__1::allocator.1"** %214, align 8
store i64 %285, i64* %215, align 8
%287 = load %"class.std::__1::__allocator_destructor"** %213
%288 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %287, i32 0, i32 0
%289 = load %"class.std::__1::allocator.1"** %214, align 8
store %"class.std::__1::allocator.1"* %289, %"class.std::__1::allocator.1"** %288, align 8
%290 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %287, i32 0, i32 1
%291 = load i64* %215, align 8
store i64 %291, i64* %290, align 8
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %17, align 8
store %"class.std::__1::__function::__func"* %283, %"class.std::__1::__function::__func"** %18, align 8
store %"class.std::__1::__allocator_destructor"* %265, %"class.std::__1::__allocator_destructor"** %19, align 8
%292 = load %"class.std::__1::unique_ptr"** %17
%293 = load %"class.std::__1::__function::__func"** %18, align 8
%294 = load %"class.std::__1::__allocator_destructor"** %19
store %"class.std::__1::unique_ptr"* %292, %"class.std::__1::unique_ptr"** %13, align 8
store %"class.std::__1::__function::__func"* %293, %"class.std::__1::__function::__func"** %14, align 8
store %"class.std::__1::__allocator_destructor"* %294, %"class.std::__1::__allocator_destructor"** %15, align 8
%295 = load %"class.std::__1::unique_ptr"** %13
%296 = getelementptr inbounds %"class.std::__1::unique_ptr"* %295, i32 0, i32 0
%297 = load %"class.std::__1::__function::__func"** %14, align 8
%298 = load %"class.std::__1::__allocator_destructor"** %15, align 8
store %"class.std::__1::__allocator_destructor"* %298, %"class.std::__1::__allocator_destructor"** %12, align 8
%299 = load %"class.std::__1::__allocator_destructor"** %12, align 8
%300 = bitcast %"class.std::__1::__allocator_destructor"* %16 to i8*
%301 = bitcast %"class.std::__1::__allocator_destructor"* %299 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %300, i8* %301, i64 16, i32 8, i1 false) nounwind
%302 = bitcast %"class.std::__1::__allocator_destructor"* %16 to { %"class.std::__1::allocator.1"*, i64 }*
%303 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %302, i32 0, i32 0
%304 = load %"class.std::__1::allocator.1"** %303, align 1
%305 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %302, i32 0, i32 1
%306 = load i64* %305, align 1
store %"class.std::__1::__compressed_pair.12"* %296, %"class.std::__1::__compressed_pair.12"** %10, align 8
store %"class.std::__1::__function::__func"* %297, %"class.std::__1::__function::__func"** %11, align 8
%307 = bitcast %"class.std::__1::__allocator_destructor"* %__t2.i.i.i to { %"class.std::__1::allocator.1"*, i64 }*
%308 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %307, i32 0, i32 0
store %"class.std::__1::allocator.1"* %304, %"class.std::__1::allocator.1"** %308
%309 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %307, i32 0, i32 1
store i64 %306, i64* %309
%310 = load %"class.std::__1::__compressed_pair.12"** %10
%311 = load %"class.std::__1::__function::__func"** %11, align 8
%312 = bitcast %"class.std::__1::__allocator_destructor"* %__t2.i.i.i to { %"class.std::__1::allocator.1"*, i64 }*
%313 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %312, i32 0, i32 0
%314 = load %"class.std::__1::allocator.1"** %313, align 1
%315 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %312, i32 0, i32 1
%316 = load i64* %315, align 1
store %"class.std::__1::__compressed_pair.12"* %310, %"class.std::__1::__compressed_pair.12"** %7, align 8
store %"class.std::__1::__function::__func"* %311, %"class.std::__1::__function::__func"** %8, align 8
%317 = bitcast %"class.std::__1::__allocator_destructor"* %__t2.i.i.i.i to { %"class.std::__1::allocator.1"*, i64 }*
%318 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %317, i32 0, i32 0
store %"class.std::__1::allocator.1"* %314, %"class.std::__1::allocator.1"** %318
%319 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %317, i32 0, i32 1
store i64 %316, i64* %319
%320 = load %"class.std::__1::__compressed_pair.12"** %7
%321 = bitcast %"class.std::__1::__compressed_pair.12"* %320 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__function::__func"** %8, %"class.std::__1::__function::__func"*** %6, align 8
%322 = load %"class.std::__1::__function::__func"*** %6, align 8
%323 = load %"class.std::__1::__function::__func"** %322
store %"class.std::__1::__allocator_destructor"* %__t2.i.i.i.i, %"class.std::__1::__allocator_destructor"** %1, align 8
%324 = load %"class.std::__1::__allocator_destructor"** %1, align 8
%325 = bitcast %"class.std::__1::__allocator_destructor"* %9 to i8*
%326 = bitcast %"class.std::__1::__allocator_destructor"* %324 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %325, i8* %326, i64 16, i32 8, i1 false) nounwind
%327 = bitcast %"class.std::__1::__allocator_destructor"* %9 to { %"class.std::__1::allocator.1"*, i64 }*
%328 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %327, i32 0, i32 0
%329 = load %"class.std::__1::allocator.1"** %328, align 1
%330 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %327, i32 0, i32 1
%331 = load i64* %330, align 1
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %321, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %4, align 8
store %"class.std::__1::__function::__func"* %323, %"class.std::__1::__function::__func"** %5, align 8
%332 = bitcast %"class.std::__1::__allocator_destructor"* %__t2.i.i.i.i.i to { %"class.std::__1::allocator.1"*, i64 }*
%333 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %332, i32 0, i32 0
store %"class.std::__1::allocator.1"* %329, %"class.std::__1::allocator.1"** %333
%334 = getelementptr { %"class.std::__1::allocator.1"*, i64 }* %332, i32 0, i32 1
store i64 %331, i64* %334
%335 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %4
%336 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %335, i32 0, i32 0
store %"class.std::__1::__function::__func"** %5, %"class.std::__1::__function::__func"*** %3, align 8
%337 = load %"class.std::__1::__function::__func"*** %3, align 8
%338 = load %"class.std::__1::__function::__func"** %337
store %"class.std::__1::__function::__func"* %338, %"class.std::__1::__function::__func"** %336, align 8
%339 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %335, i32 0, i32 1
store %"class.std::__1::__allocator_destructor"* %__t2.i.i.i.i.i, %"class.std::__1::__allocator_destructor"** %2, align 8
%340 = load %"class.std::__1::__allocator_destructor"** %2, align 8
%341 = bitcast %"class.std::__1::__allocator_destructor"* %339 to i8*
%342 = bitcast %"class.std::__1::__allocator_destructor"* %340 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %341, i8* %342, i64 16, i32 8, i1 false) nounwind
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %22, align 8
%343 = load %"class.std::__1::unique_ptr"** %22
%344 = getelementptr inbounds %"class.std::__1::unique_ptr"* %343, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %344, %"class.std::__1::__compressed_pair.12"** %21, align 8
%345 = load %"class.std::__1::__compressed_pair.12"** %21
%346 = bitcast %"class.std::__1::__compressed_pair.12"* %345 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %346, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %20, align 8
%347 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %20
%348 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %347, i32 0, i32 0
%349 = load %"class.std::__1::__function::__func"** %348
%350 = bitcast %"class.std::__1::__function::__func"* %349 to i8*
%351 = icmp eq i8* %350, null
br i1 %351, label %564, label %352
; <label>:352 ; preds = %0
%353 = bitcast i8* %350 to %"class.std::__1::__function::__func"*
%354 = getelementptr inbounds %"class.std::__1::__function::__func"* %270, i32 0, i32 1
store %"class.std::__1::__compressed_pair"* %354, %"class.std::__1::__compressed_pair"** %24, align 8
%355 = load %"class.std::__1::__compressed_pair"** %24
%356 = bitcast %"class.std::__1::__compressed_pair"* %355 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::__libcpp_compressed_pair_imp"* %356, %"class.std::__1::__libcpp_compressed_pair_imp"** %23, align 8
%357 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %23
%358 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %357 to %class.anon*
store %"class.std::__1::allocator"* %266, %"class.std::__1::allocator"** %27, align 8
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %28, align 8
%359 = load %"class.std::__1::allocator"** %27
%360 = load %"class.std::__1::allocator.1"** %28
store %"class.std::__1::allocator"* %359, %"class.std::__1::allocator"** %25, align 8
store %"class.std::__1::allocator.1"* %360, %"class.std::__1::allocator.1"** %26, align 8
%361 = load %"class.std::__1::allocator"** %25
store %"class.std::__1::__function::__func"* %353, %"class.std::__1::__function::__func"** %205, align 8
store %class.anon* %358, %class.anon** %206, align 8
store %"class.std::__1::allocator"* %266, %"class.std::__1::allocator"** %207, align 8
%362 = load %"class.std::__1::__function::__func"** %205
%363 = load %class.anon** %206
%364 = load %"class.std::__1::allocator"** %207
store %"class.std::__1::__function::__func"* %362, %"class.std::__1::__function::__func"** %195, align 8
store %class.anon* %363, %class.anon** %196, align 8
store %"class.std::__1::allocator"* %364, %"class.std::__1::allocator"** %197, align 8
%365 = load %"class.std::__1::__function::__func"** %195
%366 = bitcast %"class.std::__1::__function::__func"* %365 to %"class.std::__1::__function::__base"*
store %"class.std::__1::__function::__base"* %366, %"class.std::__1::__function::__base"** %194, align 8
%367 = load %"class.std::__1::__function::__base"** %194
%368 = bitcast %"class.std::__1::__function::__base"* %367 to i8***
store i8** getelementptr inbounds ([11 x i8*]* @_ZTVNSt3__110__function6__baseIFiiEEE, i64 0, i64 2), i8*** %368
%369 = bitcast %"class.std::__1::__function::__func"* %365 to i8***
store i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2), i8*** %369
%370 = getelementptr inbounds %"class.std::__1::__function::__func"* %365, i32 0, i32 1
%371 = load %class.anon** %196, align 8
store %class.anon* %371, %class.anon** %69, align 8
%372 = load %class.anon** %69, align 8
store %class.anon* %372, %class.anon** %68, align 8
%373 = load %class.anon** %68, align 8
store %"class.std::__1::tuple.3"* %70, %"class.std::__1::tuple.3"** %51, align 8
store %class.anon* %373, %class.anon** %52, align 8
%374 = load %"class.std::__1::tuple.3"** %51
%375 = load %class.anon** %52
store %"class.std::__1::tuple.3"* %374, %"class.std::__1::tuple.3"** %45, align 8
store %class.anon* %375, %class.anon** %46, align 8
%376 = load %"class.std::__1::tuple.3"** %45
%377 = getelementptr inbounds %"class.std::__1::tuple.3"* %376, i32 0, i32 0
%378 = load %class.anon** %46, align 8
store %"struct.std::__1::__tuple_impl.4"* %377, %"struct.std::__1::__tuple_impl.4"** %39, align 8
store %class.anon* %378, %class.anon** %44, align 8
%379 = load %"struct.std::__1::__tuple_impl.4"** %39
%380 = load %class.anon** %44
store %"struct.std::__1::__tuple_impl.4"* %379, %"struct.std::__1::__tuple_impl.4"** %33, align 8
store %class.anon* %380, %class.anon** %38, align 8
%381 = load %"struct.std::__1::__tuple_impl.4"** %33
%382 = bitcast %"struct.std::__1::__tuple_impl.4"* %381 to %"class.std::__1::__tuple_leaf.5"*
%383 = load %class.anon** %38, align 8
store %class.anon* %383, %class.anon** %32, align 8
%384 = load %class.anon** %32, align 8
store %"class.std::__1::__tuple_leaf.5"* %382, %"class.std::__1::__tuple_leaf.5"** %30, align 8
store %class.anon* %384, %class.anon** %31, align 8
%385 = load %"class.std::__1::__tuple_leaf.5"** %30
%386 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %385, i32 0, i32 0
%387 = load %class.anon** %31, align 8
store %class.anon* %387, %class.anon** %29, align 8
%388 = load %class.anon** %29, align 8
store %class.anon* %388, %class.anon** %386, align 8
store %"class.std::__1::tuple.3"* %200, %"class.std::__1::tuple.3"** %66, align 8
store %"class.std::__1::tuple.3"* %70, %"class.std::__1::tuple.3"** %67, align 8
%389 = load %"class.std::__1::tuple.3"** %66
%390 = load %"class.std::__1::tuple.3"** %67
store %"class.std::__1::tuple.3"* %389, %"class.std::__1::tuple.3"** %64, align 8
store %"class.std::__1::tuple.3"* %390, %"class.std::__1::tuple.3"** %65, align 8
%391 = load %"class.std::__1::tuple.3"** %64
%392 = getelementptr inbounds %"class.std::__1::tuple.3"* %391, i32 0, i32 0
%393 = load %"class.std::__1::tuple.3"** %65, align 8
store %"class.std::__1::tuple.3"* %393, %"class.std::__1::tuple.3"** %63, align 8
%394 = load %"class.std::__1::tuple.3"** %63, align 8
store %"struct.std::__1::__tuple_impl.4"* %392, %"struct.std::__1::__tuple_impl.4"** %61, align 8
store %"class.std::__1::tuple.3"* %394, %"class.std::__1::tuple.3"** %62, align 8
%395 = load %"struct.std::__1::__tuple_impl.4"** %61
%396 = load %"class.std::__1::tuple.3"** %62
store %"struct.std::__1::__tuple_impl.4"* %395, %"struct.std::__1::__tuple_impl.4"** %59, align 8
store %"class.std::__1::tuple.3"* %396, %"class.std::__1::tuple.3"** %60, align 8
%397 = load %"struct.std::__1::__tuple_impl.4"** %59
%398 = bitcast %"struct.std::__1::__tuple_impl.4"* %397 to %"class.std::__1::__tuple_leaf.5"*
%399 = load %"class.std::__1::tuple.3"** %60, align 8
store %"class.std::__1::tuple.3"* %399, %"class.std::__1::tuple.3"** %58, align 8
%400 = load %"class.std::__1::tuple.3"** %58, align 8
%401 = getelementptr inbounds %"class.std::__1::tuple.3"* %400, i32 0, i32 0
%402 = bitcast %"struct.std::__1::__tuple_impl.4"* %401 to %"class.std::__1::__tuple_leaf.5"*
store %"class.std::__1::__tuple_leaf.5"* %402, %"class.std::__1::__tuple_leaf.5"** %57, align 8
%403 = load %"class.std::__1::__tuple_leaf.5"** %57
%404 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %403, i32 0, i32 0
%405 = load %class.anon** %404, align 8
store %class.anon* %405, %class.anon** %53, align 8
%406 = load %class.anon** %53, align 8
store %"class.std::__1::__tuple_leaf.5"* %398, %"class.std::__1::__tuple_leaf.5"** %55, align 8
store %class.anon* %406, %class.anon** %56, align 8
%407 = load %"class.std::__1::__tuple_leaf.5"** %55
%408 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %407, i32 0, i32 0
%409 = load %class.anon** %56, align 8
store %class.anon* %409, %class.anon** %54, align 8
%410 = load %class.anon** %54, align 8
store %class.anon* %410, %class.anon** %408, align 8
store %"class.std::__1::tuple.3"* %199, %"class.std::__1::tuple.3"** %84, align 8
store %"class.std::__1::tuple.3"* %200, %"class.std::__1::tuple.3"** %85, align 8
%411 = load %"class.std::__1::tuple.3"** %84
%412 = load %"class.std::__1::tuple.3"** %85
store %"class.std::__1::tuple.3"* %411, %"class.std::__1::tuple.3"** %82, align 8
store %"class.std::__1::tuple.3"* %412, %"class.std::__1::tuple.3"** %83, align 8
%413 = load %"class.std::__1::tuple.3"** %82
%414 = getelementptr inbounds %"class.std::__1::tuple.3"* %413, i32 0, i32 0
%415 = load %"class.std::__1::tuple.3"** %83, align 8
store %"class.std::__1::tuple.3"* %415, %"class.std::__1::tuple.3"** %81, align 8
%416 = load %"class.std::__1::tuple.3"** %81, align 8
store %"struct.std::__1::__tuple_impl.4"* %414, %"struct.std::__1::__tuple_impl.4"** %79, align 8
store %"class.std::__1::tuple.3"* %416, %"class.std::__1::tuple.3"** %80, align 8
%417 = load %"struct.std::__1::__tuple_impl.4"** %79
%418 = load %"class.std::__1::tuple.3"** %80
store %"struct.std::__1::__tuple_impl.4"* %417, %"struct.std::__1::__tuple_impl.4"** %77, align 8
store %"class.std::__1::tuple.3"* %418, %"class.std::__1::tuple.3"** %78, align 8
%419 = load %"struct.std::__1::__tuple_impl.4"** %77
%420 = bitcast %"struct.std::__1::__tuple_impl.4"* %419 to %"class.std::__1::__tuple_leaf.5"*
%421 = load %"class.std::__1::tuple.3"** %78, align 8
store %"class.std::__1::tuple.3"* %421, %"class.std::__1::tuple.3"** %76, align 8
%422 = load %"class.std::__1::tuple.3"** %76, align 8
%423 = getelementptr inbounds %"class.std::__1::tuple.3"* %422, i32 0, i32 0
%424 = bitcast %"struct.std::__1::__tuple_impl.4"* %423 to %"class.std::__1::__tuple_leaf.5"*
store %"class.std::__1::__tuple_leaf.5"* %424, %"class.std::__1::__tuple_leaf.5"** %75, align 8
%425 = load %"class.std::__1::__tuple_leaf.5"** %75
%426 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %425, i32 0, i32 0
%427 = load %class.anon** %426, align 8
store %class.anon* %427, %class.anon** %71, align 8
%428 = load %class.anon** %71, align 8
store %"class.std::__1::__tuple_leaf.5"* %420, %"class.std::__1::__tuple_leaf.5"** %73, align 8
store %class.anon* %428, %class.anon** %74, align 8
%429 = load %"class.std::__1::__tuple_leaf.5"** %73
%430 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %429, i32 0, i32 0
%431 = load %class.anon** %74, align 8
store %class.anon* %431, %class.anon** %72, align 8
%432 = load %class.anon** %72, align 8
store %class.anon* %432, %class.anon** %430, align 8
%433 = load %"class.std::__1::allocator"** %197, align 8
store %"class.std::__1::allocator"* %433, %"class.std::__1::allocator"** %86, align 8
%434 = load %"class.std::__1::allocator"** %86, align 8
store %"class.std::__1::allocator"* %434, %"class.std::__1::allocator"** %128, align 8
%435 = load %"class.std::__1::allocator"** %128, align 8
store %"class.std::__1::allocator"* %435, %"class.std::__1::allocator"** %127, align 8
%436 = load %"class.std::__1::allocator"** %127, align 8
store %"class.std::__1::tuple.14"* %129, %"class.std::__1::tuple.14"** %110, align 8
store %"class.std::__1::allocator"* %436, %"class.std::__1::allocator"** %111, align 8
%437 = load %"class.std::__1::tuple.14"** %110
%438 = load %"class.std::__1::allocator"** %111
store %"class.std::__1::tuple.14"* %437, %"class.std::__1::tuple.14"** %104, align 8
store %"class.std::__1::allocator"* %438, %"class.std::__1::allocator"** %105, align 8
%439 = load %"class.std::__1::tuple.14"** %104
%440 = getelementptr inbounds %"class.std::__1::tuple.14"* %439, i32 0, i32 0
%441 = load %"class.std::__1::allocator"** %105, align 8
store %"class.std::__1::allocator"* %441, %"class.std::__1::allocator"** %103, align 8
%442 = load %"class.std::__1::allocator"** %103, align 8
store %"struct.std::__1::__tuple_impl.15"* %440, %"struct.std::__1::__tuple_impl.15"** %97, align 8
store %"class.std::__1::allocator"* %442, %"class.std::__1::allocator"** %102, align 8
%443 = load %"struct.std::__1::__tuple_impl.15"** %97
%444 = load %"class.std::__1::allocator"** %102
store %"struct.std::__1::__tuple_impl.15"* %443, %"struct.std::__1::__tuple_impl.15"** %91, align 8
store %"class.std::__1::allocator"* %444, %"class.std::__1::allocator"** %96, align 8
%445 = load %"struct.std::__1::__tuple_impl.15"** %91
%446 = bitcast %"struct.std::__1::__tuple_impl.15"* %445 to %"class.std::__1::__tuple_leaf.16"*
%447 = load %"class.std::__1::allocator"** %96, align 8
store %"class.std::__1::allocator"* %447, %"class.std::__1::allocator"** %90, align 8
%448 = load %"class.std::__1::allocator"** %90, align 8
store %"class.std::__1::__tuple_leaf.16"* %446, %"class.std::__1::__tuple_leaf.16"** %88, align 8
store %"class.std::__1::allocator"* %448, %"class.std::__1::allocator"** %89, align 8
%449 = load %"class.std::__1::__tuple_leaf.16"** %88
%450 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %449, i32 0, i32 0
%451 = load %"class.std::__1::allocator"** %89, align 8
store %"class.std::__1::allocator"* %451, %"class.std::__1::allocator"** %87, align 8
%452 = load %"class.std::__1::allocator"** %87, align 8
store %"class.std::__1::allocator"* %452, %"class.std::__1::allocator"** %450, align 8
store %"class.std::__1::tuple.14"* %204, %"class.std::__1::tuple.14"** %125, align 8
store %"class.std::__1::tuple.14"* %129, %"class.std::__1::tuple.14"** %126, align 8
%453 = load %"class.std::__1::tuple.14"** %125
%454 = load %"class.std::__1::tuple.14"** %126
store %"class.std::__1::tuple.14"* %453, %"class.std::__1::tuple.14"** %123, align 8
store %"class.std::__1::tuple.14"* %454, %"class.std::__1::tuple.14"** %124, align 8
%455 = load %"class.std::__1::tuple.14"** %123
%456 = getelementptr inbounds %"class.std::__1::tuple.14"* %455, i32 0, i32 0
%457 = load %"class.std::__1::tuple.14"** %124, align 8
store %"class.std::__1::tuple.14"* %457, %"class.std::__1::tuple.14"** %122, align 8
%458 = load %"class.std::__1::tuple.14"** %122, align 8
store %"struct.std::__1::__tuple_impl.15"* %456, %"struct.std::__1::__tuple_impl.15"** %120, align 8
store %"class.std::__1::tuple.14"* %458, %"class.std::__1::tuple.14"** %121, align 8
%459 = load %"struct.std::__1::__tuple_impl.15"** %120
%460 = load %"class.std::__1::tuple.14"** %121
store %"struct.std::__1::__tuple_impl.15"* %459, %"struct.std::__1::__tuple_impl.15"** %118, align 8
store %"class.std::__1::tuple.14"* %460, %"class.std::__1::tuple.14"** %119, align 8
%461 = load %"struct.std::__1::__tuple_impl.15"** %118
%462 = bitcast %"struct.std::__1::__tuple_impl.15"* %461 to %"class.std::__1::__tuple_leaf.16"*
%463 = load %"class.std::__1::tuple.14"** %119, align 8
store %"class.std::__1::tuple.14"* %463, %"class.std::__1::tuple.14"** %117, align 8
%464 = load %"class.std::__1::tuple.14"** %117, align 8
%465 = getelementptr inbounds %"class.std::__1::tuple.14"* %464, i32 0, i32 0
%466 = bitcast %"struct.std::__1::__tuple_impl.15"* %465 to %"class.std::__1::__tuple_leaf.16"*
store %"class.std::__1::__tuple_leaf.16"* %466, %"class.std::__1::__tuple_leaf.16"** %116, align 8
%467 = load %"class.std::__1::__tuple_leaf.16"** %116
%468 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %467, i32 0, i32 0
%469 = load %"class.std::__1::allocator"** %468, align 8
store %"class.std::__1::allocator"* %469, %"class.std::__1::allocator"** %112, align 8
%470 = load %"class.std::__1::allocator"** %112, align 8
store %"class.std::__1::__tuple_leaf.16"* %462, %"class.std::__1::__tuple_leaf.16"** %114, align 8
store %"class.std::__1::allocator"* %470, %"class.std::__1::allocator"** %115, align 8
%471 = load %"class.std::__1::__tuple_leaf.16"** %114
%472 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %471, i32 0, i32 0
%473 = load %"class.std::__1::allocator"** %115, align 8
store %"class.std::__1::allocator"* %473, %"class.std::__1::allocator"** %113, align 8
%474 = load %"class.std::__1::allocator"** %113, align 8
store %"class.std::__1::allocator"* %474, %"class.std::__1::allocator"** %472, align 8
store %"class.std::__1::tuple.14"* %203, %"class.std::__1::tuple.14"** %143, align 8
store %"class.std::__1::tuple.14"* %204, %"class.std::__1::tuple.14"** %144, align 8
%475 = load %"class.std::__1::tuple.14"** %143
%476 = load %"class.std::__1::tuple.14"** %144
store %"class.std::__1::tuple.14"* %475, %"class.std::__1::tuple.14"** %141, align 8
store %"class.std::__1::tuple.14"* %476, %"class.std::__1::tuple.14"** %142, align 8
%477 = load %"class.std::__1::tuple.14"** %141
%478 = getelementptr inbounds %"class.std::__1::tuple.14"* %477, i32 0, i32 0
%479 = load %"class.std::__1::tuple.14"** %142, align 8
store %"class.std::__1::tuple.14"* %479, %"class.std::__1::tuple.14"** %140, align 8
%480 = load %"class.std::__1::tuple.14"** %140, align 8
store %"struct.std::__1::__tuple_impl.15"* %478, %"struct.std::__1::__tuple_impl.15"** %138, align 8
store %"class.std::__1::tuple.14"* %480, %"class.std::__1::tuple.14"** %139, align 8
%481 = load %"struct.std::__1::__tuple_impl.15"** %138
%482 = load %"class.std::__1::tuple.14"** %139
store %"struct.std::__1::__tuple_impl.15"* %481, %"struct.std::__1::__tuple_impl.15"** %136, align 8
store %"class.std::__1::tuple.14"* %482, %"class.std::__1::tuple.14"** %137, align 8
%483 = load %"struct.std::__1::__tuple_impl.15"** %136
%484 = bitcast %"struct.std::__1::__tuple_impl.15"* %483 to %"class.std::__1::__tuple_leaf.16"*
%485 = load %"class.std::__1::tuple.14"** %137, align 8
store %"class.std::__1::tuple.14"* %485, %"class.std::__1::tuple.14"** %135, align 8
%486 = load %"class.std::__1::tuple.14"** %135, align 8
%487 = getelementptr inbounds %"class.std::__1::tuple.14"* %486, i32 0, i32 0
%488 = bitcast %"struct.std::__1::__tuple_impl.15"* %487 to %"class.std::__1::__tuple_leaf.16"*
store %"class.std::__1::__tuple_leaf.16"* %488, %"class.std::__1::__tuple_leaf.16"** %134, align 8
%489 = load %"class.std::__1::__tuple_leaf.16"** %134
%490 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %489, i32 0, i32 0
%491 = load %"class.std::__1::allocator"** %490, align 8
store %"class.std::__1::allocator"* %491, %"class.std::__1::allocator"** %130, align 8
%492 = load %"class.std::__1::allocator"** %130, align 8
store %"class.std::__1::__tuple_leaf.16"* %484, %"class.std::__1::__tuple_leaf.16"** %132, align 8
store %"class.std::__1::allocator"* %492, %"class.std::__1::allocator"** %133, align 8
%493 = load %"class.std::__1::__tuple_leaf.16"** %132
%494 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %493, i32 0, i32 0
%495 = load %"class.std::__1::allocator"** %133, align 8
store %"class.std::__1::allocator"* %495, %"class.std::__1::allocator"** %131, align 8
%496 = load %"class.std::__1::allocator"** %131, align 8
store %"class.std::__1::allocator"* %496, %"class.std::__1::allocator"** %494, align 8
store %"class.std::__1::__compressed_pair"* %370, %"class.std::__1::__compressed_pair"** %192, align 8
%497 = load %"class.std::__1::__compressed_pair"** %192
store %"class.std::__1::__compressed_pair"* %497, %"class.std::__1::__compressed_pair"** %186, align 8
%498 = load %"class.std::__1::__compressed_pair"** %186
%499 = bitcast %"class.std::__1::__compressed_pair"* %498 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::tuple.3"* %199, %"class.std::__1::tuple.3"** %185, align 8
%500 = load %"class.std::__1::tuple.3"** %185, align 8
store %"class.std::__1::tuple.3"* %188, %"class.std::__1::tuple.3"** %158, align 8
store %"class.std::__1::tuple.3"* %500, %"class.std::__1::tuple.3"** %159, align 8
%501 = load %"class.std::__1::tuple.3"** %158
%502 = load %"class.std::__1::tuple.3"** %159
store %"class.std::__1::tuple.3"* %501, %"class.std::__1::tuple.3"** %156, align 8
store %"class.std::__1::tuple.3"* %502, %"class.std::__1::tuple.3"** %157, align 8
%503 = load %"class.std::__1::tuple.3"** %156
%504 = getelementptr inbounds %"class.std::__1::tuple.3"* %503, i32 0, i32 0
%505 = load %"class.std::__1::tuple.3"** %157, align 8
store %"class.std::__1::tuple.3"* %505, %"class.std::__1::tuple.3"** %155, align 8
%506 = load %"class.std::__1::tuple.3"** %155, align 8
store %"struct.std::__1::__tuple_impl.4"* %504, %"struct.std::__1::__tuple_impl.4"** %153, align 8
store %"class.std::__1::tuple.3"* %506, %"class.std::__1::tuple.3"** %154, align 8
%507 = load %"struct.std::__1::__tuple_impl.4"** %153
%508 = load %"class.std::__1::tuple.3"** %154
store %"struct.std::__1::__tuple_impl.4"* %507, %"struct.std::__1::__tuple_impl.4"** %151, align 8
store %"class.std::__1::tuple.3"* %508, %"class.std::__1::tuple.3"** %152, align 8
%509 = load %"struct.std::__1::__tuple_impl.4"** %151
%510 = bitcast %"struct.std::__1::__tuple_impl.4"* %509 to %"class.std::__1::__tuple_leaf.5"*
%511 = load %"class.std::__1::tuple.3"** %152, align 8
store %"class.std::__1::tuple.3"* %511, %"class.std::__1::tuple.3"** %150, align 8
%512 = load %"class.std::__1::tuple.3"** %150, align 8
%513 = getelementptr inbounds %"class.std::__1::tuple.3"* %512, i32 0, i32 0
%514 = bitcast %"struct.std::__1::__tuple_impl.4"* %513 to %"class.std::__1::__tuple_leaf.5"*
store %"class.std::__1::__tuple_leaf.5"* %514, %"class.std::__1::__tuple_leaf.5"** %149, align 8
%515 = load %"class.std::__1::__tuple_leaf.5"** %149
%516 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %515, i32 0, i32 0
%517 = load %class.anon** %516, align 8
store %class.anon* %517, %class.anon** %145, align 8
%518 = load %class.anon** %145, align 8
store %"class.std::__1::__tuple_leaf.5"* %510, %"class.std::__1::__tuple_leaf.5"** %147, align 8
store %class.anon* %518, %class.anon** %148, align 8
%519 = load %"class.std::__1::__tuple_leaf.5"** %147
%520 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %519, i32 0, i32 0
%521 = load %class.anon** %148, align 8
store %class.anon* %521, %class.anon** %146, align 8
%522 = load %class.anon** %146, align 8
store %class.anon* %522, %class.anon** %520, align 8
store %"class.std::__1::tuple.14"* %203, %"class.std::__1::tuple.14"** %160, align 8
%523 = load %"class.std::__1::tuple.14"** %160, align 8
store %"class.std::__1::tuple.14"* %189, %"class.std::__1::tuple.14"** %174, align 8
store %"class.std::__1::tuple.14"* %523, %"class.std::__1::tuple.14"** %175, align 8
%524 = load %"class.std::__1::tuple.14"** %174
%525 = load %"class.std::__1::tuple.14"** %175
store %"class.std::__1::tuple.14"* %524, %"class.std::__1::tuple.14"** %172, align 8
store %"class.std::__1::tuple.14"* %525, %"class.std::__1::tuple.14"** %173, align 8
%526 = load %"class.std::__1::tuple.14"** %172
%527 = getelementptr inbounds %"class.std::__1::tuple.14"* %526, i32 0, i32 0
%528 = load %"class.std::__1::tuple.14"** %173, align 8
store %"class.std::__1::tuple.14"* %528, %"class.std::__1::tuple.14"** %171, align 8
%529 = load %"class.std::__1::tuple.14"** %171, align 8
store %"struct.std::__1::__tuple_impl.15"* %527, %"struct.std::__1::__tuple_impl.15"** %169, align 8
store %"class.std::__1::tuple.14"* %529, %"class.std::__1::tuple.14"** %170, align 8
%530 = load %"struct.std::__1::__tuple_impl.15"** %169
%531 = load %"class.std::__1::tuple.14"** %170
store %"struct.std::__1::__tuple_impl.15"* %530, %"struct.std::__1::__tuple_impl.15"** %167, align 8
store %"class.std::__1::tuple.14"* %531, %"class.std::__1::tuple.14"** %168, align 8
%532 = load %"struct.std::__1::__tuple_impl.15"** %167
%533 = bitcast %"struct.std::__1::__tuple_impl.15"* %532 to %"class.std::__1::__tuple_leaf.16"*
%534 = load %"class.std::__1::tuple.14"** %168, align 8
store %"class.std::__1::tuple.14"* %534, %"class.std::__1::tuple.14"** %166, align 8
%535 = load %"class.std::__1::tuple.14"** %166, align 8
%536 = getelementptr inbounds %"class.std::__1::tuple.14"* %535, i32 0, i32 0
%537 = bitcast %"struct.std::__1::__tuple_impl.15"* %536 to %"class.std::__1::__tuple_leaf.16"*
store %"class.std::__1::__tuple_leaf.16"* %537, %"class.std::__1::__tuple_leaf.16"** %165, align 8
%538 = load %"class.std::__1::__tuple_leaf.16"** %165
%539 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %538, i32 0, i32 0
%540 = load %"class.std::__1::allocator"** %539, align 8
store %"class.std::__1::allocator"* %540, %"class.std::__1::allocator"** %161, align 8
%541 = load %"class.std::__1::allocator"** %161, align 8
store %"class.std::__1::__tuple_leaf.16"* %533, %"class.std::__1::__tuple_leaf.16"** %163, align 8
store %"class.std::__1::allocator"* %541, %"class.std::__1::allocator"** %164, align 8
%542 = load %"class.std::__1::__tuple_leaf.16"** %163
%543 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %542, i32 0, i32 0
%544 = load %"class.std::__1::allocator"** %164, align 8
store %"class.std::__1::allocator"* %544, %"class.std::__1::allocator"** %162, align 8
%545 = load %"class.std::__1::allocator"** %162, align 8
store %"class.std::__1::allocator"* %545, %"class.std::__1::allocator"** %543, align 8
store %"class.std::__1::__libcpp_compressed_pair_imp"* %499, %"class.std::__1::__libcpp_compressed_pair_imp"** %182, align 8
%546 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %182
%547 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %546 to %class.anon*
store %"class.std::__1::tuple.3"* %188, %"class.std::__1::tuple.3"** %181, align 8
%548 = load %"class.std::__1::tuple.3"** %181, align 8
%549 = getelementptr inbounds %"class.std::__1::tuple.3"* %548, i32 0, i32 0
%550 = bitcast %"struct.std::__1::__tuple_impl.4"* %549 to %"class.std::__1::__tuple_leaf.5"*
store %"class.std::__1::__tuple_leaf.5"* %550, %"class.std::__1::__tuple_leaf.5"** %180, align 8
%551 = load %"class.std::__1::__tuple_leaf.5"** %180
%552 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %551, i32 0, i32 0
%553 = load %class.anon** %552, align 8
store %class.anon* %553, %class.anon** %176, align 8
%554 = load %class.anon** %176, align 8
%555 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %546 to %"class.std::__1::allocator"*
store %"class.std::__1::tuple.14"* %189, %"class.std::__1::tuple.14"** %178, align 8
%556 = load %"class.std::__1::tuple.14"** %178, align 8
%557 = getelementptr inbounds %"class.std::__1::tuple.14"* %556, i32 0, i32 0
%558 = bitcast %"struct.std::__1::__tuple_impl.15"* %557 to %"class.std::__1::__tuple_leaf.16"*
store %"class.std::__1::__tuple_leaf.16"* %558, %"class.std::__1::__tuple_leaf.16"** %177, align 8
%559 = load %"class.std::__1::__tuple_leaf.16"** %177
%560 = getelementptr inbounds %"class.std::__1::__tuple_leaf.16"* %559, i32 0, i32 0
%561 = load %"class.std::__1::allocator"** %560, align 8
store %"class.std::__1::allocator"* %561, %"class.std::__1::allocator"** %179, align 8
%562 = load %"class.std::__1::allocator"** %179, align 8
br label %563
; <label>:563 ; preds = %352
br label %564
; <label>:564 ; preds = %563, %0
%565 = phi %"class.std::__1::__function::__func"* [ %353, %563 ], [ null, %0 ]
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %212, align 8
%566 = load %"class.std::__1::unique_ptr"** %212
%567 = getelementptr inbounds %"class.std::__1::unique_ptr"* %566, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %567, %"class.std::__1::__compressed_pair.12"** %211, align 8
%568 = load %"class.std::__1::__compressed_pair.12"** %211
%569 = bitcast %"class.std::__1::__compressed_pair.12"* %568 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %569, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %210, align 8
%570 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %210
%571 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %570, i32 0, i32 0
%572 = load %"class.std::__1::__function::__func"** %571
store %"class.std::__1::__function::__func"* %572, %"class.std::__1::__function::__func"** %__t.i, align 8
%573 = getelementptr inbounds %"class.std::__1::unique_ptr"* %566, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %573, %"class.std::__1::__compressed_pair.12"** %209, align 8
%574 = load %"class.std::__1::__compressed_pair.12"** %209
%575 = bitcast %"class.std::__1::__compressed_pair.12"* %574 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %575, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %208, align 8
%576 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %208
%577 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %576, i32 0, i32 0
store %"class.std::__1::__function::__func"* null, %"class.std::__1::__function::__func"** %577
%578 = load %"class.std::__1::__function::__func"** %__t.i, align 8
%579 = bitcast %"class.std::__1::__function::__func"* %578 to %"class.std::__1::__function::__base"*
store i32 1, i32* %269
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %239, align 8
%580 = load %"class.std::__1::unique_ptr"** %239
store %"class.std::__1::unique_ptr"* %580, %"class.std::__1::unique_ptr"** %238, align 8
%581 = load %"class.std::__1::unique_ptr"** %238
store %"class.std::__1::unique_ptr"* %581, %"class.std::__1::unique_ptr"** %236, align 8
store %"class.std::__1::__function::__func"* null, %"class.std::__1::__function::__func"** %237, align 8
%582 = load %"class.std::__1::unique_ptr"** %236
%583 = getelementptr inbounds %"class.std::__1::unique_ptr"* %582, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %583, %"class.std::__1::__compressed_pair.12"** %235, align 8
%584 = load %"class.std::__1::__compressed_pair.12"** %235
%585 = bitcast %"class.std::__1::__compressed_pair.12"* %584 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %585, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %234, align 8
%586 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %234
%587 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %586, i32 0, i32 0
%588 = load %"class.std::__1::__function::__func"** %587
store %"class.std::__1::__function::__func"* %588, %"class.std::__1::__function::__func"** %__tmp.i.i.i1, align 8
%589 = load %"class.std::__1::__function::__func"** %237, align 8
%590 = getelementptr inbounds %"class.std::__1::unique_ptr"* %582, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %590, %"class.std::__1::__compressed_pair.12"** %225, align 8
%591 = load %"class.std::__1::__compressed_pair.12"** %225
%592 = bitcast %"class.std::__1::__compressed_pair.12"* %591 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %592, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %224, align 8
%593 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %224
%594 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %593, i32 0, i32 0
store %"class.std::__1::__function::__func"* %589, %"class.std::__1::__function::__func"** %594
%595 = load %"class.std::__1::__function::__func"** %__tmp.i.i.i1, align 8
%596 = icmp ne %"class.std::__1::__function::__func"* %595, null
br i1 %596, label %597, label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit2"
; <label>:597 ; preds = %564
%598 = getelementptr inbounds %"class.std::__1::unique_ptr"* %582, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %598, %"class.std::__1::__compressed_pair.12"** %223, align 8
%599 = load %"class.std::__1::__compressed_pair.12"** %223
%600 = bitcast %"class.std::__1::__compressed_pair.12"* %599 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %600, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %222, align 8
%601 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %222
%602 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %601, i32 0, i32 1
%603 = load %"class.std::__1::__function::__func"** %__tmp.i.i.i1, align 8
store %"class.std::__1::__allocator_destructor"* %602, %"class.std::__1::__allocator_destructor"** %232, align 8
store %"class.std::__1::__function::__func"* %603, %"class.std::__1::__function::__func"** %233, align 8
%604 = load %"class.std::__1::__allocator_destructor"** %232
%605 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %604, i32 0, i32 0
%606 = load %"class.std::__1::allocator.1"** %605, align 8
%607 = load %"class.std::__1::__function::__func"** %233, align 8
%608 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %604, i32 0, i32 1
%609 = load i64* %608, align 8
store %"class.std::__1::allocator.1"* %606, %"class.std::__1::allocator.1"** %229, align 8
store %"class.std::__1::__function::__func"* %607, %"class.std::__1::__function::__func"** %230, align 8
store i64 %609, i64* %231, align 8
%610 = load %"class.std::__1::allocator.1"** %229, align 8
%611 = load %"class.std::__1::__function::__func"** %230, align 8
%612 = load i64* %231, align 8
store %"class.std::__1::allocator.1"* %610, %"class.std::__1::allocator.1"** %226, align 8
store %"class.std::__1::__function::__func"* %611, %"class.std::__1::__function::__func"** %227, align 8
store i64 %612, i64* %228, align 8
%613 = load %"class.std::__1::allocator.1"** %226
%614 = load %"class.std::__1::__function::__func"** %227, align 8
%615 = bitcast %"class.std::__1::__function::__func"* %614 to i8*
call void @_ZdlPv(i8* %615) nounwind
br label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit2"
"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit2": ; preds = %564, %597
ret %"class.std::__1::__function::__base"* %579
; No predecessors!
%617 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
cleanup
%618 = extractvalue { i8*, i32 } %617, 0
store i8* %618, i8** %267
%619 = extractvalue { i8*, i32 } %617, 1
store i32 %619, i32* %268
store %"class.std::__1::unique_ptr"* %__hold, %"class.std::__1::unique_ptr"** %261, align 8
%620 = load %"class.std::__1::unique_ptr"** %261
store %"class.std::__1::unique_ptr"* %620, %"class.std::__1::unique_ptr"** %260, align 8
%621 = load %"class.std::__1::unique_ptr"** %260
store %"class.std::__1::unique_ptr"* %621, %"class.std::__1::unique_ptr"** %258, align 8
store %"class.std::__1::__function::__func"* null, %"class.std::__1::__function::__func"** %259, align 8
%622 = load %"class.std::__1::unique_ptr"** %258
%623 = getelementptr inbounds %"class.std::__1::unique_ptr"* %622, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %623, %"class.std::__1::__compressed_pair.12"** %257, align 8
%624 = load %"class.std::__1::__compressed_pair.12"** %257
%625 = bitcast %"class.std::__1::__compressed_pair.12"* %624 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %625, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %256, align 8
%626 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %256
%627 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %626, i32 0, i32 0
%628 = load %"class.std::__1::__function::__func"** %627
store %"class.std::__1::__function::__func"* %628, %"class.std::__1::__function::__func"** %__tmp.i.i.i, align 8
%629 = load %"class.std::__1::__function::__func"** %259, align 8
%630 = getelementptr inbounds %"class.std::__1::unique_ptr"* %622, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %630, %"class.std::__1::__compressed_pair.12"** %247, align 8
%631 = load %"class.std::__1::__compressed_pair.12"** %247
%632 = bitcast %"class.std::__1::__compressed_pair.12"* %631 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %632, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %246, align 8
%633 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %246
%634 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %633, i32 0, i32 0
store %"class.std::__1::__function::__func"* %629, %"class.std::__1::__function::__func"** %634
%635 = load %"class.std::__1::__function::__func"** %__tmp.i.i.i, align 8
%636 = icmp ne %"class.std::__1::__function::__func"* %635, null
br i1 %636, label %637, label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit"
; <label>:637 ; preds = %616
%638 = getelementptr inbounds %"class.std::__1::unique_ptr"* %622, i32 0, i32 0
store %"class.std::__1::__compressed_pair.12"* %638, %"class.std::__1::__compressed_pair.12"** %245, align 8
%639 = load %"class.std::__1::__compressed_pair.12"** %245
%640 = bitcast %"class.std::__1::__compressed_pair.12"* %639 to %"class.std::__1::__libcpp_compressed_pair_imp.13"*
store %"class.std::__1::__libcpp_compressed_pair_imp.13"* %640, %"class.std::__1::__libcpp_compressed_pair_imp.13"** %244, align 8
%641 = load %"class.std::__1::__libcpp_compressed_pair_imp.13"** %244
%642 = getelementptr inbounds %"class.std::__1::__libcpp_compressed_pair_imp.13"* %641, i32 0, i32 1
%643 = load %"class.std::__1::__function::__func"** %__tmp.i.i.i, align 8
store %"class.std::__1::__allocator_destructor"* %642, %"class.std::__1::__allocator_destructor"** %254, align 8
store %"class.std::__1::__function::__func"* %643, %"class.std::__1::__function::__func"** %255, align 8
%644 = load %"class.std::__1::__allocator_destructor"** %254
%645 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %644, i32 0, i32 0
%646 = load %"class.std::__1::allocator.1"** %645, align 8
%647 = load %"class.std::__1::__function::__func"** %255, align 8
%648 = getelementptr inbounds %"class.std::__1::__allocator_destructor"* %644, i32 0, i32 1
%649 = load i64* %648, align 8
store %"class.std::__1::allocator.1"* %646, %"class.std::__1::allocator.1"** %251, align 8
store %"class.std::__1::__function::__func"* %647, %"class.std::__1::__function::__func"** %252, align 8
store i64 %649, i64* %253, align 8
%650 = load %"class.std::__1::allocator.1"** %251, align 8
%651 = load %"class.std::__1::__function::__func"** %252, align 8
%652 = load i64* %253, align 8
store %"class.std::__1::allocator.1"* %650, %"class.std::__1::allocator.1"** %248, align 8
store %"class.std::__1::__function::__func"* %651, %"class.std::__1::__function::__func"** %249, align 8
store i64 %652, i64* %250, align 8
%653 = load %"class.std::__1::allocator.1"** %248
%654 = load %"class.std::__1::__function::__func"** %249, align 8
%655 = bitcast %"class.std::__1::__function::__func"* %654 to i8*
call void @_ZdlPv(i8* %655) nounwind
br label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit"
"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit": ; preds = %616, %637
br label %656
; <label>:656 ; preds = %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit"
%657 = load i8** %267
%658 = load i32* %268
%659 = insertvalue { i8*, i32 } undef, i8* %657, 0
%660 = insertvalue { i8*, i32 } %659, i32 %658, 1
resume { i8*, i32 } %660
}
define internal void @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE"(%"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__base"* %__p) uwtable ssp align 2 {
%1 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%2 = alloca %"class.std::__1::__compressed_pair"*, align 8
%3 = alloca %class.anon*, align 8
%4 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%5 = alloca %class.anon*, align 8
%6 = alloca %class.anon*, align 8
%7 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%8 = alloca %"struct.std::__1::__tuple_indices", align 1
%9 = alloca %"struct.std::__1::__tuple_types.11", align 1
%10 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%11 = alloca %"struct.std::__1::__tuple_types.10", align 1
%12 = alloca %class.anon*, align 8
%13 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%14 = alloca %"struct.std::__1::__tuple_indices", align 1
%15 = alloca %"struct.std::__1::__tuple_types.11", align 1
%16 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%17 = alloca %"struct.std::__1::__tuple_types.10", align 1
%18 = alloca %class.anon*, align 8
%19 = alloca %"class.std::__1::tuple.3"*, align 8
%20 = alloca %class.anon*, align 8
%21 = alloca %"struct.std::__1::__tuple_indices", align 1
%22 = alloca %"struct.std::__1::__tuple_types.11", align 1
%23 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%24 = alloca %"struct.std::__1::__tuple_types.10", align 1
%25 = alloca %"class.std::__1::tuple.3"*, align 8
%26 = alloca %class.anon*, align 8
%27 = alloca %class.anon*, align 8
%28 = alloca %class.anon*, align 8
%29 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%30 = alloca %class.anon*, align 8
%31 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%32 = alloca %"class.std::__1::tuple.3"*, align 8
%33 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%34 = alloca %"class.std::__1::tuple.3"*, align 8
%35 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%36 = alloca %"class.std::__1::tuple.3"*, align 8
%37 = alloca %"class.std::__1::tuple.3"*, align 8
%38 = alloca %"class.std::__1::tuple.3"*, align 8
%39 = alloca %"class.std::__1::tuple.3"*, align 8
%40 = alloca %"class.std::__1::tuple.3"*, align 8
%41 = alloca %"class.std::__1::tuple.3"*, align 8
%42 = alloca %class.anon*, align 8
%43 = alloca %class.anon*, align 8
%44 = alloca %"class.std::__1::tuple.3", align 8
%45 = alloca %class.anon*, align 8
%46 = alloca %class.anon*, align 8
%47 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%48 = alloca %class.anon*, align 8
%49 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%50 = alloca %"class.std::__1::tuple.3"*, align 8
%51 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%52 = alloca %"class.std::__1::tuple.3"*, align 8
%53 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%54 = alloca %"class.std::__1::tuple.3"*, align 8
%55 = alloca %"class.std::__1::tuple.3"*, align 8
%56 = alloca %"class.std::__1::tuple.3"*, align 8
%57 = alloca %"class.std::__1::tuple.3"*, align 8
%58 = alloca %"class.std::__1::tuple.3"*, align 8
%59 = alloca %"class.std::__1::tuple.3"*, align 8
%60 = alloca %"class.std::__1::allocator"*, align 8
%61 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8
%62 = alloca %"class.std::__1::allocator"*, align 8
%63 = alloca %"class.std::__1::allocator"*, align 8
%64 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8
%65 = alloca %"struct.std::__1::__tuple_indices", align 1
%66 = alloca %"struct.std::__1::__tuple_types", align 1
%67 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%68 = alloca %"struct.std::__1::__tuple_types.10", align 1
%69 = alloca %"class.std::__1::allocator"*, align 8
%70 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8
%71 = alloca %"struct.std::__1::__tuple_indices", align 1
%72 = alloca %"struct.std::__1::__tuple_types", align 1
%73 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%74 = alloca %"struct.std::__1::__tuple_types.10", align 1
%75 = alloca %"class.std::__1::allocator"*, align 8
%76 = alloca %"class.std::__1::tuple.6"*, align 8
%77 = alloca %"class.std::__1::allocator"*, align 8
%78 = alloca %"struct.std::__1::__tuple_indices", align 1
%79 = alloca %"struct.std::__1::__tuple_types", align 1
%80 = alloca %"struct.std::__1::__tuple_indices.9", align 1
%81 = alloca %"struct.std::__1::__tuple_types.10", align 1
%82 = alloca %"class.std::__1::tuple.6"*, align 8
%83 = alloca %"class.std::__1::allocator"*, align 8
%84 = alloca %"class.std::__1::allocator"*, align 8
%85 = alloca %"class.std::__1::allocator"*, align 8
%86 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8
%87 = alloca %"class.std::__1::allocator"*, align 8
%88 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8
%89 = alloca %"class.std::__1::tuple.6"*, align 8
%90 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8
%91 = alloca %"class.std::__1::tuple.6"*, align 8
%92 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8
%93 = alloca %"class.std::__1::tuple.6"*, align 8
%94 = alloca %"class.std::__1::tuple.6"*, align 8
%95 = alloca %"class.std::__1::tuple.6"*, align 8
%96 = alloca %"class.std::__1::tuple.6"*, align 8
%97 = alloca %"class.std::__1::tuple.6"*, align 8
%98 = alloca %"class.std::__1::tuple.6"*, align 8
%99 = alloca %"class.std::__1::allocator"*, align 8
%100 = alloca %"class.std::__1::allocator"*, align 8
%101 = alloca %"class.std::__1::tuple.6", align 8
%102 = alloca %"class.std::__1::allocator"*, align 8
%103 = alloca %"class.std::__1::allocator"*, align 8
%104 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8
%105 = alloca %"class.std::__1::allocator"*, align 8
%106 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8
%107 = alloca %"class.std::__1::tuple.6"*, align 8
%108 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8
%109 = alloca %"class.std::__1::tuple.6"*, align 8
%110 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8
%111 = alloca %"class.std::__1::tuple.6"*, align 8
%112 = alloca %"class.std::__1::tuple.6"*, align 8
%113 = alloca %"class.std::__1::tuple.6"*, align 8
%114 = alloca %"class.std::__1::tuple.6"*, align 8
%115 = alloca %"class.std::__1::tuple.6"*, align 8
%116 = alloca %"class.std::__1::tuple.6"*, align 8
%117 = alloca %class.anon*, align 8
%118 = alloca %class.anon*, align 8
%119 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%120 = alloca %class.anon*, align 8
%121 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%122 = alloca %"class.std::__1::tuple.3"*, align 8
%123 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%124 = alloca %"class.std::__1::tuple.3"*, align 8
%125 = alloca %"struct.std::__1::__tuple_impl.4"*, align 8
%126 = alloca %"class.std::__1::tuple.3"*, align 8
%127 = alloca %"class.std::__1::tuple.3"*, align 8
%128 = alloca %"class.std::__1::tuple.3"*, align 8
%129 = alloca %"class.std::__1::tuple.3"*, align 8
%130 = alloca %"class.std::__1::tuple.3"*, align 8
%131 = alloca %"class.std::__1::tuple.3"*, align 8
%132 = alloca %"class.std::__1::tuple.6"*, align 8
%133 = alloca %"class.std::__1::allocator"*, align 8
%134 = alloca %"class.std::__1::allocator"*, align 8
%135 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8
%136 = alloca %"class.std::__1::allocator"*, align 8
%137 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8
%138 = alloca %"class.std::__1::tuple.6"*, align 8
%139 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8
%140 = alloca %"class.std::__1::tuple.6"*, align 8
%141 = alloca %"struct.std::__1::__tuple_impl.7"*, align 8
%142 = alloca %"class.std::__1::tuple.6"*, align 8
%143 = alloca %"class.std::__1::tuple.6"*, align 8
%144 = alloca %"class.std::__1::tuple.6"*, align 8
%145 = alloca %"class.std::__1::tuple.6"*, align 8
%146 = alloca %"class.std::__1::tuple.6"*, align 8
%147 = alloca %"class.std::__1::tuple.6"*, align 8
%148 = alloca %class.anon*, align 8
%149 = alloca %"class.std::__1::__tuple_leaf.8"*, align 8
%150 = alloca %"class.std::__1::tuple.6"*, align 8
%151 = alloca %"class.std::__1::allocator"*, align 8
%152 = alloca %"class.std::__1::__tuple_leaf.5"*, align 8
%153 = alloca %"class.std::__1::tuple.3"*, align 8
%154 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%__pc.i.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%155 = alloca %"struct.std::__1::__tuple_indices", align 1
%156 = alloca %"struct.std::__1::__tuple_indices", align 1
%157 = alloca %"class.std::__1::tuple.3"*, align 8
%158 = alloca %"class.std::__1::__compressed_pair"*, align 8
%__pc.i.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%159 = alloca %"struct.std::__1::piecewise_construct_t", align 1
%160 = alloca %"class.std::__1::tuple.3", align 8
%161 = alloca %"class.std::__1::tuple.6", align 8
%162 = alloca %"struct.std::__1::__tuple_indices", align 1
%163 = alloca %"struct.std::__1::__tuple_indices", align 1
%164 = alloca %"class.std::__1::__compressed_pair"*, align 8
%__pc.i.i.i = alloca %"struct.std::__1::piecewise_construct_t", align 1
%165 = alloca %"class.std::__1::__function::__base"*, align 8
%166 = alloca %"class.std::__1::__function::__base"*, align 8
%167 = alloca %"class.std::__1::__function::__func"*, align 8
%168 = alloca %class.anon*, align 8
%169 = alloca %"class.std::__1::allocator"*, align 8
%170 = alloca %"struct.std::__1::piecewise_construct_t", align 1
%171 = alloca %"class.std::__1::tuple.3", align 8
%172 = alloca %"class.std::__1::tuple.3", align 8
%173 = alloca i8*
%174 = alloca i32
%175 = alloca %"class.std::__1::tuple.6", align 8
%176 = alloca %"class.std::__1::tuple.6", align 8
%177 = alloca %"class.std::__1::__function::__func"*, align 8
%178 = alloca %class.anon*, align 8
%179 = alloca %"class.std::__1::allocator"*, align 8
%180 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%181 = alloca %"class.std::__1::__compressed_pair"*, align 8
%182 = alloca %"class.std::__1::__function::__func"*, align 8
%183 = alloca %"class.std::__1::__function::__base"*, align 8
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %182, align 8
store %"class.std::__1::__function::__base"* %__p, %"class.std::__1::__function::__base"** %183, align 8
%184 = load %"class.std::__1::__function::__func"** %182
%185 = load %"class.std::__1::__function::__base"** %183, align 8
%186 = bitcast %"class.std::__1::__function::__base"* %185 to i8*
%187 = icmp eq i8* %186, null
br i1 %187, label %399, label %188
; <label>:188 ; preds = %0
%189 = bitcast i8* %186 to %"class.std::__1::__function::__func"*
%190 = getelementptr inbounds %"class.std::__1::__function::__func"* %184, i32 0, i32 1
store %"class.std::__1::__compressed_pair"* %190, %"class.std::__1::__compressed_pair"** %181, align 8
%191 = load %"class.std::__1::__compressed_pair"** %181
%192 = bitcast %"class.std::__1::__compressed_pair"* %191 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::__libcpp_compressed_pair_imp"* %192, %"class.std::__1::__libcpp_compressed_pair_imp"** %180, align 8
%193 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %180
%194 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %193 to %class.anon*
%195 = getelementptr inbounds %"class.std::__1::__function::__func"* %184, i32 0, i32 1
store %"class.std::__1::__compressed_pair"* %195, %"class.std::__1::__compressed_pair"** %2, align 8
%196 = load %"class.std::__1::__compressed_pair"** %2
%197 = bitcast %"class.std::__1::__compressed_pair"* %196 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::__libcpp_compressed_pair_imp"* %197, %"class.std::__1::__libcpp_compressed_pair_imp"** %1, align 8
%198 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %1
%199 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %198 to %"class.std::__1::allocator"*
store %"class.std::__1::__function::__func"* %189, %"class.std::__1::__function::__func"** %177, align 8
store %class.anon* %194, %class.anon** %178, align 8
store %"class.std::__1::allocator"* %199, %"class.std::__1::allocator"** %179, align 8
%200 = load %"class.std::__1::__function::__func"** %177
%201 = load %class.anon** %178
%202 = load %"class.std::__1::allocator"** %179
store %"class.std::__1::__function::__func"* %200, %"class.std::__1::__function::__func"** %167, align 8
store %class.anon* %201, %class.anon** %168, align 8
store %"class.std::__1::allocator"* %202, %"class.std::__1::allocator"** %169, align 8
%203 = load %"class.std::__1::__function::__func"** %167
%204 = bitcast %"class.std::__1::__function::__func"* %203 to %"class.std::__1::__function::__base"*
store %"class.std::__1::__function::__base"* %204, %"class.std::__1::__function::__base"** %166, align 8
%205 = load %"class.std::__1::__function::__base"** %166
%206 = bitcast %"class.std::__1::__function::__base"* %205 to i8***
store i8** getelementptr inbounds ([11 x i8*]* @_ZTVNSt3__110__function6__baseIFiiEEE, i64 0, i64 2), i8*** %206
%207 = bitcast %"class.std::__1::__function::__func"* %203 to i8***
store i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2), i8*** %207
%208 = getelementptr inbounds %"class.std::__1::__function::__func"* %203, i32 0, i32 1
%209 = load %class.anon** %168, align 8
store %class.anon* %209, %class.anon** %43, align 8
%210 = load %class.anon** %43, align 8
store %class.anon* %210, %class.anon** %42, align 8
%211 = load %class.anon** %42, align 8
store %"class.std::__1::tuple.3"* %44, %"class.std::__1::tuple.3"** %25, align 8
store %class.anon* %211, %class.anon** %26, align 8
%212 = load %"class.std::__1::tuple.3"** %25
%213 = load %class.anon** %26
store %"class.std::__1::tuple.3"* %212, %"class.std::__1::tuple.3"** %19, align 8
store %class.anon* %213, %class.anon** %20, align 8
%214 = load %"class.std::__1::tuple.3"** %19
%215 = getelementptr inbounds %"class.std::__1::tuple.3"* %214, i32 0, i32 0
%216 = load %class.anon** %20, align 8
store %"struct.std::__1::__tuple_impl.4"* %215, %"struct.std::__1::__tuple_impl.4"** %13, align 8
store %class.anon* %216, %class.anon** %18, align 8
%217 = load %"struct.std::__1::__tuple_impl.4"** %13
%218 = load %class.anon** %18
store %"struct.std::__1::__tuple_impl.4"* %217, %"struct.std::__1::__tuple_impl.4"** %7, align 8
store %class.anon* %218, %class.anon** %12, align 8
%219 = load %"struct.std::__1::__tuple_impl.4"** %7
%220 = bitcast %"struct.std::__1::__tuple_impl.4"* %219 to %"class.std::__1::__tuple_leaf.5"*
%221 = load %class.anon** %12, align 8
store %class.anon* %221, %class.anon** %6, align 8
%222 = load %class.anon** %6, align 8
store %"class.std::__1::__tuple_leaf.5"* %220, %"class.std::__1::__tuple_leaf.5"** %4, align 8
store %class.anon* %222, %class.anon** %5, align 8
%223 = load %"class.std::__1::__tuple_leaf.5"** %4
%224 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %223, i32 0, i32 0
%225 = load %class.anon** %5, align 8
store %class.anon* %225, %class.anon** %3, align 8
%226 = load %class.anon** %3, align 8
store %class.anon* %226, %class.anon** %224, align 8
store %"class.std::__1::tuple.3"* %172, %"class.std::__1::tuple.3"** %40, align 8
store %"class.std::__1::tuple.3"* %44, %"class.std::__1::tuple.3"** %41, align 8
%227 = load %"class.std::__1::tuple.3"** %40
%228 = load %"class.std::__1::tuple.3"** %41
store %"class.std::__1::tuple.3"* %227, %"class.std::__1::tuple.3"** %38, align 8
store %"class.std::__1::tuple.3"* %228, %"class.std::__1::tuple.3"** %39, align 8
%229 = load %"class.std::__1::tuple.3"** %38
%230 = getelementptr inbounds %"class.std::__1::tuple.3"* %229, i32 0, i32 0
%231 = load %"class.std::__1::tuple.3"** %39, align 8
store %"class.std::__1::tuple.3"* %231, %"class.std::__1::tuple.3"** %37, align 8
%232 = load %"class.std::__1::tuple.3"** %37, align 8
store %"struct.std::__1::__tuple_impl.4"* %230, %"struct.std::__1::__tuple_impl.4"** %35, align 8
store %"class.std::__1::tuple.3"* %232, %"class.std::__1::tuple.3"** %36, align 8
%233 = load %"struct.std::__1::__tuple_impl.4"** %35
%234 = load %"class.std::__1::tuple.3"** %36
store %"struct.std::__1::__tuple_impl.4"* %233, %"struct.std::__1::__tuple_impl.4"** %33, align 8
store %"class.std::__1::tuple.3"* %234, %"class.std::__1::tuple.3"** %34, align 8
%235 = load %"struct.std::__1::__tuple_impl.4"** %33
%236 = bitcast %"struct.std::__1::__tuple_impl.4"* %235 to %"class.std::__1::__tuple_leaf.5"*
%237 = load %"class.std::__1::tuple.3"** %34, align 8
store %"class.std::__1::tuple.3"* %237, %"class.std::__1::tuple.3"** %32, align 8
%238 = load %"class.std::__1::tuple.3"** %32, align 8
%239 = getelementptr inbounds %"class.std::__1::tuple.3"* %238, i32 0, i32 0
%240 = bitcast %"struct.std::__1::__tuple_impl.4"* %239 to %"class.std::__1::__tuple_leaf.5"*
store %"class.std::__1::__tuple_leaf.5"* %240, %"class.std::__1::__tuple_leaf.5"** %31, align 8
%241 = load %"class.std::__1::__tuple_leaf.5"** %31
%242 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %241, i32 0, i32 0
%243 = load %class.anon** %242, align 8
store %class.anon* %243, %class.anon** %27, align 8
%244 = load %class.anon** %27, align 8
store %"class.std::__1::__tuple_leaf.5"* %236, %"class.std::__1::__tuple_leaf.5"** %29, align 8
store %class.anon* %244, %class.anon** %30, align 8
%245 = load %"class.std::__1::__tuple_leaf.5"** %29
%246 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %245, i32 0, i32 0
%247 = load %class.anon** %30, align 8
store %class.anon* %247, %class.anon** %28, align 8
%248 = load %class.anon** %28, align 8
store %class.anon* %248, %class.anon** %246, align 8
store %"class.std::__1::tuple.3"* %171, %"class.std::__1::tuple.3"** %58, align 8
store %"class.std::__1::tuple.3"* %172, %"class.std::__1::tuple.3"** %59, align 8
%249 = load %"class.std::__1::tuple.3"** %58
%250 = load %"class.std::__1::tuple.3"** %59
store %"class.std::__1::tuple.3"* %249, %"class.std::__1::tuple.3"** %56, align 8
store %"class.std::__1::tuple.3"* %250, %"class.std::__1::tuple.3"** %57, align 8
%251 = load %"class.std::__1::tuple.3"** %56
%252 = getelementptr inbounds %"class.std::__1::tuple.3"* %251, i32 0, i32 0
%253 = load %"class.std::__1::tuple.3"** %57, align 8
store %"class.std::__1::tuple.3"* %253, %"class.std::__1::tuple.3"** %55, align 8
%254 = load %"class.std::__1::tuple.3"** %55, align 8
store %"struct.std::__1::__tuple_impl.4"* %252, %"struct.std::__1::__tuple_impl.4"** %53, align 8
store %"class.std::__1::tuple.3"* %254, %"class.std::__1::tuple.3"** %54, align 8
%255 = load %"struct.std::__1::__tuple_impl.4"** %53
%256 = load %"class.std::__1::tuple.3"** %54
store %"struct.std::__1::__tuple_impl.4"* %255, %"struct.std::__1::__tuple_impl.4"** %51, align 8
store %"class.std::__1::tuple.3"* %256, %"class.std::__1::tuple.3"** %52, align 8
%257 = load %"struct.std::__1::__tuple_impl.4"** %51
%258 = bitcast %"struct.std::__1::__tuple_impl.4"* %257 to %"class.std::__1::__tuple_leaf.5"*
%259 = load %"class.std::__1::tuple.3"** %52, align 8
store %"class.std::__1::tuple.3"* %259, %"class.std::__1::tuple.3"** %50, align 8
%260 = load %"class.std::__1::tuple.3"** %50, align 8
%261 = getelementptr inbounds %"class.std::__1::tuple.3"* %260, i32 0, i32 0
%262 = bitcast %"struct.std::__1::__tuple_impl.4"* %261 to %"class.std::__1::__tuple_leaf.5"*
store %"class.std::__1::__tuple_leaf.5"* %262, %"class.std::__1::__tuple_leaf.5"** %49, align 8
%263 = load %"class.std::__1::__tuple_leaf.5"** %49
%264 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %263, i32 0, i32 0
%265 = load %class.anon** %264, align 8
store %class.anon* %265, %class.anon** %45, align 8
%266 = load %class.anon** %45, align 8
store %"class.std::__1::__tuple_leaf.5"* %258, %"class.std::__1::__tuple_leaf.5"** %47, align 8
store %class.anon* %266, %class.anon** %48, align 8
%267 = load %"class.std::__1::__tuple_leaf.5"** %47
%268 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %267, i32 0, i32 0
%269 = load %class.anon** %48, align 8
store %class.anon* %269, %class.anon** %46, align 8
%270 = load %class.anon** %46, align 8
store %class.anon* %270, %class.anon** %268, align 8
%271 = load %"class.std::__1::allocator"** %169, align 8
store %"class.std::__1::allocator"* %271, %"class.std::__1::allocator"** %100, align 8
%272 = load %"class.std::__1::allocator"** %100, align 8
store %"class.std::__1::allocator"* %272, %"class.std::__1::allocator"** %99, align 8
%273 = load %"class.std::__1::allocator"** %99, align 8
store %"class.std::__1::tuple.6"* %101, %"class.std::__1::tuple.6"** %82, align 8
store %"class.std::__1::allocator"* %273, %"class.std::__1::allocator"** %83, align 8
%274 = load %"class.std::__1::tuple.6"** %82
%275 = load %"class.std::__1::allocator"** %83
store %"class.std::__1::tuple.6"* %274, %"class.std::__1::tuple.6"** %76, align 8
store %"class.std::__1::allocator"* %275, %"class.std::__1::allocator"** %77, align 8
%276 = load %"class.std::__1::tuple.6"** %76
%277 = getelementptr inbounds %"class.std::__1::tuple.6"* %276, i32 0, i32 0
%278 = load %"class.std::__1::allocator"** %77, align 8
store %"struct.std::__1::__tuple_impl.7"* %277, %"struct.std::__1::__tuple_impl.7"** %70, align 8
store %"class.std::__1::allocator"* %278, %"class.std::__1::allocator"** %75, align 8
%279 = load %"struct.std::__1::__tuple_impl.7"** %70
%280 = load %"class.std::__1::allocator"** %75
store %"struct.std::__1::__tuple_impl.7"* %279, %"struct.std::__1::__tuple_impl.7"** %64, align 8
store %"class.std::__1::allocator"* %280, %"class.std::__1::allocator"** %69, align 8
%281 = load %"struct.std::__1::__tuple_impl.7"** %64
%282 = bitcast %"struct.std::__1::__tuple_impl.7"* %281 to %"class.std::__1::__tuple_leaf.8"*
%283 = load %"class.std::__1::allocator"** %69, align 8
store %"class.std::__1::allocator"* %283, %"class.std::__1::allocator"** %63, align 8
%284 = load %"class.std::__1::allocator"** %63, align 8
store %"class.std::__1::__tuple_leaf.8"* %282, %"class.std::__1::__tuple_leaf.8"** %61, align 8
store %"class.std::__1::allocator"* %284, %"class.std::__1::allocator"** %62, align 8
%285 = load %"class.std::__1::__tuple_leaf.8"** %61
%286 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %285, i32 0, i32 0
%287 = load %"class.std::__1::allocator"** %62, align 8
store %"class.std::__1::allocator"* %287, %"class.std::__1::allocator"** %60, align 8
%288 = load %"class.std::__1::allocator"** %60, align 8
store %"class.std::__1::allocator"* %288, %"class.std::__1::allocator"** %286, align 8
store %"class.std::__1::tuple.6"* %176, %"class.std::__1::tuple.6"** %97, align 8
store %"class.std::__1::tuple.6"* %101, %"class.std::__1::tuple.6"** %98, align 8
%289 = load %"class.std::__1::tuple.6"** %97
%290 = load %"class.std::__1::tuple.6"** %98
store %"class.std::__1::tuple.6"* %289, %"class.std::__1::tuple.6"** %95, align 8
store %"class.std::__1::tuple.6"* %290, %"class.std::__1::tuple.6"** %96, align 8
%291 = load %"class.std::__1::tuple.6"** %95
%292 = getelementptr inbounds %"class.std::__1::tuple.6"* %291, i32 0, i32 0
%293 = load %"class.std::__1::tuple.6"** %96, align 8
store %"class.std::__1::tuple.6"* %293, %"class.std::__1::tuple.6"** %94, align 8
%294 = load %"class.std::__1::tuple.6"** %94, align 8
store %"struct.std::__1::__tuple_impl.7"* %292, %"struct.std::__1::__tuple_impl.7"** %92, align 8
store %"class.std::__1::tuple.6"* %294, %"class.std::__1::tuple.6"** %93, align 8
%295 = load %"struct.std::__1::__tuple_impl.7"** %92
%296 = load %"class.std::__1::tuple.6"** %93
store %"struct.std::__1::__tuple_impl.7"* %295, %"struct.std::__1::__tuple_impl.7"** %90, align 8
store %"class.std::__1::tuple.6"* %296, %"class.std::__1::tuple.6"** %91, align 8
%297 = load %"struct.std::__1::__tuple_impl.7"** %90
%298 = bitcast %"struct.std::__1::__tuple_impl.7"* %297 to %"class.std::__1::__tuple_leaf.8"*
%299 = load %"class.std::__1::tuple.6"** %91, align 8
store %"class.std::__1::tuple.6"* %299, %"class.std::__1::tuple.6"** %89, align 8
%300 = load %"class.std::__1::tuple.6"** %89, align 8
%301 = getelementptr inbounds %"class.std::__1::tuple.6"* %300, i32 0, i32 0
%302 = bitcast %"struct.std::__1::__tuple_impl.7"* %301 to %"class.std::__1::__tuple_leaf.8"*
store %"class.std::__1::__tuple_leaf.8"* %302, %"class.std::__1::__tuple_leaf.8"** %88, align 8
%303 = load %"class.std::__1::__tuple_leaf.8"** %88
%304 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %303, i32 0, i32 0
%305 = load %"class.std::__1::allocator"** %304, align 8
store %"class.std::__1::allocator"* %305, %"class.std::__1::allocator"** %84, align 8
%306 = load %"class.std::__1::allocator"** %84, align 8
store %"class.std::__1::__tuple_leaf.8"* %298, %"class.std::__1::__tuple_leaf.8"** %86, align 8
store %"class.std::__1::allocator"* %306, %"class.std::__1::allocator"** %87, align 8
%307 = load %"class.std::__1::__tuple_leaf.8"** %86
%308 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %307, i32 0, i32 0
%309 = load %"class.std::__1::allocator"** %87, align 8
store %"class.std::__1::allocator"* %309, %"class.std::__1::allocator"** %85, align 8
%310 = load %"class.std::__1::allocator"** %85, align 8
store %"class.std::__1::allocator"* %310, %"class.std::__1::allocator"** %308, align 8
store %"class.std::__1::tuple.6"* %175, %"class.std::__1::tuple.6"** %115, align 8
store %"class.std::__1::tuple.6"* %176, %"class.std::__1::tuple.6"** %116, align 8
%311 = load %"class.std::__1::tuple.6"** %115
%312 = load %"class.std::__1::tuple.6"** %116
store %"class.std::__1::tuple.6"* %311, %"class.std::__1::tuple.6"** %113, align 8
store %"class.std::__1::tuple.6"* %312, %"class.std::__1::tuple.6"** %114, align 8
%313 = load %"class.std::__1::tuple.6"** %113
%314 = getelementptr inbounds %"class.std::__1::tuple.6"* %313, i32 0, i32 0
%315 = load %"class.std::__1::tuple.6"** %114, align 8
store %"class.std::__1::tuple.6"* %315, %"class.std::__1::tuple.6"** %112, align 8
%316 = load %"class.std::__1::tuple.6"** %112, align 8
store %"struct.std::__1::__tuple_impl.7"* %314, %"struct.std::__1::__tuple_impl.7"** %110, align 8
store %"class.std::__1::tuple.6"* %316, %"class.std::__1::tuple.6"** %111, align 8
%317 = load %"struct.std::__1::__tuple_impl.7"** %110
%318 = load %"class.std::__1::tuple.6"** %111
store %"struct.std::__1::__tuple_impl.7"* %317, %"struct.std::__1::__tuple_impl.7"** %108, align 8
store %"class.std::__1::tuple.6"* %318, %"class.std::__1::tuple.6"** %109, align 8
%319 = load %"struct.std::__1::__tuple_impl.7"** %108
%320 = bitcast %"struct.std::__1::__tuple_impl.7"* %319 to %"class.std::__1::__tuple_leaf.8"*
%321 = load %"class.std::__1::tuple.6"** %109, align 8
store %"class.std::__1::tuple.6"* %321, %"class.std::__1::tuple.6"** %107, align 8
%322 = load %"class.std::__1::tuple.6"** %107, align 8
%323 = getelementptr inbounds %"class.std::__1::tuple.6"* %322, i32 0, i32 0
%324 = bitcast %"struct.std::__1::__tuple_impl.7"* %323 to %"class.std::__1::__tuple_leaf.8"*
store %"class.std::__1::__tuple_leaf.8"* %324, %"class.std::__1::__tuple_leaf.8"** %106, align 8
%325 = load %"class.std::__1::__tuple_leaf.8"** %106
%326 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %325, i32 0, i32 0
%327 = load %"class.std::__1::allocator"** %326, align 8
store %"class.std::__1::allocator"* %327, %"class.std::__1::allocator"** %102, align 8
%328 = load %"class.std::__1::allocator"** %102, align 8
store %"class.std::__1::__tuple_leaf.8"* %320, %"class.std::__1::__tuple_leaf.8"** %104, align 8
store %"class.std::__1::allocator"* %328, %"class.std::__1::allocator"** %105, align 8
%329 = load %"class.std::__1::__tuple_leaf.8"** %104
%330 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %329, i32 0, i32 0
%331 = load %"class.std::__1::allocator"** %105, align 8
store %"class.std::__1::allocator"* %331, %"class.std::__1::allocator"** %103, align 8
%332 = load %"class.std::__1::allocator"** %103, align 8
store %"class.std::__1::allocator"* %332, %"class.std::__1::allocator"** %330, align 8
store %"class.std::__1::__compressed_pair"* %208, %"class.std::__1::__compressed_pair"** %164, align 8
%333 = load %"class.std::__1::__compressed_pair"** %164
store %"class.std::__1::__compressed_pair"* %333, %"class.std::__1::__compressed_pair"** %158, align 8
%334 = load %"class.std::__1::__compressed_pair"** %158
%335 = bitcast %"class.std::__1::__compressed_pair"* %334 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::tuple.3"* %171, %"class.std::__1::tuple.3"** %157, align 8
%336 = load %"class.std::__1::tuple.3"** %157, align 8
store %"class.std::__1::tuple.3"* %160, %"class.std::__1::tuple.3"** %130, align 8
store %"class.std::__1::tuple.3"* %336, %"class.std::__1::tuple.3"** %131, align 8
%337 = load %"class.std::__1::tuple.3"** %130
%338 = load %"class.std::__1::tuple.3"** %131
store %"class.std::__1::tuple.3"* %337, %"class.std::__1::tuple.3"** %128, align 8
store %"class.std::__1::tuple.3"* %338, %"class.std::__1::tuple.3"** %129, align 8
%339 = load %"class.std::__1::tuple.3"** %128
%340 = getelementptr inbounds %"class.std::__1::tuple.3"* %339, i32 0, i32 0
%341 = load %"class.std::__1::tuple.3"** %129, align 8
store %"class.std::__1::tuple.3"* %341, %"class.std::__1::tuple.3"** %127, align 8
%342 = load %"class.std::__1::tuple.3"** %127, align 8
store %"struct.std::__1::__tuple_impl.4"* %340, %"struct.std::__1::__tuple_impl.4"** %125, align 8
store %"class.std::__1::tuple.3"* %342, %"class.std::__1::tuple.3"** %126, align 8
%343 = load %"struct.std::__1::__tuple_impl.4"** %125
%344 = load %"class.std::__1::tuple.3"** %126
store %"struct.std::__1::__tuple_impl.4"* %343, %"struct.std::__1::__tuple_impl.4"** %123, align 8
store %"class.std::__1::tuple.3"* %344, %"class.std::__1::tuple.3"** %124, align 8
%345 = load %"struct.std::__1::__tuple_impl.4"** %123
%346 = bitcast %"struct.std::__1::__tuple_impl.4"* %345 to %"class.std::__1::__tuple_leaf.5"*
%347 = load %"class.std::__1::tuple.3"** %124, align 8
store %"class.std::__1::tuple.3"* %347, %"class.std::__1::tuple.3"** %122, align 8
%348 = load %"class.std::__1::tuple.3"** %122, align 8
%349 = getelementptr inbounds %"class.std::__1::tuple.3"* %348, i32 0, i32 0
%350 = bitcast %"struct.std::__1::__tuple_impl.4"* %349 to %"class.std::__1::__tuple_leaf.5"*
store %"class.std::__1::__tuple_leaf.5"* %350, %"class.std::__1::__tuple_leaf.5"** %121, align 8
%351 = load %"class.std::__1::__tuple_leaf.5"** %121
%352 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %351, i32 0, i32 0
%353 = load %class.anon** %352, align 8
store %class.anon* %353, %class.anon** %117, align 8
%354 = load %class.anon** %117, align 8
store %"class.std::__1::__tuple_leaf.5"* %346, %"class.std::__1::__tuple_leaf.5"** %119, align 8
store %class.anon* %354, %class.anon** %120, align 8
%355 = load %"class.std::__1::__tuple_leaf.5"** %119
%356 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %355, i32 0, i32 0
%357 = load %class.anon** %120, align 8
store %class.anon* %357, %class.anon** %118, align 8
%358 = load %class.anon** %118, align 8
store %class.anon* %358, %class.anon** %356, align 8
store %"class.std::__1::tuple.6"* %175, %"class.std::__1::tuple.6"** %132, align 8
%359 = load %"class.std::__1::tuple.6"** %132, align 8
store %"class.std::__1::tuple.6"* %161, %"class.std::__1::tuple.6"** %146, align 8
store %"class.std::__1::tuple.6"* %359, %"class.std::__1::tuple.6"** %147, align 8
%360 = load %"class.std::__1::tuple.6"** %146
%361 = load %"class.std::__1::tuple.6"** %147
store %"class.std::__1::tuple.6"* %360, %"class.std::__1::tuple.6"** %144, align 8
store %"class.std::__1::tuple.6"* %361, %"class.std::__1::tuple.6"** %145, align 8
%362 = load %"class.std::__1::tuple.6"** %144
%363 = getelementptr inbounds %"class.std::__1::tuple.6"* %362, i32 0, i32 0
%364 = load %"class.std::__1::tuple.6"** %145, align 8
store %"class.std::__1::tuple.6"* %364, %"class.std::__1::tuple.6"** %143, align 8
%365 = load %"class.std::__1::tuple.6"** %143, align 8
store %"struct.std::__1::__tuple_impl.7"* %363, %"struct.std::__1::__tuple_impl.7"** %141, align 8
store %"class.std::__1::tuple.6"* %365, %"class.std::__1::tuple.6"** %142, align 8
%366 = load %"struct.std::__1::__tuple_impl.7"** %141
%367 = load %"class.std::__1::tuple.6"** %142
store %"struct.std::__1::__tuple_impl.7"* %366, %"struct.std::__1::__tuple_impl.7"** %139, align 8
store %"class.std::__1::tuple.6"* %367, %"class.std::__1::tuple.6"** %140, align 8
%368 = load %"struct.std::__1::__tuple_impl.7"** %139
%369 = bitcast %"struct.std::__1::__tuple_impl.7"* %368 to %"class.std::__1::__tuple_leaf.8"*
%370 = load %"class.std::__1::tuple.6"** %140, align 8
store %"class.std::__1::tuple.6"* %370, %"class.std::__1::tuple.6"** %138, align 8
%371 = load %"class.std::__1::tuple.6"** %138, align 8
%372 = getelementptr inbounds %"class.std::__1::tuple.6"* %371, i32 0, i32 0
%373 = bitcast %"struct.std::__1::__tuple_impl.7"* %372 to %"class.std::__1::__tuple_leaf.8"*
store %"class.std::__1::__tuple_leaf.8"* %373, %"class.std::__1::__tuple_leaf.8"** %137, align 8
%374 = load %"class.std::__1::__tuple_leaf.8"** %137
%375 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %374, i32 0, i32 0
%376 = load %"class.std::__1::allocator"** %375, align 8
store %"class.std::__1::allocator"* %376, %"class.std::__1::allocator"** %133, align 8
%377 = load %"class.std::__1::allocator"** %133, align 8
store %"class.std::__1::__tuple_leaf.8"* %369, %"class.std::__1::__tuple_leaf.8"** %135, align 8
store %"class.std::__1::allocator"* %377, %"class.std::__1::allocator"** %136, align 8
%378 = load %"class.std::__1::__tuple_leaf.8"** %135
%379 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %378, i32 0, i32 0
%380 = load %"class.std::__1::allocator"** %136, align 8
store %"class.std::__1::allocator"* %380, %"class.std::__1::allocator"** %134, align 8
%381 = load %"class.std::__1::allocator"** %134, align 8
store %"class.std::__1::allocator"* %381, %"class.std::__1::allocator"** %379, align 8
store %"class.std::__1::__libcpp_compressed_pair_imp"* %335, %"class.std::__1::__libcpp_compressed_pair_imp"** %154, align 8
%382 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %154
%383 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %382 to %class.anon*
store %"class.std::__1::tuple.3"* %160, %"class.std::__1::tuple.3"** %153, align 8
%384 = load %"class.std::__1::tuple.3"** %153, align 8
%385 = getelementptr inbounds %"class.std::__1::tuple.3"* %384, i32 0, i32 0
%386 = bitcast %"struct.std::__1::__tuple_impl.4"* %385 to %"class.std::__1::__tuple_leaf.5"*
store %"class.std::__1::__tuple_leaf.5"* %386, %"class.std::__1::__tuple_leaf.5"** %152, align 8
%387 = load %"class.std::__1::__tuple_leaf.5"** %152
%388 = getelementptr inbounds %"class.std::__1::__tuple_leaf.5"* %387, i32 0, i32 0
%389 = load %class.anon** %388, align 8
store %class.anon* %389, %class.anon** %148, align 8
%390 = load %class.anon** %148, align 8
%391 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %382 to %"class.std::__1::allocator"*
store %"class.std::__1::tuple.6"* %161, %"class.std::__1::tuple.6"** %150, align 8
%392 = load %"class.std::__1::tuple.6"** %150, align 8
%393 = getelementptr inbounds %"class.std::__1::tuple.6"* %392, i32 0, i32 0
%394 = bitcast %"struct.std::__1::__tuple_impl.7"* %393 to %"class.std::__1::__tuple_leaf.8"*
store %"class.std::__1::__tuple_leaf.8"* %394, %"class.std::__1::__tuple_leaf.8"** %149, align 8
%395 = load %"class.std::__1::__tuple_leaf.8"** %149
%396 = getelementptr inbounds %"class.std::__1::__tuple_leaf.8"* %395, i32 0, i32 0
%397 = load %"class.std::__1::allocator"** %396, align 8
store %"class.std::__1::allocator"* %397, %"class.std::__1::allocator"** %151, align 8
%398 = load %"class.std::__1::allocator"** %151, align 8
br label %399
; <label>:399 ; preds = %188, %0
%400 = phi %"class.std::__1::__function::__func"* [ %189, %188 ], [ null, %0 ]
ret void
}
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv"(%"class.std::__1::__function::__func"* %this) nounwind uwtable ssp align 2 {
%1 = alloca %"class.std::__1::__function::__func"*, align 8
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %1, align 8
%2 = load %"class.std::__1::__function::__func"** %1
%3 = getelementptr inbounds %"class.std::__1::__function::__func"* %2, i32 0, i32 1
ret void
}
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv"(%"class.std::__1::__function::__func"* %this) nounwind uwtable ssp align 2 {
%1 = alloca %"class.std::__1::allocator.1"*, align 8
%2 = alloca %"class.std::__1::allocator"*, align 8
%3 = alloca %"class.std::__1::allocator.1"*, align 8
%4 = alloca %"class.std::__1::allocator"*, align 8
%5 = alloca %"class.std::__1::allocator.1"*, align 8
%6 = alloca %"class.std::__1::__function::__func"*, align 8
%7 = alloca i64, align 8
%8 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%9 = alloca %"class.std::__1::__compressed_pair"*, align 8
%10 = alloca %"class.std::__1::__function::__func"*, align 8
%__a = alloca %"class.std::__1::allocator.1", align 1
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %10, align 8
%11 = load %"class.std::__1::__function::__func"** %10
%12 = getelementptr inbounds %"class.std::__1::__function::__func"* %11, i32 0, i32 1
store %"class.std::__1::__compressed_pair"* %12, %"class.std::__1::__compressed_pair"** %9, align 8
%13 = load %"class.std::__1::__compressed_pair"** %9
%14 = bitcast %"class.std::__1::__compressed_pair"* %13 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::__libcpp_compressed_pair_imp"* %14, %"class.std::__1::__libcpp_compressed_pair_imp"** %8, align 8
%15 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %8
%16 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %15 to %"class.std::__1::allocator"*
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %3, align 8
store %"class.std::__1::allocator"* %16, %"class.std::__1::allocator"** %4, align 8
%17 = load %"class.std::__1::allocator.1"** %3
%18 = load %"class.std::__1::allocator"** %4
store %"class.std::__1::allocator.1"* %17, %"class.std::__1::allocator.1"** %1, align 8
store %"class.std::__1::allocator"* %18, %"class.std::__1::allocator"** %2, align 8
%19 = load %"class.std::__1::allocator.1"** %1
%20 = getelementptr inbounds %"class.std::__1::__function::__func"* %11, i32 0, i32 1
store %"class.std::__1::allocator.1"* %__a, %"class.std::__1::allocator.1"** %5, align 8
store %"class.std::__1::__function::__func"* %11, %"class.std::__1::__function::__func"** %6, align 8
store i64 1, i64* %7, align 8
%21 = load %"class.std::__1::allocator.1"** %5
%22 = load %"class.std::__1::__function::__func"** %6, align 8
%23 = bitcast %"class.std::__1::__function::__func"* %22 to i8*
call void @_ZdlPv(i8* %23) nounwind
ret void
}
define internal i32 @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi"(%"class.std::__1::__function::__func"* %this, i32* %__arg) uwtable ssp align 2 {
%1 = alloca i32*, align 8
%2 = alloca i32*, align 8
%3 = alloca %class.anon*, align 8
%4 = alloca %class.anon*, align 8
%5 = alloca i32*, align 8
%6 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%7 = alloca %"class.std::__1::__compressed_pair"*, align 8
%8 = alloca %"class.std::__1::__function::__func"*, align 8
%9 = alloca i32*, align 8
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %8, align 8
store i32* %__arg, i32** %9, align 8
%10 = load %"class.std::__1::__function::__func"** %8
%11 = getelementptr inbounds %"class.std::__1::__function::__func"* %10, i32 0, i32 1
store %"class.std::__1::__compressed_pair"* %11, %"class.std::__1::__compressed_pair"** %7, align 8
%12 = load %"class.std::__1::__compressed_pair"** %7
%13 = bitcast %"class.std::__1::__compressed_pair"* %12 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::__libcpp_compressed_pair_imp"* %13, %"class.std::__1::__libcpp_compressed_pair_imp"** %6, align 8
%14 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %6
%15 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %14 to %class.anon*
%16 = load i32** %9, align 8
store i32* %16, i32** %1, align 8
%17 = load i32** %1, align 8
store %class.anon* %15, %class.anon** %4, align 8
store i32* %17, i32** %5, align 8
%18 = load %class.anon** %4, align 8
store %class.anon* %18, %class.anon** %3, align 8
%19 = load %class.anon** %3, align 8
%20 = load i32** %5, align 8
store i32* %20, i32** %2, align 8
%21 = load i32** %2, align 8
%22 = load i32* %21
%23 = call i32 @"_ZZ3foovENK3$_0clEi"(%class.anon* %19, i32 %22)
ret i32 %23
}
define internal i8* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info"(%"class.std::__1::__function::__func"* %this, %"class.std::type_info"* %__ti) nounwind uwtable ssp align 2 {
%1 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
%2 = alloca %"class.std::__1::__compressed_pair"*, align 8
%3 = alloca %"class.std::type_info"*, align 8
%4 = alloca %"class.std::type_info"*, align 8
%5 = alloca i8*, align 8
%6 = alloca %"class.std::__1::__function::__func"*, align 8
%7 = alloca %"class.std::type_info"*, align 8
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %6, align 8
store %"class.std::type_info"* %__ti, %"class.std::type_info"** %7, align 8
%8 = load %"class.std::__1::__function::__func"** %6
%9 = load %"class.std::type_info"** %7, align 8
store %"class.std::type_info"* %9, %"class.std::type_info"** %3, align 8
store %"class.std::type_info"* bitcast ({ i8*, i8* }* @"_ZTIZ3foovE3$_0" to %"class.std::type_info"*), %"class.std::type_info"** %4, align 8
%10 = load %"class.std::type_info"** %3
%11 = getelementptr inbounds %"class.std::type_info"* %10, i32 0, i32 1
%12 = load i8** %11, align 8
%13 = load %"class.std::type_info"** %4, align 8
%14 = getelementptr inbounds %"class.std::type_info"* %13, i32 0, i32 1
%15 = load i8** %14, align 8
%16 = icmp eq i8* %12, %15
br i1 %16, label %17, label %24
; <label>:17 ; preds = %0
%18 = getelementptr inbounds %"class.std::__1::__function::__func"* %8, i32 0, i32 1
store %"class.std::__1::__compressed_pair"* %18, %"class.std::__1::__compressed_pair"** %2, align 8
%19 = load %"class.std::__1::__compressed_pair"** %2
%20 = bitcast %"class.std::__1::__compressed_pair"* %19 to %"class.std::__1::__libcpp_compressed_pair_imp"*
store %"class.std::__1::__libcpp_compressed_pair_imp"* %20, %"class.std::__1::__libcpp_compressed_pair_imp"** %1, align 8
%21 = load %"class.std::__1::__libcpp_compressed_pair_imp"** %1
%22 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %21 to %class.anon*
%23 = bitcast %class.anon* %22 to i8*
store i8* %23, i8** %5
br label %25
; <label>:24 ; preds = %0
store i8* null, i8** %5
br label %25
; <label>:25 ; preds = %24, %17
%26 = load i8** %5
ret i8* %26
}
define internal %"class.std::type_info"* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv"(%"class.std::__1::__function::__func"* %this) nounwind uwtable ssp align 2 {
%1 = alloca %"class.std::__1::__function::__func"*, align 8
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %1, align 8
%2 = load %"class.std::__1::__function::__func"** %1
ret %"class.std::type_info"* bitcast ({ i8*, i8* }* @"_ZTIZ3foovE3$_0" to %"class.std::type_info"*)
}
define internal i32 @"_ZZ3foovENK3$_0clEi"(%class.anon* %this, i32 %x) nounwind uwtable inlinehint ssp align 2 {
%1 = alloca %class.anon*, align 8
%2 = alloca i32, align 4
store %class.anon* %this, %class.anon** %1, align 8
store i32 %x, i32* %2, align 4
%3 = load %class.anon** %1
%4 = load i32* %2, align 4
%5 = add nsw i32 %4, 1
ret i32 %5
}
declare void @_ZdlPv(i8*) nounwind
declare void @_ZSt9terminatev()
declare noalias i8* @_Znwm(i64)
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED2Ev"(%"class.std::__1::__function::__func"* %this) unnamed_addr nounwind uwtable inlinehint ssp align 2 {
%1 = alloca %"class.std::__1::__function::__base"*, align 8
%2 = alloca %"class.std::__1::__function::__func"*, align 8
store %"class.std::__1::__function::__func"* %this, %"class.std::__1::__function::__func"** %2, align 8
%3 = load %"class.std::__1::__function::__func"** %2
%4 = bitcast %"class.std::__1::__function::__func"* %3 to %"class.std::__1::__function::__base"*
store %"class.std::__1::__function::__base"* %4, %"class.std::__1::__function::__base"** %1, align 8
%5 = load %"class.std::__1::__function::__base"** %1
ret void
}
define linkonce_odr hidden void @_ZNSt3__110__function6__baseIFiiEED1Ev(%"class.std::__1::__function::__base"* %this) unnamed_addr nounwind uwtable alwaysinline ssp align 2 {
%1 = alloca %"class.std::__1::__function::__base"*, align 8
%2 = alloca %"class.std::__1::__function::__base"*, align 8
store %"class.std::__1::__function::__base"* %this, %"class.std::__1::__function::__base"** %2, align 8
%3 = load %"class.std::__1::__function::__base"** %2
store %"class.std::__1::__function::__base"* %3, %"class.std::__1::__function::__base"** %1, align 8
%4 = load %"class.std::__1::__function::__base"** %1
ret void
}
define linkonce_odr hidden void @_ZNSt3__110__function6__baseIFiiEED0Ev(%"class.std::__1::__function::__base"* %this) unnamed_addr nounwind uwtable alwaysinline ssp align 2 {
%1 = alloca %"class.std::__1::__function::__base"*, align 8
%2 = alloca %"class.std::__1::__function::__base"*, align 8
%3 = alloca %"class.std::__1::__function::__base"*, align 8
store %"class.std::__1::__function::__base"* %this, %"class.std::__1::__function::__base"** %3, align 8
%4 = load %"class.std::__1::__function::__base"** %3
store %"class.std::__1::__function::__base"* %4, %"class.std::__1::__function::__base"** %2, align 8
%5 = load %"class.std::__1::__function::__base"** %2
store %"class.std::__1::__function::__base"* %5, %"class.std::__1::__function::__base"** %1, align 8
%6 = load %"class.std::__1::__function::__base"** %1
%7 = bitcast %"class.std::__1::__function::__base"* %4 to i8*
call void @_ZdlPv(i8* %7) nounwind
ret void
}
declare void @__cxa_pure_virtual()
.section __TEXT,__text,regular,pure_instructions
.globl __Z3foov
.align 4, 0x90
__Z3foov: ## @_Z3foov
.cfi_startproc
.cfi_personality 155, ___gxx_personality_v0
Leh_func_begin0:
.cfi_lsda 16, Lexception0
## BB#0: ## %_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE.exit
pushq %rbp
Ltmp6:
.cfi_def_cfa_offset 16
Ltmp7:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp8:
.cfi_def_cfa_register %rbp
pushq %r14
pushq %rbx
subq $48, %rsp
Ltmp9:
.cfi_offset %rbx, -32
Ltmp10:
.cfi_offset %r14, -24
leaq -64(%rbp), %rbx
movq %rbx, -32(%rbp)
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE+16(%rip), %rax
movq %rax, -64(%rbp)
Ltmp0:
movq %rbx, %rdi
callq __Z3runNSt3__18functionIFiiEEE
Ltmp1:
## BB#1:
movq -32(%rbp), %rdi
cmpq %rbx, %rdi
jne LBB0_3
## BB#2:
movq -64(%rbp), %rax
leaq -64(%rbp), %rdi
callq *32(%rax)
jmp LBB0_5
LBB0_3:
testq %rdi, %rdi
je LBB0_5
## BB#4:
movq (%rdi), %rax
callq *40(%rax)
LBB0_5: ## %_ZNSt3__18functionIFiiEED1Ev.exit1
addq $48, %rsp
popq %rbx
popq %r14
popq %rbp
ret
LBB0_6:
Ltmp2:
movq %rax, %r14
movq -32(%rbp), %rdi
cmpq %rbx, %rdi
jne LBB0_8
## BB#7:
movq -64(%rbp), %rax
leaq -64(%rbp), %rdi
callq *32(%rax)
movq %r14, %rdi
callq __Unwind_Resume
LBB0_8:
testq %rdi, %rdi
je LBB0_10
## BB#9:
movq (%rdi), %rax
callq *40(%rax)
LBB0_10: ## %_ZNSt3__18functionIFiiEED1Ev.exit
movq %r14, %rdi
callq __Unwind_Resume
.cfi_endproc
Leh_func_end0:
.section __TEXT,__gcc_except_tab
.align 2
GCC_except_table0:
Lexception0:
.byte 255 ## @LPStart Encoding = omit
.byte 155 ## @TType Encoding = indirect pcrel sdata4
.asciz "\234" ## @TType base offset
.byte 3 ## Call site Encoding = udata4
.byte 26 ## Call site table length
Lset0 = Ltmp0-Leh_func_begin0 ## >> Call Site 1 <<
.long Lset0
Lset1 = Ltmp1-Ltmp0 ## Call between Ltmp0 and Ltmp1
.long Lset1
Lset2 = Ltmp2-Leh_func_begin0 ## jumps to Ltmp2
.long Lset2
.byte 0 ## On action: cleanup
Lset3 = Ltmp1-Leh_func_begin0 ## >> Call Site 2 <<
.long Lset3
Lset4 = Leh_func_end0-Ltmp1 ## Call between Ltmp1 and Leh_func_end0
.long Lset4
.long 0 ## has no landing pad
.byte 0 ## On action: cleanup
.align 2
.section __TEXT,__text,regular,pure_instructions
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp13:
.cfi_def_cfa_offset 16
Ltmp14:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp15:
.cfi_def_cfa_register %rbp
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp18:
.cfi_def_cfa_offset 16
Ltmp19:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp20:
.cfi_def_cfa_register %rbp
popq %rbp
jmp __ZdlPv ## TAILCALL
.cfi_endproc
.align 4, 0x90
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp23:
.cfi_def_cfa_offset 16
Ltmp24:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp25:
.cfi_def_cfa_register %rbp
movl $16, %edi
callq __Znwm
testq %rax, %rax
je LBB3_2
## BB#1:
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE+16(%rip), %rcx
movq %rcx, (%rax)
LBB3_2: ## %_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp28:
.cfi_def_cfa_offset 16
Ltmp29:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp30:
.cfi_def_cfa_register %rbp
testq %rsi, %rsi
je LBB4_2
## BB#1:
leaq __ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE+16(%rip), %rax
movq %rax, (%rsi)
LBB4_2:
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp33:
.cfi_def_cfa_offset 16
Ltmp34:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp35:
.cfi_def_cfa_register %rbp
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp38:
.cfi_def_cfa_offset 16
Ltmp39:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp40:
.cfi_def_cfa_register %rbp
popq %rbp
jmp __ZdlPv ## TAILCALL
.cfi_endproc
.align 4, 0x90
__ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi: ## @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp43:
.cfi_def_cfa_offset 16
Ltmp44:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp45:
.cfi_def_cfa_register %rbp
movl (%rsi), %eax
incl %eax
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp48:
.cfi_def_cfa_offset 16
Ltmp49:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp50:
.cfi_def_cfa_register %rbp
addq $8, %rdi
leaq __ZTSZ3foovE3$_0(%rip), %rax
cmpq %rax, 8(%rsi)
movl $0, %eax
cmoveq %rdi, %rax
popq %rbp
ret
.cfi_endproc
.align 4, 0x90
__ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv: ## @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv"
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp53:
.cfi_def_cfa_offset 16
Ltmp54:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp55:
.cfi_def_cfa_register %rbp
leaq __ZTIZ3foovE3$_0(%rip), %rax
popq %rbp
ret
.cfi_endproc
.section __TEXT,__textcoal_nt,coalesced,pure_instructions
.private_extern __ZNSt3__110__function6__baseIFiiEED1Ev
.globl __ZNSt3__110__function6__baseIFiiEED1Ev
.weak_definition __ZNSt3__110__function6__baseIFiiEED1Ev
.align 4, 0x90
__ZNSt3__110__function6__baseIFiiEED1Ev: ## @_ZNSt3__110__function6__baseIFiiEED1Ev
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp58:
.cfi_def_cfa_offset 16
Ltmp59:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp60:
.cfi_def_cfa_register %rbp
popq %rbp
ret
.cfi_endproc
.private_extern __ZNSt3__110__function6__baseIFiiEED0Ev
.globl __ZNSt3__110__function6__baseIFiiEED0Ev
.weak_definition __ZNSt3__110__function6__baseIFiiEED0Ev
.align 4, 0x90
__ZNSt3__110__function6__baseIFiiEED0Ev: ## @_ZNSt3__110__function6__baseIFiiEED0Ev
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp63:
.cfi_def_cfa_offset 16
Ltmp64:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp65:
.cfi_def_cfa_register %rbp
popq %rbp
jmp __ZdlPv ## TAILCALL
.cfi_endproc
.section __DATA,__const
.align 4 ## @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE"
__ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE:
.quad 0
.quad __ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv
.quad __ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info
.quad __ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv
.section __TEXT,__const
.align 4 ## @"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE"
__ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE:
.asciz "NSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE"
.section __TEXT,__const_coal,coalesced
.globl __ZTSNSt3__110__function6__baseIFiiEEE ## @_ZTSNSt3__110__function6__baseIFiiEEE
.weak_definition __ZTSNSt3__110__function6__baseIFiiEEE
.align 4
__ZTSNSt3__110__function6__baseIFiiEEE:
.asciz "NSt3__110__function6__baseIFiiEEE"
.section __DATA,__datacoal_nt,coalesced
.globl __ZTINSt3__110__function6__baseIFiiEEE ## @_ZTINSt3__110__function6__baseIFiiEEE
.weak_definition __ZTINSt3__110__function6__baseIFiiEEE
.align 3
__ZTINSt3__110__function6__baseIFiiEEE:
.quad __ZTVN10__cxxabiv117__class_type_infoE+16
.quad __ZTSNSt3__110__function6__baseIFiiEEE
.section __DATA,__const
.align 4 ## @"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE"
__ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE:
.quad __ZTVN10__cxxabiv120__si_class_type_infoE+16
.quad __ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE
.quad __ZTINSt3__110__function6__baseIFiiEEE
.section __TEXT,__const
__ZTSZ3foovE3$_0: ## @"_ZTSZ3foovE3$_0"
.asciz "Z3foovE3$_0"
.section __DATA,__const
.align 3 ## @"_ZTIZ3foovE3$_0"
__ZTIZ3foovE3$_0:
.quad __ZTVN10__cxxabiv117__class_type_infoE+16
.quad __ZTSZ3foovE3$_0
.section __DATA,__datacoal_nt,coalesced
.globl __ZTVNSt3__110__function6__baseIFiiEEE ## @_ZTVNSt3__110__function6__baseIFiiEEE
.weak_definition __ZTVNSt3__110__function6__baseIFiiEEE
.align 4
__ZTVNSt3__110__function6__baseIFiiEEE:
.quad 0
.quad __ZTINSt3__110__function6__baseIFiiEEE
.quad __ZNSt3__110__function6__baseIFiiEED1Ev
.quad __ZNSt3__110__function6__baseIFiiEED0Ev
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.quad ___cxa_pure_virtual
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
.subsections_via_symbols
; ModuleID = 'std_func_overhead.cpp'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.8.0"
%"class.std::__1::function" = type { %"struct.std::__1::aligned_storage<24, 16>::type", %"class.std::__1::__function::__base"*, [8 x i8] }
%"struct.std::__1::aligned_storage<24, 16>::type" = type { [24 x i8], [8 x i8] }
%"class.std::__1::__function::__base" = type { i32 (...)** }
%"class.std::__1::__function::__func" = type { %"class.std::__1::__function::__base", %"class.std::__1::__compressed_pair" }
%"class.std::__1::__compressed_pair" = type { i8 }
%"class.std::type_info" = type { i32 (...)**, i8* }
@"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal unnamed_addr constant [11 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev" to i8*), i8* bitcast (%"class.std::__1::__function::__base"* (%"class.std::__1::__function::__func"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*, %"class.std::__1::__function::__base"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv" to i8*), i8* bitcast (void (%"class.std::__1::__function::__func"*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv" to i8*), i8* bitcast (i32 (%"class.std::__1::__function::__func"*, i32*)* @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi" to i8*), i8* bitcast (i8* (%"class.std::__1::__function::__func"*, %"class.std::type_info"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info" to i8*), i8* bitcast (%"class.std::type_info"* (%"class.std::__1::__function::__func"*)* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv" to i8*)]
@_ZTVN10__cxxabiv120__si_class_type_infoE = external global i8*
@"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal constant [64 x i8] c"NSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE\00"
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
@_ZTSNSt3__110__function6__baseIFiiEEE = linkonce_odr constant [34 x i8] c"NSt3__110__function6__baseIFiiEEE\00"
@_ZTINSt3__110__function6__baseIFiiEEE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([34 x i8]* @_ZTSNSt3__110__function6__baseIFiiEEE, i32 0, i32 0) }
@"_ZTINSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE" = internal unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([64 x i8]* @"_ZTSNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTINSt3__110__function6__baseIFiiEEE to i8*) }
@"_ZTSZ3foovE3$_0" = internal constant [12 x i8] c"Z3foovE3$_0\00"
@"_ZTIZ3foovE3$_0" = internal unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([12 x i8]* @"_ZTSZ3foovE3$_0", i32 0, i32 0) }
@_ZTVNSt3__110__function6__baseIFiiEEE = linkonce_odr unnamed_addr constant [11 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTINSt3__110__function6__baseIFiiEEE to i8*), i8* bitcast (void (%"class.std::__1::__function::__base"*)* @_ZNSt3__110__function6__baseIFiiEED1Ev to i8*), i8* bitcast (void (%"class.std::__1::__function::__base"*)* @_ZNSt3__110__function6__baseIFiiEED0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)]
define void @_Z3foov() uwtable ssp {
"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE.exit":
%0 = alloca %"class.std::__1::function", align 16
%1 = getelementptr inbounds %"class.std::__1::function"* %0, i64 0, i32 1
%2 = bitcast %"class.std::__1::function"* %0 to %"class.std::__1::__function::__base"*
store %"class.std::__1::__function::__base"* %2, %"class.std::__1::__function::__base"** %1, align 16
%3 = bitcast %"class.std::__1::function"* %0 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2) to i32 (...)**), i32 (...)*** %3, align 16
invoke void @_Z3runNSt3__18functionIFiiEEE(%"class.std::__1::function"* %0)
to label %4 unwind label %19
; <label>:4 ; preds = %"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE.exit"
%5 = load %"class.std::__1::__function::__base"** %1, align 16
%6 = icmp eq %"class.std::__1::__function::__base"* %5, %2
br i1 %6, label %7, label %12
; <label>:7 ; preds = %4
%8 = bitcast %"class.std::__1::function"* %0 to void (%"class.std::__1::__function::__base"*)***
%9 = load void (%"class.std::__1::__function::__base"*)*** %8, align 16
%10 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %9, i64 4
%11 = load void (%"class.std::__1::__function::__base"*)** %10, align 8
call void %11(%"class.std::__1::__function::__base"* %2) nounwind
br label %_ZNSt3__18functionIFiiEED1Ev.exit1
; <label>:12 ; preds = %4
%13 = icmp eq %"class.std::__1::__function::__base"* %5, null
br i1 %13, label %_ZNSt3__18functionIFiiEED1Ev.exit1, label %14
; <label>:14 ; preds = %12
%15 = bitcast %"class.std::__1::__function::__base"* %5 to void (%"class.std::__1::__function::__base"*)***
%16 = load void (%"class.std::__1::__function::__base"*)*** %15, align 8
%17 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %16, i64 5
%18 = load void (%"class.std::__1::__function::__base"*)** %17, align 8
call void %18(%"class.std::__1::__function::__base"* %5) nounwind
br label %_ZNSt3__18functionIFiiEED1Ev.exit1
_ZNSt3__18functionIFiiEED1Ev.exit1: ; preds = %7, %12, %14
ret void
; <label>:19 ; preds = %"_ZNSt3__18functionIFiiEEC1IZ3foovE3$_0EET_PNS_9enable_ifIXsr10__callableIS5_EE5valueEvE4typeE.exit"
%20 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
cleanup
%21 = load %"class.std::__1::__function::__base"** %1, align 16
%22 = icmp eq %"class.std::__1::__function::__base"* %21, %2
br i1 %22, label %23, label %28
; <label>:23 ; preds = %19
%24 = bitcast %"class.std::__1::function"* %0 to void (%"class.std::__1::__function::__base"*)***
%25 = load void (%"class.std::__1::__function::__base"*)*** %24, align 16
%26 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %25, i64 4
%27 = load void (%"class.std::__1::__function::__base"*)** %26, align 8
call void %27(%"class.std::__1::__function::__base"* %2) nounwind
br label %_ZNSt3__18functionIFiiEED1Ev.exit
; <label>:28 ; preds = %19
%29 = icmp eq %"class.std::__1::__function::__base"* %21, null
br i1 %29, label %_ZNSt3__18functionIFiiEED1Ev.exit, label %30
; <label>:30 ; preds = %28
%31 = bitcast %"class.std::__1::__function::__base"* %21 to void (%"class.std::__1::__function::__base"*)***
%32 = load void (%"class.std::__1::__function::__base"*)*** %31, align 8
%33 = getelementptr inbounds void (%"class.std::__1::__function::__base"*)** %32, i64 5
%34 = load void (%"class.std::__1::__function::__base"*)** %33, align 8
call void %34(%"class.std::__1::__function::__base"* %21) nounwind
br label %_ZNSt3__18functionIFiiEED1Ev.exit
_ZNSt3__18functionIFiiEED1Ev.exit: ; preds = %23, %28, %30
resume { i8*, i32 } %20
}
declare void @_Z3runNSt3__18functionIFiiEEE(%"class.std::__1::function"*)
declare i32 @__gxx_personality_v0(...)
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED1Ev"(%"class.std::__1::__function::__func"* nocapture %this) unnamed_addr nounwind uwtable readnone inlinehint ssp align 2 {
ret void
}
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEED0Ev"(%"class.std::__1::__function::__func"* %this) unnamed_addr nounwind uwtable inlinehint ssp align 2 {
%1 = bitcast %"class.std::__1::__function::__func"* %this to i8*
tail call void @_ZdlPv(i8* %1) nounwind
ret void
}
define internal %"class.std::__1::__function::__base"* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEv"(%"class.std::__1::__function::__func"* nocapture %this) uwtable ssp align 2 {
%1 = tail call noalias i8* @_Znwm(i64 16)
%2 = icmp eq i8* %1, null
br i1 %2, label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit", label %3
; <label>:3 ; preds = %0
%4 = bitcast i8* %1 to i32 (...)***
store i32 (...)** bitcast (i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2) to i32 (...)**), i32 (...)*** %4, align 8
br label %"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit"
"_ZNSt3__110unique_ptrINS_10__function6__funcIZ3foovE3$_0NS_9allocatorIS3_EEFiiEEENS_22__allocator_destructorINS4_IS7_EEEEED1Ev.exit": ; preds = %0, %3
%5 = bitcast i8* %1 to %"class.std::__1::__function::__base"*
ret %"class.std::__1::__function::__base"* %5
}
define internal void @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7__cloneEPNS0_6__baseIS5_EE"(%"class.std::__1::__function::__func"* nocapture %this, %"class.std::__1::__function::__base"* %__p) nounwind uwtable ssp align 2 {
%1 = icmp eq %"class.std::__1::__function::__base"* %__p, null
br i1 %1, label %4, label %2
; <label>:2 ; preds = %0
%3 = getelementptr inbounds %"class.std::__1::__function::__base"* %__p, i64 0, i32 0
store i32 (...)** bitcast (i8** getelementptr inbounds ([11 x i8*]* @"_ZTVNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEE", i64 0, i64 2) to i32 (...)**), i32 (...)*** %3, align 8
br label %4
; <label>:4 ; preds = %2, %0
ret void
}
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE7destroyEv"(%"class.std::__1::__function::__func"* nocapture %this) nounwind uwtable readnone ssp align 2 {
ret void
}
define internal void @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE18destroy_deallocateEv"(%"class.std::__1::__function::__func"* %this) nounwind uwtable ssp align 2 {
%1 = bitcast %"class.std::__1::__function::__func"* %this to i8*
tail call void @_ZdlPv(i8* %1) nounwind
ret void
}
define internal i32 @"_ZNSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEEclEOi"(%"class.std::__1::__function::__func"* nocapture %this, i32* nocapture %__arg) nounwind uwtable readonly ssp align 2 {
%1 = load i32* %__arg, align 4
%2 = add nsw i32 %1, 1
ret i32 %2
}
define internal i8* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE6targetERKSt9type_info"(%"class.std::__1::__function::__func"* %this, %"class.std::type_info"* nocapture %__ti) nounwind uwtable readonly ssp align 2 {
%1 = getelementptr inbounds %"class.std::type_info"* %__ti, i64 0, i32 1
%2 = load i8** %1, align 8
%3 = icmp eq i8* %2, getelementptr inbounds ([12 x i8]* @"_ZTSZ3foovE3$_0", i64 0, i64 0)
%4 = getelementptr inbounds %"class.std::__1::__function::__func"* %this, i64 0, i32 1, i32 0
%. = select i1 %3, i8* %4, i8* null
ret i8* %.
}
define internal %"class.std::type_info"* @"_ZNKSt3__110__function6__funcIZ3foovE3$_0NS_9allocatorIS2_EEFiiEE11target_typeEv"(%"class.std::__1::__function::__func"* nocapture %this) nounwind uwtable readnone ssp align 2 {
ret %"class.std::type_info"* bitcast ({ i8*, i8* }* @"_ZTIZ3foovE3$_0" to %"class.std::type_info"*)
}
declare void @_ZdlPv(i8*) nounwind
declare noalias i8* @_Znwm(i64)
define linkonce_odr hidden void @_ZNSt3__110__function6__baseIFiiEED1Ev(%"class.std::__1::__function::__base"* nocapture %this) unnamed_addr nounwind uwtable readnone alwaysinline ssp align 2 {
ret void
}
define linkonce_odr hidden void @_ZNSt3__110__function6__baseIFiiEED0Ev(%"class.std::__1::__function::__base"* %this) unnamed_addr nounwind uwtable alwaysinline ssp align 2 {
%1 = bitcast %"class.std::__1::__function::__base"* %this to i8*
tail call void @_ZdlPv(i8* %1) nounwind
ret void
}
declare void @__cxa_pure_virtual()
@tonyg
Copy link

tonyg commented Jun 12, 2013

-O0, right? What's it like at -O2?

@tj
Copy link

tj commented Jun 12, 2013

was going to ask the same as @tonyg :D

@evanphx
Copy link
Author

evanphx commented Jun 12, 2013

I added the O2 output too. Smaller, for sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment