
nq:     file format elf64-x86-64


Disassembly of section .init:

0000000000400ac0 <_init>:
  400ac0:	sub    $0x8,%rsp
  400ac4:	callq  400c2c <call_gmon_start>
  400ac9:	callq  400d40 <frame_dummy>
  400ace:	callq  401cb0 <__do_global_ctors_aux>
  400ad3:	add    $0x8,%rsp
  400ad7:	retq   

Disassembly of section .plt:

0000000000400ad8 <_ZNSolsEi@plt-0x10>:
  400ad8:	pushq  0x20171a(%rip)        # 6021f8 <_GLOBAL_OFFSET_TABLE_+0x8>
  400ade:	jmpq   *0x20171c(%rip)        # 602200 <_GLOBAL_OFFSET_TABLE_+0x10>
  400ae4:	nopl   0x0(%rax)

0000000000400ae8 <_ZNSolsEi@plt>:
  400ae8:	jmpq   *0x20171a(%rip)        # 602208 <_GLOBAL_OFFSET_TABLE_+0x18>
  400aee:	pushq  $0x0
  400af3:	jmpq   400ad8 <_init+0x18>

0000000000400af8 <_ZNSi10_M_extractImEERSiRT_@plt>:
  400af8:	jmpq   *0x201712(%rip)        # 602210 <_GLOBAL_OFFSET_TABLE_+0x20>
  400afe:	pushq  $0x1
  400b03:	jmpq   400ad8 <_init+0x18>

0000000000400b08 <_ZdlPv@plt>:
  400b08:	jmpq   *0x20170a(%rip)        # 602218 <_GLOBAL_OFFSET_TABLE_+0x28>
  400b0e:	pushq  $0x2
  400b13:	jmpq   400ad8 <_init+0x18>

0000000000400b18 <_ZNSt8ios_base4InitC1Ev@plt>:
  400b18:	jmpq   *0x201702(%rip)        # 602220 <_GLOBAL_OFFSET_TABLE_+0x30>
  400b1e:	pushq  $0x3
  400b23:	jmpq   400ad8 <_init+0x18>

0000000000400b28 <__libc_start_main@plt>:
  400b28:	jmpq   *0x2016fa(%rip)        # 602228 <_GLOBAL_OFFSET_TABLE_+0x38>
  400b2e:	pushq  $0x4
  400b33:	jmpq   400ad8 <_init+0x18>

0000000000400b38 <_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@plt>:
  400b38:	jmpq   *0x2016f2(%rip)        # 602230 <_GLOBAL_OFFSET_TABLE_+0x40>
  400b3e:	pushq  $0x5
  400b43:	jmpq   400ad8 <_init+0x18>

0000000000400b48 <__cxa_atexit@plt>:
  400b48:	jmpq   *0x2016ea(%rip)        # 602238 <_GLOBAL_OFFSET_TABLE_+0x48>
  400b4e:	pushq  $0x6
  400b53:	jmpq   400ad8 <_init+0x18>

0000000000400b58 <_ZNSt8ios_base4InitD1Ev@plt>:
  400b58:	jmpq   *0x2016e2(%rip)        # 602240 <_GLOBAL_OFFSET_TABLE_+0x50>
  400b5e:	pushq  $0x7
  400b63:	jmpq   400ad8 <_init+0x18>

0000000000400b68 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>:
  400b68:	jmpq   *0x2016da(%rip)        # 602248 <_GLOBAL_OFFSET_TABLE_+0x58>
  400b6e:	pushq  $0x8
  400b73:	jmpq   400ad8 <_init+0x18>

0000000000400b78 <memcpy@plt>:
  400b78:	jmpq   *0x2016d2(%rip)        # 602250 <_GLOBAL_OFFSET_TABLE_+0x60>
  400b7e:	pushq  $0x9
  400b83:	jmpq   400ad8 <_init+0x18>

0000000000400b88 <_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l@plt>:
  400b88:	jmpq   *0x2016ca(%rip)        # 602258 <_GLOBAL_OFFSET_TABLE_+0x68>
  400b8e:	pushq  $0xa
  400b93:	jmpq   400ad8 <_init+0x18>

0000000000400b98 <_ZSt19__throw_logic_errorPKc@plt>:
  400b98:	jmpq   *0x2016c2(%rip)        # 602260 <_GLOBAL_OFFSET_TABLE_+0x70>
  400b9e:	pushq  $0xb
  400ba3:	jmpq   400ad8 <_init+0x18>

0000000000400ba8 <_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@plt>:
  400ba8:	jmpq   *0x2016ba(%rip)        # 602268 <_GLOBAL_OFFSET_TABLE_+0x78>
  400bae:	pushq  $0xc
  400bb3:	jmpq   400ad8 <_init+0x18>

0000000000400bb8 <_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@plt>:
  400bb8:	jmpq   *0x2016b2(%rip)        # 602270 <_GLOBAL_OFFSET_TABLE_+0x80>
  400bbe:	pushq  $0xd
  400bc3:	jmpq   400ad8 <_init+0x18>

0000000000400bc8 <__gxx_personality_v0@plt>:
  400bc8:	jmpq   *0x2016aa(%rip)        # 602278 <_GLOBAL_OFFSET_TABLE_+0x88>
  400bce:	pushq  $0xe
  400bd3:	jmpq   400ad8 <_init+0x18>

0000000000400bd8 <_Znwm@plt>:
  400bd8:	jmpq   *0x2016a2(%rip)        # 602280 <_GLOBAL_OFFSET_TABLE_+0x90>
  400bde:	pushq  $0xf
  400be3:	jmpq   400ad8 <_init+0x18>

0000000000400be8 <_Unwind_Resume@plt>:
  400be8:	jmpq   *0x20169a(%rip)        # 602288 <_GLOBAL_OFFSET_TABLE_+0x98>
  400bee:	pushq  $0x10
  400bf3:	jmpq   400ad8 <_init+0x18>

Disassembly of section .text:

0000000000400c00 <_start>:
  400c00:	xor    %ebp,%ebp
  400c02:	mov    %rdx,%r9
  400c05:	pop    %rsi
  400c06:	mov    %rsp,%rdx
  400c09:	and    $0xfffffffffffffff0,%rsp
  400c0d:	push   %rax
  400c0e:	push   %rsp
  400c0f:	mov    $0x401c10,%r8
  400c16:	mov    $0x401c20,%rcx
  400c1d:	mov    $0x400d50,%rdi
  400c24:	callq  400b28 <__libc_start_main@plt>
  400c29:	hlt    
  400c2a:	nop
  400c2b:	nop

0000000000400c2c <call_gmon_start>:
  400c2c:	sub    $0x8,%rsp
  400c30:	mov    0x2015b1(%rip),%rax        # 6021e8 <_DYNAMIC+0x1c0>
  400c37:	test   %rax,%rax
  400c3a:	je     400c3e <call_gmon_start+0x12>
  400c3c:	callq  *%rax
  400c3e:	add    $0x8,%rsp
  400c42:	retq   
  400c43:	nop
  400c44:	nop
  400c45:	nop
  400c46:	nop
  400c47:	nop
  400c48:	nop
  400c49:	nop
  400c4a:	nop
  400c4b:	nop
  400c4c:	nop
  400c4d:	nop
  400c4e:	nop
  400c4f:	nop

0000000000400c50 <deregister_tm_clones>:
  400c50:	push   %rbp
  400c51:	mov    $0x6022a0,%eax
  400c56:	cmp    $0x6022a0,%rax
  400c5c:	mov    %rsp,%rbp
  400c5f:	je     400c78 <deregister_tm_clones+0x28>
  400c61:	mov    $0x0,%eax
  400c66:	test   %rax,%rax
  400c69:	je     400c78 <deregister_tm_clones+0x28>
  400c6b:	pop    %rbp
  400c6c:	mov    $0x6022a0,%edi
  400c71:	jmpq   *%rax
  400c73:	nopl   0x0(%rax,%rax,1)
  400c78:	pop    %rbp
  400c79:	retq   
  400c7a:	nopw   0x0(%rax,%rax,1)

0000000000400c80 <register_tm_clones>:
  400c80:	mov    $0x6022a0,%esi
  400c85:	push   %rbp
  400c86:	sub    $0x6022a0,%rsi
  400c8d:	mov    %rsp,%rbp
  400c90:	sar    $0x3,%rsi
  400c94:	mov    %rsi,%rax
  400c97:	shr    $0x3f,%rax
  400c9b:	add    %rax,%rsi
  400c9e:	sar    %rsi
  400ca1:	je     400cb8 <register_tm_clones+0x38>
  400ca3:	mov    $0x0,%eax
  400ca8:	test   %rax,%rax
  400cab:	je     400cb8 <register_tm_clones+0x38>
  400cad:	pop    %rbp
  400cae:	mov    $0x6022a0,%edi
  400cb3:	jmpq   *%rax
  400cb5:	nopl   (%rax)
  400cb8:	pop    %rbp
  400cb9:	retq   
  400cba:	nopw   0x0(%rax,%rax,1)

