// File: /workspace/github_cpp_makefile_star2_O2/iZhangHui[P]CppPrimer/CH15_ObjectOrientedProgramming/examples/Basket_main.cc
// Function: main
int main()
{
	Basket sale;
	sale.add_item(shared_ptr<Quote>(new Quote("123", 45)));
	sale.add_item(shared_ptr<Quote>(new Quote("123", 45)));
	sale.add_item(shared_ptr<Quote>(new Quote("123", 45)));
	sale.add_item(make_shared<Bulk_quote>("345", 45, 3, .15));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("345", 45, 3, .15)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("345", 45, 3, .15)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("345", 45, 3, .15)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("345", 45, 3, .15)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("345", 45, 3, .15)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("345", 45, 3, .15)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("345", 45, 3, .15)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("678", 55, 5, .25)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("678", 55, 5, .25)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("678", 55, 5, .25)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("678", 55, 5, .25)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("678", 55, 5, .25)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("678", 55, 5, .25)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("678", 55, 5, .25)));
	sale.add_item(shared_ptr<Quote>(new Bulk_quote("678", 55, 5, .25)));
	sale.add_item(shared_ptr<Quote>(new Lim_quote("abc", 35, 2, .10)));
	sale.add_item(shared_ptr<Quote>(new Lim_quote("abc", 35, 2, .10)));
	sale.add_item(shared_ptr<Quote>(new Lim_quote("abc", 35, 2, .10)));
	sale.add_item(shared_ptr<Quote>(new Lim_quote("abc", 35, 2, .10)));
	sale.add_item(shared_ptr<Quote>(new Lim_quote("abc", 35, 2, .10)));
	sale.add_item(shared_ptr<Quote>(new Lim_quote("abc", 35, 2, .10)));
	sale.add_item(shared_ptr<Quote>(new Quote("def", 35)));
	sale.add_item(shared_ptr<Quote>(new Quote("def", 35)));

	sale.total_receipt(cout);

	Basket bsk;
	// arguments are the ISBN, price, minimum quantity, and discount
	bsk.add_item(shared_ptr<Quote>(new Bulk_quote("0-201-82470-1", 50, 5, .19)));
	bsk.add_item(shared_ptr<Quote>(new Bulk_quote("0-201-82470-1", 50, 5, .19)));
	bsk.add_item(shared_ptr<Quote>(new Bulk_quote("0-201-82470-1", 50, 5, .19)));
	bsk.add_item(shared_ptr<Quote>(new Bulk_quote("0-201-82470-1", 50, 5, .19)));
	bsk.add_item(shared_ptr<Quote>(new Bulk_quote("0-201-82470-1", 50, 5, .19)));
	bsk.add_item(shared_ptr<Quote>(new Lim_quote("0-201-54848-8", 35, 2, .10)));
	bsk.add_item(shared_ptr<Quote>(new Lim_quote("0-201-54848-8", 35, 2, .10)));
	bsk.add_item(shared_ptr<Quote>(new Lim_quote("0-201-54848-8", 35, 2, .10)));
	bsk.total_receipt(cout);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xa0, %rsp
