1801127be:	85 db                	test   %ebx,%ebx
1801127c0:	0f 84 e1 02 00 00    	je     0x180112aa7
1801127c6:	33 ed                	xor    %ebp,%ebp
1801127c8:	49 8d 43 ff          	lea    -0x1(%r11),%rax
1801127cc:	49 3b c2             	cmp    %r10,%rax
1801127cf:	0f 86 3d 01 00 00    	jbe    0x180112912
1801127d5:	4d 85 db             	test   %r11,%r11
1801127d8:	0f 84 34 01 00 00    	je     0x180112912
1801127de:	49 8b c3             	mov    %r11,%rax
1801127e1:	4d 8d 7a 02          	lea    0x2(%r10),%r15
1801127e5:	48 c1 e8 02          	shr    $0x2,%rax
1801127e9:	49 3b c7             	cmp    %r15,%rax
1801127ec:	0f 82 ce 00 00 00    	jb     0x1801128c0
1801127f2:	33 d2                	xor    %edx,%edx
1801127f4:	49 8b c3             	mov    %r11,%rax
1801127f7:	49 f7 f7             	div    %r15
1801127fa:	4c 8b f8             	mov    %rax,%r15
1801127fd:	49 8d 04 3e          	lea    (%r14,%rdi,1),%rax
180112801:	49 f7 e7             	mul    %r15
180112804:	4c 8b e8             	mov    %rax,%r13
180112807:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
18011280c:	48 8b 44 24 08       	mov    0x8(%rsp),%rax
180112811:	49 f7 e7             	mul    %r15
180112814:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
180112819:	48 89 44 24 10       	mov    %rax,0x10(%rsp)
18011281e:	49 83 ff 03          	cmp    $0x3,%r15
180112822:	77 0f                	ja     0x180112833
180112824:	33 db                	xor    %ebx,%ebx
180112826:	4d 85 c9             	test   %r9,%r9
180112829:	74 08                	je     0x180112833
18011282b:	41 c7 41 10 05 00 00 	movl   $0x5,0x10(%r9)
180112832:	00
180112833:	48 39 6c 24 20       	cmp    %rbp,0x20(%rsp)
180112838:	0f 85 d4 00 00 00    	jne    0x180112912
18011283e:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
180112845:	ff ff 7f
180112848:	48 2b c6             	sub    %rsi,%rax
18011284b:	49 2b c0             	sub    %r8,%rax
18011284e:	4c 3b e8             	cmp    %rax,%r13
180112851:	0f 87 bb 00 00 00    	ja     0x180112912
180112857:	48 8b 14 24          	mov    (%rsp),%rdx
18011285b:	33 c0                	xor    %eax,%eax
18011285d:	4c 8b 64 24 18       	mov    0x18(%rsp),%r12
180112862:	49 8b cf             	mov    %r15,%rcx
180112865:	48 0f af cf          	imul   %rdi,%rcx
180112869:	48 39 54 24 10       	cmp    %rdx,0x10(%rsp)
18011286e:	bd 01 00 00 00       	mov    $0x1,%ebp
180112873:	0f 97 c0             	seta   %al
180112876:	48 2b 54 24 10       	sub    0x10(%rsp),%rdx
18011287b:	48 03 44 24 28       	add    0x28(%rsp),%rax
180112880:	4c 2b e9             	sub    %rcx,%r13
180112883:	4c 03 c1             	add    %rcx,%r8
180112886:	48 89 14 24          	mov    %rdx,(%rsp)
18011288a:	4d 0f af fa          	imul   %r10,%r15
18011288e:	49 03 f5             	add    %r13,%rsi
180112891:	48 b9 00 00 00 00 00 	movabs $0x8000000000000000,%rcx
180112898:	00 00 80
18011289b:	4c 03 f8             	add    %rax,%r15
18011289e:	48 8b c6             	mov    %rsi,%rax
1801128a1:	49 0b c0             	or     %r8,%rax
1801128a4:	4d 2b df             	sub    %r15,%r11
1801128a7:	48 3b c1             	cmp    %rcx,%rax
1801128aa:	48 8b ca             	mov    %rdx,%rcx
1801128ad:	72 63                	jb     0x180112912
1801128af:	33 db                	xor    %ebx,%ebx
1801128b1:	4d 85 c9             	test   %r9,%r9
1801128b4:	74 5c                	je     0x180112912
1801128b6:	41 c7 41 10 05 00 00 	movl   $0x5,0x10(%r9)
1801128bd:	00
1801128be:	eb 52                	jmp    0x180112912
1801128c0:	48 8b 2c 24          	mov    (%rsp),%rbp
1801128c4:	4c 8b 64 24 08       	mov    0x8(%rsp),%r12
1801128c9:	33 c0                	xor    %eax,%eax
1801128cb:	48 8b d6             	mov    %rsi,%rdx
1801128ce:	49 03 f6             	add    %r14,%rsi
1801128d1:	4d 8b e8             	mov    %r8,%r13
1801128d4:	4c 03 c7             	add    %rdi,%r8
1801128d7:	48 8b ce             	mov    %rsi,%rcx
1801128da:	4c 3b e5             	cmp    %rbp,%r12
1801128dd:	0f 97 c0             	seta   %al
1801128e0:	49 2b ec             	sub    %r12,%rbp
1801128e3:	49 03 c2             	add    %r10,%rax
1801128e6:	4c 2b d8             	sub    %rax,%r11
1801128e9:	49 0b c8             	or     %r8,%rcx
1801128ec:	78 05                	js     0x1801128f3
1801128ee:	4d 3b df             	cmp    %r15,%r11
1801128f1:	73 d6                	jae    0x1801128c9
1801128f3:	4c 8b 64 24 18       	mov    0x18(%rsp),%r12
1801128f8:	48 85 c9             	test   %rcx,%rcx
1801128fb:	48 89 2c 24          	mov    %rbp,(%rsp)
1801128ff:	bd 01 00 00 00       	mov    $0x1,%ebp
180112904:	48 8b 0c 24          	mov    (%rsp),%rcx
180112908:	79 08                	jns    0x180112912
18011290a:	33 ed                	xor    %ebp,%ebp
18011290c:	4d 8b c5             	mov    %r13,%r8
18011290f:	48 8b f2             	mov    %rdx,%rsi
180112912:	49 8d 42 ff          	lea    -0x1(%r10),%rax
180112916:	49 3b c3             	cmp    %r11,%rax
180112919:	0f 86 46 01 00 00    	jbe    0x180112a65
18011291f:	4d 85 d2             	test   %r10,%r10
180112922:	0f 84 3d 01 00 00    	je     0x180112a65
180112928:	49 8b c2             	mov    %r10,%rax
18011292b:	4d 8d 7b 02          	lea    0x2(%r11),%r15
18011292f:	48 c1 e8 02          	shr    $0x2,%rax
180112933:	49 3b c7             	cmp    %r15,%rax
180112936:	0f 82 d8 00 00 00    	jb     0x180112a14
18011293c:	33 d2                	xor    %edx,%edx
18011293e:	49 8b c2             	mov    %r10,%rax
180112941:	49 f7 f7             	div    %r15
180112944:	4c 8b f8             	mov    %rax,%r15
180112947:	4a 8d 04 06          	lea    (%rsi,%r8,1),%rax
18011294b:	49 f7 e7             	mul    %r15
18011294e:	4c 8b e8             	mov    %rax,%r13
180112951:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
180112956:	48 8b c1             	mov    %rcx,%rax
180112959:	49 f7 e7             	mul    %r15
18011295c:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
180112961:	48 89 44 24 10       	mov    %rax,0x10(%rsp)
180112966:	49 83 ff 03          	cmp    $0x3,%r15
18011296a:	77 0f                	ja     0x18011297b
18011296c:	33 db                	xor    %ebx,%ebx
18011296e:	4d 85 c9             	test   %r9,%r9
180112971:	74 08                	je     0x18011297b
180112973:	41 c7 41 10 05 00 00 	movl   $0x5,0x10(%r9)
18011297a:	00
18011297b:	48 83 7c 24 28 00    	cmpq   $0x0,0x28(%rsp)
180112981:	0f 85 de 00 00 00    	jne    0x180112a65
180112987:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
18011298e:	ff ff 7f
180112991:	49 2b c6             	sub    %r14,%rax
180112994:	48 2b c7             	sub    %rdi,%rax
180112997:	4c 3b e8             	cmp    %rax,%r13
18011299a:	0f 87 c5 00 00 00    	ja     0x180112a65
1801129a0:	48 8b 54 24 08       	mov    0x8(%rsp),%rdx
1801129a5:	33 c0                	xor    %eax,%eax
1801129a7:	4c 8b 64 24 18       	mov    0x18(%rsp),%r12
1801129ac:	49 8b cf             	mov    %r15,%rcx
1801129af:	49 0f af c8          	imul   %r8,%rcx
1801129b3:	48 39 54 24 10       	cmp    %rdx,0x10(%rsp)
1801129b8:	bd 01 00 00 00       	mov    $0x1,%ebp
1801129bd:	0f 97 c0             	seta   %al
1801129c0:	48 2b 54 24 10       	sub    0x10(%rsp),%rdx
1801129c5:	48 03 44 24 20       	add    0x20(%rsp),%rax
1801129ca:	4c 2b e9             	sub    %rcx,%r13
1801129cd:	48 03 f9             	add    %rcx,%rdi
1801129d0:	48 89 54 24 08       	mov    %rdx,0x8(%rsp)
1801129d5:	4d 0f af fb          	imul   %r11,%r15
1801129d9:	4d 03 f5             	add    %r13,%r14
1801129dc:	48 b9 00 00 00 00 00 	movabs $0x8000000000000000,%rcx
1801129e3:	00 00 80
1801129e6:	4c 03 f8             	add    %rax,%r15
1801129e9:	49 8b c6             	mov    %r14,%rax
1801129ec:	48 0b c7             	or     %rdi,%rax
1801129ef:	4d 2b d7             	sub    %r15,%r10
1801129f2:	48 3b c1             	cmp    %rcx,%rax
1801129f5:	48 8b 0c 24          	mov    (%rsp),%rcx
1801129f9:	0f 82 bf fd ff ff    	jb     0x1801127be
1801129ff:	33 db                	xor    %ebx,%ebx
180112a01:	4d 85 c9             	test   %r9,%r9
180112a04:	0f 84 b4 fd ff ff    	je     0x1801127be
180112a0a:	41 c7 41 10 05 00 00 	movl   $0x5,0x10(%r9)
180112a11:	00
180112a12:	eb 51                	jmp    0x180112a65
180112a14:	48 8b 2c 24          	mov    (%rsp),%rbp
180112a18:	4c 8b 64 24 08       	mov    0x8(%rsp),%r12
180112a1d:	33 c0                	xor    %eax,%eax
180112a1f:	49 8b d6             	mov    %r14,%rdx
180112a22:	4c 03 f6             	add    %rsi,%r14
180112a25:	4c 8b ef             	mov    %rdi,%r13
180112a28:	49 03 f8             	add    %r8,%rdi
180112a2b:	49 8b ce             	mov    %r14,%rcx
180112a2e:	49 3b ec             	cmp    %r12,%rbp
180112a31:	0f 97 c0             	seta   %al
180112a34:	4c 2b e5             	sub    %rbp,%r12
180112a37:	49 03 c3             	add    %r11,%rax
180112a3a:	4c 2b d0             	sub    %rax,%r10
180112a3d:	48 0b cf             	or     %rdi,%rcx
180112a40:	78 05                	js     0x180112a47
180112a42:	4d 3b d7             	cmp    %r15,%r10
180112a45:	73 d6                	jae    0x180112a1d
180112a47:	4c 89 64 24 08       	mov    %r12,0x8(%rsp)
180112a4c:	48 85 c9             	test   %rcx,%rcx
180112a4f:	4c 8b 64 24 18       	mov    0x18(%rsp),%r12
180112a54:	48 8b cd             	mov    %rbp,%rcx
180112a57:	0f 89 61 fd ff ff    	jns    0x1801127be
180112a5d:	33 ed                	xor    %ebp,%ebp
180112a5f:	49 8b fd             	mov    %r13,%rdi
180112a62:	4c 8b f2             	mov    %rdx,%r14
180112a65:	48 8b 0c 24          	mov    (%rsp),%rcx
180112a69:	85 ed                	test   %ebp,%ebp
180112a6b:	0f 85 4d fd ff ff    	jne    0x1801127be
180112a71:	85 db                	test   %ebx,%ebx
180112a73:	74 32                	je     0x180112aa7
180112a75:	49 8b c6             	mov    %r14,%rax
180112a78:	48 0b c7             	or     %rdi,%rax
180112a7b:	48 0b c6             	or     %rsi,%rax
180112a7e:	49 0b c0             	or     %r8,%rax
180112a81:	7d 11                	jge    0x180112a94
180112a83:	33 db                	xor    %ebx,%ebx
180112a85:	4d 85 c9             	test   %r9,%r9
180112a88:	74 1d                	je     0x180112aa7
180112a8a:	41 c7 41 10 05 00 00 	movl   $0x5,0x10(%r9)
180112a91:	00
180112a92:	eb 13                	jmp    0x180112aa7
180112a94:	4d 89 04 24          	mov    %r8,(%r12)
180112a98:	49 89 74 24 08       	mov    %rsi,0x8(%r12)
180112a9d:	49 89 7c 24 10       	mov    %rdi,0x10(%r12)
180112aa2:	4d 89 74 24 18       	mov    %r14,0x18(%r12)
180112aa7:	8b c3                	mov    %ebx,%eax
180112aa9:	48 83 c4 38          	add    $0x38,%rsp
180112aad:	41 5f                	pop    %r15
180112aaf:	41 5e                	pop    %r14
180112ab1:	41 5d                	pop    %r13
180112ab3:	41 5c                	pop    %r12
180112ab5:	5f                   	pop    %rdi
180112ab6:	5e                   	pop    %rsi
180112ab7:	5d                   	pop    %rbp
180112ab8:	5b                   	pop    %rbx
180112ab9:	c3                   	ret
180112aba:	cc                   	int3
180112abb:	cc                   	int3
180112abc:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
180112ac1:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
180112ac6:	55                   	push   %rbp
180112ac7:	56                   	push   %rsi
180112ac8:	57                   	push   %rdi
180112ac9:	41 54                	push   %r12
180112acb:	41 55                	push   %r13
180112acd:	41 56                	push   %r14
180112acf:	41 57                	push   %r15
180112ad1:	48 8b ec             	mov    %rsp,%rbp
180112ad4:	48 83 ec 70          	sub    $0x70,%rsp
180112ad8:	49 8b f9             	mov    %r9,%rdi
180112adb:	4d 8b e8             	mov    %r8,%r13
180112ade:	48 8b f2             	mov    %rdx,%rsi
180112ae1:	4c 8b f9             	mov    %rcx,%r15
180112ae4:	48 85 d2             	test   %rdx,%rdx
180112ae7:	74 18                	je     0x180112b01
180112ae9:	48 8d 42 ff          	lea    -0x1(%rdx),%rax
180112aed:	48 8d 04 c1          	lea    (%rcx,%rax,8),%rax
180112af1:	48 83 38 00          	cmpq   $0x0,(%rax)
180112af5:	75 0a                	jne    0x180112b01
180112af7:	48 83 e8 08          	sub    $0x8,%rax
180112afb:	48 83 ee 01          	sub    $0x1,%rsi
180112aff:	75 f0                	jne    0x180112af1
180112b01:	4d 85 c9             	test   %r9,%r9
180112b04:	74 1b                	je     0x180112b21
180112b06:	4a 8d 04 cd f8 ff ff 	lea    -0x8(,%r9,8),%rax
180112b0d:	ff
180112b0e:	49 03 c5             	add    %r13,%rax
180112b11:	48 83 38 00          	cmpq   $0x0,(%rax)
180112b15:	75 0a                	jne    0x180112b21
180112b17:	48 83 e8 08          	sub    $0x8,%rax
180112b1b:	48 83 ef 01          	sub    $0x1,%rdi
180112b1f:	75 f0                	jne    0x180112b11
180112b21:	48 8d 0c 37          	lea    (%rdi,%rsi,1),%rcx
180112b25:	45 33 e4             	xor    %r12d,%r12d
180112b28:	48 8d 0c cd 10 00 00 	lea    0x10(,%rcx,8),%rcx
180112b2f:	00
180112b30:	e8 1b 73 f8 ff       	call   0x180099e50
180112b35:	41 8d 5c 24 01       	lea    0x1(%r12),%ebx
180112b3a:	4c 8b f0             	mov    %rax,%r14
180112b3d:	48 85 c0             	test   %rax,%rax
180112b40:	75 07                	jne    0x180112b49
180112b42:	33 db                	xor    %ebx,%ebx
180112b44:	e9 77 03 00 00       	jmp    0x180112ec0
180112b49:	4d 85 ff             	test   %r15,%r15
180112b4c:	0f 84 45 03 00 00    	je     0x180112e97
180112b52:	4d 85 ed             	test   %r13,%r13
180112b55:	0f 84 3c 03 00 00    	je     0x180112e97
180112b5b:	48 8b 45 60          	mov    0x60(%rbp),%rax
180112b5f:	48 85 c0             	test   %rax,%rax
180112b62:	0f 84 2f 03 00 00    	je     0x180112e97
180112b68:	48 85 f6             	test   %rsi,%rsi
180112b6b:	75 1a                	jne    0x180112b87
180112b6d:	4c 8b c7             	mov    %rdi,%r8
180112b70:	4c 8b e7             	mov    %rdi,%r12
180112b73:	49 c1 e0 03          	shl    $0x3,%r8
180112b77:	49 8b d5             	mov    %r13,%rdx
180112b7a:	48 8b c8             	mov    %rax,%rcx
180112b7d:	e8 3e 2e 02 00       	call   0x1801359c0
180112b82:	e9 2a 03 00 00       	jmp    0x180112eb1
180112b87:	48 8b ce             	mov    %rsi,%rcx
180112b8a:	48 c1 e1 03          	shl    $0x3,%rcx
180112b8e:	48 85 ff             	test   %rdi,%rdi
180112b91:	75 0b                	jne    0x180112b9e
180112b93:	4c 8b e6             	mov    %rsi,%r12
180112b96:	4c 8b c1             	mov    %rcx,%r8
180112b99:	49 8b d7             	mov    %r15,%rdx
180112b9c:	eb dc                	jmp    0x180112b7a
180112b9e:	4c 8b 7d 70          	mov    0x70(%rbp),%r15
180112ba2:	4c 8d 61 08          	lea    0x8(%rcx),%r12
180112ba6:	48 8b 4d 40          	mov    0x40(%rbp),%rcx
180112baa:	4d 8b c7             	mov    %r15,%r8
180112bad:	48 8b d6             	mov    %rsi,%rdx
180112bb0:	4d 03 e6             	add    %r14,%r12
180112bb3:	e8 d0 e7 ff ff       	call   0x180111388
180112bb8:	4d 8b c7             	mov    %r15,%r8
180112bbb:	48 8b d7             	mov    %rdi,%rdx
180112bbe:	49 8b cd             	mov    %r13,%rcx
180112bc1:	4c 8b d0             	mov    %rax,%r10
180112bc4:	e8 bf e7 ff ff       	call   0x180111388
180112bc9:	48 8b 4d 40          	mov    0x40(%rbp),%rcx
180112bcd:	48 8b d8             	mov    %rax,%rbx
180112bd0:	4c 3b d3             	cmp    %rbx,%r10
180112bd3:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
180112bd8:	49 8b c2             	mov    %r10,%rax
180112bdb:	4c 8b ce             	mov    %rsi,%r9
180112bde:	48 0f 47 c3          	cmova  %rbx,%rax
180112be2:	4d 8b c6             	mov    %r14,%r8
180112be5:	41 f7 da             	neg    %r10d
180112be8:	48 89 45 58          	mov    %rax,0x58(%rbp)
180112bec:	41 8b d2             	mov    %r10d,%edx
180112bef:	e8 98 e8 ff ff       	call   0x18011148c
180112bf4:	85 c0                	test   %eax,%eax
180112bf6:	0f 84 93 02 00 00    	je     0x180112e8f
180112bfc:	f7 db                	neg    %ebx
180112bfe:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
180112c03:	8b d3                	mov    %ebx,%edx
180112c05:	4c 8b cf             	mov    %rdi,%r9
180112c08:	4d 8b c4             	mov    %r12,%r8
180112c0b:	49 8b cd             	mov    %r13,%rcx
180112c0e:	e8 79 e8 ff ff       	call   0x18011148c
180112c13:	45 33 ed             	xor    %r13d,%r13d
180112c16:	85 c0                	test   %eax,%eax
180112c18:	0f 84 74 02 00 00    	je     0x180112e92
180112c1e:	bb 01 00 00 00       	mov    $0x1,%ebx
180112c23:	41 8b 04 24          	mov    (%r12),%eax
180112c27:	41 23 06             	and    (%r14),%eax
180112c2a:	f7 d0                	not    %eax
180112c2c:	a8 01                	test   $0x1,%al
180112c2e:	0f 85 49 02 00 00    	jne    0x180112e7d
180112c34:	48 8d 46 ff          	lea    -0x1(%rsi),%rax
180112c38:	49 8d 04 c6          	lea    (%r14,%rax,8),%rax
180112c3c:	eb 07                	jmp    0x180112c45
180112c3e:	48 ff ce             	dec    %rsi
180112c41:	48 8d 40 f8          	lea    -0x8(%rax),%rax
180112c45:	4c 39 28             	cmp    %r13,(%rax)
180112c48:	74 f4                	je     0x180112c3e
180112c4a:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
180112c4e:	49 8d 04 c4          	lea    (%r12,%rax,8),%rax
180112c52:	eb 07                	jmp    0x180112c5b
180112c54:	48 ff cf             	dec    %rdi
180112c57:	48 8d 40 f8          	lea    -0x8(%rax),%rax
180112c5b:	4c 39 28             	cmp    %r13,(%rax)
180112c5e:	74 f4                	je     0x180112c54
180112c60:	85 db                	test   %ebx,%ebx
180112c62:	0f 84 50 02 00 00    	je     0x180112eb8
180112c68:	4c 8b cf             	mov    %rdi,%r9
180112c6b:	4d 8b c4             	mov    %r12,%r8