140016fa1:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140016fa6:	49 c1 e6 04          	shl    $0x4,%r14
140016faa:	4d 03 f7             	add    %r15,%r14
140016fad:	48 c1 e5 04          	shl    $0x4,%rbp
140016fb1:	49 03 ef             	add    %r15,%rbp
140016fb4:	4c 89 3f             	mov    %r15,(%rdi)
140016fb7:	48 89 6f 10          	mov    %rbp,0x10(%rdi)
140016fbb:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140016fc0:	4c 89 77 08          	mov    %r14,0x8(%rdi)
140016fc4:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
140016fc9:	48 83 c4 20          	add    $0x20,%rsp
140016fcd:	41 5f                	pop    %r15
140016fcf:	41 5e                	pop    %r14
140016fd1:	41 5c                	pop    %r12
140016fd3:	c3                   	ret
140016fd4:	cc                   	int3
140016fd5:	48 ff 15 1c 91 00 00 	rex.W call *0x911c(%rip)        # 0x1400200f8
140016fdc:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140016fe1:	cc                   	int3
140016fe2:	cc                   	int3
140016fe3:	cc                   	int3
140016fe4:	cc                   	int3
140016fe5:	cc                   	int3
140016fe6:	cc                   	int3
140016fe7:	cc                   	int3
140016fe8:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
140016fed:	48 8b c1             	mov    %rcx,%rax
140016ff0:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
140016ff5:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
140016ffa:	c3                   	ret
140016ffb:	cc                   	int3
140016ffc:	cc                   	int3
140016ffd:	cc                   	int3
140016ffe:	cc                   	int3
140016fff:	cc                   	int3
140017000:	cc                   	int3
140017001:	cc                   	int3
140017002:	cc                   	int3
140017003:	cc                   	int3
140017004:	cc                   	int3
140017005:	cc                   	int3
140017006:	cc                   	int3
140017007:	cc                   	int3
140017008:	cc                   	int3
140017009:	cc                   	int3
14001700a:	cc                   	int3
14001700b:	cc                   	int3
14001700c:	cc                   	int3
14001700d:	cc                   	int3
14001700e:	cc                   	int3
14001700f:	cc                   	int3
140017010:	40 53                	rex push %rbx
140017012:	48 83 ec 20          	sub    $0x20,%rsp
140017016:	48 8d 05 b3 89 00 00 	lea    0x89b3(%rip),%rax        # 0x14001f9d0
14001701d:	48 8b d9             	mov    %rcx,%rbx
140017020:	48 89 01             	mov    %rax,(%rcx)
140017023:	f6 c2 01             	test   $0x1,%dl
140017026:	74 0a                	je     0x140017032
140017028:	ba 20 00 00 00       	mov    $0x20,%edx
14001702d:	e8 b6 4a 00 00       	call   0x14001bae8
140017032:	48 8b c3             	mov    %rbx,%rax
140017035:	48 83 c4 20          	add    $0x20,%rsp
140017039:	5b                   	pop    %rbx
14001703a:	c3                   	ret
14001703b:	cc                   	int3
14001703c:	cc                   	int3
14001703d:	cc                   	int3
14001703e:	cc                   	int3
14001703f:	cc                   	int3
140017040:	cc                   	int3
140017041:	cc                   	int3
140017042:	cc                   	int3
140017043:	cc                   	int3
140017044:	cc                   	int3
140017045:	cc                   	int3
140017046:	cc                   	int3
140017047:	cc                   	int3
140017048:	cc                   	int3
140017049:	cc                   	int3
14001704a:	cc                   	int3
14001704b:	cc                   	int3
14001704c:	cc                   	int3
14001704d:	cc                   	int3
14001704e:	cc                   	int3
14001704f:	cc                   	int3
140017050:	40 53                	rex push %rbx
140017052:	48 83 ec 20          	sub    $0x20,%rsp
140017056:	48 8d 05 73 89 00 00 	lea    0x8973(%rip),%rax        # 0x14001f9d0
14001705d:	48 8b d9             	mov    %rcx,%rbx
140017060:	48 89 01             	mov    %rax,(%rcx)
140017063:	f6 c2 01             	test   $0x1,%dl
140017066:	74 0a                	je     0x140017072
140017068:	ba 08 00 00 00       	mov    $0x8,%edx
14001706d:	e8 76 4a 00 00       	call   0x14001bae8
140017072:	48 8b c3             	mov    %rbx,%rax
140017075:	48 83 c4 20          	add    $0x20,%rsp
140017079:	5b                   	pop    %rbx
14001707a:	c3                   	ret
14001707b:	cc                   	int3
14001707c:	cc                   	int3
14001707d:	cc                   	int3
14001707e:	cc                   	int3
14001707f:	cc                   	int3
140017080:	cc                   	int3
140017081:	cc                   	int3
140017082:	cc                   	int3
140017083:	cc                   	int3
140017084:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140017089:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14001708e:	56                   	push   %rsi
14001708f:	57                   	push   %rdi
140017090:	41 54                	push   %r12
140017092:	41 56                	push   %r14
140017094:	41 57                	push   %r15
140017096:	48 83 ec 30          	sub    $0x30,%rsp
14001709a:	48 8d 59 48          	lea    0x48(%rcx),%rbx
14001709e:	41 bc 01 00 00 00    	mov    $0x1,%r12d
1400170a4:	4c 8d 73 08          	lea    0x8(%rbx),%r14
1400170a8:	41 8a f1             	mov    %r9b,%sil
1400170ab:	45 8b f8             	mov    %r8d,%r15d
1400170ae:	8b ea                	mov    %edx,%ebp
1400170b0:	48 8b f9             	mov    %rcx,%rdi
1400170b3:	44 39 23             	cmp    %r12d,(%rbx)
1400170b6:	75 0f                	jne    0x1400170c7
1400170b8:	41 83 3e 00          	cmpl   $0x0,(%r14)
1400170bc:	75 18                	jne    0x1400170d6
1400170be:	41 c7 06 00 00 00 f0 	movl   $0xf0000000,(%r14)
1400170c5:	eb 0f                	jmp    0x1400170d6
1400170c7:	49 8b ce             	mov    %r14,%rcx
1400170ca:	48 ff 15 47 8e 00 00 	rex.W call *0x8e47(%rip)        # 0x14001ff18
1400170d1:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400170d6:	8b 47 28             	mov    0x28(%rdi),%eax
1400170d9:	40 84 f6             	test   %sil,%sil
1400170dc:	74 02                	je     0x1400170e0
1400170de:	8b e8                	mov    %eax,%ebp
1400170e0:	3b e8                	cmp    %eax,%ebp
1400170e2:	76 1a                	jbe    0x1400170fe
1400170e4:	be 0b 00 00 80       	mov    $0x8000000b,%esi
1400170e9:	33 d2                	xor    %edx,%edx
1400170eb:	8b ce                	mov    %esi,%ecx
1400170ed:	48 ff 15 54 8f 00 00 	rex.W call *0x8f54(%rip)        # 0x140020048
1400170f4:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400170f9:	e9 03 01 00 00       	jmp    0x140017201
1400170fe:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
140017103:	72 0a                	jb     0x14001710f
140017105:	be 0e 00 07 80       	mov    $0x8007000e,%esi
14001710a:	e9 f2 00 00 00       	jmp    0x140017201
14001710f:	0f b6 57 5d          	movzbl 0x5d(%rdi),%edx
140017113:	4c 8d 47 60          	lea    0x60(%rdi),%r8
140017117:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
14001711c:	e8 c7 fe ff ff       	call   0x140016fe8
140017121:	8b 47 28             	mov    0x28(%rdi),%eax
140017124:	33 f6                	xor    %esi,%esi
140017126:	44 8b 47 2c          	mov    0x2c(%rdi),%r8d
14001712a:	41 03 c4             	add    %r12d,%eax
14001712d:	41 3b c0             	cmp    %r8d,%eax
140017130:	76 28                	jbe    0x14001715a
140017132:	41 8b d0             	mov    %r8d,%edx
140017135:	41 8d 40 01          	lea    0x1(%r8),%eax
140017139:	d1 ea                	shr    $1,%edx
14001713b:	42 8d 0c 02          	lea    (%rdx,%r8,1),%ecx
14001713f:	3b c1                	cmp    %ecx,%eax
140017141:	48 8b cf             	mov    %rdi,%rcx
140017144:	41 0f 47 d4          	cmova  %r12d,%edx
140017148:	41 03 d0             	add    %r8d,%edx
14001714b:	e8 a8 12 00 00       	call   0x1400183f8
140017150:	8b f0                	mov    %eax,%esi
140017152:	85 c0                	test   %eax,%eax
140017154:	0f 88 a7 00 00 00    	js     0x140017201
14001715a:	8b 47 28             	mov    0x28(%rdi),%eax
14001715d:	3b e8                	cmp    %eax,%ebp
14001715f:	0f 83 86 00 00 00    	jae    0x1400171eb
140017165:	44 8b 57 2c          	mov    0x2c(%rdi),%r10d
140017169:	2b c5                	sub    %ebp,%eax
14001716b:	48 8b 57 38          	mov    0x38(%rdi),%rdx
14001716f:	44 2b d5             	sub    %ebp,%r10d
140017172:	44 8b c0             	mov    %eax,%r8d
140017175:	45 2b d4             	sub    %r12d,%r10d
140017178:	8b c5                	mov    %ebp,%eax
14001717a:	49 c1 e0 02          	shl    $0x2,%r8
14001717e:	49 c1 e2 02          	shl    $0x2,%r10
140017182:	4c 8d 0c 82          	lea    (%rdx,%rax,4),%r9
140017186:	8d 45 01             	lea    0x1(%rbp),%eax
140017189:	48 8d 0c 82          	lea    (%rdx,%rax,4),%rcx
14001718d:	4d 85 c0             	test   %r8,%r8
140017190:	74 59                	je     0x1400171eb
140017192:	48 85 c9             	test   %rcx,%rcx
140017195:	75 14                	jne    0x1400171ab
140017197:	48 ff 15 0a 90 00 00 	rex.W call *0x900a(%rip)        # 0x1400201a8
14001719e:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400171a3:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
1400171a9:	eb 1c                	jmp    0x1400171c7
1400171ab:	4d 85 c9             	test   %r9,%r9
1400171ae:	74 e7                	je     0x140017197
1400171b0:	4d 3b d0             	cmp    %r8,%r10
1400171b3:	73 2e                	jae    0x1400171e3
1400171b5:	48 ff 15 ec 8f 00 00 	rex.W call *0x8fec(%rip)        # 0x1400201a8
1400171bc:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400171c1:	c7 00 22 00 00 00    	movl   $0x22,(%rax)
1400171c7:	e8 9a 52 00 00       	call   0x14001c466
1400171cc:	be ff ff 00 80       	mov    $0x8000ffff,%esi
1400171d1:	33 d2                	xor    %edx,%edx
1400171d3:	8b ce                	mov    %esi,%ecx
1400171d5:	48 ff 15 6c 8e 00 00 	rex.W call *0x8e6c(%rip)        # 0x140020048
1400171dc:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400171e1:	eb 08                	jmp    0x1400171eb
1400171e3:	49 8b d1             	mov    %r9,%rdx
1400171e6:	e8 f4 57 00 00       	call   0x14001c9df
1400171eb:	85 f6                	test   %esi,%esi
1400171ed:	78 12                	js     0x140017201
1400171ef:	48 8b 47 38          	mov    0x38(%rdi),%rax
1400171f3:	8b cd                	mov    %ebp,%ecx
1400171f5:	44 89 3c 88          	mov    %r15d,(%rax,%rcx,4)
1400171f9:	44 01 67 28          	add    %r12d,0x28(%rdi)
1400171fd:	44 01 67 58          	add    %r12d,0x58(%rdi)
140017201:	48 85 db             	test   %rbx,%rbx
140017204:	74 1d                	je     0x140017223
140017206:	44 39 23             	cmp    %r12d,(%rbx)
140017209:	75 09                	jne    0x140017214
14001720b:	41 81 06 00 00 00 10 	addl   $0x10000000,(%r14)
140017212:	eb 0f                	jmp    0x140017223
140017214:	49 8b ce             	mov    %r14,%rcx
140017217:	48 ff 15 e2 8c 00 00 	rex.W call *0x8ce2(%rip)        # 0x14001ff00
14001721e:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140017223:	85 f6                	test   %esi,%esi
140017225:	78 1a                	js     0x140017241
140017227:	0f b6 57 5c          	movzbl 0x5c(%rdi),%edx
14001722b:	45 8b cc             	mov    %r12d,%r9d
14001722e:	0f b6 4c 24 70       	movzbl 0x70(%rsp),%ecx
140017233:	4c 8b c7             	mov    %rdi,%r8
140017236:	89 6c 24 20          	mov    %ebp,0x20(%rsp)
14001723a:	e8 7d fc ff ff       	call   0x140016ebc
14001723f:	8b f0                	mov    %eax,%esi
140017241:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
140017246:	8b c6                	mov    %esi,%eax
140017248:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
14001724d:	48 83 c4 30          	add    $0x30,%rsp
140017251:	41 5f                	pop    %r15
140017253:	41 5e                	pop    %r14
140017255:	41 5c                	pop    %r12
140017257:	5f                   	pop    %rdi
140017258:	5e                   	pop    %rsi
140017259:	c3                   	ret
14001725a:	cc                   	int3
14001725b:	cc                   	int3
14001725c:	cc                   	int3
14001725d:	cc                   	int3
14001725e:	cc                   	int3
14001725f:	cc                   	int3
140017260:	cc                   	int3
140017261:	cc                   	int3
140017262:	cc                   	int3
140017263:	cc                   	int3
140017264:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140017269:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
14001726e:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140017273:	57                   	push   %rdi
140017274:	41 56                	push   %r14
140017276:	41 57                	push   %r15
140017278:	48 83 ec 30          	sub    $0x30,%rsp
14001727c:	48 8d 59 48          	lea    0x48(%rcx),%rbx
140017280:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140017286:	4c 8d 73 08          	lea    0x8(%rbx),%r14
14001728a:	41 8a f0             	mov    %r8b,%sil
14001728d:	8b ea                	mov    %edx,%ebp
14001728f:	48 8b f9             	mov    %rcx,%rdi
140017292:	44 39 3b             	cmp    %r15d,(%rbx)
140017295:	75 0f                	jne    0x1400172a6
140017297:	41 83 3e 00          	cmpl   $0x0,(%r14)
14001729b:	75 18                	jne    0x1400172b5
14001729d:	41 c7 06 00 00 00 f0 	movl   $0xf0000000,(%r14)
1400172a4:	eb 0f                	jmp    0x1400172b5
1400172a6:	49 8b ce             	mov    %r14,%rcx
1400172a9:	48 ff 15 68 8c 00 00 	rex.W call *0x8c68(%rip)        # 0x14001ff18
1400172b0:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400172b5:	8b 47 28             	mov    0x28(%rdi),%eax
1400172b8:	40 84 f6             	test   %sil,%sil
1400172bb:	74 03                	je     0x1400172c0
1400172bd:	8d 68 ff             	lea    -0x1(%rax),%ebp
1400172c0:	3b e8                	cmp    %eax,%ebp
1400172c2:	72 07                	jb     0x1400172cb
1400172c4:	be 0b 00 00 80       	mov    $0x8000000b,%esi
1400172c9:	eb 69                	jmp    0x140017334
1400172cb:	0f b6 57 5d          	movzbl 0x5d(%rdi),%edx
1400172cf:	4c 8d 47 60          	lea    0x60(%rdi),%r8
1400172d3:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
1400172d8:	e8 0b fd ff ff       	call   0x140016fe8
1400172dd:	44 8b 47 28          	mov    0x28(%rdi),%r8d
1400172e1:	33 f6                	xor    %esi,%esi
1400172e3:	41 8d 40 ff          	lea    -0x1(%r8),%eax
1400172e7:	3b e8                	cmp    %eax,%ebp
1400172e9:	73 6a                	jae    0x140017355
1400172eb:	48 8b 57 38          	mov    0x38(%rdi),%rdx
1400172ef:	8d 45 01             	lea    0x1(%rbp),%eax
1400172f2:	45 8b d0             	mov    %r8d,%r10d
1400172f5:	44 2b d5             	sub    %ebp,%r10d
1400172f8:	45 2b d7             	sub    %r15d,%r10d
1400172fb:	4c 8d 0c 82          	lea    (%rdx,%rax,4),%r9
1400172ff:	49 c1 e2 02          	shl    $0x2,%r10
140017303:	8b c5                	mov    %ebp,%eax
140017305:	48 8d 0c 82          	lea    (%rdx,%rax,4),%rcx
140017309:	4d 85 d2             	test   %r10,%r10
14001730c:	74 47                	je     0x140017355
14001730e:	48 85 c9             	test   %rcx,%rcx
140017311:	74 05                	je     0x140017318
140017313:	4d 85 c9             	test   %r9,%r9
140017316:	75 2e                	jne    0x140017346
140017318:	48 ff 15 89 8e 00 00 	rex.W call *0x8e89(%rip)        # 0x1400201a8
14001731f:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140017324:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
14001732a:	e8 37 51 00 00       	call   0x14001c466
14001732f:	be ff ff 00 80       	mov    $0x8000ffff,%esi
140017334:	33 d2                	xor    %edx,%edx
140017336:	8b ce                	mov    %esi,%ecx
140017338:	48 ff 15 09 8d 00 00 	rex.W call *0x8d09(%rip)        # 0x140020048
14001733f:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140017344:	eb 4b                	jmp    0x140017391
140017346:	4d 8b c2             	mov    %r10,%r8
140017349:	49 8b d1             	mov    %r9,%rdx
14001734c:	e8 8e 56 00 00       	call   0x14001c9df
140017351:	44 8b 47 28          	mov    0x28(%rdi),%r8d
140017355:	44 01 7f 58          	add    %r15d,0x58(%rdi)
140017359:	41 8d 48 ff          	lea    -0x1(%r8),%ecx
14001735d:	44 8b 47 2c          	mov    0x2c(%rdi),%r8d
140017361:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
140017366:	41 f7 e0             	mul    %r8d
140017369:	89 4f 28             	mov    %ecx,0x28(%rdi)
14001736c:	d1 ea                	shr    $1,%edx
14001736e:	3b ca                	cmp    %edx,%ecx
140017370:	73 1f                	jae    0x140017391
140017372:	41 8b c8             	mov    %r8d,%ecx
140017375:	41 8d 40 ff          	lea    -0x1(%r8),%eax
140017379:	2b ca                	sub    %edx,%ecx
14001737b:	3b c1                	cmp    %ecx,%eax
14001737d:	48 8b cf             	mov    %rdi,%rcx
140017380:	41 0f 42 d7          	cmovb  %r15d,%edx
140017384:	44 2b c2             	sub    %edx,%r8d
140017387:	41 8b d0             	mov    %r8d,%edx
14001738a:	e8 69 10 00 00       	call   0x1400183f8
14001738f:	8b f0                	mov    %eax,%esi
140017391:	48 85 db             	test   %rbx,%rbx
140017394:	74 1d                	je     0x1400173b3
140017396:	44 39 3b             	cmp    %r15d,(%rbx)
140017399:	75 09                	jne    0x1400173a4
14001739b:	41 81 06 00 00 00 10 	addl   $0x10000000,(%r14)
1400173a2:	eb 0f                	jmp    0x1400173b3
1400173a4:	49 8b ce             	mov    %r14,%rcx
1400173a7:	48 ff 15 52 8b 00 00 	rex.W call *0x8b52(%rip)        # 0x14001ff00
1400173ae:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400173b3:	85 f6                	test   %esi,%esi