14098fc8a:	48 85 ff             	test   %rdi,%rdi
14098fc8d:	74 18                	je     0x14098fca7
14098fc8f:	48 8b df             	mov    %rdi,%rbx
14098fc92:	48 8b c3             	mov    %rbx,%rax
14098fc95:	eb 12                	jmp    0x14098fca9
14098fc97:	ba 12 00 00 00       	mov    $0x12,%edx
14098fc9c:	45 33 c0             	xor    %r8d,%r8d
14098fc9f:	48 8b ce             	mov    %rsi,%rcx
14098fca2:	e8 e9 7c ff ff       	call   0x140987990
14098fca7:	33 c0                	xor    %eax,%eax
14098fca9:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
14098fcad:	48 33 cc             	xor    %rsp,%rcx
14098fcb0:	e8 4b b8 48 00       	call   0x140e1b500
14098fcb5:	48 81 c4 08 01 00 00 	add    $0x108,%rsp
14098fcbc:	41 5f                	pop    %r15
14098fcbe:	41 5e                	pop    %r14
14098fcc0:	41 5d                	pop    %r13
14098fcc2:	41 5c                	pop    %r12
14098fcc4:	5f                   	pop    %rdi
14098fcc5:	5e                   	pop    %rsi
14098fcc6:	5b                   	pop    %rbx
14098fcc7:	5d                   	pop    %rbp
14098fcc8:	c3                   	ret
14098fcc9:	cc                   	int3
14098fcca:	cc                   	int3
14098fccb:	cc                   	int3
14098fccc:	cc                   	int3
14098fccd:	cc                   	int3
14098fcce:	cc                   	int3
14098fccf:	cc                   	int3
14098fcd0:	40 55                	rex push %rbp
14098fcd2:	56                   	push   %rsi
14098fcd3:	41 54                	push   %r12
14098fcd5:	41 57                	push   %r15
14098fcd7:	48 83 ec 28          	sub    $0x28,%rsp
14098fcdb:	45 8b e1             	mov    %r9d,%r12d
14098fcde:	4d 8b f8             	mov    %r8,%r15
14098fce1:	48 8b f2             	mov    %rdx,%rsi
14098fce4:	48 8b e9             	mov    %rcx,%rbp
14098fce7:	48 85 c9             	test   %rcx,%rcx
14098fcea:	0f 84 bb 01 00 00    	je     0x14098feab
14098fcf0:	48 85 d2             	test   %rdx,%rdx
14098fcf3:	0f 84 b2 01 00 00    	je     0x14098feab
14098fcf9:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
14098fd00:	ff ff 7f
14098fd03:	4c 3b c0             	cmp    %rax,%r8
14098fd06:	0f 87 9f 01 00 00    	ja     0x14098feab
14098fd0c:	83 39 00             	cmpl   $0x0,(%rcx)
14098fd0f:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
14098fd14:	4c 8b 74 24 70       	mov    0x70(%rsp),%r14
14098fd19:	48 89 5c 24 50       	mov    %rbx,0x50(%rsp)
14098fd1e:	48 89 7c 24 58       	mov    %rdi,0x58(%rsp)
14098fd23:	4c 89 6c 24 60       	mov    %r13,0x60(%rsp)
14098fd28:	75 15                	jne    0x14098fd3f
14098fd2a:	4d 8b c6             	mov    %r14,%r8
14098fd2d:	ba 00 01 00 00       	mov    $0x100,%edx
14098fd32:	e8 09 04 00 00       	call   0x140990140
14098fd37:	84 c0                	test   %al,%al
14098fd39:	0f 84 91 00 00 00    	je     0x14098fdd0
14098fd3f:	0f b6 06             	movzbl (%rsi),%eax
14098fd42:	48 8b ce             	mov    %rsi,%rcx
14098fd45:	bf 05 15 00 00       	mov    $0x1505,%edi
14098fd4a:	84 c0                	test   %al,%al
14098fd4c:	74 17                	je     0x14098fd65
14098fd4e:	66 90                	xchg   %ax,%ax
14098fd50:	48 6b ff 21          	imul   $0x21,%rdi,%rdi
14098fd54:	0f b6 c0             	movzbl %al,%eax
14098fd57:	48 8d 49 01          	lea    0x1(%rcx),%rcx
14098fd5b:	48 03 f8             	add    %rax,%rdi
14098fd5e:	0f b6 01             	movzbl (%rcx),%eax
14098fd61:	84 c0                	test   %al,%al
14098fd63:	75 eb                	jne    0x14098fd50
14098fd65:	33 d2                	xor    %edx,%edx
14098fd67:	8b c7                	mov    %edi,%eax
14098fd69:	f7 75 00             	divl   0x0(%rbp)
14098fd6c:	48 8b 45 10          	mov    0x10(%rbp),%rax
14098fd70:	44 8b ea             	mov    %edx,%r13d
14098fd73:	48 8b 1c d0          	mov    (%rax,%rdx,8),%rbx
14098fd77:	48 85 db             	test   %rbx,%rbx
14098fd7a:	74 34                	je     0x14098fdb0
14098fd7c:	0f 1f 40 00          	nopl   0x0(%rax)
14098fd80:	39 7b 20             	cmp    %edi,0x20(%rbx)
14098fd83:	75 22                	jne    0x14098fda7
14098fd85:	4c 8b 03             	mov    (%rbx),%r8
14098fd88:	48 8b c6             	mov    %rsi,%rax
14098fd8b:	4c 2b c6             	sub    %rsi,%r8
14098fd8e:	66 90                	xchg   %ax,%ax
14098fd90:	0f b6 10             	movzbl (%rax),%edx
14098fd93:	42 0f b6 0c 00       	movzbl (%rax,%r8,1),%ecx
14098fd98:	2b d1                	sub    %ecx,%edx
14098fd9a:	75 07                	jne    0x14098fda3
14098fd9c:	48 ff c0             	inc    %rax
14098fd9f:	85 c9                	test   %ecx,%ecx
14098fda1:	75 ed                	jne    0x14098fd90
14098fda3:	85 d2                	test   %edx,%edx
14098fda5:	74 4a                	je     0x14098fdf1
14098fda7:	48 8b 5b 18          	mov    0x18(%rbx),%rbx
14098fdab:	48 85 db             	test   %rbx,%rbx
14098fdae:	75 d0                	jne    0x14098fd80
14098fdb0:	b9 28 00 00 00       	mov    $0x28,%ecx
14098fdb5:	e8 72 29 4a 00       	call   0x140e3272c
14098fdba:	48 8b d8             	mov    %rax,%rbx
14098fdbd:	48 85 c0             	test   %rax,%rax
14098fdc0:	75 50                	jne    0x14098fe12
14098fdc2:	45 33 c0             	xor    %r8d,%r8d
14098fdc5:	8d 50 0e             	lea    0xe(%rax),%edx
14098fdc8:	49 8b ce             	mov    %r14,%rcx
14098fdcb:	e8 c0 7b ff ff       	call   0x140987990
14098fdd0:	32 c0                	xor    %al,%al
14098fdd2:	4c 8b 6c 24 60       	mov    0x60(%rsp),%r13
14098fdd7:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
14098fddc:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
14098fde1:	4c 8b 74 24 20       	mov    0x20(%rsp),%r14
14098fde6:	48 83 c4 28          	add    $0x28,%rsp
14098fdea:	41 5f                	pop    %r15
14098fdec:	41 5c                	pop    %r12
14098fdee:	5e                   	pop    %rsi
14098fdef:	5d                   	pop    %rbp
14098fdf0:	c3                   	ret
14098fdf1:	41 f6 c4 08          	test   $0x8,%r12b
14098fdf5:	74 07                	je     0x14098fdfe
14098fdf7:	48 83 7b 08 ff       	cmpq   $0xffffffffffffffff,0x8(%rbx)
14098fdfc:	75 0b                	jne    0x14098fe09
14098fdfe:	48 83 7b 10 ff       	cmpq   $0xffffffffffffffff,0x10(%rbx)
14098fe03:	0f 84 8d 00 00 00    	je     0x14098fe96
14098fe09:	45 33 c0             	xor    %r8d,%r8d
14098fe0c:	41 8d 50 0a          	lea    0xa(%r8),%edx
14098fe10:	eb b6                	jmp    0x14098fdc8
14098fe12:	48 89 30             	mov    %rsi,(%rax)
14098fe15:	0f 57 c9             	xorps  %xmm1,%xmm1
14098fe18:	48 8b 45 10          	mov    0x10(%rbp),%rax
14098fe1c:	4a 8b 0c e8          	mov    (%rax,%r13,8),%rcx
14098fe20:	48 89 4b 18          	mov    %rcx,0x18(%rbx)
14098fe24:	48 8b 45 10          	mov    0x10(%rbp),%rax
14098fe28:	4a 89 1c e8          	mov    %rbx,(%rax,%r13,8)
14098fe2c:	89 7b 20             	mov    %edi,0x20(%rbx)
14098fe2f:	48 c7 43 08 ff ff ff 	movq   $0xffffffffffffffff,0x8(%rbx)
14098fe36:	ff
14098fe37:	48 ff 45 08          	incq   0x8(%rbp)
14098fe3b:	48 8b 4d 08          	mov    0x8(%rbp),%rcx
14098fe3f:	8b 55 00             	mov    0x0(%rbp),%edx
14098fe42:	48 85 c9             	test   %rcx,%rcx
14098fe45:	78 07                	js     0x14098fe4e
14098fe47:	f2 48 0f 2a c9       	cvtsi2sd %rcx,%xmm1
14098fe4c:	eb 15                	jmp    0x14098fe63
14098fe4e:	48 8b c1             	mov    %rcx,%rax
14098fe51:	83 e1 01             	and    $0x1,%ecx
14098fe54:	48 d1 e8             	shr    $1,%rax
14098fe57:	48 0b c1             	or     %rcx,%rax
14098fe5a:	f2 48 0f 2a c8       	cvtsi2sd %rax,%xmm1
14098fe5f:	f2 0f 58 c9          	addsd  %xmm1,%xmm1
14098fe63:	0f 57 c0             	xorps  %xmm0,%xmm0
14098fe66:	f2 48 0f 2a c2       	cvtsi2sd %rdx,%xmm0
14098fe6b:	f2 0f 59 05 7d 57 6d 	mulsd  0x6d577d(%rip),%xmm0        # 0x1410655f0
14098fe72:	00
14098fe73:	66 0f 2f c8          	comisd %xmm0,%xmm1
14098fe77:	76 1d                	jbe    0x14098fe96
14098fe79:	81 fa 00 00 00 80    	cmp    $0x80000000,%edx
14098fe7f:	73 15                	jae    0x14098fe96
14098fe81:	03 d2                	add    %edx,%edx
14098fe83:	4d 8b c6             	mov    %r14,%r8
14098fe86:	48 8b cd             	mov    %rbp,%rcx
14098fe89:	e8 b2 02 00 00       	call   0x140990140
14098fe8e:	84 c0                	test   %al,%al
14098fe90:	0f 84 3a ff ff ff    	je     0x14098fdd0
14098fe96:	41 f6 c4 08          	test   $0x8,%r12b
14098fe9a:	74 04                	je     0x14098fea0
14098fe9c:	4c 89 7b 08          	mov    %r15,0x8(%rbx)
14098fea0:	4c 89 7b 10          	mov    %r15,0x10(%rbx)
14098fea4:	b0 01                	mov    $0x1,%al
14098fea6:	e9 27 ff ff ff       	jmp    0x14098fdd2
14098feab:	48 8b 4c 24 70       	mov    0x70(%rsp),%rcx
14098feb0:	45 33 c0             	xor    %r8d,%r8d
14098feb3:	41 8d 50 12          	lea    0x12(%r8),%edx
14098feb7:	e8 d4 7a ff ff       	call   0x140987990
14098febc:	32 c0                	xor    %al,%al
14098febe:	48 83 c4 28          	add    $0x28,%rsp
14098fec2:	41 5f                	pop    %r15
14098fec4:	41 5c                	pop    %r12
14098fec6:	5e                   	pop    %rsi
14098fec7:	5d                   	pop    %rbp
14098fec8:	c3                   	ret
14098fec9:	cc                   	int3
14098feca:	cc                   	int3
14098fecb:	cc                   	int3
14098fecc:	cc                   	int3
14098fecd:	cc                   	int3
14098fece:	cc                   	int3
14098fecf:	cc                   	int3
14098fed0:	48 85 c9             	test   %rcx,%rcx
14098fed3:	74 72                	je     0x14098ff47
14098fed5:	56                   	push   %rsi
14098fed6:	48 83 ec 20          	sub    $0x20,%rsp
14098feda:	48 83 79 10 00       	cmpq   $0x0,0x10(%rcx)
14098fedf:	48 8b f1             	mov    %rcx,%rsi
14098fee2:	74 56                	je     0x14098ff3a
14098fee4:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
14098fee9:	33 ff                	xor    %edi,%edi
14098feeb:	39 39                	cmp    %edi,(%rcx)
14098feed:	76 3d                	jbe    0x14098ff2c
14098feef:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
14098fef4:	0f 1f 40 00          	nopl   0x0(%rax)
14098fef8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14098feff:	00
14098ff00:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
14098ff04:	48 8b 0c f9          	mov    (%rcx,%rdi,8),%rcx
14098ff08:	48 85 c9             	test   %rcx,%rcx
14098ff0b:	74 14                	je     0x14098ff21
14098ff0d:	0f 1f 00             	nopl   (%rax)
14098ff10:	48 8b 59 18          	mov    0x18(%rcx),%rbx
14098ff14:	e8 77 11 4a 00       	call   0x140e31090
14098ff19:	48 8b cb             	mov    %rbx,%rcx
14098ff1c:	48 85 db             	test   %rbx,%rbx
14098ff1f:	75 ef                	jne    0x14098ff10
14098ff21:	ff c7                	inc    %edi
14098ff23:	3b 3e                	cmp    (%rsi),%edi
14098ff25:	72 d9                	jb     0x14098ff00
14098ff27:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14098ff2c:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
14098ff30:	e8 5b 11 4a 00       	call   0x140e31090
14098ff35:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
14098ff3a:	48 8b ce             	mov    %rsi,%rcx
14098ff3d:	e8 4e 11 4a 00       	call   0x140e31090
14098ff42:	48 83 c4 20          	add    $0x20,%rsp
14098ff46:	5e                   	pop    %rsi
14098ff47:	c3                   	ret
14098ff48:	cc                   	int3
14098ff49:	cc                   	int3
14098ff4a:	cc                   	int3
14098ff4b:	cc                   	int3
14098ff4c:	cc                   	int3
14098ff4d:	cc                   	int3
14098ff4e:	cc                   	int3
14098ff4f:	cc                   	int3
14098ff50:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14098ff55:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14098ff5a:	57                   	push   %rdi
14098ff5b:	48 83 ec 20          	sub    $0x20,%rsp
14098ff5f:	49 8b f9             	mov    %r9,%rdi
14098ff62:	41 8b f0             	mov    %r8d,%esi
14098ff65:	48 8b da             	mov    %rdx,%rbx
14098ff68:	4c 8b d9             	mov    %rcx,%r11
14098ff6b:	48 85 c9             	test   %rcx,%rcx
14098ff6e:	0f 84 c3 00 00 00    	je     0x140990037
14098ff74:	48 85 d2             	test   %rdx,%rdx
14098ff77:	0f 84 ba 00 00 00    	je     0x140990037
14098ff7d:	48 83 79 08 00       	cmpq   $0x0,0x8(%rcx)
14098ff82:	0f 86 a8 00 00 00    	jbe    0x140990030
14098ff88:	44 0f b6 02          	movzbl (%rdx),%r8d
14098ff8c:	4c 8b d2             	mov    %rdx,%r10
14098ff8f:	b8 05 15 00 00       	mov    $0x1505,%eax
14098ff94:	45 84 c0             	test   %r8b,%r8b
14098ff97:	74 1f                	je     0x14098ffb8
14098ff99:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
14098ffa0:	48 6b c0 21          	imul   $0x21,%rax,%rax
14098ffa4:	41 0f b6 c8          	movzbl %r8b,%ecx
14098ffa8:	4d 8d 52 01          	lea    0x1(%r10),%r10
14098ffac:	45 0f b6 02          	movzbl (%r10),%r8d
14098ffb0:	48 03 c1             	add    %rcx,%rax
14098ffb3:	45 84 c0             	test   %r8b,%r8b
14098ffb6:	75 e8                	jne    0x14098ffa0
14098ffb8:	33 d2                	xor    %edx,%edx
14098ffba:	41 f7 33             	divl   (%r11)
14098ffbd:	49 8b 43 10          	mov    0x10(%r11),%rax
14098ffc1:	4c 8b 0c d0          	mov    (%rax,%rdx,8),%r9
14098ffc5:	4d 85 c9             	test   %r9,%r9
14098ffc8:	74 66                	je     0x140990030
14098ffca:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
14098ffd0:	4d 8b 01             	mov    (%r9),%r8
14098ffd3:	48 8b c3             	mov    %rbx,%rax
14098ffd6:	4c 2b c3             	sub    %rbx,%r8
14098ffd9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
14098ffe0:	0f b6 10             	movzbl (%rax),%edx
14098ffe3:	42 0f b6 0c 00       	movzbl (%rax,%r8,1),%ecx
14098ffe8:	2b d1                	sub    %ecx,%edx
14098ffea:	75 07                	jne    0x14098fff3
14098ffec:	48 ff c0             	inc    %rax
14098ffef:	85 c9                	test   %ecx,%ecx
14098fff1:	75 ed                	jne    0x14098ffe0
14098fff3:	85 d2                	test   %edx,%edx
14098fff5:	74 0f                	je     0x140990006
14098fff7:	4d 8b 49 18          	mov    0x18(%r9),%r9
14098fffb:	4d 85 c9             	test   %r9,%r9
14098fffe:	75 d0                	jne    0x14098ffd0
140990000:	41 8d 51 09          	lea    0x9(%r9),%edx
140990004:	eb 36                	jmp    0x14099003c
140990006:	40 f6 c6 08          	test   $0x8,%sil
14099000a:	74 1a                	je     0x140990026
14099000c:	49 8b 41 08          	mov    0x8(%r9),%rax
140990010:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
140990014:	74 1a                	je     0x140990030
140990016:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14099001b:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140990020:	48 83 c4 20          	add    $0x20,%rsp
140990024:	5f                   	pop    %rdi
140990025:	c3                   	ret
140990026:	49 8b 41 10          	mov    0x10(%r9),%rax
14099002a:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
14099002e:	75 1e                	jne    0x14099004e
140990030:	ba 09 00 00 00       	mov    $0x9,%edx
140990035:	eb 05                	jmp    0x14099003c
140990037:	ba 12 00 00 00       	mov    $0x12,%edx
14099003c:	45 33 c0             	xor    %r8d,%r8d
14099003f:	48 8b cf             	mov    %rdi,%rcx
140990042:	e8 49 79 ff ff       	call   0x140987990
140990047:	48 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%rax
14099004e:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140990053:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140990058:	48 83 c4 20          	add    $0x20,%rsp
14099005c:	5f                   	pop    %rdi
14099005d:	c3                   	ret
14099005e:	cc                   	int3
14099005f:	cc                   	int3
140990060:	40 53                	rex push %rbx
140990062:	48 83 ec 20          	sub    $0x20,%rsp
140990066:	48 8b d9             	mov    %rcx,%rbx
140990069:	b9 18 00 00 00       	mov    $0x18,%ecx
14099006e:	e8 b9 26 4a 00       	call   0x140e3272c
140990073:	48 85 c0             	test   %rax,%rax
140990076:	75 16                	jne    0x14099008e
140990078:	45 33 c0             	xor    %r8d,%r8d
14099007b:	8d 50 0e             	lea    0xe(%rax),%edx
14099007e:	48 8b cb             	mov    %rbx,%rcx
140990081:	e8 0a 79 ff ff       	call   0x140987990
140990086:	33 c0                	xor    %eax,%eax
140990088:	48 83 c4 20          	add    $0x20,%rsp
14099008c:	5b                   	pop    %rbx
14099008d:	c3                   	ret
14099008e:	33 c9                	xor    %ecx,%ecx
140990090:	89 08                	mov    %ecx,(%rax)
140990092:	48 89 48 08          	mov    %rcx,0x8(%rax)
140990096:	48 89 48 10          	mov    %rcx,0x10(%rax)
14099009a:	48 83 c4 20          	add    $0x20,%rsp
14099009e:	5b                   	pop    %rbx
14099009f:	c3                   	ret
1409900a0:	48 83 ec 28          	sub    $0x28,%rsp
1409900a4:	4c 8b c9             	mov    %rcx,%r9
1409900a7:	48 85 d2             	test   %rdx,%rdx
1409900aa:	74 7e                	je     0x14099012a
1409900ac:	0f 57 c0             	xorps  %xmm0,%xmm0
1409900af:	78 07                	js     0x1409900b8
1409900b1:	f2 48 0f 2a c2       	cvtsi2sd %rdx,%xmm0
1409900b6:	eb 15                	jmp    0x1409900cd
1409900b8:	48 8b c2             	mov    %rdx,%rax
1409900bb:	83 e2 01             	and    $0x1,%edx
1409900be:	48 d1 e8             	shr    $1,%rax
1409900c1:	48 0b c2             	or     %rdx,%rax
1409900c4:	f2 48 0f 2a c0       	cvtsi2sd %rax,%xmm0
1409900c9:	f2 0f 58 c0          	addsd  %xmm0,%xmm0
1409900cd:	f2 0f 5e 05 1b 55 6d 	divsd  0x6d551b(%rip),%xmm0        # 0x1410655f0