0000000000400cc0 <__do_global_dtors_aux>:
  400cc0:	cmpb   $0x0,0x201809(%rip)        # 6024d0 <completed.6863>
  400cc7:	jne    400d30 <__do_global_dtors_aux+0x70>
  400cc9:	push   %rbp
  400cca:	mov    0x201807(%rip),%rax        # 6024d8 <dtor_idx.6865>
  400cd1:	mov    %rsp,%rbp
  400cd4:	push   %r12
  400cd6:	push   %rbx
  400cd7:	mov    $0x602020,%ebx
  400cdc:	mov    $0x602018,%r12d
  400ce2:	sub    $0x602018,%rbx
  400ce9:	sar    $0x3,%rbx
  400ced:	sub    $0x1,%rbx
  400cf1:	cmp    %rbx,%rax
  400cf4:	jae    400d1b <__do_global_dtors_aux+0x5b>
  400cf6:	nopw   %cs:0x0(%rax,%rax,1)
  400d00:	add    $0x1,%rax
  400d04:	mov    %rax,0x2017cd(%rip)        # 6024d8 <dtor_idx.6865>
  400d0b:	callq  *(%r12,%rax,8)
  400d0f:	mov    0x2017c2(%rip),%rax        # 6024d8 <dtor_idx.6865>
  400d16:	cmp    %rbx,%rax
  400d19:	jb     400d00 <__do_global_dtors_aux+0x40>
  400d1b:	callq  400c50 <deregister_tm_clones>
  400d20:	pop    %rbx
  400d21:	movb   $0x1,0x2017a8(%rip)        # 6024d0 <completed.6863>
  400d28:	pop    %r12
  400d2a:	pop    %rbp
  400d2b:	retq   
  400d2c:	nopl   0x0(%rax)
  400d30:	repz retq 
  400d32:	nopw   %cs:0x0(%rax,%rax,1)

0000000000400d40 <frame_dummy>:
  400d40:	push   %rbp
  400d41:	mov    %rsp,%rbp
  400d44:	pop    %rbp
  400d45:	jmpq   400c80 <register_tm_clones>
  400d4a:	nop
  400d4b:	nop
  400d4c:	nop
  400d4d:	nop
  400d4e:	nop
  400d4f:	nop

0000000000400d50 <main>:
  400d50:	push   %r12
  400d52:	push   %rbp
  400d53:	push   %rbx
  400d54:	mov    %rsi,%rbx
  400d57:	sub    $0x1a0,%rsp
  400d5e:	cmp    $0x2,%edi
  400d61:	je     400da4 <main+0x54>
  400d63:	mov    $0x7,%edx
  400d68:	mov    $0x401d0c,%esi
  400d6d:	mov    $0x6022a0,%edi
  400d72:	callq  400b88 <_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l@plt>
  400d77:	mov    (%rbx),%rsi
  400d7a:	mov    $0x6022a0,%edi
  400d7f:	mov    $0x1,%ebx
  400d84:	callq  400b68 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>
  400d89:	mov    $0x401d14,%esi
  400d8e:	mov    %rax,%rdi
  400d91:	callq  400b68 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>
  400d96:	add    $0x1a0,%rsp
  400d9d:	mov    %ebx,%eax
  400d9f:	pop    %rbx
  400da0:	pop    %rbp
  400da1:	pop    %r12
  400da3:	retq   
  400da4:	mov    0x8(%rsi),%r12
  400da8:	lea    0x10(%rsp),%rdx
  400dad:	mov    %rdx,(%rsp)
  400db1:	test   %r12,%r12
  400db4:	je     400ead <main+0x15d>
  400dba:	or     $0xffffffffffffffff,%rcx
  400dbe:	xor    %eax,%eax
  400dc0:	mov    %r12,%rdi
  400dc3:	repnz scas %es:(%rdi),%al
  400dc5:	not    %rcx
  400dc8:	lea    -0x1(%rcx),%rbp
  400dcc:	mov    %rcx,%rbx
  400dcf:	cmp    $0xf,%rbp
  400dd3:	ja     400e84 <main+0x134>
  400dd9:	cmp    $0x1,%rbp
  400ddd:	je     400e59 <main+0x109>
  400ddf:	test   %rbp,%rbp
  400de2:	jne    400ea8 <main+0x158>
  400de8:	mov    (%rsp),%rax
  400dec:	mov    %rbp,0x8(%rsp)
  400df1:	mov    $0x8,%edx
  400df6:	mov    %rsp,%rsi
  400df9:	lea    0x20(%rsp),%rdi
  400dfe:	movb   $0x0,-0x1(%rax,%rbx,1)
  400e03:	callq  400ba8 <_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@plt>
  400e08:	mov    (%rsp),%rdi
  400e0c:	lea    0x10(%rsp),%rax
  400e11:	cmp    %rax,%rdi
  400e14:	je     400e1b <main+0xcb>
  400e16:	callq  400b08 <_ZdlPv@plt>
  400e1b:	lea    0x20(%rsp),%rdi
  400e20:	mov    %rsp,%rsi
  400e23:	callq  400af8 <_ZNSi10_M_extractImEERSiRT_@plt>
  400e28:	mov    (%rax),%rdx
  400e2b:	mov    -0x18(%rdx),%rdx
  400e2f:	testb  $0x5,0x20(%rax,%rdx,1)
  400e34:	je     400e64 <main+0x114>
  400e36:	mov    $0x401d18,%esi
  400e3b:	mov    $0x6022a0,%edi
  400e40:	callq  400b68 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>
  400e45:	mov    $0x1,%ebx
  400e4a:	lea    0x20(%rsp),%rdi
  400e4f:	callq  400b38 <_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@plt>
  400e54:	jmpq   400d96 <main+0x46>
  400e59:	movzbl (%r12),%eax
  400e5e:	mov    %al,0x10(%rsp)
  400e62:	jmp    400de8 <main+0x98>
  400e64:	mov    (%rsp),%edi
  400e67:	callq  401190 <_Z5solvei>
  400e6c:	mov    %eax,%esi
  400e6e:	mov    $0x6023c0,%edi
  400e73:	callq  400ae8 <_ZNSolsEi@plt>
  400e78:	mov    %rax,%rdi
  400e7b:	callq  400bb8 <_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@plt>
  400e80:	xor    %ebx,%ebx
  400e82:	jmp    400e4a <main+0xfa>
  400e84:	mov    %rcx,%rdi
  400e87:	callq  400bd8 <_Znwm@plt>
  400e8c:	mov    %rbp,0x10(%rsp)
  400e91:	mov    %rax,(%rsp)
  400e95:	mov    %rbp,%rdx
  400e98:	mov    %r12,%rsi
  400e9b:	mov    %rax,%rdi
  400e9e:	callq  400b78 <memcpy@plt>
  400ea3:	jmpq   400de8 <main+0x98>
  400ea8:	mov    %rdx,%rax
  400eab:	jmp    400e95 <main+0x145>
  400ead:	mov    $0x401d28,%edi
  400eb2:	callq  400b98 <_ZSt19__throw_logic_errorPKc@plt>
  400eb7:	lea    0x20(%rsp),%rdi
  400ebc:	mov    %rax,%rbx
  400ebf:	vzeroupper 
  400ec2:	callq  400b38 <_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@plt>
  400ec7:	mov    %rbx,%rdi
  400eca:	callq  400be8 <_Unwind_Resume@plt>
  400ecf:	mov    (%rsp),%rdi
  400ed3:	lea    0x10(%rsp),%rdx
  400ed8:	mov    %rax,%rbx
  400edb:	cmp    %rdx,%rdi
  400ede:	je     400eea <main+0x19a>
  400ee0:	vzeroupper 
  400ee3:	callq  400b08 <_ZdlPv@plt>
  400ee8:	jmp    400ec7 <main+0x177>
  400eea:	vzeroupper 
  400eed:	jmp    400ec7 <main+0x177>
  400eef:	nop

0000000000400ef0 <_GLOBAL__sub_I_main>:
  400ef0:	sub    $0x8,%rsp
  400ef4:	mov    $0x6024e0,%edi
  400ef9:	callq  400b18 <_ZNSt8ios_base4InitC1Ev@plt>
  400efe:	mov    $0x602298,%edx
  400f03:	mov    $0x6024e0,%esi
  400f08:	mov    $0x400b58,%edi
  400f0d:	add    $0x8,%rsp
  400f11:	jmpq   400b48 <__cxa_atexit@plt>
  400f16:	nop
  400f17:	nop
  400f18:	nop
  400f19:	nop
  400f1a:	nop
  400f1b:	nop
  400f1c:	nop
  400f1d:	nop
  400f1e:	nop
  400f1f:	nop

