140806f4f:	55                   	push   %rbp
140806f50:	53                   	push   %rbx
140806f51:	56                   	push   %rsi
140806f52:	57                   	push   %rdi
140806f53:	41 54                	push   %r12
140806f55:	41 55                	push   %r13
140806f57:	41 56                	push   %r14
140806f59:	41 57                	push   %r15
140806f5b:	48 8d 6c 24 e1       	lea    -0x1f(%rsp),%rbp
140806f60:	48 81 ec d8 00 00 00 	sub    $0xd8,%rsp
140806f67:	4d 8b f0             	mov    %r8,%r14
140806f6a:	48 8b fa             	mov    %rdx,%rdi
140806f6d:	4c 8b f9             	mov    %rcx,%r15
140806f70:	45 33 e4             	xor    %r12d,%r12d
140806f73:	4c 89 65 a7          	mov    %r12,-0x59(%rbp)
140806f77:	41 8b dc             	mov    %r12d,%ebx
140806f7a:	48 89 5d b7          	mov    %rbx,-0x49(%rbp)
140806f7e:	48 8b 32             	mov    (%rdx),%rsi
140806f81:	83 7e 18 1f          	cmpl   $0x1f,0x18(%rsi)
140806f85:	0f 85 5c 01 00 00    	jne    0x1408070e7
140806f8b:	49 8b 08             	mov    (%r8),%rcx
140806f8e:	48 85 c9             	test   %rcx,%rcx
140806f91:	74 7c                	je     0x14080700f
140806f93:	83 79 18 0e          	cmpl   $0xe,0x18(%rcx)
140806f97:	0f 85 10 01 00 00    	jne    0x1408070ad
140806f9d:	48 8b 01             	mov    (%rcx),%rax
140806fa0:	48 8b 40 40          	mov    0x40(%rax),%rax
140806fa4:	ff 15 76 ca 77 00    	call   *0x77ca76(%rip)        # 0x140f83a20
140806faa:	4c 39 20             	cmp    %r12,(%rax)
140806fad:	0f 84 fa 00 00 00    	je     0x1408070ad
140806fb3:	49 8b 0e             	mov    (%r14),%rcx
140806fb6:	e8 35 36 f4 ff       	call   0x14074a5f0
140806fbb:	48 8b 50 40          	mov    0x40(%rax),%rdx
140806fbf:	48 85 d2             	test   %rdx,%rdx
140806fc2:	74 1c                	je     0x140806fe0
140806fc4:	8b 42 10             	mov    0x10(%rdx),%eax
140806fc7:	ff c0                	inc    %eax
140806fc9:	89 42 10             	mov    %eax,0x10(%rdx)
140806fcc:	83 f8 01             	cmp    $0x1,%eax
140806fcf:	0f 8e 2c 0a 00 00    	jle    0x140807a01
140806fd5:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
140806fda:	0f 84 29 0a 00 00    	je     0x140807a09
140806fe0:	49 8b 0e             	mov    (%r14),%rcx
140806fe3:	49 89 16             	mov    %rdx,(%r14)
140806fe6:	48 85 c9             	test   %rcx,%rcx
140806fe9:	74 24                	je     0x14080700f
140806feb:	8b 41 10             	mov    0x10(%rcx),%eax
140806fee:	ff c8                	dec    %eax
140806ff0:	89 41 10             	mov    %eax,0x10(%rcx)
140806ff3:	85 c0                	test   %eax,%eax
140806ff5:	7f 18                	jg     0x14080700f
140806ff7:	0f 88 17 0a 00 00    	js     0x140807a14
140806ffd:	48 8b 01             	mov    (%rcx),%rax
140807000:	ba 01 00 00 00       	mov    $0x1,%edx
140807005:	48 8b 00             	mov    (%rax),%rax
140807008:	ff 15 12 ca 77 00    	call   *0x77ca12(%rip)        # 0x140f83a20
14080700e:	90                   	nop
14080700f:	48 8b 0f             	mov    (%rdi),%rcx
140807012:	48 8b 01             	mov    (%rcx),%rax
140807015:	48 8d 55 7f          	lea    0x7f(%rbp),%rdx
140807019:	48 8b 80 e8 00 00 00 	mov    0xe8(%rax),%rax
140807020:	ff 15 fa c9 77 00    	call   *0x77c9fa(%rip)        # 0x140f83a20
140807026:	48 8b 30             	mov    (%rax),%rsi
140807029:	48 89 75 a7          	mov    %rsi,-0x59(%rbp)
14080702d:	4c 89 20             	mov    %r12,(%rax)
140807030:	48 8b 4d 7f          	mov    0x7f(%rbp),%rcx
140807034:	48 85 c9             	test   %rcx,%rcx
140807037:	74 24                	je     0x14080705d
140807039:	8b 41 10             	mov    0x10(%rcx),%eax
14080703c:	ff c8                	dec    %eax
14080703e:	89 41 10             	mov    %eax,0x10(%rcx)
140807041:	85 c0                	test   %eax,%eax
140807043:	7f 18                	jg     0x14080705d
140807045:	0f 88 d4 09 00 00    	js     0x140807a1f
14080704b:	48 8b 01             	mov    (%rcx),%rax
14080704e:	ba 01 00 00 00       	mov    $0x1,%edx
140807053:	48 8b 00             	mov    (%rax),%rax
140807056:	ff 15 c4 c9 77 00    	call   *0x77c9c4(%rip)        # 0x140f83a20
14080705c:	90                   	nop
14080705d:	48 8b 0f             	mov    (%rdi),%rcx
140807060:	48 8b 01             	mov    (%rcx),%rax
140807063:	48 8d 55 7f          	lea    0x7f(%rbp),%rdx
140807067:	48 8b 80 f0 00 00 00 	mov    0xf0(%rax),%rax
14080706e:	ff 15 ac c9 77 00    	call   *0x77c9ac(%rip)        # 0x140f83a20
140807074:	48 8b 18             	mov    (%rax),%rbx
140807077:	48 89 5d b7          	mov    %rbx,-0x49(%rbp)
14080707b:	4c 89 20             	mov    %r12,(%rax)
14080707e:	48 8b 4d 7f          	mov    0x7f(%rbp),%rcx
140807082:	48 85 c9             	test   %rcx,%rcx
140807085:	74 24                	je     0x1408070ab
140807087:	8b 41 10             	mov    0x10(%rcx),%eax
14080708a:	ff c8                	dec    %eax
14080708c:	89 41 10             	mov    %eax,0x10(%rcx)
14080708f:	85 c0                	test   %eax,%eax
140807091:	7f 18                	jg     0x1408070ab
140807093:	0f 88 91 09 00 00    	js     0x140807a2a
140807099:	48 8b 01             	mov    (%rcx),%rax
14080709c:	ba 01 00 00 00       	mov    $0x1,%edx
1408070a1:	48 8b 00             	mov    (%rax),%rax
1408070a4:	ff 15 76 c9 77 00    	call   *0x77c976(%rip)        # 0x140f83a20
1408070aa:	90                   	nop
1408070ab:	eb 5f                	jmp    0x14080710c
1408070ad:	4c 89 64 24 20       	mov    %r12,0x20(%rsp)
1408070b2:	45 33 c9             	xor    %r9d,%r9d
1408070b5:	45 33 c0             	xor    %r8d,%r8d
1408070b8:	48 8d 15 51 5a 83 00 	lea    0x835a51(%rip),%rdx        # 0x14103cb10
1408070bf:	48 8b 0f             	mov    (%rdi),%rcx
1408070c2:	e8 f9 31 f8 ff       	call   0x14078a2c0
1408070c7:	90                   	nop
1408070c8:	49 8b cf             	mov    %r15,%rcx
1408070cb:	e8 20 74 99 ff       	call   0x14019e4f0
1408070d0:	90                   	nop
1408070d1:	48 8b cf             	mov    %rdi,%rcx
1408070d4:	e8 17 74 99 ff       	call   0x14019e4f0
1408070d9:	90                   	nop
1408070da:	49 8b ce             	mov    %r14,%rcx
1408070dd:	e8 0e 74 99 ff       	call   0x14019e4f0
1408070e2:	e9 30 03 00 00       	jmp    0x140807417
1408070e7:	48 85 f6             	test   %rsi,%rsi
1408070ea:	74 1c                	je     0x140807108
1408070ec:	8b 46 10             	mov    0x10(%rsi),%eax
1408070ef:	ff c0                	inc    %eax
1408070f1:	89 46 10             	mov    %eax,0x10(%rsi)
1408070f4:	83 f8 01             	cmp    $0x1,%eax
1408070f7:	0f 8e 38 09 00 00    	jle    0x140807a35
1408070fd:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
140807102:	0f 84 35 09 00 00    	je     0x140807a3d
140807108:	48 89 75 a7          	mov    %rsi,-0x59(%rbp)
14080710c:	83 7e 18 29          	cmpl   $0x29,0x18(%rsi)
140807110:	0f 84 0a 01 00 00    	je     0x140807220
140807116:	4d 8b 07             	mov    (%r15),%r8
140807119:	48 8b 0f             	mov    (%rdi),%rcx
14080711c:	48 89 4d 7f          	mov    %rcx,0x7f(%rbp)
140807120:	48 85 c9             	test   %rcx,%rcx
140807123:	74 1c                	je     0x140807141
140807125:	8b 41 10             	mov    0x10(%rcx),%eax
140807128:	ff c0                	inc    %eax
14080712a:	89 41 10             	mov    %eax,0x10(%rcx)
14080712d:	83 f8 01             	cmp    $0x1,%eax
140807130:	0f 8e 12 09 00 00    	jle    0x140807a48
140807136:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
14080713b:	0f 84 0f 09 00 00    	je     0x140807a50
140807141:	48 8d 55 7f          	lea    0x7f(%rbp),%rdx
140807145:	49 8b c8             	mov    %r8,%rcx
140807148:	e8 43 0b ff ff       	call   0x1407f7c90
14080714d:	90                   	nop
14080714e:	48 85 db             	test   %rbx,%rbx
140807151:	74 27                	je     0x14080717a
140807153:	8b 43 10             	mov    0x10(%rbx),%eax
140807156:	ff c8                	dec    %eax
140807158:	89 43 10             	mov    %eax,0x10(%rbx)
14080715b:	85 c0                	test   %eax,%eax
14080715d:	7f 1b                	jg     0x14080717a
14080715f:	0f 88 f6 08 00 00    	js     0x140807a5b
140807165:	48 8b 03             	mov    (%rbx),%rax
140807168:	ba 01 00 00 00       	mov    $0x1,%edx
14080716d:	48 8b cb             	mov    %rbx,%rcx
140807170:	48 8b 00             	mov    (%rax),%rax
140807173:	ff 15 a7 c8 77 00    	call   *0x77c8a7(%rip)        # 0x140f83a20
140807179:	90                   	nop
14080717a:	8b 46 10             	mov    0x10(%rsi),%eax
14080717d:	ff c8                	dec    %eax
14080717f:	89 46 10             	mov    %eax,0x10(%rsi)
140807182:	85 c0                	test   %eax,%eax
140807184:	7f 1b                	jg     0x1408071a1
140807186:	0f 88 da 08 00 00    	js     0x140807a66
14080718c:	48 8b 06             	mov    (%rsi),%rax
14080718f:	ba 01 00 00 00       	mov    $0x1,%edx
140807194:	48 8b ce             	mov    %rsi,%rcx
140807197:	48 8b 00             	mov    (%rax),%rax
14080719a:	ff 15 80 c8 77 00    	call   *0x77c880(%rip)        # 0x140f83a20
1408071a0:	90                   	nop
1408071a1:	49 8b 0f             	mov    (%r15),%rcx
1408071a4:	48 85 c9             	test   %rcx,%rcx
1408071a7:	74 24                	je     0x1408071cd
1408071a9:	8b 41 10             	mov    0x10(%rcx),%eax
1408071ac:	ff c8                	dec    %eax
1408071ae:	89 41 10             	mov    %eax,0x10(%rcx)
1408071b1:	85 c0                	test   %eax,%eax
1408071b3:	7f 18                	jg     0x1408071cd
1408071b5:	0f 88 b6 08 00 00    	js     0x140807a71
1408071bb:	48 8b 01             	mov    (%rcx),%rax
1408071be:	ba 01 00 00 00       	mov    $0x1,%edx
1408071c3:	48 8b 00             	mov    (%rax),%rax
1408071c6:	ff 15 54 c8 77 00    	call   *0x77c854(%rip)        # 0x140f83a20
1408071cc:	90                   	nop
1408071cd:	48 8b 0f             	mov    (%rdi),%rcx
1408071d0:	48 85 c9             	test   %rcx,%rcx
1408071d3:	74 24                	je     0x1408071f9
1408071d5:	8b 41 10             	mov    0x10(%rcx),%eax
1408071d8:	ff c8                	dec    %eax
1408071da:	89 41 10             	mov    %eax,0x10(%rcx)
1408071dd:	85 c0                	test   %eax,%eax
1408071df:	7f 18                	jg     0x1408071f9
1408071e1:	0f 88 95 08 00 00    	js     0x140807a7c
1408071e7:	48 8b 01             	mov    (%rcx),%rax
1408071ea:	ba 01 00 00 00       	mov    $0x1,%edx
1408071ef:	48 8b 00             	mov    (%rax),%rax
1408071f2:	ff 15 28 c8 77 00    	call   *0x77c828(%rip)        # 0x140f83a20
1408071f8:	90                   	nop
1408071f9:	49 8b 0e             	mov    (%r14),%rcx
1408071fc:	48 85 c9             	test   %rcx,%rcx
1408071ff:	0f 84 12 02 00 00    	je     0x140807417
140807205:	8b 41 10             	mov    0x10(%rcx),%eax
140807208:	ff c8                	dec    %eax
14080720a:	89 41 10             	mov    %eax,0x10(%rcx)
14080720d:	85 c0                	test   %eax,%eax
14080720f:	0f 8f 02 02 00 00    	jg     0x140807417
140807215:	0f 88 c5 07 00 00    	js     0x1408079e0
14080721b:	e9 e5 01 00 00       	jmp    0x140807405
140807220:	48 8b ce             	mov    %rsi,%rcx
140807223:	e8 58 0f ff ff       	call   0x1407f8180
140807228:	48 83 c0 38          	add    $0x38,%rax
14080722c:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140807231:	4c 63 78 0c          	movslq 0xc(%rax),%r15
140807235:	45 8b ec             	mov    %r12d,%r13d
140807238:	44 89 65 7f          	mov    %r12d,0x7f(%rbp)
14080723c:	45 85 ff             	test   %r15d,%r15d
14080723f:	0f 8e bb 00 00 00    	jle    0x140807300
140807245:	33 ff                	xor    %edi,%edi
140807247:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14080724e:	00 00
140807250:	48 8b 10             	mov    (%rax),%rdx
140807253:	4c 8d 34 fa          	lea    (%rdx,%rdi,8),%r14
140807257:	49 8b 0e             	mov    (%r14),%rcx
14080725a:	83 79 18 29          	cmpl   $0x29,0x18(%rcx)
14080725e:	0f 84 80 05 00 00    	je     0x1408077e4
140807264:	48 8b 49 20          	mov    0x20(%rcx),%rcx
140807268:	83 79 18 0e          	cmpl   $0xe,0x18(%rcx)
14080726c:	75 7b                	jne    0x1408072e9
14080726e:	48 8b 01             	mov    (%rcx),%rax
140807271:	48 8b 40 40          	mov    0x40(%rax),%rax
140807275:	ff 15 a5 c7 77 00    	call   *0x77c7a5(%rip)        # 0x140f83a20
14080727b:	48 83 38 00          	cmpq   $0x0,(%rax)
14080727f:	75 63                	jne    0x1408072e4
140807281:	48 8b 45 77          	mov    0x77(%rbp),%rax
140807285:	48 8b 08             	mov    (%rax),%rcx
140807288:	48 85 c9             	test   %rcx,%rcx
14080728b:	0f 84 9c 01 00 00    	je     0x14080742d
140807291:	83 79 18 10          	cmpl   $0x10,0x18(%rcx)
140807295:	0f 85 92 01 00 00    	jne    0x14080742d
14080729b:	e8 a0 33 f4 ff       	call   0x14074a640
1408072a0:	48 85 c0             	test   %rax,%rax
1408072a3:	0f 84 84 01 00 00    	je     0x14080742d
1408072a9:	48 8b 48 48          	mov    0x48(%rax),%rcx
1408072ad:	48 8b 40 50          	mov    0x50(%rax),%rax
1408072b1:	48 2b c1             	sub    %rcx,%rax
1408072b4:	48 c1 f8 03          	sar    $0x3,%rax
1408072b8:	41 3b c7             	cmp    %r15d,%eax
1408072bb:	0f 85 6c 01 00 00    	jne    0x14080742d
1408072c1:	49 8b 06             	mov    (%r14),%rax
1408072c4:	48 8b 0c f9          	mov    (%rcx,%rdi,8),%rcx
1408072c8:	48 8b 50 20          	mov    0x20(%rax),%rdx
1408072cc:	48 3b ca             	cmp    %rdx,%rcx
1408072cf:	74 13                	je     0x1408072e4
1408072d1:	41 b1 01             	mov    $0x1,%r9b
1408072d4:	45 33 c0             	xor    %r8d,%r8d
1408072d7:	e8 24 c3 f4 ff       	call   0x140753600
1408072dc:	84 c0                	test   %al,%al
1408072de:	0f 84 49 01 00 00    	je     0x14080742d
1408072e4:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
1408072e9:	41 ff c5             	inc    %r13d
1408072ec:	44 89 6d 7f          	mov    %r13d,0x7f(%rbp)
1408072f0:	48 ff c7             	inc    %rdi
1408072f3:	49 3b ff             	cmp    %r15,%rdi
1408072f6:	0f 8c 54 ff ff ff    	jl     0x140807250
1408072fc:	4c 8b 75 77          	mov    0x77(%rbp),%r14
140807300:	48 8b 7d 67          	mov    0x67(%rbp),%rdi
140807304:	4c 8b 07             	mov    (%rdi),%r8
140807307:	4c 8b 7d 6f          	mov    0x6f(%rbp),%r15
14080730b:	49 8b 0f             	mov    (%r15),%rcx
14080730e:	48 89 4d 7f          	mov    %rcx,0x7f(%rbp)
140807312:	48 85 c9             	test   %rcx,%rcx
140807315:	74 1c                	je     0x140807333
140807317:	8b 41 10             	mov    0x10(%rcx),%eax
14080731a:	ff c0                	inc    %eax
14080731c:	89 41 10             	mov    %eax,0x10(%rcx)
14080731f:	83 f8 01             	cmp    $0x1,%eax
140807322:	0f 8e 5f 07 00 00    	jle    0x140807a87
140807328:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
14080732d:	0f 84 89 08 00 00    	je     0x140807bbc
140807333:	48 8d 55 7f          	lea    0x7f(%rbp),%rdx
140807337:	49 8b c8             	mov    %r8,%rcx
14080733a:	e8 51 09 ff ff       	call   0x1407f7c90
14080733f:	90                   	nop
140807340:	48 85 db             	test   %rbx,%rbx
140807343:	74 27                	je     0x14080736c
140807345:	8b 43 10             	mov    0x10(%rbx),%eax
140807348:	ff c8                	dec    %eax
14080734a:	89 43 10             	mov    %eax,0x10(%rbx)
14080734d:	85 c0                	test   %eax,%eax
14080734f:	7f 1b                	jg     0x14080736c
140807351:	0f 88 70 08 00 00    	js     0x140807bc7
140807357:	48 8b 03             	mov    (%rbx),%rax
14080735a:	ba 01 00 00 00       	mov    $0x1,%edx
14080735f:	48 8b cb             	mov    %rbx,%rcx
140807362:	48 8b 00             	mov    (%rax),%rax
140807365:	ff 15 b5 c6 77 00    	call   *0x77c6b5(%rip)        # 0x140f83a20
14080736b:	90                   	nop
14080736c:	8b 46 10             	mov    0x10(%rsi),%eax
14080736f:	ff c8                	dec    %eax
140807371:	89 46 10             	mov    %eax,0x10(%rsi)
140807374:	85 c0                	test   %eax,%eax
140807376:	7f 1b                	jg     0x140807393
140807378:	0f 88 54 08 00 00    	js     0x140807bd2
14080737e:	48 8b 06             	mov    (%rsi),%rax
140807381:	ba 01 00 00 00       	mov    $0x1,%edx
140807386:	48 8b ce             	mov    %rsi,%rcx
140807389:	48 8b 00             	mov    (%rax),%rax
14080738c:	ff 15 8e c6 77 00    	call   *0x77c68e(%rip)        # 0x140f83a20
140807392:	90                   	nop
140807393:	48 8b 0f             	mov    (%rdi),%rcx
140807396:	48 85 c9             	test   %rcx,%rcx
140807399:	74 24                	je     0x1408073bf
14080739b:	8b 41 10             	mov    0x10(%rcx),%eax
14080739e:	ff c8                	dec    %eax
1408073a0:	89 41 10             	mov    %eax,0x10(%rcx)
1408073a3:	85 c0                	test   %eax,%eax
1408073a5:	7f 18                	jg     0x1408073bf
1408073a7:	0f 88 30 08 00 00    	js     0x140807bdd
1408073ad:	48 8b 01             	mov    (%rcx),%rax
1408073b0:	ba 01 00 00 00       	mov    $0x1,%edx
1408073b5:	48 8b 00             	mov    (%rax),%rax
1408073b8:	ff 15 62 c6 77 00    	call   *0x77c662(%rip)        # 0x140f83a20
1408073be:	90                   	nop
1408073bf:	49 8b 0f             	mov    (%r15),%rcx
1408073c2:	48 85 c9             	test   %rcx,%rcx
1408073c5:	74 24                	je     0x1408073eb
1408073c7:	8b 41 10             	mov    0x10(%rcx),%eax
1408073ca:	ff c8                	dec    %eax
1408073cc:	89 41 10             	mov    %eax,0x10(%rcx)
1408073cf:	85 c0                	test   %eax,%eax
1408073d1:	7f 18                	jg     0x1408073eb
1408073d3:	0f 88 0f 08 00 00    	js     0x140807be8
1408073d9:	48 8b 01             	mov    (%rcx),%rax
1408073dc:	ba 01 00 00 00       	mov    $0x1,%edx
1408073e1:	48 8b 00             	mov    (%rax),%rax
1408073e4:	ff 15 36 c6 77 00    	call   *0x77c636(%rip)        # 0x140f83a20
1408073ea:	90                   	nop
1408073eb:	49 8b 0e             	mov    (%r14),%rcx
1408073ee:	48 85 c9             	test   %rcx,%rcx
1408073f1:	74 24                	je     0x140807417
1408073f3:	8b 41 10             	mov    0x10(%rcx),%eax
1408073f6:	ff c8                	dec    %eax
1408073f8:	89 41 10             	mov    %eax,0x10(%rcx)
1408073fb:	85 c0                	test   %eax,%eax
1408073fd:	7f 18                	jg     0x140807417
1408073ff:	0f 88 d0 05 00 00    	js     0x1408079d5
140807405:	48 8b 01             	mov    (%rcx),%rax
140807408:	ba 01 00 00 00       	mov    $0x1,%edx