leaq 0x12f3(%rip), %r14      # 0x3648
leaq -0xb0(%rbp), %rax
movq %r14, -0x8(%rax)
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
pushq $0x30
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x2ce9(%rip), %rsi      # 0x5070
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movsd 0x2c65(%rip), %xmm0     # 0x5008
movq %rbx, %rdi
callq 0x35a6
xorl %r15d, %r15d
leaq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x3ac6
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x30
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x2c82(%rip), %rsi      # 0x5070
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movsd 0x2bfe(%rip), %xmm0     # 0x5008
movq %rbx, %rdi
callq 0x35a6
xorl %r15d, %r15d
leaq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x3ac6
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x30
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x2c1b(%rip), %rsi      # 0x5070
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x80(%rbp), %rsi
movsd 0x2b97(%rip), %xmm0     # 0x5008
movq %rbx, %rdi
callq 0x35a6
xorl %r15d, %r15d
leaq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x3ac6
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
leaq -0x84(%rbp), %rdx
movl $0x2d, (%rdx)
leaq -0xbc(%rbp), %rcx
movl $0x3, (%rcx)
movabsq $0x3fc3333333333333, %rax # imm = 0x3FC3333333333333
leaq -0x50(%rbp), %r8
movq %rax, (%r8)
leaq 0x2b98(%rip), %rsi      # 0x5074
leaq -0x40(%rbp), %rdi
callq 0x35d8
leaq -0x38(%rbp), %r15
movups -0x8(%r15), %xmm0
leaq -0x78(%rbp), %rbx
movups %xmm0, -0x8(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, -0x8(%r15)
leaq -0xb8(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x36e4
movq %rbx, %rdi
callq 0x395e
movq %r15, %rdi
callq 0x395e
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x2b44(%rip), %rsi      # 0x5074
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2abc(%rip), %xmm0     # 0x5008
pushq $0x3
popq %rdx
movsd 0x2ab9(%rip), %xmm1     # 0x5010
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x2ad2(%rip), %rsi      # 0x5074
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2a4a(%rip), %xmm0     # 0x5008
pushq $0x3
popq %rdx
movsd 0x2a47(%rip), %xmm1     # 0x5010
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x2a60(%rip), %rsi      # 0x5074
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x29d8(%rip), %xmm0     # 0x5008
pushq $0x3
popq %rdx
movsd 0x29d5(%rip), %xmm1     # 0x5010
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x29ee(%rip), %rsi      # 0x5074
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2966(%rip), %xmm0     # 0x5008
pushq $0x3
popq %rdx
movsd 0x2963(%rip), %xmm1     # 0x5010
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x297c(%rip), %rsi      # 0x5074
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x28f4(%rip), %xmm0     # 0x5008
pushq $0x3
popq %rdx
movsd 0x28f1(%rip), %xmm1     # 0x5010
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x290a(%rip), %rsi      # 0x5074
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2882(%rip), %xmm0     # 0x5008
pushq $0x3
popq %rdx
movsd 0x287f(%rip), %xmm1     # 0x5010
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x2898(%rip), %rsi      # 0x5074
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2810(%rip), %xmm0     # 0x5008
pushq $0x3
popq %rdx
movsd 0x280d(%rip), %xmm1     # 0x5010
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x282a(%rip), %rsi      # 0x5078
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x27ae(%rip), %xmm0     # 0x5018
pushq $0x5
popq %rdx
movsd 0x27ab(%rip), %xmm1     # 0x5020
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x27b8(%rip), %rsi      # 0x5078
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x273c(%rip), %xmm0     # 0x5018
pushq $0x5
popq %rdx
movsd 0x2739(%rip), %xmm1     # 0x5020
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x2746(%rip), %rsi      # 0x5078
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x26ca(%rip), %xmm0     # 0x5018
pushq $0x5
popq %rdx
movsd 0x26c7(%rip), %xmm1     # 0x5020
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x26d4(%rip), %rsi      # 0x5078
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2658(%rip), %xmm0     # 0x5018
pushq $0x5
popq %rdx
movsd 0x2655(%rip), %xmm1     # 0x5020
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x2662(%rip), %rsi      # 0x5078
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x25e6(%rip), %xmm0     # 0x5018
pushq $0x5
popq %rdx
movsd 0x25e3(%rip), %xmm1     # 0x5020
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x25f0(%rip), %rsi      # 0x5078
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2574(%rip), %xmm0     # 0x5018
pushq $0x5
popq %rdx
movsd 0x2571(%rip), %xmm1     # 0x5020
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x257e(%rip), %rsi      # 0x5078
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2502(%rip), %xmm0     # 0x5018
pushq $0x5
popq %rdx
movsd 0x24ff(%rip), %xmm1     # 0x5020
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x250c(%rip), %rsi      # 0x5078
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2490(%rip), %xmm0     # 0x5018
pushq $0x5
popq %rdx
movsd 0x248d(%rip), %xmm1     # 0x5020
movq %r15, %rdi
callq 0x3600
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3e12
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x249e(%rip), %rsi      # 0x507c
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x242e(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x242b(%rip), %xmm1     # 0x5030
movq %r15, %rdi
callq 0x3624
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3eda
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x242c(%rip), %rsi      # 0x507c
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x23bc(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x23b9(%rip), %xmm1     # 0x5030
movq %r15, %rdi
callq 0x3624
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3eda
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x23ba(%rip), %rsi      # 0x507c
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x234a(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x2347(%rip), %xmm1     # 0x5030
movq %r15, %rdi
callq 0x3624
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3eda
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x2348(%rip), %rsi      # 0x507c
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x22d8(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x22d5(%rip), %xmm1     # 0x5030
movq %r15, %rdi
callq 0x3624
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3eda
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x22d6(%rip), %rsi      # 0x507c
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2266(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x2263(%rip), %xmm1     # 0x5030
movq %r15, %rdi
callq 0x3624
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3eda
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x2264(%rip), %rsi      # 0x507c
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x21f4(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x21f1(%rip), %xmm1     # 0x5030
movq %r15, %rdi
callq 0x3624
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3eda
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x30
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x21f6(%rip), %rsi      # 0x5080
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x2182(%rip), %xmm0     # 0x5028
movq %r15, %rdi
callq 0x35a6
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3ac6
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
pushq $0x30
popq %rdi
callq 0x2100
movq %rax, %r15
leaq 0x218f(%rip), %rsi      # 0x5080
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2070
movb $0x1, %r12b
leaq -0x80(%rbp), %rsi
movsd 0x211b(%rip), %xmm0     # 0x5028
movq %r15, %rdi
callq 0x35a6
xorl %r12d, %r12d
leaq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x3ac6
leaq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x36e4
leaq -0x38(%rbp), %rdi
callq 0x395e
leaq -0x80(%rbp), %rdi
callq 0x2090
movq 0x508b(%rip), %rsi      # 0x7fd8
leaq -0xb8(%rbp), %rdi
callq 0x40d2
movq %r14, -0x80(%rbp)
andl $0x0, -0x78(%rbp)
andq $0x0, -0x70(%rbp)
movq %rbx, -0x68(%rbp)
movq %rbx, -0x60(%rbp)
andq $0x0, -0x58(%rbp)
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x20ff(%rip), %rsi      # 0x5084
leaq -0x40(%rbp), %rdi
leaq -0x84(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x40(%rbp), %rsi
movsd 0x2094(%rip), %xmm0     # 0x5038
pushq $0x5
popq %rdx
movsd 0x2091(%rip), %xmm1     # 0x5040
movq %rbx, %rdi
callq 0x3600
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3e12
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x36e4
leaq -0x48(%rbp), %rdi
callq 0x395e
leaq -0x40(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x208d(%rip), %rsi      # 0x5084
leaq -0x40(%rbp), %rdi
leaq -0x84(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x40(%rbp), %rsi
movsd 0x2022(%rip), %xmm0     # 0x5038
pushq $0x5
popq %rdx
movsd 0x201f(%rip), %xmm1     # 0x5040
movq %rbx, %rdi
callq 0x3600
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3e12
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x36e4
leaq -0x48(%rbp), %rdi
callq 0x395e
leaq -0x40(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x201b(%rip), %rsi      # 0x5084
leaq -0x40(%rbp), %rdi
leaq -0x84(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x40(%rbp), %rsi
movsd 0x1fb0(%rip), %xmm0     # 0x5038
pushq $0x5
popq %rdx
movsd 0x1fad(%rip), %xmm1     # 0x5040
movq %rbx, %rdi
callq 0x3600
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3e12
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x36e4
leaq -0x48(%rbp), %rdi
callq 0x395e
leaq -0x40(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x1fa9(%rip), %rsi      # 0x5084
leaq -0x40(%rbp), %rdi
leaq -0x84(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x40(%rbp), %rsi
movsd 0x1f3e(%rip), %xmm0     # 0x5038
pushq $0x5
popq %rdx
movsd 0x1f3b(%rip), %xmm1     # 0x5040
movq %rbx, %rdi
callq 0x3600
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3e12
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x36e4
leaq -0x48(%rbp), %rdi
callq 0x395e
leaq -0x40(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x1f37(%rip), %rsi      # 0x5084
leaq -0x40(%rbp), %rdi
leaq -0x84(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x40(%rbp), %rsi
movsd 0x1ecc(%rip), %xmm0     # 0x5038
pushq $0x5
popq %rdx
movsd 0x1ec9(%rip), %xmm1     # 0x5040
movq %rbx, %rdi
callq 0x3600
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3e12
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x36e4
leaq -0x48(%rbp), %rdi
callq 0x395e
leaq -0x40(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x1ed3(%rip), %rsi      # 0x5092
leaq -0x40(%rbp), %rdi
leaq -0x84(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x40(%rbp), %rsi
movsd 0x1e4a(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x1e47(%rip), %xmm1     # 0x5030
movq %rbx, %rdi
callq 0x3624
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3eda
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x36e4
leaq -0x48(%rbp), %rdi
callq 0x395e
leaq -0x40(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x1e61(%rip), %rsi      # 0x5092
leaq -0x40(%rbp), %rdi
leaq -0x84(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x40(%rbp), %rsi
movsd 0x1dd8(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x1dd5(%rip), %xmm1     # 0x5030
movq %rbx, %rdi
callq 0x3624
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3eda
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x36e4
leaq -0x48(%rbp), %rdi
callq 0x395e
leaq -0x40(%rbp), %rdi
callq 0x2090
pushq $0x40
popq %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x1def(%rip), %rsi      # 0x5092
leaq -0x40(%rbp), %rdi
leaq -0x84(%rbp), %rdx
callq 0x2070
movb $0x1, %r15b
leaq -0x40(%rbp), %rsi
movsd 0x1d66(%rip), %xmm0     # 0x5028
pushq $0x2
popq %rdx
movsd 0x1d63(%rip), %xmm1     # 0x5030
movq %rbx, %rdi
callq 0x3624
xorl %r15d, %r15d
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x3eda
leaq -0x80(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x36e4
leaq -0x48(%rbp), %rdi
callq 0x395e
leaq -0x40(%rbp), %rdi
callq 0x2090
movq 0x4cce(%rip), %rsi      # 0x7fd8
leaq -0x80(%rbp), %rdi
callq 0x40d2
leaq -0x80(%rbp), %rdi
callq 0x3a4a
leaq -0xb8(%rbp), %rdi
callq 0x3a4a
xorl %eax, %eax
addq $0xa0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3382
jmp 0x3366
jmp 0x337a
jmp 0x3382
jmp 0x3366
jmp 0x337a
jmp 0x3382
jmp 0x3366
jmp 0x337a
jmp 0x3382
jmp 0x3366
jmp 0x337a
jmp 0x3382
jmp 0x3366
jmp 0x337a
jmp 0x3382
jmp 0x3366
jmp 0x337a
jmp 0x3382
jmp 0x3366
jmp 0x337a
jmp 0x3382
movq %rax, %r14
leaq -0x48(%rbp), %rdi
callq 0x395e
xorl %r15d, %r15d
jmp 0x34f5
movq %rax, %r14
jmp 0x3503
movq %rax, %r14
jmp 0x350e
jmp 0x34dc
jmp 0x3398
jmp 0x33ac
jmp 0x34dc
movq %rax, %r14
leaq -0x38(%rbp), %rdi
callq 0x395e
xorl %r12d, %r12d
jmp 0x351e
movq %rax, %r14
jmp 0x352c
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
jmp 0x347c
jmp 0x3490
jmp 0x34dc
movq %rax, %r14
leaq -0x38(%rbp), %rdi
callq 0x395e
xorl %r12d, %r12d
jmp 0x355b
movq %rax, %r14
jmp 0x3569
jmp 0x34dc
movq %rax, %r14
movq %rbx, %rdi
callq 0x395e
movq %r15, %rdi
callq 0x395e
jmp 0x3574
jmp 0x34dc
jmp 0x34c0
jmp 0x34d4
jmp 0x34dc
jmp 0x34c0
jmp 0x34d4
jmp 0x34dc
movq %rax, %r14
leaq -0x38(%rbp), %rdi
callq 0x395e
xorl %r15d, %r15d
jmp 0x358f
movq %rax, %r14
jmp 0x359d
movq %rax, %r14
jmp 0x3574
jmp 0x34f2
jmp 0x34f2
jmp 0x34f2
jmp 0x34f2
jmp 0x34f2
jmp 0x34f2
jmp 0x34f2
movq %rax, %r14
leaq -0x40(%rbp), %rdi
callq 0x2090
testb %r15b, %r15b
je 0x350e
pushq $0x40
popq %rsi
movq %rbx, %rdi
callq 0x2110
leaq -0x80(%rbp), %rdi
callq 0x3a4a
jmp 0x3574
jmp 0x351b
movq %rax, %r14
leaq -0x80(%rbp), %rdi
callq 0x2090
testb %r12b, %r12b
je 0x3574
pushq $0x30
jmp 0x356b
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
jmp 0x3558
movq %rax, %r14
leaq -0x80(%rbp), %rdi
callq 0x2090
testb %r12b, %r12b
je 0x3574
pushq $0x40
popq %rsi
movq %r15, %rdi
callq 0x2110
leaq -0xb8(%rbp), %rdi
callq 0x3a4a
movq %r14, %rdi
callq 0x2190
jmp 0x358c
jmp 0x358c
movq %rax, %r14
leaq -0x80(%rbp), %rdi
callq 0x2090
testb %r15b, %r15b
je 0x3574
pushq $0x30
popq %rsi
movq %rbx, %rdi
jmp 0x356f
nop