0000000000400f20 <_Z14find_solutionsIL5stage3ELi2EEiijjj>:
  400f20:	push   %r15
  400f22:	lea    (%rcx,%rcx,1),%eax
  400f25:	xor    %r10d,%r10d
  400f28:	push   %r14
  400f2a:	push   %r13
  400f2c:	push   %r12
  400f2e:	push   %rbp
  400f2f:	push   %rbx
  400f30:	sub    $0x58,%rsp
  400f34:	mov    %edi,0xc(%rsp)
  400f38:	mov    %edx,%edi
  400f3a:	shr    %edi
  400f3c:	mov    %eax,0x8(%rsp)
  400f40:	or     %esi,%eax
  400f42:	or     %edi,%eax
  400f44:	mov    %edi,0x4(%rsp)
  400f48:	xor    $0xffffffffffffffff,%eax
  400f4b:	je     400f7f <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x5f>
  400f4d:	mov    %r10d,%r9d
  400f50:	mov    %eax,%r11d
  400f53:	mov    %esi,%r10d
  400f56:	lea    -0x1(%r11),%edx
  400f5a:	mov    %r11d,%eax
  400f5d:	mov    %r10d,%r15d
  400f60:	neg    %eax
  400f62:	and    %r11d,%eax
  400f65:	and    %edx,%r11d
  400f68:	xor    %eax,%r15d
  400f6b:	cmp    $0xffffffffffffffff,%r15d
  400f6f:	jne    400f98 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x78>
  400f71:	mov    $0x2,%r9d
  400f77:	test   %r11d,%r11d
  400f7a:	jne    400f56 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x36>
  400f7c:	mov    %r9d,%r10d
  400f7f:	add    $0x58,%rsp
  400f83:	mov    %r10d,%eax
  400f86:	pop    %rbx
  400f87:	pop    %rbp
  400f88:	pop    %r12
  400f8a:	pop    %r13
  400f8c:	pop    %r14
  400f8e:	pop    %r15
  400f90:	retq   
  400f91:	nopl   0x0(%rax)
  400f98:	mov    0x4(%rsp),%edx
  400f9c:	or     %eax,%edx
  400f9e:	or     0x8(%rsp),%eax
  400fa2:	mov    %edx,%esi
  400fa4:	shr    %esi
  400fa6:	mov    %esi,0x10(%rsp)
  400faa:	lea    (%rax,%rax,1),%ebx
  400fad:	mov    %esi,%eax
  400faf:	or     %ebx,%eax
  400fb1:	mov    %ebx,0x14(%rsp)
  400fb5:	or     %r15d,%eax
  400fb8:	xor    $0xffffffffffffffff,%eax
  400fbb:	je     400f77 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x57>
  400fbd:	mov    %r11d,0x18(%rsp)
  400fc2:	mov    %r15d,%r11d
  400fc5:	mov    %r10d,0x20(%rsp)
  400fca:	mov    %eax,%r10d
  400fcd:	movl   $0x0,(%rsp)
  400fd4:	mov    %r9d,0x1c(%rsp)
  400fd9:	lea    -0x1(%r10),%edx
  400fdd:	mov    %r10d,%eax
  400fe0:	mov    %r11d,%r8d
  400fe3:	neg    %eax
  400fe5:	and    %r10d,%eax
  400fe8:	and    %edx,%r10d
  400feb:	xor    %eax,%r8d
  400fee:	cmp    $0xffffffffffffffff,%r8d
  400ff2:	jne    401020 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x100>
  400ff4:	movl   $0x2,(%rsp)
  400ffb:	test   %r10d,%r10d
  400ffe:	jne    400fd9 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0xb9>
  401000:	mov    0x1c(%rsp),%r9d
  401005:	mov    0x18(%rsp),%r11d
  40100a:	mov    0x20(%rsp),%r10d
  40100f:	add    (%rsp),%r9d
  401013:	jmpq   400f77 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x57>
  401018:	nopl   0x0(%rax,%rax,1)
  401020:	mov    0x10(%rsp),%edx
  401024:	or     %eax,%edx
  401026:	or     0x14(%rsp),%eax
  40102a:	mov    %edx,%ecx
  40102c:	shr    %ecx
  40102e:	mov    %ecx,0x24(%rsp)
  401032:	lea    (%rax,%rax,1),%esi
  401035:	mov    %ecx,%eax
  401037:	or     %esi,%eax
  401039:	mov    %esi,0x28(%rsp)
  40103d:	or     %r8d,%eax
  401040:	xor    $0xffffffffffffffff,%eax
  401043:	mov    %eax,%r15d
  401046:	je     400ffb <_Z14find_solutionsIL5stage3ELi2EEiijjj+0xdb>
  401048:	mov    %r10d,0x30(%rsp)
  40104d:	xor    %r9d,%r9d
  401050:	mov    %r8d,%r10d
  401053:	mov    %r11d,0x2c(%rsp)
  401058:	lea    -0x1(%r15),%edx
  40105c:	mov    %r15d,%eax
  40105f:	mov    %r10d,%r13d
  401062:	neg    %eax
  401064:	and    %r15d,%eax
  401067:	and    %edx,%r15d
  40106a:	xor    %eax,%r13d
  40106d:	cmp    $0xffffffffffffffff,%r13d
  401071:	jne    401098 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x178>
  401073:	mov    $0x2,%r9d
  401079:	test   %r15d,%r15d
  40107c:	jne    401058 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x138>
  40107e:	mov    0x2c(%rsp),%r11d
  401083:	mov    0x30(%rsp),%r10d
  401088:	add    %r9d,(%rsp)
  40108c:	jmpq   400ffb <_Z14find_solutionsIL5stage3ELi2EEiijjj+0xdb>
  401091:	nopl   0x0(%rax)
  401098:	mov    0x24(%rsp),%edx
  40109c:	or     %eax,%edx
  40109e:	or     0x28(%rsp),%eax
  4010a2:	mov    %edx,%esi
  4010a4:	shr    %esi
  4010a6:	mov    %esi,0x34(%rsp)
  4010aa:	add    %eax,%eax
  4010ac:	or     %eax,%esi
  4010ae:	mov    %eax,0x38(%rsp)
  4010b2:	mov    %esi,%ebx
  4010b4:	or     %r13d,%ebx
  4010b7:	xor    $0xffffffffffffffff,%ebx
  4010ba:	je     401079 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x159>
  4010bc:	mov    %r15d,%r11d
  4010bf:	xor    %r8d,%r8d
  4010c2:	mov    %r13d,%r15d
  4010c5:	lea    -0x1(%rbx),%eax
  4010c8:	mov    %ebx,%ebp
  4010ca:	mov    %r15d,%r14d
  4010cd:	neg    %ebp
  4010cf:	and    %ebx,%ebp
  4010d1:	and    %eax,%ebx
  4010d3:	xor    %ebp,%r14d
  4010d6:	cmp    $0xffffffffffffffff,%r14d
  4010da:	jne    4010f0 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x1d0>
  4010dc:	mov    $0x2,%r8d
  4010e2:	test   %ebx,%ebx
  4010e4:	jne    4010c5 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x1a5>
  4010e6:	mov    %r11d,%r15d
  4010e9:	add    %r8d,%r9d
  4010ec:	jmp    401079 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x159>
  4010ee:	xchg   %ax,%ax
  4010f0:	mov    0x34(%rsp),%eax
  4010f4:	or     %ebp,%eax
  4010f6:	or     0x38(%rsp),%ebp
  4010fa:	shr    %eax
  4010fc:	mov    %eax,0x3c(%rsp)
  401100:	add    %ebp,%ebp
  401102:	or     %ebp,%eax
  401104:	mov    %eax,%r12d
  401107:	or     %r14d,%r12d
  40110a:	xor    $0xffffffffffffffff,%r12d
  40110e:	je     4010e2 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x1c2>
  401110:	mov    %ebp,0x40(%rsp)
  401114:	xor    %r13d,%r13d
  401117:	mov    %r10d,%ebp
  40111a:	lea    -0x1(%r12),%eax
  40111f:	mov    %r12d,%edx
  401122:	mov    %r14d,%esi
  401125:	neg    %edx
  401127:	and    %r12d,%edx
  40112a:	and    %eax,%r12d
  40112d:	xor    %edx,%esi
  40112f:	cmp    $0xffffffffffffffff,%esi
  401132:	jne    401150 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x230>
  401134:	mov    $0x2,%r13d
  40113a:	test   %r12d,%r12d
  40113d:	jne    40111a <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x1fa>
  40113f:	mov    %ebp,%r10d
  401142:	add    %r13d,%r8d
  401145:	jmp    4010e2 <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x1c2>
  401147:	nopw   0x0(%rax,%rax,1)
  401150:	mov    0x40(%rsp),%ecx
  401154:	mov    %r8d,0x4c(%rsp)
  401159:	mov    0xc(%rsp),%edi
  40115d:	mov    %r9d,0x48(%rsp)
  401162:	mov    %r11d,0x44(%rsp)
  401167:	or     %edx,%ecx
  401169:	or     0x3c(%rsp),%edx
  40116d:	callq  400f20 <_Z14find_solutionsIL5stage3ELi2EEiijjj>
  401172:	mov    0x44(%rsp),%r11d
  401177:	add    %eax,%r13d
  40117a:	mov    0x48(%rsp),%r9d
  40117f:	mov    0x4c(%rsp),%r8d
  401184:	jmp    40113a <_Z14find_solutionsIL5stage3ELi2EEiijjj+0x21a>
  401186:	nopw   %cs:0x0(%rax,%rax,1)

