140454c25:	48 8b 46 20          	mov    0x20(%rsi),%rax
140454c29:	48 8b 10             	mov    (%rax),%rdx
140454c2c:	44 8b c7             	mov    %edi,%r8d
140454c2f:	48 8b 48 08          	mov    0x8(%rax),%rcx
140454c33:	48 2b ca             	sub    %rdx,%rcx
140454c36:	48 d1 f9             	sar    $1,%rcx
140454c39:	4c 3b c1             	cmp    %rcx,%r8
140454c3c:	72 c2                	jb     0x140454c00
140454c3e:	48 8d 44 24 78       	lea    0x78(%rsp),%rax
140454c43:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140454c48:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
140454c4f:	00 00
140454c51:	48 89 5c 24 78       	mov    %rbx,0x78(%rsp)
140454c56:	49 8b d6             	mov    %r14,%rdx
140454c59:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140454c5e:	e8 dd 62 fe ff       	call   0x14043af40
140454c63:	48 8b 08             	mov    (%rax),%rcx
140454c66:	48 c7 00 00 00 00 00 	movq   $0x0,(%rax)
140454c6d:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140454c72:	48 8b 08             	mov    (%rax),%rcx
140454c75:	48 85 c9             	test   %rcx,%rcx
140454c78:	74 20                	je     0x140454c9a
140454c7a:	8b 41 10             	mov    0x10(%rcx),%eax
140454c7d:	ff c8                	dec    %eax
140454c7f:	89 41 10             	mov    %eax,0x10(%rcx)
140454c82:	85 c0                	test   %eax,%eax
140454c84:	7f 14                	jg     0x140454c9a
140454c86:	78 42                	js     0x140454cca
140454c88:	48 8b 01             	mov    (%rcx),%rax
140454c8b:	ba 01 00 00 00       	mov    $0x1,%edx
140454c90:	48 8b 00             	mov    (%rax),%rax
140454c93:	ff 15 87 ed b2 00    	call   *0xb2ed87(%rip)        # 0x140f83a20
140454c99:	90                   	nop
140454c9a:	48 8b 8d b8 00 00 00 	mov    0xb8(%rbp),%rcx
140454ca1:	4c 8d 4c 24 78       	lea    0x78(%rsp),%r9
140454ca6:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
140454cab:	48 8b 51 28          	mov    0x28(%rcx),%rdx
140454caf:	e8 0c 8a 00 00       	call   0x14045d6c0
140454cb4:	90                   	nop
140454cb5:	b0 01                	mov    $0x1,%al
140454cb7:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
140454cbc:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
140454cc1:	48 83 c4 40          	add    $0x40,%rsp
140454cc5:	41 5e                	pop    %r14
140454cc7:	5f                   	pop    %rdi
140454cc8:	5e                   	pop    %rsi
140454cc9:	c3                   	ret
140454cca:	b9 02 00 00 00       	mov    $0x2,%ecx
140454ccf:	e8 2c 5a 33 00       	call   0x14078a700
140454cd4:	90                   	nop
140454cd5:	33 c9                	xor    %ecx,%ecx
140454cd7:	e8 24 5a 33 00       	call   0x14078a700
140454cdc:	cc                   	int3
140454cdd:	b9 01 00 00 00       	mov    $0x1,%ecx
140454ce2:	e8 19 5a 33 00       	call   0x14078a700
140454ce7:	cc                   	int3
140454ce8:	cc                   	int3
140454ce9:	cc                   	int3
140454cea:	cc                   	int3
140454ceb:	cc                   	int3
140454cec:	cc                   	int3
140454ced:	cc                   	int3
140454cee:	cc                   	int3
140454cef:	cc                   	int3
140454cf0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140454cf5:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140454cfa:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
140454cff:	55                   	push   %rbp
140454d00:	41 54                	push   %r12
140454d02:	41 55                	push   %r13
140454d04:	41 56                	push   %r14
140454d06:	41 57                	push   %r15
140454d08:	48 8b ec             	mov    %rsp,%rbp
140454d0b:	48 83 ec 70          	sub    $0x70,%rsp
140454d0f:	0f 29 74 24 60       	movaps %xmm6,0x60(%rsp)
140454d14:	0f 29 7c 24 50       	movaps %xmm7,0x50(%rsp)
140454d19:	49 8b d8             	mov    %r8,%rbx
140454d1c:	4c 8b e2             	mov    %rdx,%r12
140454d1f:	4c 8b e9             	mov    %rcx,%r13
140454d22:	33 f6                	xor    %esi,%esi
140454d24:	48 8b 0d 85 31 fd 00 	mov    0xfd3185(%rip),%rcx        # 0x141427eb0
140454d2b:	48 85 c9             	test   %rcx,%rcx
140454d2e:	0f 84 51 04 00 00    	je     0x140455185
140454d34:	e8 f7 07 3c 00       	call   0x140815530
140454d39:	84 c0                	test   %al,%al
140454d3b:	0f 84 44 04 00 00    	je     0x140455185
140454d41:	b9 50 00 00 00       	mov    $0x50,%ecx
140454d46:	e8 bd 63 9c 00       	call   0x140e1b108
140454d4b:	4c 8b c8             	mov    %rax,%r9
140454d4e:	48 89 45 c8          	mov    %rax,-0x38(%rbp)
140454d52:	48 85 c0             	test   %rax,%rax
140454d55:	74 40                	je     0x140454d97
140454d57:	48 8b 0d 5a 31 fd 00 	mov    0xfd315a(%rip),%rcx        # 0x141427eb8
140454d5e:	48 89 4d 48          	mov    %rcx,0x48(%rbp)
140454d62:	48 85 c9             	test   %rcx,%rcx
140454d65:	74 1c                	je     0x140454d83
140454d67:	8b 41 10             	mov    0x10(%rcx),%eax
140454d6a:	ff c0                	inc    %eax
140454d6c:	89 41 10             	mov    %eax,0x10(%rcx)
140454d6f:	83 f8 01             	cmp    $0x1,%eax
140454d72:	0f 8e 42 04 00 00    	jle    0x1404551ba
140454d78:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
140454d7d:	0f 84 3f 04 00 00    	je     0x1404551c2
140454d83:	41 b0 01             	mov    $0x1,%r8b
140454d86:	48 8d 55 48          	lea    0x48(%rbp),%rdx
140454d8a:	49 8b c9             	mov    %r9,%rcx
140454d8d:	e8 2e cc 2d 00       	call   0x1407319c0
140454d92:	4c 8b f0             	mov    %rax,%r14
140454d95:	eb 03                	jmp    0x140454d9a
140454d97:	4c 8b f6             	mov    %rsi,%r14
140454d9a:	4c 89 75 c0          	mov    %r14,-0x40(%rbp)
140454d9e:	0f b7 53 04          	movzwl 0x4(%rbx),%edx
140454da2:	49 8b 46 40          	mov    0x40(%r14),%rax
140454da6:	48 8b 08             	mov    (%rax),%rcx
140454da9:	80 79 08 00          	cmpb   $0x0,0x8(%rcx)
140454dad:	75 04                	jne    0x140454db3
140454daf:	c6 41 08 01          	movb   $0x1,0x8(%rcx)
140454db3:	48 89 11             	mov    %rdx,(%rcx)
140454db6:	49 8d 56 20          	lea    0x20(%r14),%rdx
140454dba:	48 83 7a 08 00       	cmpq   $0x0,0x8(%rdx)
140454dbf:	74 0c                	je     0x140454dcd
140454dc1:	48 8d 0d 18 bc fd 00 	lea    0xfdbc18(%rip),%rcx        # 0x1414309e0
140454dc8:	e8 73 5d 33 00       	call   0x14078ab40
140454dcd:	0f b7 53 02          	movzwl 0x2(%rbx),%edx
140454dd1:	49 8b 46 40          	mov    0x40(%r14),%rax
140454dd5:	48 8b 08             	mov    (%rax),%rcx
140454dd8:	80 79 18 00          	cmpb   $0x0,0x18(%rcx)
140454ddc:	75 04                	jne    0x140454de2
140454dde:	c6 41 18 01          	movb   $0x1,0x18(%rcx)
140454de2:	48 89 51 10          	mov    %rdx,0x10(%rcx)
140454de6:	49 8d 56 20          	lea    0x20(%r14),%rdx
140454dea:	48 83 7a 08 00       	cmpq   $0x0,0x8(%rdx)
140454def:	74 0c                	je     0x140454dfd
140454df1:	48 8d 0d e8 bb fd 00 	lea    0xfdbbe8(%rip),%rcx        # 0x1414309e0
140454df8:	e8 43 5d 33 00       	call   0x14078ab40
140454dfd:	48 8b 53 08          	mov    0x8(%rbx),%rdx
140454e01:	48 8d 4d b0          	lea    -0x50(%rbp),%rcx
140454e05:	e8 86 60 fe ff       	call   0x14043ae90
140454e0a:	48 8b 08             	mov    (%rax),%rcx
140454e0d:	48 89 30             	mov    %rsi,(%rax)
140454e10:	48 89 4d 48          	mov    %rcx,0x48(%rbp)
140454e14:	48 8b 08             	mov    (%rax),%rcx
140454e17:	48 85 c9             	test   %rcx,%rcx
140454e1a:	74 24                	je     0x140454e40
140454e1c:	8b 41 10             	mov    0x10(%rcx),%eax
140454e1f:	ff c8                	dec    %eax
140454e21:	89 41 10             	mov    %eax,0x10(%rcx)
140454e24:	85 c0                	test   %eax,%eax
140454e26:	7f 18                	jg     0x140454e40
140454e28:	0f 88 9f 03 00 00    	js     0x1404551cd
140454e2e:	48 8b 01             	mov    (%rcx),%rax
140454e31:	ba 01 00 00 00       	mov    $0x1,%edx
140454e36:	48 8b 00             	mov    (%rax),%rax
140454e39:	ff 15 e1 eb b2 00    	call   *0xb2ebe1(%rip)        # 0x140f83a20
140454e3f:	90                   	nop
140454e40:	4c 8d 45 48          	lea    0x48(%rbp),%r8
140454e44:	ba 02 00 00 00       	mov    $0x2,%edx
140454e49:	49 8b ce             	mov    %r14,%rcx
140454e4c:	e8 af fc 2d 00       	call   0x140734b00
140454e51:	48 8b 4b 20          	mov    0x20(%rbx),%rcx
140454e55:	0f 57 c0             	xorps  %xmm0,%xmm0
140454e58:	48 85 c9             	test   %rcx,%rcx
140454e5b:	78 07                	js     0x140454e64
140454e5d:	f2 48 0f 2a c1       	cvtsi2sd %rcx,%xmm0
140454e62:	eb 15                	jmp    0x140454e79
140454e64:	48 8b c1             	mov    %rcx,%rax
140454e67:	48 d1 e8             	shr    $1,%rax
140454e6a:	83 e1 01             	and    $0x1,%ecx
140454e6d:	48 0b c1             	or     %rcx,%rax
140454e70:	f2 48 0f 2a c0       	cvtsi2sd %rax,%xmm0
140454e75:	f2 0f 58 c0          	addsd  %xmm0,%xmm0
140454e79:	f2 0f 10 35 ff 25 ba 	movsd  0xba25ff(%rip),%xmm6        # 0x140ff7480
140454e80:	00
140454e81:	f2 0f 5e c6          	divsd  %xmm6,%xmm0
140454e85:	f2 0f 10 3d fb 25 ba 	movsd  0xba25fb(%rip),%xmm7        # 0x140ff7488
140454e8c:	00
140454e8d:	f2 0f 5c c7          	subsd  %xmm7,%xmm0
140454e91:	f2 0f 11 45 48       	movsd  %xmm0,0x48(%rbp)
140454e96:	49 8b 46 40          	mov    0x40(%r14),%rax
140454e9a:	48 8b 08             	mov    (%rax),%rcx
140454e9d:	80 79 38 00          	cmpb   $0x0,0x38(%rcx)
140454ea1:	75 04                	jne    0x140454ea7
140454ea3:	c6 41 38 01          	movb   $0x1,0x38(%rcx)
140454ea7:	48 8b 45 48          	mov    0x48(%rbp),%rax
140454eab:	48 89 41 30          	mov    %rax,0x30(%rcx)
140454eaf:	49 8d 56 20          	lea    0x20(%r14),%rdx
140454eb3:	48 83 7a 08 00       	cmpq   $0x0,0x8(%rdx)
140454eb8:	74 0c                	je     0x140454ec6
140454eba:	48 8d 0d 1f bb fd 00 	lea    0xfdbb1f(%rip),%rcx        # 0x1414309e0
140454ec1:	e8 7a 5c 33 00       	call   0x14078ab40
140454ec6:	48 8b 4b 28          	mov    0x28(%rbx),%rcx
140454eca:	0f 57 c0             	xorps  %xmm0,%xmm0
140454ecd:	48 85 c9             	test   %rcx,%rcx
140454ed0:	78 07                	js     0x140454ed9
140454ed2:	f2 48 0f 2a c1       	cvtsi2sd %rcx,%xmm0
140454ed7:	eb 15                	jmp    0x140454eee
140454ed9:	48 8b c1             	mov    %rcx,%rax
140454edc:	48 d1 e8             	shr    $1,%rax
140454edf:	83 e1 01             	and    $0x1,%ecx
140454ee2:	48 0b c1             	or     %rcx,%rax
140454ee5:	f2 48 0f 2a c0       	cvtsi2sd %rax,%xmm0
140454eea:	f2 0f 58 c0          	addsd  %xmm0,%xmm0
140454eee:	f2 0f 5e c6          	divsd  %xmm6,%xmm0
140454ef2:	f2 0f 5c c7          	subsd  %xmm7,%xmm0
140454ef6:	f2 0f 11 45 48       	movsd  %xmm0,0x48(%rbp)
140454efb:	49 8b 46 40          	mov    0x40(%r14),%rax
140454eff:	48 8b 08             	mov    (%rax),%rcx
140454f02:	80 79 48 00          	cmpb   $0x0,0x48(%rcx)
140454f06:	75 04                	jne    0x140454f0c
140454f08:	c6 41 48 01          	movb   $0x1,0x48(%rcx)
140454f0c:	48 8b 45 48          	mov    0x48(%rbp),%rax
140454f10:	48 89 41 40          	mov    %rax,0x40(%rcx)
140454f14:	49 8d 56 20          	lea    0x20(%r14),%rdx
140454f18:	48 83 7a 08 00       	cmpq   $0x0,0x8(%rdx)
140454f1d:	74 0c                	je     0x140454f2b
140454f1f:	48 8d 0d ba ba fd 00 	lea    0xfdbaba(%rip),%rcx        # 0x1414309e0
140454f26:	e8 15 5c 33 00       	call   0x14078ab40
140454f2b:	44 0f b7 43 06       	movzwl 0x6(%rbx),%r8d
140454f30:	49 8b 46 40          	mov    0x40(%r14),%rax
140454f34:	48 8b 10             	mov    (%rax),%rdx
140454f37:	80 7a 58 00          	cmpb   $0x0,0x58(%rdx)
140454f3b:	75 04                	jne    0x140454f41
140454f3d:	c6 42 58 01          	movb   $0x1,0x58(%rdx)
140454f41:	4c 89 42 50          	mov    %r8,0x50(%rdx)
140454f45:	49 8d 56 20          	lea    0x20(%r14),%rdx
140454f49:	48 83 7a 08 00       	cmpq   $0x0,0x8(%rdx)
140454f4e:	74 0c                	je     0x140454f5c
140454f50:	48 8d 0d 89 ba fd 00 	lea    0xfdba89(%rip),%rcx        # 0x1414309e0
140454f57:	e8 e4 5b 33 00       	call   0x14078ab40
140454f5c:	b9 50 00 00 00       	mov    $0x50,%ecx
140454f61:	e8 a2 61 9c 00       	call   0x140e1b108
140454f66:	4c 8b c0             	mov    %rax,%r8
140454f69:	48 89 45 c8          	mov    %rax,-0x38(%rbp)
140454f6d:	48 85 c0             	test   %rax,%rax
140454f70:	74 3d                	je     0x140454faf
140454f72:	48 8b 0d ef 2d fd 00 	mov    0xfd2def(%rip),%rcx        # 0x141427d68
140454f79:	48 89 4d 48          	mov    %rcx,0x48(%rbp)
140454f7d:	48 85 c9             	test   %rcx,%rcx
140454f80:	74 1c                	je     0x140454f9e
140454f82:	8b 41 10             	mov    0x10(%rcx),%eax
140454f85:	ff c0                	inc    %eax
140454f87:	89 41 10             	mov    %eax,0x10(%rcx)
140454f8a:	83 f8 01             	cmp    $0x1,%eax
140454f8d:	0f 8e 45 02 00 00    	jle    0x1404551d8
140454f93:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
140454f98:	0f 84 42 02 00 00    	je     0x1404551e0
140454f9e:	48 8d 55 48          	lea    0x48(%rbp),%rdx
140454fa2:	49 8b c8             	mov    %r8,%rcx
140454fa5:	e8 86 d8 2d 00       	call   0x140732830
140454faa:	4c 8b f8             	mov    %rax,%r15
140454fad:	eb 03                	jmp    0x140454fb2
140454faf:	4c 8b fe             	mov    %rsi,%r15
140454fb2:	4c 89 7d b8          	mov    %r15,-0x48(%rbp)
140454fb6:	b8 11 03 00 00       	mov    $0x311,%eax
140454fbb:	66 39 43 04          	cmp    %ax,0x4(%rbx)
140454fbf:	0f 85 40 01 00 00    	jne    0x140455105
140454fc5:	66 83 7b 06 00       	cmpw   $0x0,0x6(%rbx)
140454fca:	0f 86 35 01 00 00    	jbe    0x140455105
140454fd0:	8b fe                	mov    %esi,%edi
140454fd2:	48 8b cb             	mov    %rbx,%rcx
140454fd5:	e8 36 22 00 00       	call   0x140457210
140454fda:	48 8b 48 08          	mov    0x8(%rax),%rcx
140454fde:	48 8b 01             	mov    (%rcx),%rax
140454fe1:	48 8b 48 08          	mov    0x8(%rax),%rcx
140454fe5:	48 2b 08             	sub    (%rax),%rcx
140454fe8:	48 c1 f9 03          	sar    $0x3,%rcx
140454fec:	48 85 c9             	test   %rcx,%rcx
140454fef:	0f 84 93 00 00 00    	je     0x140455088
140454ff5:	48 8b cb             	mov    %rbx,%rcx
140454ff8:	e8 13 22 00 00       	call   0x140457210
140454ffd:	48 8b 48 08          	mov    0x8(%rax),%rcx
140455001:	48 8b 01             	mov    (%rcx),%rax
140455004:	48 8b 08             	mov    (%rax),%rcx
140455007:	48 8b 14 f1          	mov    (%rcx,%rsi,8),%rdx
14045500b:	48 8b 12             	mov    (%rdx),%rdx
14045500e:	48 8d 4d b0          	lea    -0x50(%rbp),%rcx
140455012:	e8 79 56 fe ff       	call   0x14043a690
140455017:	48 8b 08             	mov    (%rax),%rcx
14045501a:	48 c7 00 00 00 00 00 	movq   $0x0,(%rax)
140455021:	48 89 4d 48          	mov    %rcx,0x48(%rbp)
140455025:	48 8b 08             	mov    (%rax),%rcx
140455028:	48 85 c9             	test   %rcx,%rcx
14045502b:	74 24                	je     0x140455051
14045502d:	8b 41 10             	mov    0x10(%rcx),%eax
140455030:	ff c8                	dec    %eax
140455032:	89 41 10             	mov    %eax,0x10(%rcx)
140455035:	85 c0                	test   %eax,%eax
140455037:	7f 18                	jg     0x140455051
140455039:	0f 88 b7 01 00 00    	js     0x1404551f6
14045503f:	48 8b 01             	mov    (%rcx),%rax
140455042:	ba 01 00 00 00       	mov    $0x1,%edx
140455047:	48 8b 00             	mov    (%rax),%rax
14045504a:	ff 15 d0 e9 b2 00    	call   *0xb2e9d0(%rip)        # 0x140f83a20
140455050:	90                   	nop
140455051:	4c 8d 45 48          	lea    0x48(%rbp),%r8
140455055:	8b d7                	mov    %edi,%edx
140455057:	49 8b cf             	mov    %r15,%rcx
14045505a:	e8 a1 03 2e 00       	call   0x140735400
14045505f:	ff c7                	inc    %edi
140455061:	48 8b cb             	mov    %rbx,%rcx
140455064:	e8 a7 21 00 00       	call   0x140457210
140455069:	48 8b 48 08          	mov    0x8(%rax),%rcx
14045506d:	48 8b 01             	mov    (%rcx),%rax
140455070:	8b f7                	mov    %edi,%esi
140455072:	48 8b 48 08          	mov    0x8(%rax),%rcx
140455076:	48 2b 08             	sub    (%rax),%rcx
140455079:	48 c1 f9 03          	sar    $0x3,%rcx
14045507d:	48 3b f1             	cmp    %rcx,%rsi
140455080:	0f 82 6f ff ff ff    	jb     0x140454ff5
140455086:	33 f6                	xor    %esi,%esi
140455088:	48 8d 45 48          	lea    0x48(%rbp),%rax
14045508c:	48 89 45 c8          	mov    %rax,-0x38(%rbp)
140455090:	48 8b cb             	mov    %rbx,%rcx
140455093:	e8 78 21 00 00       	call   0x140457210
140455098:	48 8b 50 08          	mov    0x8(%rax),%rdx
14045509c:	48 8b 52 10          	mov    0x10(%rdx),%rdx
1404550a0:	48 8d 4d b0          	lea    -0x50(%rbp),%rcx
1404550a4:	e8 e7 55 fe ff       	call   0x14043a690
1404550a9:	48 8b 08             	mov    (%rax),%rcx
1404550ac:	48 89 30             	mov    %rsi,(%rax)
1404550af:	48 89 4d 48          	mov    %rcx,0x48(%rbp)
1404550b3:	48 8b 08             	mov    (%rax),%rcx
1404550b6:	48 85 c9             	test   %rcx,%rcx
1404550b9:	74 24                	je     0x1404550df
1404550bb:	8b 41 10             	mov    0x10(%rcx),%eax
1404550be:	ff c8                	dec    %eax
1404550c0:	89 41 10             	mov    %eax,0x10(%rcx)
1404550c3:	85 c0                	test   %eax,%eax
1404550c5:	7f 18                	jg     0x1404550df
1404550c7:	0f 88 1e 01 00 00    	js     0x1404551eb
1404550cd:	48 8b 01             	mov    (%rcx),%rax
1404550d0:	ba 01 00 00 00       	mov    $0x1,%edx
1404550d5:	48 8b 00             	mov    (%rax),%rax
1404550d8:	ff 15 42 e9 b2 00    	call   *0xb2e942(%rip)        # 0x140f83a20
1404550de:	90                   	nop
1404550df:	48 8b cb             	mov    %rbx,%rcx
1404550e2:	e8 29 21 00 00       	call   0x140457210
1404550e7:	48 8b 48 08          	mov    0x8(%rax),%rcx
1404550eb:	48 8b 01             	mov    (%rcx),%rax
1404550ee:	48 8b 50 08          	mov    0x8(%rax),%rdx
1404550f2:	48 2b 10             	sub    (%rax),%rdx
1404550f5:	48 c1 fa 03          	sar    $0x3,%rdx
1404550f9:	4c 8d 45 48          	lea    0x48(%rbp),%r8
1404550fd:	49 8b cf             	mov    %r15,%rcx
140455100:	e8 fb 02 2e 00       	call   0x140735400
140455105:	48 89 75 b8          	mov    %rsi,-0x48(%rbp)
140455109:	4c 89 7d 48          	mov    %r15,0x48(%rbp)
14045510d:	4c 8d 45 48          	lea    0x48(%rbp),%r8
140455111:	ba 06 00 00 00       	mov    $0x6,%edx
140455116:	49 8b ce             	mov    %r14,%rcx