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
140d1b373:	48 8b fa             	mov    %rdx,%rdi
140d1b376:	48 8b d9             	mov    %rcx,%rbx
140d1b379:	48 85 d2             	test   %rdx,%rdx
140d1b37c:	0f 84 e3 00 00 00    	je     0x140d1b465
140d1b382:	e8 39 ad fb ff       	call   0x140cd60c0
140d1b387:	85 c0                	test   %eax,%eax
140d1b389:	74 2b                	je     0x140d1b3b6
140d1b38b:	48 8b d7             	mov    %rdi,%rdx
140d1b38e:	48 8b cb             	mov    %rbx,%rcx
140d1b391:	e8 9a b1 fb ff       	call   0x140cd6530
140d1b396:	8b f8                	mov    %eax,%edi
140d1b398:	85 c0                	test   %eax,%eax
140d1b39a:	74 0d                	je     0x140d1b3a9
140d1b39c:	ba 01 00 00 00       	mov    $0x1,%edx
140d1b3a1:	48 8b cb             	mov    %rbx,%rcx
140d1b3a4:	e8 67 b1 fb ff       	call   0x140cd6510
140d1b3a9:	8b c7                	mov    %edi,%eax
140d1b3ab:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d1b3b0:	48 83 c4 20          	add    $0x20,%rsp
140d1b3b4:	5f                   	pop    %rdi
140d1b3b5:	c3                   	ret
140d1b3b6:	83 7b 10 00          	cmpl   $0x0,0x10(%rbx)
140d1b3ba:	74 22                	je     0x140d1b3de
140d1b3bc:	33 d2                	xor    %edx,%edx
140d1b3be:	48 8b cb             	mov    %rbx,%rcx
140d1b3c1:	89 53 10             	mov    %edx,0x10(%rbx)
140d1b3c4:	48 8b d7             	mov    %rdi,%rdx
140d1b3c7:	e8 a4 fa ff ff       	call   0x140d1ae70
140d1b3cc:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%rbx)
140d1b3d3:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d1b3d8:	48 83 c4 20          	add    $0x20,%rsp
140d1b3dc:	5f                   	pop    %rdi
140d1b3dd:	c3                   	ret
140d1b3de:	83 7b 08 01          	cmpl   $0x1,0x8(%rbx)
140d1b3e2:	75 28                	jne    0x140d1b40c
140d1b3e4:	48 8b 03             	mov    (%rbx),%rax
140d1b3e7:	48 8b 08             	mov    (%rax),%rcx
140d1b3ea:	48 3b cf             	cmp    %rdi,%rcx
140d1b3ed:	73 1d                	jae    0x140d1b40c
140d1b3ef:	48 2b f9             	sub    %rcx,%rdi
140d1b3f2:	48 89 38             	mov    %rdi,(%rax)
140d1b3f5:	b8 01 00 00 00       	mov    $0x1,%eax
140d1b3fa:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%rbx)
140d1b401:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d1b406:	48 83 c4 20          	add    $0x20,%rsp
140d1b40a:	5f                   	pop    %rdi
140d1b40b:	c3                   	ret
140d1b40c:	4c 8b 03             	mov    (%rbx),%r8
140d1b40f:	33 d2                	xor    %edx,%edx
140d1b411:	49 39 38             	cmp    %rdi,(%r8)
140d1b414:	73 2a                	jae    0x140d1b440
140d1b416:	8b c2                	mov    %edx,%eax
140d1b418:	8b ca                	mov    %edx,%ecx
140d1b41a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140d1b420:	4a 29 3c 01          	sub    %rdi,(%rcx,%r8,1)
140d1b424:	48 8d 40 01          	lea    0x1(%rax),%rax
140d1b428:	4c 8b 03             	mov    (%rbx),%r8
140d1b42b:	48 8d 0c c5 00 00 00 	lea    0x0(,%rax,8),%rcx
140d1b432:	00
140d1b433:	ff c2                	inc    %edx
140d1b435:	bf 01 00 00 00       	mov    $0x1,%edi
140d1b43a:	49 39 3c 08          	cmp    %rdi,(%r8,%rcx,1)
140d1b43e:	72 e0                	jb     0x140d1b420
140d1b440:	48 63 c2             	movslq %edx,%rax
140d1b443:	48 8d 0c c5 00 00 00 	lea    0x0(,%rax,8),%rcx
140d1b44a:	00
140d1b44b:	4a 29 3c 01          	sub    %rdi,(%rcx,%r8,1)
140d1b44f:	48 8b 03             	mov    (%rbx),%rax
140d1b452:	48 83 3c 01 00       	cmpq   $0x0,(%rcx,%rax,1)
140d1b457:	75 0c                	jne    0x140d1b465
140d1b459:	8b 43 08             	mov    0x8(%rbx),%eax
140d1b45c:	ff c8                	dec    %eax
140d1b45e:	3b d0                	cmp    %eax,%edx
140d1b460:	75 03                	jne    0x140d1b465
140d1b462:	89 43 08             	mov    %eax,0x8(%rbx)
140d1b465:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140d1b46a:	b8 01 00 00 00       	mov    $0x1,%eax
140d1b46f:	48 83 c4 20          	add    $0x20,%rsp
140d1b473:	5f                   	pop    %rdi
140d1b474:	c3                   	ret
140d1b475:	cc                   	int3
140d1b476:	cc                   	int3
140d1b477:	cc                   	int3
140d1b478:	cc                   	int3
140d1b479:	cc                   	int3
140d1b47a:	cc                   	int3
140d1b47b:	cc                   	int3
140d1b47c:	cc                   	int3
140d1b47d:	cc                   	int3
140d1b47e:	cc                   	int3
140d1b47f:	cc                   	int3
140d1b480:	40 53                	rex push %rbx
140d1b482:	57                   	push   %rdi
140d1b483:	41 56                	push   %r14
140d1b485:	b8 40 00 00 00       	mov    $0x40,%eax
140d1b48a:	e8 11 00 10 00       	call   0x140e1b4a0
140d1b48f:	48 2b e0             	sub    %rax,%rsp
140d1b492:	41 8b f8             	mov    %r8d,%edi
140d1b495:	4c 8b f2             	mov    %rdx,%r14
140d1b498:	48 8b d9             	mov    %rcx,%rbx
140d1b49b:	45 85 c0             	test   %r8d,%r8d
140d1b49e:	79 29                	jns    0x140d1b4c9
140d1b4a0:	4c 8d 0d b1 9f 45 00 	lea    0x459fb1(%rip),%r9        # 0x141175458
140d1b4a7:	c7 44 24 20 56 00 00 	movl   $0x56,0x20(%rsp)
140d1b4ae:	00
140d1b4af:	8d 50 51             	lea    0x51(%rax),%edx
140d1b4b2:	8d 48 c3             	lea    -0x3d(%rax),%ecx
140d1b4b5:	44 8d 40 37          	lea    0x37(%rax),%r8d
140d1b4b9:	e8 c2 57 fb ff       	call   0x140cd0c80
140d1b4be:	33 c0                	xor    %eax,%eax
140d1b4c0:	48 83 c4 40          	add    $0x40,%rsp
140d1b4c4:	41 5e                	pop    %r14
140d1b4c6:	5f                   	pop    %rdi
140d1b4c7:	5b                   	pop    %rbx
140d1b4c8:	c3                   	ret
140d1b4c9:	8b 52 08             	mov    0x8(%rdx),%edx
140d1b4cc:	48 89 74 24 68       	mov    %rsi,0x68(%rsp)
140d1b4d1:	ff c2                	inc    %edx
140d1b4d3:	8b f7                	mov    %edi,%esi
140d1b4d5:	c1 ee 06             	shr    $0x6,%esi
140d1b4d8:	03 d6                	add    %esi,%edx
140d1b4da:	e8 f1 b5 fb ff       	call   0x140cd6ad0
140d1b4df:	48 85 c0             	test   %rax,%rax
140d1b4e2:	75 07                	jne    0x140d1b4eb
140d1b4e4:	33 ff                	xor    %edi,%edi
140d1b4e6:	e9 ff 00 00 00       	jmp    0x140d1b5ea
140d1b4eb:	49 63 4e 08          	movslq 0x8(%r14),%rcx
140d1b4ef:	4c 89 64 24 70       	mov    %r12,0x70(%rsp)
140d1b4f4:	4c 8d 24 f5 00 00 00 	lea    0x0(,%rsi,8),%r12
140d1b4fb:	00
140d1b4fc:	85 c9                	test   %ecx,%ecx
140d1b4fe:	0f 84 b0 00 00 00    	je     0x140d1b5b4
140d1b504:	4d 8b 1e             	mov    (%r14),%r11
140d1b507:	83 e7 3f             	and    $0x3f,%edi
140d1b50a:	48 89 6c 24 60       	mov    %rbp,0x60(%rsp)
140d1b50f:	48 8b d1             	mov    %rcx,%rdx
140d1b512:	4c 89 6c 24 38       	mov    %r13,0x38(%rsp)
140d1b517:	8b ef                	mov    %edi,%ebp
140d1b519:	4c 8b 2b             	mov    (%rbx),%r13
140d1b51c:	f7 dd                	neg    %ebp
140d1b51e:	4d 8b 44 cb f8       	mov    -0x8(%r11,%rcx,8),%r8
140d1b523:	83 e5 3f             	and    $0x3f,%ebp
140d1b526:	4c 89 7c 24 30       	mov    %r15,0x30(%rsp)
140d1b52b:	4d 03 ec             	add    %r12,%r13
140d1b52e:	44 8b fd             	mov    %ebp,%r15d
140d1b531:	8b cd                	mov    %ebp,%ecx
140d1b533:	49 f7 df             	neg    %r15
140d1b536:	49 8b c7             	mov    %r15,%rax
140d1b539:	48 c1 e8 08          	shr    $0x8,%rax
140d1b53d:	4c 0b f8             	or     %rax,%r15
140d1b540:	49 8b c0             	mov    %r8,%rax
140d1b543:	48 d3 e8             	shr    %cl,%rax
140d1b546:	49 23 c7             	and    %r15,%rax
140d1b549:	49 89 44 d5 00       	mov    %rax,0x0(%r13,%rdx,8)
140d1b54e:	41 8b 46 08          	mov    0x8(%r14),%eax
140d1b552:	ff c8                	dec    %eax
140d1b554:	4c 63 d0             	movslq %eax,%r10
140d1b557:	85 c0                	test   %eax,%eax
140d1b559:	7e 3f                	jle    0x140d1b59a
140d1b55b:	4e 8d 0c d5 00 00 00 	lea    0x0(,%r10,8),%r9
140d1b562:	00
140d1b563:	4d 03 cd             	add    %r13,%r9
140d1b566:	4d 2b dd             	sub    %r13,%r11
140d1b569:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140d1b570:	8b cf                	mov    %edi,%ecx
140d1b572:	4d 8d 49 f8          	lea    -0x8(%r9),%r9
140d1b576:	49 d3 e0             	shl    %cl,%r8
140d1b579:	49 ff ca             	dec    %r10
140d1b57c:	49 8b d0             	mov    %r8,%rdx
140d1b57f:	8b cd                	mov    %ebp,%ecx
140d1b581:	4f 8b 04 19          	mov    (%r9,%r11,1),%r8
140d1b585:	49 8b c0             	mov    %r8,%rax
140d1b588:	48 d3 e8             	shr    %cl,%rax
140d1b58b:	49 23 c7             	and    %r15,%rax
140d1b58e:	48 0b c2             	or     %rdx,%rax