0000000000401190 <_Z5solvei>:
  401190:	mov    %edi,%ecx
  401192:	mov    $0xffffffff,%eax
  401197:	push   %r15
  401199:	shl    %cl,%eax
  40119b:	mov    %edi,%ecx
  40119d:	push   %r14
  40119f:	shr    $0x1f,%ecx
  4011a2:	push   %r13
  4011a4:	push   %r12
  4011a6:	add    %edi,%ecx
  4011a8:	push   %rbp
  4011a9:	sar    %ecx
  4011ab:	push   %rbx
  4011ac:	mov    %eax,%ebx
  4011ae:	sub    $0x98,%rsp
  4011b5:	mov    %eax,0x8(%rsp)
  4011b9:	mov    $0x1,%eax
  4011be:	shl    %cl,%eax
  4011c0:	mov    %edi,0x48(%rsp)
  4011c4:	mov    %eax,%ecx
  4011c6:	mov    %eax,0x24(%rsp)
  4011ca:	mov    %ebx,%eax
  4011cc:	neg    %ecx
  4011ce:	not    %eax
  4011d0:	movl   $0x0,0x4(%rsp)
  4011d8:	and    %ecx,%eax
  4011da:	and    $0x1,%edi
  4011dd:	mov    %ecx,0x44(%rsp)
  4011e1:	mov    %eax,%r10d
  4011e4:	je     4012b0 <_Z5solvei+0x120>
  4011ea:	test   %r10d,%r10d
  4011ed:	je     40128e <_Z5solvei+0xfe>
  4011f3:	mov    0x8(%rsp),%r8d
  4011f8:	lea    -0x1(%r10),%edx
  4011fc:	mov    %r10d,%eax
  4011ff:	neg    %eax
  401201:	and    %r10d,%eax
  401204:	and    %edx,%r10d
  401207:	xor    %eax,%r8d
  40120a:	cmp    $0xffffffffffffffff,%r8d
  40120e:	je     401340 <_Z5solvei+0x1b0>
  401214:	lea    (%rax,%rax,1),%ebx
  401217:	mov    %eax,%edi
  401219:	shr    %edi
  40121b:	mov    %ebx,0x10(%rsp)
  40121f:	mov    %edi,0xc(%rsp)
  401223:	or     %r8d,%edi
  401226:	mov    %edi,%edx
  401228:	or     %ebx,%edx
  40122a:	not    %edx
  40122c:	mov    %edx,%r9d
  40122f:	cmp    0x24(%rsp),%eax
  401233:	je     401460 <_Z5solvei+0x2d0>
  401239:	test   %edx,%edx
  40123b:	je     4011ea <_Z5solvei+0x5a>
  40123d:	xor    %r11d,%r11d
  401240:	mov    %r10d,0x18(%rsp)
  401245:	mov    %edx,%r10d
  401248:	mov    %r11d,%eax
  40124b:	mov    %r8d,%r11d
  40124e:	mov    %eax,%r8d
  401251:	lea    -0x1(%r10),%edx
  401255:	mov    %r10d,%eax
  401258:	mov    %r11d,%r15d
  40125b:	neg    %eax
  40125d:	and    %r10d,%eax
  401260:	and    %edx,%r10d
  401263:	xor    %eax,%r15d
  401266:	cmp    $0xffffffffffffffff,%r15d
  40126a:	jne    401350 <_Z5solvei+0x1c0>
  401270:	mov    $0x2,%r8d
  401276:	test   %r10d,%r10d
  401279:	jne    401251 <_Z5solvei+0xc1>
  40127b:	mov    0x18(%rsp),%r10d
  401280:	add    %r8d,0x4(%rsp)
  401285:	test   %r10d,%r10d
  401288:	jne    4011f3 <_Z5solvei+0x63>
  40128e:	mov    0x4(%rsp),%eax
  401292:	add    $0x98,%rsp
  401299:	pop    %rbx
  40129a:	pop    %rbp
  40129b:	pop    %r12
  40129d:	pop    %r13
  40129f:	pop    %r14
  4012a1:	pop    %r15
  4012a3:	retq   
  4012a4:	nopl   0x0(%rax)
  4012a8:	movl   $0x1,0x4(%rsp)
  4012b0:	test   %r10d,%r10d
  4012b3:	je     40128e <_Z5solvei+0xfe>
  4012b5:	mov    0x8(%rsp),%r8d
  4012ba:	lea    -0x1(%r10),%edx
  4012be:	mov    %r10d,%eax
  4012c1:	neg    %eax
  4012c3:	and    %r10d,%eax
  4012c6:	and    %edx,%r10d
  4012c9:	xor    %eax,%r8d
  4012cc:	cmp    $0xffffffffffffffff,%r8d
  4012d0:	je     4012a8 <_Z5solvei+0x118>
  4012d2:	lea    (%rax,%rax,1),%esi
  4012d5:	mov    %eax,%ecx
  4012d7:	shr    %ecx
  4012d9:	mov    %esi,0x10(%rsp)
  4012dd:	mov    %ecx,%eax
  4012df:	mov    %ecx,0xc(%rsp)
  4012e3:	or     %r8d,%eax
  4012e6:	or     %esi,%eax
  4012e8:	xor    $0xffffffffffffffff,%eax
  4012eb:	je     4012b0 <_Z5solvei+0x120>
  4012ed:	xor    %r11d,%r11d
  4012f0:	mov    %r10d,0x18(%rsp)
  4012f5:	mov    %r11d,%r10d
  4012f8:	mov    %r8d,%r11d
  4012fb:	mov    %eax,%r8d
  4012fe:	lea    -0x1(%r8),%edx
  401302:	mov    %r8d,%eax
  401305:	mov    %r11d,%r15d
  401308:	neg    %eax
  40130a:	and    %r8d,%eax
  40130d:	and    %edx,%r8d
  401310:	xor    %eax,%r15d
  401313:	cmp    $0xffffffffffffffff,%r15d
  401317:	jne    4013d8 <_Z5solvei+0x248>
  40131d:	mov    $0x2,%r10d
  401323:	test   %r8d,%r8d
  401326:	jne    4012fe <_Z5solvei+0x16e>
  401328:	mov    %r10d,%r11d
  40132b:	mov    0x18(%rsp),%r10d
  401330:	add    %r11d,0x4(%rsp)
  401335:	jmpq   4012b0 <_Z5solvei+0x120>
  40133a:	nopw   0x0(%rax,%rax,1)
  401340:	movl   $0x1,0x4(%rsp)
  401348:	jmpq   4011ea <_Z5solvei+0x5a>
  40134d:	nopl   (%rax)
  401350:	mov    0xc(%rsp),%edx
  401354:	or     %eax,%edx
  401356:	or     0x10(%rsp),%eax
  40135a:	mov    %edx,%esi
  40135c:	shr    %esi
  40135e:	mov    %esi,0x1c(%rsp)
  401362:	lea    (%rax,%rax,1),%ebx
  401365:	mov    %esi,%eax
  401367:	or     %ebx,%eax
  401369:	mov    %ebx,0x20(%rsp)
  40136d:	or     %r15d,%eax
  401370:	xor    $0xffffffffffffffff,%eax
  401373:	je     401276 <_Z5solvei+0xe6>
  401379:	mov    %r11d,0x28(%rsp)
  40137e:	xor    %r9d,%r9d
  401381:	mov    %r15d,%r11d
  401384:	mov    %r10d,0x30(%rsp)
  401389:	mov    %eax,%r10d
  40138c:	mov    %r8d,0x2c(%rsp)
  401391:	lea    -0x1(%r10),%edx
  401395:	mov    %r10d,%eax
  401398:	mov    %r11d,%r15d
  40139b:	neg    %eax
  40139d:	and    %r10d,%eax
  4013a0:	and    %edx,%r10d
  4013a3:	xor    %eax,%r15d
  4013a6:	cmp    $0xffffffffffffffff,%r15d
  4013aa:	jne    401640 <_Z5solvei+0x4b0>
  4013b0:	mov    $0x2,%r9d
  4013b6:	test   %r10d,%r10d
  4013b9:	jne    401391 <_Z5solvei+0x201>
  4013bb:	mov    0x2c(%rsp),%r8d
  4013c0:	mov    0x28(%rsp),%r11d
  4013c5:	mov    0x30(%rsp),%r10d
  4013ca:	add    %r9d,%r8d
  4013cd:	jmpq   401276 <_Z5solvei+0xe6>
  4013d2:	nopw   0x0(%rax,%rax,1)
  4013d8:	mov    0xc(%rsp),%edx
  4013dc:	or     %eax,%edx
  4013de:	or     0x10(%rsp),%eax
  4013e2:	mov    %edx,%ebx
  4013e4:	shr    %ebx
  4013e6:	mov    %ebx,0x1c(%rsp)
  4013ea:	lea    (%rax,%rax,1),%esi
  4013ed:	mov    %ebx,%eax
  4013ef:	or     %esi,%eax
  4013f1:	mov    %esi,0x20(%rsp)
  4013f5:	or     %r15d,%eax
  4013f8:	xor    $0xffffffffffffffff,%eax
  4013fb:	je     401323 <_Z5solvei+0x193>
  401401:	xor    %r9d,%r9d
  401404:	mov    %r11d,0x24(%rsp)
  401409:	mov    %eax,%r11d
  40140c:	mov    %r10d,0x2c(%rsp)
  401411:	mov    %r9d,%r10d
  401414:	mov    %r15d,%r9d
  401417:	mov    %r8d,0x28(%rsp)
  40141c:	lea    -0x1(%r11),%edx
  401420:	mov    %r11d,%eax
  401423:	mov    %r9d,%r15d
  401426:	neg    %eax
  401428:	and    %r11d,%eax
  40142b:	and    %edx,%r11d
  40142e:	xor    %eax,%r15d
  401431:	cmp    $0xffffffffffffffff,%r15d
  401435:	jne    4016d0 <_Z5solvei+0x540>
  40143b:	mov    $0x2,%r10d
  401441:	test   %r11d,%r11d
  401444:	jne    40141c <_Z5solvei+0x28c>
  401446:	mov    %r10d,%r9d
  401449:	mov    0x2c(%rsp),%r10d
  40144e:	mov    0x24(%rsp),%r11d
  401453:	mov    0x28(%rsp),%r8d
  401458:	add    %r9d,%r10d
  40145b:	jmpq   401323 <_Z5solvei+0x193>
  401460:	and    0x44(%rsp),%r9d
  401465:	mov    %r9d,%r11d
  401468:	je     4011ea <_Z5solvei+0x5a>
  40146e:	movl   $0x0,0x14(%rsp)
  401476:	mov    %r10d,0x54(%rsp)
  40147b:	mov    %r8d,0x18(%rsp)
  401480:	mov    0x18(%rsp),%r8d
  401485:	lea    -0x1(%r11),%edx
  401489:	mov    %r11d,%eax
  40148c:	neg    %eax
  40148e:	and    %r11d,%eax
  401491:	and    %edx,%r11d
  401494:	xor    %eax,%r8d
  401497:	cmp    $0xffffffffffffffff,%r8d
  40149b:	je     401520 <_Z5solvei+0x390>
  4014a1:	mov    0xc(%rsp),%edx
  4014a5:	or     %eax,%edx
  4014a7:	or     0x10(%rsp),%eax
  4014ab:	mov    %edx,%esi
  4014ad:	shr    %esi
  4014af:	mov    %esi,0x1c(%rsp)
  4014b3:	lea    (%rax,%rax,1),%edi
  4014b6:	mov    %esi,%eax
  4014b8:	or     %edi,%eax
  4014ba:	mov    %edi,0x20(%rsp)
  4014be:	or     %r8d,%eax
  4014c1:	xor    $0xffffffffffffffff,%eax
  4014c4:	je     401501 <_Z5solvei+0x371>
  4014c6:	mov    %r11d,0x2c(%rsp)
  4014cb:	xor    %r10d,%r10d
  4014ce:	mov    %eax,%r11d
  4014d1:	lea    -0x1(%r11),%edx
  4014d5:	mov    %r11d,%eax
  4014d8:	mov    %r8d,%r14d
  4014db:	neg    %eax
  4014dd:	and    %r11d,%eax
  4014e0:	and    %edx,%r11d
  4014e3:	xor    %eax,%r14d
  4014e6:	cmp    $0xffffffffffffffff,%r14d
  4014ea:	jne    401530 <_Z5solvei+0x3a0>
  4014ec:	mov    $0x2,%r10d
  4014f2:	test   %r11d,%r11d
  4014f5:	jne    4014d1 <_Z5solvei+0x341>
  4014f7:	mov    0x2c(%rsp),%r11d
  4014fc:	add    %r10d,0x14(%rsp)
  401501:	test   %r11d,%r11d
  401504:	jne    401480 <_Z5solvei+0x2f0>
  40150a:	mov    0x14(%rsp),%ebx
  40150e:	mov    0x54(%rsp),%r10d
  401513:	add    %ebx,0x4(%rsp)
  401517:	jmpq   4011ea <_Z5solvei+0x5a>
  40151c:	nopl   0x0(%rax)
  401520:	movl   $0x1,0x14(%rsp)
  401528:	jmp    401501 <_Z5solvei+0x371>
  40152a:	nopw   0x0(%rax,%rax,1)
  401530:	mov    0x1c(%rsp),%edx
  401534:	or     %eax,%edx
  401536:	or     0x20(%rsp),%eax
  40153a:	mov    %edx,%edi
  40153c:	shr    %edi
  40153e:	mov    %edi,0x30(%rsp)
  401542:	lea    (%rax,%rax,1),%ecx
  401545:	mov    %edi,%eax
  401547:	or     %ecx,%eax
  401549:	mov    %ecx,0x34(%rsp)
  40154d:	or     %r14d,%eax
  401550:	xor    $0xffffffffffffffff,%eax
  401553:	je     4014f2 <_Z5solvei+0x362>
  401555:	xor    %r9d,%r9d
  401558:	mov    %r10d,0x38(%rsp)
  40155d:	mov    %r11d,0x40(%rsp)
  401562:	mov    %r9d,%r10d
  401565:	mov    %r14d,%r11d
  401568:	mov    %eax,%r9d
  40156b:	mov    %r8d,0x3c(%rsp)
  401570:	lea    -0x1(%r9),%edx
  401574:	mov    %r9d,%eax
  401577:	mov    %r11d,%r8d
  40157a:	neg    %eax
  40157c:	and    %r9d,%eax
  40157f:	and    %edx,%r9d
  401582:	xor    %eax,%r8d
  401585:	cmp    $0xffffffffffffffff,%r8d
  401589:	jne    4015b0 <_Z5solvei+0x420>
  40158b:	mov    $0x2,%r10d
  401591:	test   %r9d,%r9d
  401594:	jne    401570 <_Z5solvei+0x3e0>
  401596:	mov    %r10d,%r9d
  401599:	mov    0x38(%rsp),%r10d
  40159e:	mov    0x3c(%rsp),%r8d
  4015a3:	mov    0x40(%rsp),%r11d
  4015a8:	add    %r9d,%r10d
  4015ab:	jmpq   4014f2 <_Z5solvei+0x362>
  4015b0:	mov    0x30(%rsp),%edx
  4015b4:	or     %eax,%edx
  4015b6:	or     0x34(%rsp),%eax
  4015ba:	mov    %edx,%ebx
  4015bc:	shr    %ebx
  4015be:	mov    %ebx,0x4c(%rsp)
  4015c2:	lea    (%rax,%rax,1),%edi
  4015c5:	mov    %ebx,%eax
  4015c7:	or     %edi,%eax
  4015c9:	mov    %edi,0x50(%rsp)
  4015cd:	or     %r8d,%eax
  4015d0:	xor    $0xffffffffffffffff,%eax
  4015d3:	je     401591 <_Z5solvei+0x401>
  4015d5:	mov    %r11d,0x5c(%rsp)
  4015da:	mov    %r8d,%r11d
  4015dd:	mov    %r10d,0x60(%rsp)
  4015e2:	mov    %eax,%r10d
  4015e5:	movl   $0x0,0x28(%rsp)
  4015ed:	mov    %r9d,0x58(%rsp)
  4015f2:	lea    -0x1(%r10),%edx
  4015f6:	mov    %r10d,%eax
  4015f9:	mov    %r11d,%r15d
  4015fc:	neg    %eax
  4015fe:	and    %r10d,%eax
  401601:	and    %edx,%r10d
  401604:	xor    %eax,%r15d
  401607:	cmp    $0xffffffffffffffff,%r15d
  40160b:	jne    401760 <_Z5solvei+0x5d0>
  401611:	movl   $0x2,0x28(%rsp)
  401619:	test   %r10d,%r10d
  40161c:	jne    4015f2 <_Z5solvei+0x462>
  40161e:	mov    0x60(%rsp),%r10d
  401623:	mov    0x58(%rsp),%r9d
  401628:	mov    0x5c(%rsp),%r11d
  40162d:	add    0x28(%rsp),%r10d
  401632:	jmpq   401591 <_Z5solvei+0x401>
  401637:	nopw   0x0(%rax,%rax,1)
  401640:	mov    0x1c(%rsp),%edx
  401644:	or     %eax,%edx
  401646:	or     0x20(%rsp),%eax
  40164a:	mov    %edx,%edi
  40164c:	shr    %edi
  40164e:	mov    %edi,0x34(%rsp)
  401652:	lea    (%rax,%rax,1),%ecx
  401655:	mov    %edi,%eax
  401657:	or     %ecx,%eax
  401659:	mov    %ecx,0x38(%rsp)
  40165d:	or     %r15d,%eax
  401660:	xor    $0xffffffffffffffff,%eax
  401663:	je     4013b6 <_Z5solvei+0x226>
  401669:	mov    %r11d,0x40(%rsp)
  40166e:	mov    %eax,%r11d
  401671:	mov    %r10d,0x4c(%rsp)
  401676:	mov    %r15d,%r10d
  401679:	movl   $0x0,0x14(%rsp)
  401681:	mov    %r9d,0x3c(%rsp)
  401686:	lea    -0x1(%r11),%edx
  40168a:	mov    %r11d,%eax
  40168d:	mov    %r10d,%r8d
  401690:	neg    %eax
  401692:	and    %r11d,%eax
  401695:	and    %edx,%r11d
  401698:	xor    %eax,%r8d
  40169b:	cmp    $0xffffffffffffffff,%r8d
  40169f:	jne    4017d8 <_Z5solvei+0x648>
  4016a5:	movl   $0x2,0x14(%rsp)
  4016ad:	test   %r11d,%r11d
  4016b0:	jne    401686 <_Z5solvei+0x4f6>
  4016b2:	mov    0x3c(%rsp),%r9d
  4016b7:	mov    0x40(%rsp),%r11d
  4016bc:	mov    0x4c(%rsp),%r10d
  4016c1:	add    0x14(%rsp),%r9d
  4016c6:	jmpq   4013b6 <_Z5solvei+0x226>
  4016cb:	nopl   0x0(%rax,%rax,1)
  4016d0:	mov    0x1c(%rsp),%edx
  4016d4:	or     %eax,%edx
  4016d6:	or     0x20(%rsp),%eax
  4016da:	mov    %edx,%edi
  4016dc:	shr    %edi
  4016de:	mov    %edi,0x30(%rsp)
  4016e2:	lea    (%rax,%rax,1),%esi
  4016e5:	mov    %edi,%eax
  4016e7:	or     %esi,%eax
  4016e9:	mov    %esi,0x34(%rsp)
  4016ed:	or     %r15d,%eax
  4016f0:	xor    $0xffffffffffffffff,%eax
  4016f3:	je     401441 <_Z5solvei+0x2b1>
  4016f9:	mov    %r11d,0x3c(%rsp)
  4016fe:	mov    %eax,%r11d
  401701:	mov    %r10d,0x40(%rsp)
  401706:	mov    %r15d,%r10d
  401709:	movl   $0x0,0x14(%rsp)
  401711:	mov    %r9d,0x38(%rsp)
  401716:	lea    -0x1(%r11),%edx
  40171a:	mov    %r11d,%eax
  40171d:	mov    %r10d,%r8d
  401720:	neg    %eax
  401722:	and    %r11d,%eax
  401725:	and    %edx,%r11d
  401728:	xor    %eax,%r8d
  40172b:	cmp    $0xffffffffffffffff,%r8d
  40172f:	jne    401858 <_Z5solvei+0x6c8>
  401735:	movl   $0x2,0x14(%rsp)
  40173d:	test   %r11d,%r11d
  401740:	jne    401716 <_Z5solvei+0x586>
  401742:	mov    0x40(%rsp),%r10d
  401747:	mov    0x38(%rsp),%r9d
  40174c:	mov    0x3c(%rsp),%r11d
  401751:	add    0x14(%rsp),%r10d
  401756:	jmpq   401441 <_Z5solvei+0x2b1>
  40175b:	nopl   0x0(%rax,%rax,1)
  401760:	mov    0x4c(%rsp),%edx
  401764:	or     %eax,%edx
  401766:	or     0x50(%rsp),%eax
  40176a:	mov    %edx,%edi
  40176c:	shr    %edi
  40176e:	mov    %edi,0x64(%rsp)
  401772:	lea    (%rax,%rax,1),%ebx
  401775:	mov    %edi,%eax
  401777:	or     %ebx,%eax
  401779:	mov    %ebx,0x68(%rsp)
  40177d:	or     %r15d,%eax
  401780:	xor    $0xffffffffffffffff,%eax
  401783:	je     401619 <_Z5solvei+0x489>
  401789:	xor    %r9d,%r9d
  40178c:	mov    %eax,%ebx
  40178e:	mov    %r10d,0x6c(%rsp)
  401793:	mov    %r15d,%r8d
  401796:	mov    %r11d,0x70(%rsp)
  40179b:	lea    -0x1(%rbx),%edx
  40179e:	mov    %ebx,%eax
  4017a0:	mov    %r8d,%r14d
  4017a3:	neg    %eax
  4017a5:	and    %ebx,%eax
  4017a7:	and    %edx,%ebx
  4017a9:	xor    %eax,%r14d
  4017ac:	cmp    $0xffffffffffffffff,%r14d
  4017b0:	jne    4018d8 <_Z5solvei+0x748>
  4017b6:	mov    $0x2,%r9d
  4017bc:	test   %ebx,%ebx
  4017be:	jne    40179b <_Z5solvei+0x60b>
  4017c0:	mov    0x6c(%rsp),%r10d
  4017c5:	mov    0x70(%rsp),%r11d
  4017ca:	add    %r9d,0x28(%rsp)
  4017cf:	jmpq   401619 <_Z5solvei+0x489>
  4017d4:	nopl   0x0(%rax)
  4017d8:	mov    0x34(%rsp),%edx
  4017dc:	or     %eax,%edx
  4017de:	or     0x38(%rsp),%eax
  4017e2:	mov    %edx,%ecx
  4017e4:	shr    %ecx
  4017e6:	mov    %ecx,0x50(%rsp)
  4017ea:	lea    (%rax,%rax,1),%esi
  4017ed:	mov    %ecx,%eax
  4017ef:	or     %esi,%eax
  4017f1:	mov    %esi,0x54(%rsp)
  4017f5:	or     %r8d,%eax
  4017f8:	xor    $0xffffffffffffffff,%eax
  4017fb:	mov    %eax,%r15d
  4017fe:	je     4016ad <_Z5solvei+0x51d>
  401804:	mov    %r10d,0x58(%rsp)
  401809:	xor    %r9d,%r9d
  40180c:	mov    %r8d,%r10d
  40180f:	mov    %r11d,0x5c(%rsp)
  401814:	lea    -0x1(%r15),%edx
  401818:	mov    %r15d,%eax
  40181b:	mov    %r10d,%r13d
  40181e:	neg    %eax
  401820:	and    %r15d,%eax
  401823:	and    %edx,%r15d
  401826:	xor    %eax,%r13d
  401829:	cmp    $0xffffffffffffffff,%r13d
  40182d:	jne    401940 <_Z5solvei+0x7b0>
  401833:	mov    $0x2,%r9d
  401839:	test   %r15d,%r15d
  40183c:	jne    401814 <_Z5solvei+0x684>
  40183e:	mov    0x58(%rsp),%r10d
  401843:	mov    0x5c(%rsp),%r11d
  401848:	add    %r9d,0x14(%rsp)
  40184d:	jmpq   4016ad <_Z5solvei+0x51d>
  401852:	nopw   0x0(%rax,%rax,1)
  401858:	mov    0x30(%rsp),%edx
  40185c:	or     %eax,%edx
  40185e:	or     0x34(%rsp),%eax
  401862:	mov    %edx,%ebx
  401864:	shr    %ebx
  401866:	mov    %ebx,0x44(%rsp)
  40186a:	lea    (%rax,%rax,1),%edi
  40186d:	mov    %ebx,%eax
  40186f:	or     %edi,%eax
  401871:	mov    %edi,0x4c(%rsp)
  401875:	or     %r8d,%eax
  401878:	xor    $0xffffffffffffffff,%eax
  40187b:	mov    %eax,%r15d
  40187e:	je     40173d <_Z5solvei+0x5ad>
  401884:	mov    %r11d,0x54(%rsp)
  401889:	xor    %r9d,%r9d
  40188c:	mov    %r8d,%r11d
  40188f:	mov    %r10d,0x50(%rsp)
  401894:	lea    -0x1(%r15),%edx
  401898:	mov    %r15d,%eax
  40189b:	mov    %r11d,%r13d
  40189e:	neg    %eax
  4018a0:	and    %r15d,%eax
  4018a3:	and    %edx,%r15d
  4018a6:	xor    %eax,%r13d
  4018a9:	cmp    $0xffffffffffffffff,%r13d
  4018ad:	jne    4019a8 <_Z5solvei+0x818>
  4018b3:	mov    $0x2,%r9d
  4018b9:	test   %r15d,%r15d
  4018bc:	jne    401894 <_Z5solvei+0x704>
  4018be:	mov    0x50(%rsp),%r10d
  4018c3:	mov    0x54(%rsp),%r11d
  4018c8:	add    %r9d,0x14(%rsp)
  4018cd:	jmpq   40173d <_Z5solvei+0x5ad>
  4018d2:	nopw   0x0(%rax,%rax,1)
  4018d8:	mov    0x64(%rsp),%edx
  4018dc:	or     %eax,%edx
  4018de:	or     0x68(%rsp),%eax
  4018e2:	mov    %edx,%ecx
  4018e4:	shr    %ecx
  4018e6:	mov    %ecx,0x74(%rsp)
  4018ea:	add    %eax,%eax
  4018ec:	or     %eax,%ecx
  4018ee:	mov    %eax,0x78(%rsp)
  4018f2:	mov    %ecx,%ebp
  4018f4:	or     %r14d,%ebp
  4018f7:	xor    $0xffffffffffffffff,%ebp
  4018fa:	je     4017bc <_Z5solvei+0x62c>
  401900:	mov    %ebx,%r10d
  401903:	xor    %r11d,%r11d
  401906:	mov    %r14d,%ebx
  401909:	lea    -0x1(%rbp),%eax
  40190c:	mov    %ebp,%r12d
  40190f:	mov    %ebx,%r15d
  401912:	neg    %r12d
  401915:	and    %ebp,%r12d
  401918:	and    %eax,%ebp
  40191a:	xor    %r12d,%r15d
  40191d:	cmp    $0xffffffffffffffff,%r15d
  401921:	jne    401a08 <_Z5solvei+0x878>
  401927:	mov    $0x2,%r11d
  40192d:	test   %ebp,%ebp
  40192f:	jne    401909 <_Z5solvei+0x779>
  401931:	mov    %r10d,%ebx
  401934:	add    %r11d,%r9d
  401937:	jmpq   4017bc <_Z5solvei+0x62c>
  40193c:	nopl   0x0(%rax)
  401940:	mov    0x50(%rsp),%edx
  401944:	or     %eax,%edx
  401946:	or     0x54(%rsp),%eax
  40194a:	mov    %edx,%edi
  40194c:	shr    %edi
  40194e:	mov    %edi,0x60(%rsp)
  401952:	add    %eax,%eax
  401954:	or     %eax,%edi
  401956:	mov    %eax,0x64(%rsp)
  40195a:	mov    %edi,%ebx
  40195c:	or     %r13d,%ebx
  40195f:	xor    $0xffffffffffffffff,%ebx
  401962:	je     401839 <_Z5solvei+0x6a9>
  401968:	mov    %r15d,%r11d
  40196b:	xor    %r8d,%r8d
  40196e:	mov    %r13d,%r15d
  401971:	lea    -0x1(%rbx),%eax
  401974:	mov    %ebx,%ebp
  401976:	mov    %r15d,%r14d
  401979:	neg    %ebp
  40197b:	and    %ebx,%ebp
  40197d:	and    %eax,%ebx
  40197f:	xor    %ebp,%r14d
  401982:	cmp    $0xffffffffffffffff,%r14d
  401986:	jne    401a78 <_Z5solvei+0x8e8>
  40198c:	mov    $0x2,%r8d
  401992:	test   %ebx,%ebx
  401994:	jne    401971 <_Z5solvei+0x7e1>
  401996:	mov    %r11d,%r15d
  401999:	add    %r8d,%r9d
  40199c:	jmpq   401839 <_Z5solvei+0x6a9>
  4019a1:	nopl   0x0(%rax)
  4019a8:	mov    0x44(%rsp),%edx
  4019ac:	or     %eax,%edx
  4019ae:	or     0x4c(%rsp),%eax
  4019b2:	mov    %edx,%ecx
  4019b4:	shr    %ecx
  4019b6:	mov    %ecx,%ebx
  4019b8:	mov    %ecx,0x58(%rsp)
  4019bc:	add    %eax,%eax
  4019be:	or     %eax,%ebx
  4019c0:	mov    %eax,0x5c(%rsp)
  4019c4:	or     %r13d,%ebx
  4019c7:	xor    $0xffffffffffffffff,%ebx
  4019ca:	je     4018b9 <_Z5solvei+0x729>
  4019d0:	xor    %r8d,%r8d
  4019d3:	mov    %r13d,%r10d
  4019d6:	lea    -0x1(%rbx),%eax
  4019d9:	mov    %ebx,%ebp
  4019db:	mov    %r10d,%r14d
  4019de:	neg    %ebp
  4019e0:	and    %ebx,%ebp
  4019e2:	and    %eax,%ebx
  4019e4:	xor    %ebp,%r14d
  4019e7:	cmp    $0xffffffffffffffff,%r14d
  4019eb:	jne    401ad0 <_Z5solvei+0x940>
  4019f1:	mov    $0x2,%r8d
  4019f7:	test   %ebx,%ebx
  4019f9:	jne    4019d6 <_Z5solvei+0x846>
  4019fb:	add    %r8d,%r9d
  4019fe:	jmpq   4018b9 <_Z5solvei+0x729>
  401a03:	nopl   0x0(%rax,%rax,1)
  401a08:	mov    0x74(%rsp),%eax
  401a0c:	or     %r12d,%eax
  401a0f:	or     0x78(%rsp),%r12d
  401a14:	shr    %eax
  401a16:	mov    %eax,0x7c(%rsp)
  401a1a:	add    %r12d,%r12d
  401a1d:	or     %r12d,%eax
  401a20:	mov    %eax,%r13d
  401a23:	or     %r15d,%r13d
  401a26:	xor    $0xffffffffffffffff,%r13d
  401a2a:	je     40192d <_Z5solvei+0x79d>
  401a30:	mov    %r12d,0x80(%rsp)
  401a38:	xor    %r14d,%r14d
  401a3b:	mov    %r11d,%r12d
  401a3e:	lea    -0x1(%r13),%eax
  401a42:	mov    %r13d,%edx
  401a45:	mov    %r15d,%esi
  401a48:	neg    %edx
  401a4a:	and    %r13d,%edx
  401a4d:	and    %eax,%r13d
  401a50:	xor    %edx,%esi
  401a52:	cmp    $0xffffffffffffffff,%esi
  401a55:	jne    401b30 <_Z5solvei+0x9a0>
  401a5b:	mov    $0x2,%r14d
  401a61:	test   %r13d,%r13d
  401a64:	jne    401a3e <_Z5solvei+0x8ae>
  401a66:	mov    %r12d,%r11d
  401a69:	add    %r14d,%r11d
  401a6c:	jmpq   40192d <_Z5solvei+0x79d>
  401a71:	nopl   0x0(%rax)
  401a78:	mov    0x60(%rsp),%eax
  401a7c:	or     %ebp,%eax
  401a7e:	or     0x64(%rsp),%ebp
  401a82:	shr    %eax
  401a84:	mov    %eax,0x68(%rsp)
  401a88:	add    %ebp,%ebp
  401a8a:	or     %ebp,%eax
  401a8c:	mov    %eax,%r12d
  401a8f:	or     %r14d,%r12d
  401a92:	xor    $0xffffffffffffffff,%r12d
  401a96:	je     401992 <_Z5solvei+0x802>
  401a9c:	xor    %r13d,%r13d
  401a9f:	lea    -0x1(%r12),%eax
  401aa4:	mov    %r12d,%edx
  401aa7:	mov    %r14d,%esi
  401aaa:	neg    %edx
  401aac:	and    %r12d,%edx
  401aaf:	and    %eax,%r12d
  401ab2:	xor    %edx,%esi
  401ab4:	cmp    $0xffffffffffffffff,%esi
  401ab7:	jne    401b80 <_Z5solvei+0x9f0>
  401abd:	mov    $0x2,%r13d
  401ac3:	test   %r12d,%r12d
  401ac6:	jne    401a9f <_Z5solvei+0x90f>
  401ac8:	add    %r13d,%r8d
  401acb:	jmpq   401992 <_Z5solvei+0x802>
  401ad0:	mov    0x58(%rsp),%eax
  401ad4:	or     %ebp,%eax
  401ad6:	or     0x5c(%rsp),%ebp
  401ada:	shr    %eax
  401adc:	mov    %eax,0x60(%rsp)
  401ae0:	add    %ebp,%ebp
  401ae2:	or     %ebp,%eax
  401ae4:	mov    %eax,%r12d
  401ae7:	or     %r14d,%r12d
  401aea:	xor    $0xffffffffffffffff,%r12d
  401aee:	je     4019f7 <_Z5solvei+0x867>
  401af4:	xor    %r13d,%r13d
  401af7:	lea    -0x1(%r12),%eax
  401afc:	mov    %r12d,%edx
  401aff:	mov    %r14d,%esi
  401b02:	neg    %edx
  401b04:	and    %r12d,%edx
  401b07:	and    %eax,%r12d
  401b0a:	xor    %edx,%esi
  401b0c:	cmp    $0xffffffffffffffff,%esi
  401b0f:	jne    401bc8 <_Z5solvei+0xa38>
  401b15:	mov    $0x2,%r13d
  401b1b:	test   %r12d,%r12d
  401b1e:	jne    401af7 <_Z5solvei+0x967>
  401b20:	add    %r13d,%r8d
  401b23:	jmpq   4019f7 <_Z5solvei+0x867>
  401b28:	nopl   0x0(%rax,%rax,1)
  401b30:	mov    0x80(%rsp),%ecx
  401b37:	mov    %r8d,0x8c(%rsp)
  401b3f:	mov    0x48(%rsp),%edi
  401b43:	mov    %r9d,0x88(%rsp)
  401b4b:	mov    %r10d,0x84(%rsp)
  401b53:	or     %edx,%ecx
  401b55:	or     0x7c(%rsp),%edx
  401b59:	callq  400f20 <_Z14find_solutionsIL5stage3ELi2EEiijjj>
  401b5e:	mov    0x84(%rsp),%r10d
  401b66:	add    %eax,%r14d
  401b69:	mov    0x88(%rsp),%r9d
  401b71:	mov    0x8c(%rsp),%r8d
  401b79:	jmpq   401a61 <_Z5solvei+0x8d1>
  401b7e:	xchg   %ax,%ax
  401b80:	mov    %ebp,%ecx
  401b82:	mov    0x48(%rsp),%edi
  401b86:	mov    %r9d,0x78(%rsp)
  401b8b:	or     %edx,%ecx
  401b8d:	or     0x68(%rsp),%edx
  401b91:	mov    %r11d,0x74(%rsp)
  401b96:	mov    %r10d,0x70(%rsp)
  401b9b:	mov    %r8d,0x6c(%rsp)
  401ba0:	callq  400f20 <_Z14find_solutionsIL5stage3ELi2EEiijjj>
  401ba5:	mov    0x6c(%rsp),%r8d
  401baa:	add    %eax,%r13d
  401bad:	mov    0x70(%rsp),%r10d
  401bb2:	mov    0x74(%rsp),%r11d
  401bb7:	mov    0x78(%rsp),%r9d
  401bbc:	jmpq   401ac3 <_Z5solvei+0x933>
  401bc1:	nopl   0x0(%rax)
  401bc8:	mov    %ebp,%ecx
  401bca:	mov    0x48(%rsp),%edi
  401bce:	mov    %r8d,0x70(%rsp)
  401bd3:	or     %edx,%ecx
  401bd5:	or     0x60(%rsp),%edx
  401bd9:	mov    %r9d,0x6c(%rsp)
  401bde:	mov    %r10d,0x68(%rsp)
  401be3:	mov    %r11d,0x64(%rsp)
  401be8:	callq  400f20 <_Z14find_solutionsIL5stage3ELi2EEiijjj>
  401bed:	mov    0x64(%rsp),%r11d
  401bf2:	add    %eax,%r13d
  401bf5:	mov    0x68(%rsp),%r10d
  401bfa:	mov    0x6c(%rsp),%r9d
  401bff:	mov    0x70(%rsp),%r8d
  401c04:	jmpq   401b1b <_Z5solvei+0x98b>
  401c09:	nop
  401c0a:	nop
  401c0b:	nop
  401c0c:	nop
  401c0d:	nop
  401c0e:	nop
  401c0f:	nop

