140586f46:	49 83 c7 20          	add    $0x20,%r15
140586f4a:	4c 89 7d d8          	mov    %r15,-0x28(%rbp)
140586f4e:	4c 3b f9             	cmp    %rcx,%r15
140586f51:	75 ed                	jne    0x140586f40
140586f53:	41 0f b7 45 0c       	movzwl 0xc(%r13),%eax
140586f58:	66 ff c0             	inc    %ax
140586f5b:	66 41 89 45 0c       	mov    %ax,0xc(%r13)
140586f60:	49 8b 7d 50          	mov    0x50(%r13),%rdi
140586f64:	48 85 ff             	test   %rdi,%rdi
140586f67:	74 28                	je     0x140586f91
140586f69:	48 8b 7f 08          	mov    0x8(%rdi),%rdi
140586f6d:	0f 57 c0             	xorps  %xmm0,%xmm0
140586f70:	f3 0f 7f 45 10       	movdqu %xmm0,0x10(%rbp)
140586f75:	48 89 7d 20          	mov    %rdi,0x20(%rbp)
140586f79:	4c 89 6d 08          	mov    %r13,0x8(%rbp)
140586f7d:	66 ff c0             	inc    %ax
140586f80:	66 41 89 45 0c       	mov    %ax,0xc(%r13)
140586f85:	66 48 0f 7e c2       	movq   %xmm0,%rdx
140586f8a:	48 89 54 24 38       	mov    %rdx,0x38(%rsp)
140586f8f:	eb 6c                	jmp    0x140586ffd
140586f91:	49 8b 4d 40          	mov    0x40(%r13),%rcx
140586f95:	48 8b d1             	mov    %rcx,%rdx
140586f98:	48 89 4c 24 38       	mov    %rcx,0x38(%rsp)
140586f9d:	48 85 c9             	test   %rcx,%rcx
140586fa0:	74 16                	je     0x140586fb8
140586fa2:	49 63 55 04          	movslq 0x4(%r13),%rdx
140586fa6:	48 c1 e2 05          	shl    $0x5,%rdx
140586faa:	48 03 d1             	add    %rcx,%rdx
140586fad:	48 89 54 24 38       	mov    %rdx,0x38(%rsp)
140586fb2:	41 8b 45 04          	mov    0x4(%r13),%eax
140586fb6:	eb 03                	jmp    0x140586fbb
140586fb8:	41 8b c6             	mov    %r14d,%eax
140586fbb:	48 98                	cltq
140586fbd:	48 c1 e0 05          	shl    $0x5,%rax
140586fc1:	48 03 c1             	add    %rcx,%rax
140586fc4:	48 89 55 10          	mov    %rdx,0x10(%rbp)
140586fc8:	48 89 45 18          	mov    %rax,0x18(%rbp)
140586fcc:	49 8b fe             	mov    %r14,%rdi
140586fcf:	4c 89 75 20          	mov    %r14,0x20(%rbp)
140586fd3:	4c 89 6d 08          	mov    %r13,0x8(%rbp)
140586fd7:	48 3b d0             	cmp    %rax,%rdx
140586fda:	74 1c                	je     0x140586ff8
140586fdc:	0f 1f 40 00          	nopl   0x0(%rax)
140586fe0:	66 44 39 02          	cmp    %r8w,(%rdx)
140586fe4:	75 0d                	jne    0x140586ff3
140586fe6:	48 83 c2 20          	add    $0x20,%rdx
140586fea:	48 89 55 10          	mov    %rdx,0x10(%rbp)
140586fee:	48 3b d0             	cmp    %rax,%rdx
140586ff1:	75 ed                	jne    0x140586fe0
140586ff3:	48 89 54 24 38       	mov    %rdx,0x38(%rsp)
140586ff8:	66 41 ff 45 0c       	incw   0xc(%r13)
140586ffd:	0f 1f 00             	nopl   (%rax)
140587000:	49 8b 4d 50          	mov    0x50(%r13),%rcx
140587004:	48 85 c9             	test   %rcx,%rcx
140587007:	74 05                	je     0x14058700e
140587009:	48 3b df             	cmp    %rdi,%rbx
14058700c:	eb 03                	jmp    0x140587011
14058700e:	4c 3b fa             	cmp    %rdx,%r15
140587011:	0f 94 c0             	sete   %al
140587014:	84 c0                	test   %al,%al
140587016:	0f 85 ba 03 00 00    	jne    0x1405873d6
14058701c:	48 85 c9             	test   %rcx,%rcx
14058701f:	74 3b                	je     0x14058705c
140587021:	48 8b cb             	mov    %rbx,%rcx
140587024:	e8 37 b4 21 00       	call   0x1407a2460
140587029:	4c 89 74 24 28       	mov    %r14,0x28(%rsp)
14058702e:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
140587033:	4c 8b c8             	mov    %rax,%r9
140587036:	44 8b 43 18          	mov    0x18(%rbx),%r8d
14058703a:	48 8b 53 08          	mov    0x8(%rbx),%rdx
14058703e:	49 8b cd             	mov    %r13,%rcx
140587041:	e8 2a f2 ce ff       	call   0x140276270
140587046:	85 c0                	test   %eax,%eax
140587048:	78 0d                	js     0x140587057
14058704a:	48 63 f0             	movslq %eax,%rsi
14058704d:	48 c1 e6 05          	shl    $0x5,%rsi
140587051:	49 03 75 40          	add    0x40(%r13),%rsi
140587055:	eb 08                	jmp    0x14058705f
140587057:	49 8b f6             	mov    %r14,%rsi
14058705a:	eb 03                	jmp    0x14058705f
14058705c:	49 8b f7             	mov    %r15,%rsi
14058705f:	4c 8d 76 18          	lea    0x18(%rsi),%r14
140587063:	83 7e 04 08          	cmpl   $0x8,0x4(%rsi)
140587067:	76 03                	jbe    0x14058706c
140587069:	4d 8b 36             	mov    (%r14),%r14
14058706c:	b9 38 00 00 00       	mov    $0x38,%ecx
140587071:	e8 92 40 89 00       	call   0x140e1b108
140587076:	48 89 45 28          	mov    %rax,0x28(%rbp)
14058707a:	48 85 c0             	test   %rax,%rax
14058707d:	74 18                	je     0x140587097
14058707f:	44 8b 4e 08          	mov    0x8(%rsi),%r9d
140587083:	44 8b 46 04          	mov    0x4(%rsi),%r8d
140587087:	49 8b d6             	mov    %r14,%rdx
14058708a:	48 8b c8             	mov    %rax,%rcx
14058708d:	e8 1e aa 21 00       	call   0x1407a1ab0
140587092:	45 33 f6             	xor    %r14d,%r14d
140587095:	eb 06                	jmp    0x14058709d
140587097:	45 33 f6             	xor    %r14d,%r14d
14058709a:	41 8b c6             	mov    %r14d,%eax
14058709d:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
1405870a2:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
1405870a6:	41 83 cc 18          	or     $0x18,%r12d
1405870aa:	44 89 64 24 30       	mov    %r12d,0x30(%rsp)
1405870af:	48 8b 76 10          	mov    0x10(%rsi),%rsi
1405870b3:	4c 8b c0             	mov    %rax,%r8
1405870b6:	48 8d 54 24 50       	lea    0x50(%rsp),%rdx
1405870bb:	48 8b 45 90          	mov    -0x70(%rbp),%rax
1405870bf:	48 8b 48 40          	mov    0x40(%rax),%rcx
1405870c3:	e8 b8 8b 1b 00       	call   0x14073fc80
1405870c8:	90                   	nop
1405870c9:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
1405870ce:	48 8b 40 20          	mov    0x20(%rax),%rax
1405870d2:	48 8b 08             	mov    (%rax),%rcx
1405870d5:	48 8b 49 20          	mov    0x20(%rcx),%rcx
1405870d9:	e8 b2 a6 19 00       	call   0x140721790
1405870de:	0f 57 c0             	xorps  %xmm0,%xmm0
1405870e1:	0f 11 45 70          	movups %xmm0,0x70(%rbp)
1405870e5:	4c 89 b5 80 00 00 00 	mov    %r14,0x80(%rbp)
1405870ec:	4c 89 b5 88 00 00 00 	mov    %r14,0x88(%rbp)
1405870f3:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
1405870fa:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140587100:	49 ff c0             	inc    %r8
140587103:	42 80 3c 00 00       	cmpb   $0x0,(%rax,%r8,1)
140587108:	75 f6                	jne    0x140587100
14058710a:	48 8b d0             	mov    %rax,%rdx
14058710d:	48 8d 4d 70          	lea    0x70(%rbp),%rcx
140587111:	e8 ea fc c0 ff       	call   0x140196e00
140587116:	90                   	nop
140587117:	48 8b 06             	mov    (%rsi),%rax
14058711a:	48 8b 48 20          	mov    0x20(%rax),%rcx
14058711e:	e8 6d a6 19 00       	call   0x140721790
140587123:	0f 57 c0             	xorps  %xmm0,%xmm0
140587126:	0f 11 45 50          	movups %xmm0,0x50(%rbp)
14058712a:	4c 89 75 60          	mov    %r14,0x60(%rbp)
14058712e:	4c 89 75 68          	mov    %r14,0x68(%rbp)
140587132:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
140587139:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140587140:	49 ff c0             	inc    %r8
140587143:	42 80 3c 00 00       	cmpb   $0x0,(%rax,%r8,1)
140587148:	75 f6                	jne    0x140587140
14058714a:	48 8b d0             	mov    %rax,%rdx
14058714d:	48 8d 4d 50          	lea    0x50(%rbp),%rcx
140587151:	e8 aa fc c0 ff       	call   0x140196e00
140587156:	90                   	nop
140587157:	48 8d 4d 50          	lea    0x50(%rbp),%rcx
14058715b:	48 83 7d 68 0f       	cmpq   $0xf,0x68(%rbp)
140587160:	48 0f 47 4d 50       	cmova  0x50(%rbp),%rcx
140587165:	e8 46 ea 2d 00       	call   0x140865bb0
14058716a:	4c 8b f0             	mov    %rax,%r14
14058716d:	48 8d 4d 70          	lea    0x70(%rbp),%rcx
140587171:	48 83 bd 88 00 00 00 	cmpq   $0xf,0x88(%rbp)
140587178:	0f
140587179:	48 0f 47 4d 70       	cmova  0x70(%rbp),%rcx
14058717e:	e8 2d ea 2d 00       	call   0x140865bb0
140587183:	4c 8b e0             	mov    %rax,%r12
140587186:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
14058718b:	48 8d 44 24 70       	lea    0x70(%rsp),%rax
140587190:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
140587194:	48 c7 45 00 00 00 00 	movq   $0x0,0x0(%rbp)
14058719b:	00
14058719c:	b9 30 00 00 00       	mov    $0x30,%ecx
1405871a1:	e8 62 3f 89 00       	call   0x140e1b108
1405871a6:	4c 8b d8             	mov    %rax,%r11
1405871a9:	48 89 45 00          	mov    %rax,0x0(%rbp)
1405871ad:	4c 89 60 20          	mov    %r12,0x20(%rax)
1405871b1:	4c 89 70 28          	mov    %r14,0x28(%rax)
1405871b5:	48 89 30             	mov    %rsi,(%rax)
1405871b8:	48 89 70 08          	mov    %rsi,0x8(%rax)
1405871bc:	48 89 70 10          	mov    %rsi,0x10(%rax)
1405871c0:	66 c7 40 18 00 00    	movw   $0x0,0x18(%rax)
1405871c6:	4c 8b 54 24 70       	mov    0x70(%rsp),%r10
1405871cb:	4d 8b 42 08          	mov    0x8(%r10),%r8
1405871cf:	4c 89 45 b0          	mov    %r8,-0x50(%rbp)
1405871d3:	45 33 f6             	xor    %r14d,%r14d
1405871d6:	44 89 75 b8          	mov    %r14d,-0x48(%rbp)
1405871da:	45 38 70 19          	cmp    %r14b,0x19(%r8)
1405871de:	75 44                	jne    0x140587224
1405871e0:	4c 89 45 b0          	mov    %r8,-0x50(%rbp)
1405871e4:	49 8b 40 20          	mov    0x20(%r8),%rax
1405871e8:	4d 8b cc             	mov    %r12,%r9
1405871eb:	4c 2b c8             	sub    %rax,%r9
1405871ee:	66 90                	xchg   %ax,%ax
1405871f0:	0f b6 10             	movzbl (%rax),%edx
1405871f3:	42 0f b6 0c 08       	movzbl (%rax,%r9,1),%ecx
1405871f8:	2b d1                	sub    %ecx,%edx
1405871fa:	75 07                	jne    0x140587203
1405871fc:	48 ff c0             	inc    %rax
1405871ff:	85 c9                	test   %ecx,%ecx
140587201:	75 ed                	jne    0x1405871f0
140587203:	85 d2                	test   %edx,%edx
140587205:	79 0a                	jns    0x140587211
140587207:	44 89 75 b8          	mov    %r14d,-0x48(%rbp)
14058720b:	4d 8b 40 10          	mov    0x10(%r8),%r8
14058720f:	eb 0d                	jmp    0x14058721e
140587211:	c7 45 b8 01 00 00 00 	movl   $0x1,-0x48(%rbp)
140587218:	4d 8b d0             	mov    %r8,%r10
14058721b:	4d 8b 00             	mov    (%r8),%r8
14058721e:	45 38 70 19          	cmp    %r14b,0x19(%r8)
140587222:	74 bc                	je     0x1405871e0
140587224:	45 38 72 19          	cmp    %r14b,0x19(%r10)
140587228:	75 30                	jne    0x14058725a
14058722a:	4d 8b 42 20          	mov    0x20(%r10),%r8
14058722e:	49 8b c4             	mov    %r12,%rax
140587231:	4d 2b c4             	sub    %r12,%r8
140587234:	0f b6 10             	movzbl (%rax),%edx
140587237:	42 0f b6 0c 00       	movzbl (%rax,%r8,1),%ecx
14058723c:	2b d1                	sub    %ecx,%edx
14058723e:	75 07                	jne    0x140587247
140587240:	48 ff c0             	inc    %rax
140587243:	85 c9                	test   %ecx,%ecx
140587245:	75 ed                	jne    0x140587234
140587247:	85 d2                	test   %edx,%edx
140587249:	78 0f                	js     0x14058725a
14058724b:	ba 30 00 00 00       	mov    $0x30,%edx
140587250:	49 8b cb             	mov    %r11,%rcx
140587253:	e8 ec 3e 89 00       	call   0x140e1b144
140587258:	eb 33                	jmp    0x14058728d
14058725a:	48 b8 55 55 55 55 55 	movabs $0x555555555555555,%rax
140587261:	55 55 05
140587264:	48 39 44 24 78       	cmp    %rax,0x78(%rsp)
140587269:	0f 84 e4 04 00 00    	je     0x140587753
14058726f:	4c 89 75 00          	mov    %r14,0x0(%rbp)
140587273:	0f 10 45 b0          	movups -0x50(%rbp),%xmm0
140587277:	0f 29 45 b0          	movaps %xmm0,-0x50(%rbp)
14058727b:	4d 8b c3             	mov    %r11,%r8
14058727e:	48 8d 55 b0          	lea    -0x50(%rbp),%rdx
140587282:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
140587287:	e8 04 08 c6 ff       	call   0x1401e7a90
14058728c:	90                   	nop
14058728d:	48 8b 55 68          	mov    0x68(%rbp),%rdx
140587291:	48 83 fa 0f          	cmp    $0xf,%rdx
140587295:	76 31                	jbe    0x1405872c8
140587297:	48 ff c2             	inc    %rdx
14058729a:	48 8b 4d 50          	mov    0x50(%rbp),%rcx
14058729e:	48 8b c1             	mov    %rcx,%rax
1405872a1:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1405872a8:	72 19                	jb     0x1405872c3
1405872aa:	48 83 c2 27          	add    $0x27,%rdx
1405872ae:	48 8b 49 f8          	mov    -0x8(%rcx),%rcx
1405872b2:	48 2b c1             	sub    %rcx,%rax
1405872b5:	48 83 c0 f8          	add    $0xfffffffffffffff8,%rax
1405872b9:	48 83 f8 1f          	cmp    $0x1f,%rax
1405872bd:	0f 87 79 04 00 00    	ja     0x14058773c
1405872c3:	e8 7c 3e 89 00       	call   0x140e1b144
1405872c8:	4c 89 75 60          	mov    %r14,0x60(%rbp)
1405872cc:	48 c7 45 68 0f 00 00 	movq   $0xf,0x68(%rbp)
1405872d3:	00
1405872d4:	c6 45 50 00          	movb   $0x0,0x50(%rbp)
1405872d8:	48 8b 95 88 00 00 00 	mov    0x88(%rbp),%rdx
1405872df:	48 83 fa 0f          	cmp    $0xf,%rdx
1405872e3:	76 31                	jbe    0x140587316
1405872e5:	48 ff c2             	inc    %rdx
1405872e8:	48 8b 4d 70          	mov    0x70(%rbp),%rcx
1405872ec:	48 8b c1             	mov    %rcx,%rax
1405872ef:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1405872f6:	72 19                	jb     0x140587311
1405872f8:	48 83 c2 27          	add    $0x27,%rdx
1405872fc:	48 8b 49 f8          	mov    -0x8(%rcx),%rcx
140587300:	48 2b c1             	sub    %rcx,%rax
140587303:	48 83 c0 f8          	add    $0xfffffffffffffff8,%rax
140587307:	48 83 f8 1f          	cmp    $0x1f,%rax
14058730b:	0f 87 31 04 00 00    	ja     0x140587742
140587311:	e8 2e 3e 89 00       	call   0x140e1b144
140587316:	4c 89 b5 80 00 00 00 	mov    %r14,0x80(%rbp)
14058731d:	48 c7 85 88 00 00 00 	movq   $0xf,0x88(%rbp)
140587324:	0f 00 00 00
140587328:	c6 45 70 00          	movb   $0x0,0x70(%rbp)
14058732c:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
140587331:	48 85 c9             	test   %rcx,%rcx
140587334:	74 24                	je     0x14058735a
140587336:	8b 41 10             	mov    0x10(%rcx),%eax
140587339:	ff c8                	dec    %eax
14058733b:	89 41 10             	mov    %eax,0x10(%rcx)
14058733e:	85 c0                	test   %eax,%eax
140587340:	7f 18                	jg     0x14058735a
140587342:	0f 88 00 04 00 00    	js     0x140587748
140587348:	48 8b 01             	mov    (%rcx),%rax
14058734b:	ba 01 00 00 00       	mov    $0x1,%edx
140587350:	48 8b 00             	mov    (%rax),%rax
140587353:	ff 15 c7 c6 9f 00    	call   *0x9fc6c7(%rip)        # 0x140f83a20
140587359:	90                   	nop
14058735a:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
14058735f:	48 85 f6             	test   %rsi,%rsi
140587362:	74 15                	je     0x140587379
140587364:	48 8b ce             	mov    %rsi,%rcx
140587367:	e8 24 a8 21 00       	call   0x1407a1b90
14058736c:	ba 38 00 00 00       	mov    $0x38,%edx
140587371:	48 8b ce             	mov    %rsi,%rcx
140587374:	e8 cb 3d 89 00       	call   0x140e1b144
140587379:	49 83 7d 50 00       	cmpq   $0x0,0x50(%r13)
14058737e:	74 17                	je     0x140587397
140587380:	48 83 c3 38          	add    $0x38,%rbx
140587384:	48 89 5d e8          	mov    %rbx,-0x18(%rbp)
140587388:	48 8b 54 24 38       	mov    0x38(%rsp),%rdx
14058738d:	44 8b 64 24 30       	mov    0x30(%rsp),%r12d
140587392:	e9 69 fc ff ff       	jmp    0x140587000
140587397:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
14058739c:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
1405873a2:	0f 1f 40 00          	nopl   0x0(%rax)
1405873a6:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
1405873ad:	00 00 00
1405873b0:	49 83 c7 20          	add    $0x20,%r15
1405873b4:	4c 89 7d d8          	mov    %r15,-0x28(%rbp)
1405873b8:	4c 3b f8             	cmp    %rax,%r15
1405873bb:	48 8b 54 24 38       	mov    0x38(%rsp),%rdx
1405873c0:	44 8b 64 24 30       	mov    0x30(%rsp),%r12d
1405873c5:	0f 84 35 fc ff ff    	je     0x140587000
1405873cb:	66 45 39 07          	cmp    %r8w,(%r15)
1405873cf:	74 df                	je     0x1405873b0
1405873d1:	e9 2a fc ff ff       	jmp    0x140587000
1405873d6:	66 41 83 6d 0c 02    	subw   $0x2,0xc(%r13)
1405873dc:	b9 30 00 00 00       	mov    $0x30,%ecx
1405873e1:	e8 22 3d 89 00       	call   0x140e1b108
1405873e6:	48 8b d8             	mov    %rax,%rbx
1405873e9:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
1405873ed:	48 85 c0             	test   %rax,%rax
1405873f0:	74 1c                	je     0x14058740e
1405873f2:	48 8b 4c 24 58       	mov    0x58(%rsp),%rcx
1405873f7:	e8 34 d2 1a 00       	call   0x140734630
1405873fc:	4c 8b c0             	mov    %rax,%r8
1405873ff:	48 8d 54 24 60       	lea    0x60(%rsp),%rdx
140587404:	48 8b cb             	mov    %rbx,%rcx
140587407:	e8 24 c1 ff ff       	call   0x140583530
14058740c:	eb 03                	jmp    0x140587411
14058740e:	49 8b c6             	mov    %r14,%rax
140587411:	48 8b 75 90          	mov    -0x70(%rbp),%rsi
140587415:	48 89 46 38          	mov    %rax,0x38(%rsi)
140587419:	48 8b 4c 24 58       	mov    0x58(%rsp),%rcx
14058741e:	4c 89 74 24 58       	mov    %r14,0x58(%rsp)
140587423:	e8 08 d2 1a 00       	call   0x140734630
140587428:	48 89 46 30          	mov    %rax,0x30(%rsi)
14058742c:	48 8d 4e 08          	lea    0x8(%rsi),%rcx
140587430:	48 8d 45 30          	lea    0x30(%rbp),%rax
140587434:	48 3b c8             	cmp    %rax,%rcx
140587437:	74 17                	je     0x140587450
140587439:	48 8d 55 30          	lea    0x30(%rbp),%rdx
14058743d:	48 83 7d 48 0f       	cmpq   $0xf,0x48(%rbp)
140587442:	48 0f 47 55 30       	cmova  0x30(%rbp),%rdx
140587447:	4c 8b 45 40          	mov    0x40(%rbp),%r8
14058744b:	e8 80 7f c1 ff       	call   0x14019f3d0
140587450:	4c 8b 75 98          	mov    -0x68(%rbp),%r14
140587454:	41 8b 46 10          	mov    0x10(%r14),%eax
140587458:	ff c0                	inc    %eax
14058745a:	41 89 46 10          	mov    %eax,0x10(%r14)
14058745e:	83 f8 01             	cmp    $0x1,%eax
140587461:	0f 8e f2 02 00 00    	jle    0x140587759
140587467:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
14058746c:	0f 84 ef 02 00 00    	je     0x140587761
140587472:	4c 89 76 50          	mov    %r14,0x50(%rsi)
140587476:	40 b7 01             	mov    $0x1,%dil