140d1af40:	48 8b cd             	mov    %rbp,%rcx
140d1af43:	48 29 3c 11          	sub    %rdi,(%rcx,%rdx,1)
140d1af47:	48 8d 40 01          	lea    0x1(%rax),%rax
140d1af4b:	48 8b 13             	mov    (%rbx),%rdx
140d1af4e:	48 8d 0c c5 00 00 00 	lea    0x0(,%rax,8),%rcx
140d1af55:	00
140d1af56:	41 ff c0             	inc    %r8d
140d1af59:	bf 01 00 00 00       	mov    $0x1,%edi
140d1af5e:	48 39 3c 0a          	cmp    %rdi,(%rdx,%rcx,1)
140d1af62:	72 df                	jb     0x140d1af43
140d1af64:	49 63 c0             	movslq %r8d,%rax
140d1af67:	48 8d 0c c5 00 00 00 	lea    0x0(,%rax,8),%rcx
140d1af6e:	00
140d1af6f:	48 29 3c 11          	sub    %rdi,(%rcx,%rdx,1)
140d1af73:	48 8b 03             	mov    (%rbx),%rax
140d1af76:	48 39 2c 01          	cmp    %rbp,(%rcx,%rax,1)
140d1af7a:	75 0d                	jne    0x140d1af89
140d1af7c:	8b 43 08             	mov    0x8(%rbx),%eax
140d1af7f:	ff c8                	dec    %eax
140d1af81:	44 3b c0             	cmp    %eax,%r8d
140d1af84:	75 03                	jne    0x140d1af89
140d1af86:	89 43 08             	mov    %eax,0x8(%rbx)
140d1af89:	bf 01 00 00 00       	mov    $0x1,%edi
140d1af8e:	48 8b cb             	mov    %rbx,%rcx
140d1af91:	e8 2a b1 fb ff       	call   0x140cd60c0
140d1af96:	85 c0                	test   %eax,%eax
140d1af98:	75 0a                	jne    0x140d1afa4
140d1af9a:	39 6b 10             	cmp    %ebp,0x10(%rbx)
140d1af9d:	40 0f 94 c5          	sete   %bpl
140d1afa1:	89 6b 10             	mov    %ebp,0x10(%rbx)
140d1afa4:	8b c7                	mov    %edi,%eax
140d1afa6:	eb 62                	jmp    0x140d1b00a
140d1afa8:	8b f5                	mov    %ebp,%esi
140d1afaa:	4c 8b cd             	mov    %rbp,%r9
140d1afad:	0f 1f 00             	nopl   (%rax)
140d1afb0:	4c 8b c7             	mov    %rdi,%r8
140d1afb3:	3b 73 08             	cmp    0x8(%rbx),%esi
140d1afb6:	7d 25                	jge    0x140d1afdd
140d1afb8:	48 8b 0b             	mov    (%rbx),%rcx
140d1afbb:	48 8b c5             	mov    %rbp,%rax
140d1afbe:	4a 8b 14 09          	mov    (%rcx,%r9,1),%rdx
140d1afc2:	48 03 d7             	add    %rdi,%rdx
140d1afc5:	48 3b fa             	cmp    %rdx,%rdi
140d1afc8:	4a 89 14 09          	mov    %rdx,(%rcx,%r9,1)
140d1afcc:	0f 97 c0             	seta   %al
140d1afcf:	ff c6                	inc    %esi
140d1afd1:	49 83 c1 08          	add    $0x8,%r9
140d1afd5:	48 8b f8             	mov    %rax,%rdi
140d1afd8:	4c 3b c2             	cmp    %rdx,%r8
140d1afdb:	77 d3                	ja     0x140d1afb0
140d1afdd:	48 85 ff             	test   %rdi,%rdi
140d1afe0:	74 23                	je     0x140d1b005
140d1afe2:	8b 53 08             	mov    0x8(%rbx),%edx
140d1afe5:	3b f2                	cmp    %edx,%esi
140d1afe7:	75 1c                	jne    0x140d1b005
140d1afe9:	ff c2                	inc    %edx
140d1afeb:	48 8b cb             	mov    %rbx,%rcx
140d1afee:	e8 dd ba fb ff       	call   0x140cd6ad0
140d1aff3:	48 85 c0             	test   %rax,%rax
140d1aff6:	74 12                	je     0x140d1b00a
140d1aff8:	48 8b 03             	mov    (%rbx),%rax
140d1affb:	ff 43 08             	incl   0x8(%rbx)
140d1affe:	48 63 ce             	movslq %esi,%rcx
140d1b001:	48 89 3c c8          	mov    %rdi,(%rax,%rcx,8)
140d1b005:	b8 01 00 00 00       	mov    $0x1,%eax
140d1b00a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d1b00f:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
140d1b014:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140d1b019:	48 83 c4 20          	add    $0x20,%rsp
140d1b01d:	5f                   	pop    %rdi
140d1b01e:	c3                   	ret
140d1b01f:	cc                   	int3
140d1b020:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
140d1b025:	56                   	push   %rsi
140d1b026:	57                   	push   %rdi
140d1b027:	41 57                	push   %r15
140d1b029:	b8 20 00 00 00       	mov    $0x20,%eax
140d1b02e:	e8 6d 04 10 00       	call   0x140e1b4a0
140d1b033:	48 2b e0             	sub    %rax,%rsp
140d1b036:	33 f6                	xor    %esi,%esi
140d1b038:	48 8b ea             	mov    %rdx,%rbp
140d1b03b:	48 8b f9             	mov    %rcx,%rdi
140d1b03e:	48 85 d2             	test   %rdx,%rdx
140d1b041:	0f 84 d6 00 00 00    	je     0x140d1b11d
140d1b047:	39 71 08             	cmp    %esi,0x8(%rcx)
140d1b04a:	75 10                	jne    0x140d1b05c
140d1b04c:	33 c0                	xor    %eax,%eax
140d1b04e:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
140d1b053:	48 83 c4 20          	add    $0x20,%rsp
140d1b057:	41 5f                	pop    %r15
140d1b059:	5f                   	pop    %rdi
140d1b05a:	5e                   	pop    %rsi
140d1b05b:	c3                   	ret
140d1b05c:	48 8b cd             	mov    %rbp,%rcx
140d1b05f:	e8 3c b2 fb ff       	call   0x140cd62a0
140d1b064:	41 b8 40 00 00 00    	mov    $0x40,%r8d
140d1b06a:	48 8b d7             	mov    %rdi,%rdx
140d1b06d:	44 2b c0             	sub    %eax,%r8d
140d1b070:	4d 63 f8             	movslq %r8d,%r15
140d1b073:	49 8b cf             	mov    %r15,%rcx
140d1b076:	48 d3 e5             	shl    %cl,%rbp
140d1b079:	48 8b cf             	mov    %rdi,%rcx
140d1b07c:	e8 ff 03 00 00       	call   0x140d1b480
140d1b081:	85 c0                	test   %eax,%eax
140d1b083:	0f 84 94 00 00 00    	je     0x140d1b11d
140d1b089:	8b 47 08             	mov    0x8(%rdi),%eax
140d1b08c:	83 e8 01             	sub    $0x1,%eax
140d1b08f:	4c 89 74 24 48       	mov    %r14,0x48(%rsp)
140d1b094:	4c 63 f0             	movslq %eax,%r14
140d1b097:	78 3b                	js     0x140d1b0d4
140d1b099:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
140d1b09e:	66 90                	xchg   %ax,%ax
140d1b0a0:	48 8b 07             	mov    (%rdi),%rax
140d1b0a3:	4c 8b c5             	mov    %rbp,%r8
140d1b0a6:	48 8b ce             	mov    %rsi,%rcx
140d1b0a9:	4a 8b 1c f0          	mov    (%rax,%r14,8),%rbx
140d1b0ad:	48 8b d3             	mov    %rbx,%rdx
140d1b0b0:	e8 6b 3c 04 00       	call   0x140d5ed20
140d1b0b5:	48 8b c8             	mov    %rax,%rcx
140d1b0b8:	48 8b f3             	mov    %rbx,%rsi
140d1b0bb:	48 0f af cd          	imul   %rbp,%rcx
140d1b0bf:	48 2b f1             	sub    %rcx,%rsi
140d1b0c2:	48 8b 0f             	mov    (%rdi),%rcx
140d1b0c5:	4a 89 04 f1          	mov    %rax,(%rcx,%r14,8)
140d1b0c9:	49 83 ee 01          	sub    $0x1,%r14
140d1b0cd:	79 d1                	jns    0x140d1b0a0
140d1b0cf:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140d1b0d4:	48 63 47 08          	movslq 0x8(%rdi),%rax
140d1b0d8:	4c 8b 74 24 48       	mov    0x48(%rsp),%r14
140d1b0dd:	44 8b c0             	mov    %eax,%r8d
140d1b0e0:	85 c0                	test   %eax,%eax
140d1b0e2:	7e 19                	jle    0x140d1b0fd
140d1b0e4:	48 8b d0             	mov    %rax,%rdx
140d1b0e7:	44 8d 48 ff          	lea    -0x1(%rax),%r9d
140d1b0eb:	48 8b 07             	mov    (%rdi),%rax
140d1b0ee:	48 83 7c d0 f8 00    	cmpq   $0x0,-0x8(%rax,%rdx,8)
140d1b0f4:	75 07                	jne    0x140d1b0fd
140d1b0f6:	44 89 4f 08          	mov    %r9d,0x8(%rdi)
140d1b0fa:	45 8b c1             	mov    %r9d,%r8d
140d1b0fd:	49 8b cf             	mov    %r15,%rcx
140d1b100:	48 d3 ee             	shr    %cl,%rsi
140d1b103:	45 85 c0             	test   %r8d,%r8d
140d1b106:	75 04                	jne    0x140d1b10c
140d1b108:	44 89 47 10          	mov    %r8d,0x10(%rdi)
140d1b10c:	48 8b c6             	mov    %rsi,%rax
140d1b10f:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
140d1b114:	48 83 c4 20          	add    $0x20,%rsp
140d1b118:	41 5f                	pop    %r15
140d1b11a:	5f                   	pop    %rdi
140d1b11b:	5e                   	pop    %rsi
140d1b11c:	c3                   	ret
140d1b11d:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
140d1b122:	48 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%rax
140d1b129:	48 83 c4 20          	add    $0x20,%rsp
140d1b12d:	41 5f                	pop    %r15
140d1b12f:	5f                   	pop    %rdi
140d1b130:	5e                   	pop    %rsi
140d1b131:	c3                   	ret
140d1b132:	cc                   	int3
140d1b133:	cc                   	int3
140d1b134:	cc                   	int3
140d1b135:	cc                   	int3
140d1b136:	cc                   	int3
140d1b137:	cc                   	int3
140d1b138:	cc                   	int3
140d1b139:	cc                   	int3
140d1b13a:	cc                   	int3
140d1b13b:	cc                   	int3
140d1b13c:	cc                   	int3
140d1b13d:	cc                   	int3
140d1b13e:	cc                   	int3
140d1b13f:	cc                   	int3
140d1b140:	40 55                	rex push %rbp
140d1b142:	56                   	push   %rsi
140d1b143:	57                   	push   %rdi
140d1b144:	b8 20 00 00 00       	mov    $0x20,%eax
140d1b149:	e8 52 03 10 00       	call   0x140e1b4a0
140d1b14e:	48 2b e0             	sub    %rax,%rsp
140d1b151:	33 ff                	xor    %edi,%edi
140d1b153:	48 8b ea             	mov    %rdx,%rbp
140d1b156:	48 85 d2             	test   %rdx,%rdx
140d1b159:	0f 84 60 01 00 00    	je     0x140d1b2bf
140d1b15f:	48 b8 00 00 00 00 01 	movabs $0x100000000,%rax
140d1b166:	00 00 00
140d1b169:	48 3b d0             	cmp    %rax,%rdx
140d1b16c:	0f 86 f8 00 00 00    	jbe    0x140d1b26a
140d1b172:	e8 d9 ac fb ff       	call   0x140cd5e50
140d1b177:	48 8b f0             	mov    %rax,%rsi
140d1b17a:	48 85 c0             	test   %rax,%rax
140d1b17d:	0f 84 3c 01 00 00    	je     0x140d1b2bf
140d1b183:	4c 89 74 24 50       	mov    %r14,0x50(%rsp)
140d1b188:	44 8b f7             	mov    %edi,%r14d
140d1b18b:	39 78 08             	cmp    %edi,0x8(%rax)
140d1b18e:	0f 84 be 00 00 00    	je     0x140d1b252
140d1b194:	48 8b cd             	mov    %rbp,%rcx
140d1b197:	4c 89 64 24 48       	mov    %r12,0x48(%rsp)
140d1b19c:	e8 ff b0 fb ff       	call   0x140cd62a0
140d1b1a1:	41 b8 40 00 00 00    	mov    $0x40,%r8d
140d1b1a7:	48 8b d6             	mov    %rsi,%rdx
140d1b1aa:	44 2b c0             	sub    %eax,%r8d
140d1b1ad:	4d 63 e0             	movslq %r8d,%r12
140d1b1b0:	49 8b cc             	mov    %r12,%rcx
140d1b1b3:	48 d3 e5             	shl    %cl,%rbp
140d1b1b6:	48 8b ce             	mov    %rsi,%rcx
140d1b1b9:	e8 c2 02 00 00       	call   0x140d1b480
140d1b1be:	85 c0                	test   %eax,%eax
140d1b1c0:	75 09                	jne    0x140d1b1cb
140d1b1c2:	49 8d 7e ff          	lea    -0x1(%r14),%rdi
140d1b1c6:	e9 82 00 00 00       	jmp    0x140d1b24d
140d1b1cb:	8b 46 08             	mov    0x8(%rsi),%eax
140d1b1ce:	83 e8 01             	sub    $0x1,%eax
140d1b1d1:	4c 89 7c 24 58       	mov    %r15,0x58(%rsp)
140d1b1d6:	4c 63 f8             	movslq %eax,%r15
140d1b1d9:	78 39                	js     0x140d1b214
140d1b1db:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
140d1b1e0:	48 8b 06             	mov    (%rsi),%rax
140d1b1e3:	4c 8b c5             	mov    %rbp,%r8
140d1b1e6:	49 8b ce             	mov    %r14,%rcx
140d1b1e9:	4a 8b 1c f8          	mov    (%rax,%r15,8),%rbx
140d1b1ed:	48 8b d3             	mov    %rbx,%rdx
140d1b1f0:	e8 2b 3b 04 00       	call   0x140d5ed20
140d1b1f5:	48 8b c8             	mov    %rax,%rcx
140d1b1f8:	4c 8b f3             	mov    %rbx,%r14
140d1b1fb:	48 0f af cd          	imul   %rbp,%rcx
140d1b1ff:	4c 2b f1             	sub    %rcx,%r14
140d1b202:	48 8b 0e             	mov    (%rsi),%rcx
140d1b205:	4a 89 04 f9          	mov    %rax,(%rcx,%r15,8)
140d1b209:	49 83 ef 01          	sub    $0x1,%r15
140d1b20d:	79 d1                	jns    0x140d1b1e0
140d1b20f:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140d1b214:	48 63 46 08          	movslq 0x8(%rsi),%rax
140d1b218:	4c 8b 7c 24 58       	mov    0x58(%rsp),%r15
140d1b21d:	44 8b c0             	mov    %eax,%r8d
140d1b220:	85 c0                	test   %eax,%eax
140d1b222:	7e 18                	jle    0x140d1b23c
140d1b224:	48 8b d0             	mov    %rax,%rdx
140d1b227:	44 8d 48 ff          	lea    -0x1(%rax),%r9d
140d1b22b:	48 8b 06             	mov    (%rsi),%rax
140d1b22e:	48 39 7c d0 f8       	cmp    %rdi,-0x8(%rax,%rdx,8)
140d1b233:	75 07                	jne    0x140d1b23c
140d1b235:	44 89 4e 08          	mov    %r9d,0x8(%rsi)
140d1b239:	45 8b c1             	mov    %r9d,%r8d
140d1b23c:	49 8b cc             	mov    %r12,%rcx
140d1b23f:	49 d3 ee             	shr    %cl,%r14
140d1b242:	45 85 c0             	test   %r8d,%r8d
140d1b245:	75 03                	jne    0x140d1b24a
140d1b247:	89 7e 10             	mov    %edi,0x10(%rsi)
140d1b24a:	49 8b fe             	mov    %r14,%rdi
140d1b24d:	4c 8b 64 24 48       	mov    0x48(%rsp),%r12
140d1b252:	48 8b ce             	mov    %rsi,%rcx
140d1b255:	e8 06 ad fb ff       	call   0x140cd5f60
140d1b25a:	4c 8b 74 24 50       	mov    0x50(%rsp),%r14
140d1b25f:	48 8b c7             	mov    %rdi,%rax
140d1b262:	48 83 c4 20          	add    $0x20,%rsp
140d1b266:	5f                   	pop    %rdi
140d1b267:	5e                   	pop    %rsi
140d1b268:	5d                   	pop    %rbp
140d1b269:	c3                   	ret
140d1b26a:	44 8b 41 08          	mov    0x8(%rcx),%r8d
140d1b26e:	41 83 e8 01          	sub    $0x1,%r8d
140d1b272:	78 40                	js     0x140d1b2b4
140d1b274:	48 8b 09             	mov    (%rcx),%rcx
140d1b277:	49 63 c0             	movslq %r8d,%rax
140d1b27a:	4c 8d 0c c1          	lea    (%rcx,%rax,8),%r9
140d1b27e:	66 90                	xchg   %ax,%ax
140d1b280:	49 8b 09             	mov    (%r9),%rcx
140d1b283:	4d 8d 49 f8          	lea    -0x8(%r9),%r9
140d1b287:	33 d2                	xor    %edx,%edx
140d1b289:	48 c1 e7 20          	shl    $0x20,%rdi
140d1b28d:	48 8b c1             	mov    %rcx,%rax
140d1b290:	8b c9                	mov    %ecx,%ecx
140d1b292:	48 c1 e8 20          	shr    $0x20,%rax
140d1b296:	48 0b c7             	or     %rdi,%rax
140d1b299:	48 f7 f5             	div    %rbp
140d1b29c:	48 8b c2             	mov    %rdx,%rax
140d1b29f:	33 d2                	xor    %edx,%edx
140d1b2a1:	48 c1 e0 20          	shl    $0x20,%rax
140d1b2a5:	48 0b c1             	or     %rcx,%rax
140d1b2a8:	48 f7 f5             	div    %rbp
140d1b2ab:	41 83 e8 01          	sub    $0x1,%r8d
140d1b2af:	48 8b fa             	mov    %rdx,%rdi
140d1b2b2:	79 cc                	jns    0x140d1b280
140d1b2b4:	48 8b c7             	mov    %rdi,%rax
140d1b2b7:	48 83 c4 20          	add    $0x20,%rsp
140d1b2bb:	5f                   	pop    %rdi
140d1b2bc:	5e                   	pop    %rsi
140d1b2bd:	5d                   	pop    %rbp
140d1b2be:	c3                   	ret
140d1b2bf:	48 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%rax
140d1b2c6:	48 83 c4 20          	add    $0x20,%rsp
140d1b2ca:	5f                   	pop    %rdi
140d1b2cb:	5e                   	pop    %rsi
140d1b2cc:	5d                   	pop    %rbp
140d1b2cd:	c3                   	ret
140d1b2ce:	cc                   	int3
140d1b2cf:	cc                   	int3
140d1b2d0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140d1b2d5:	57                   	push   %rdi
140d1b2d6:	b8 20 00 00 00       	mov    $0x20,%eax
140d1b2db:	e8 c0 01 10 00       	call   0x140e1b4a0
140d1b2e0:	48 2b e0             	sub    %rax,%rsp
140d1b2e3:	44 8b 41 08          	mov    0x8(%rcx),%r8d
140d1b2e7:	48 8b d9             	mov    %rcx,%rbx
140d1b2ea:	45 85 c0             	test   %r8d,%r8d
140d1b2ed:	74 5b                	je     0x140d1b34a
140d1b2ef:	48 85 d2             	test   %rdx,%rdx
140d1b2f2:	75 15                	jne    0x140d1b309
140d1b2f4:	e8 37 b2 fb ff       	call   0x140cd6530
140d1b2f9:	b8 01 00 00 00       	mov    $0x1,%eax
140d1b2fe:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d1b303:	48 83 c4 20          	add    $0x20,%rsp
140d1b307:	5f                   	pop    %rdi
140d1b308:	c3                   	ret
140d1b309:	48 8b 09             	mov    (%rcx),%rcx
140d1b30c:	4c 8b ca             	mov    %rdx,%r9
140d1b30f:	48 8b d1             	mov    %rcx,%rdx
140d1b312:	e8 89 48 04 00       	call   0x140d5fba0
140d1b317:	48 8b f8             	mov    %rax,%rdi
140d1b31a:	48 85 c0             	test   %rax,%rax
140d1b31d:	74 2b                	je     0x140d1b34a
140d1b31f:	8b 53 08             	mov    0x8(%rbx),%edx
140d1b322:	48 8b cb             	mov    %rbx,%rcx
140d1b325:	ff c2                	inc    %edx
140d1b327:	e8 a4 b7 fb ff       	call   0x140cd6ad0
140d1b32c:	48 85 c0             	test   %rax,%rax
140d1b32f:	75 0b                	jne    0x140d1b33c
140d1b331:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d1b336:	48 83 c4 20          	add    $0x20,%rsp
140d1b33a:	5f                   	pop    %rdi
140d1b33b:	c3                   	ret
140d1b33c:	48 63 4b 08          	movslq 0x8(%rbx),%rcx
140d1b340:	48 8b 03             	mov    (%rbx),%rax
140d1b343:	48 89 3c c8          	mov    %rdi,(%rax,%rcx,8)
140d1b347:	ff 43 08             	incl   0x8(%rbx)
140d1b34a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d1b34f:	b8 01 00 00 00       	mov    $0x1,%eax
140d1b354:	48 83 c4 20          	add    $0x20,%rsp
140d1b358:	5f                   	pop    %rdi
140d1b359:	c3                   	ret
140d1b35a:	cc                   	int3
140d1b35b:	cc                   	int3
140d1b35c:	cc                   	int3
140d1b35d:	cc                   	int3
140d1b35e:	cc                   	int3
140d1b35f:	cc                   	int3
140d1b360:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140d1b365:	57                   	push   %rdi
140d1b366:	b8 20 00 00 00       	mov    $0x20,%eax
140d1b36b:	e8 30 01 10 00       	call   0x140e1b4a0
140d1b370:	48 2b e0             	sub    %rax,%rsp