0000000000401c10 <__libc_csu_fini>:
  401c10:	repz retq 
  401c12:	nopw   %cs:0x0(%rax,%rax,1)

0000000000401c20 <__libc_csu_init>:
  401c20:	mov    %rbp,-0x28(%rsp)
  401c25:	mov    %r12,-0x20(%rsp)
  401c2a:	lea    0x2003cf(%rip),%rbp        # 602000 <__CTOR_LIST__>
  401c31:	lea    0x2003c8(%rip),%r12        # 602000 <__CTOR_LIST__>
  401c38:	mov    %r13,-0x18(%rsp)
  401c3d:	mov    %r14,-0x10(%rsp)
  401c42:	mov    %r15,-0x8(%rsp)
  401c47:	mov    %rbx,-0x30(%rsp)
  401c4c:	sub    $0x38,%rsp
  401c50:	sub    %r12,%rbp
  401c53:	mov    %edi,%r13d
  401c56:	mov    %rsi,%r14
  401c59:	sar    $0x3,%rbp
  401c5d:	mov    %rdx,%r15
  401c60:	callq  400ac0 <_init>
  401c65:	test   %rbp,%rbp
  401c68:	je     401c86 <__libc_csu_init+0x66>
  401c6a:	xor    %ebx,%ebx
  401c6c:	nopl   0x0(%rax)
  401c70:	mov    %r15,%rdx
  401c73:	mov    %r14,%rsi
  401c76:	mov    %r13d,%edi
  401c79:	callq  *(%r12,%rbx,8)
  401c7d:	add    $0x1,%rbx
  401c81:	cmp    %rbp,%rbx
  401c84:	jb     401c70 <__libc_csu_init+0x50>
  401c86:	mov    0x8(%rsp),%rbx
  401c8b:	mov    0x10(%rsp),%rbp
  401c90:	mov    0x18(%rsp),%r12
  401c95:	mov    0x20(%rsp),%r13
  401c9a:	mov    0x28(%rsp),%r14
  401c9f:	mov    0x30(%rsp),%r15
  401ca4:	add    $0x38,%rsp
  401ca8:	retq   
  401ca9:	nop
  401caa:	nop
  401cab:	nop
  401cac:	nop
  401cad:	nop
  401cae:	nop
  401caf:	nop

0000000000401cb0 <__do_global_ctors_aux>:
  401cb0:	mov    0x200351(%rip),%rax        # 602008 <__CTOR_LIST__+0x8>
  401cb7:	cmp    $0xffffffffffffffff,%rax
  401cbb:	je     401cf0 <__do_global_ctors_aux+0x40>
  401cbd:	push   %rbp
  401cbe:	mov    %rsp,%rbp
  401cc1:	push   %rbx
  401cc2:	mov    $0x602008,%ebx
  401cc7:	sub    $0x8,%rsp
  401ccb:	nopl   0x0(%rax,%rax,1)
  401cd0:	sub    $0x8,%rbx
  401cd4:	callq  *%rax
  401cd6:	mov    (%rbx),%rax
  401cd9:	cmp    $0xffffffffffffffff,%rax
  401cdd:	jne    401cd0 <__do_global_ctors_aux+0x20>
  401cdf:	add    $0x8,%rsp
  401ce3:	pop    %rbx
  401ce4:	pop    %rbp
  401ce5:	retq   
  401ce6:	nopw   %cs:0x0(%rax,%rax,1)
  401cf0:	repz retq 
  401cf2:	nop
  401cf3:	nop

Disassembly of section .fini:

0000000000401cf4 <_fini>:
  401cf4:	sub    $0x8,%rsp
  401cf8:	callq  400cc0 <__do_global_dtors_aux>
  401cfd:	add    $0x8,%rsp
  401d01:	retq   
