140015e9b:	48 23 d0             	and    %rax,%rdx
140015e9e:	49 8b c3             	mov    %r11,%rax
140015ea1:	49 3b d3             	cmp    %r11,%rdx
140015ea4:	48 0f 46 c2          	cmovbe %rdx,%rax
140015ea8:	83 3d d9 3f 01 00 00 	cmpl   $0x0,0x13fd9(%rip)        # 0x140029e88
140015eaf:	4c 8b c0             	mov    %rax,%r8
140015eb2:	75 37                	jne    0x140015eeb
140015eb4:	4c 8b 15 0d 40 01 00 	mov    0x1400d(%rip),%r10        # 0x140029ec8
140015ebb:	49 3b c2             	cmp    %r10,%rax
140015ebe:	73 2b                	jae    0x140015eeb
140015ec0:	49 8b ca             	mov    %r10,%rcx
140015ec3:	48 c1 e9 04          	shr    $0x4,%rcx
140015ec7:	e8 ac 00 00 00       	call   0x140015f78
140015ecc:	49 3b c1             	cmp    %r9,%rax
140015ecf:	4d 8d 42 ff          	lea    -0x1(%r10),%r8
140015ed3:	49 8b c9             	mov    %r9,%rcx
140015ed6:	48 0f 47 c8          	cmova  %rax,%rcx
140015eda:	4c 03 c1             	add    %rcx,%r8
140015edd:	48 8d 41 ff          	lea    -0x1(%rcx),%rax
140015ee1:	48 f7 d0             	not    %rax
140015ee4:	4c 23 c0             	and    %rax,%r8
140015ee7:	83 4b 5c 08          	orl    $0x8,0x5c(%rbx)
140015eeb:	83 3d 92 3f 01 00 00 	cmpl   $0x0,0x13f92(%rip)        # 0x140029e84
140015ef2:	49 8b c8             	mov    %r8,%rcx
140015ef5:	75 48                	jne    0x140015f3f
140015ef7:	4c 8b 15 b2 3f 01 00 	mov    0x13fb2(%rip),%r10        # 0x140029eb0
140015efe:	4d 3b c2             	cmp    %r10,%r8
140015f01:	73 3c                	jae    0x140015f3f
140015f03:	49 8b ca             	mov    %r10,%rcx
140015f06:	48 c1 e9 04          	shr    $0x4,%rcx
140015f0a:	e8 69 00 00 00       	call   0x140015f78
140015f0f:	49 3b c1             	cmp    %r9,%rax
140015f12:	49 8d 4a ff          	lea    -0x1(%r10),%rcx
140015f16:	4c 0f 47 c8          	cmova  %rax,%r9
140015f1a:	49 03 c9             	add    %r9,%rcx
140015f1d:	49 8d 41 ff          	lea    -0x1(%r9),%rax
140015f21:	48 f7 d0             	not    %rax
140015f24:	48 23 c8             	and    %rax,%rcx
140015f27:	83 3d 6a 3f 01 00 01 	cmpl   $0x1,0x13f6a(%rip)        # 0x140029e98
140015f2e:	4c 0f 45 c1          	cmovne %rcx,%r8
140015f32:	80 3d 97 3f 01 00 01 	cmpb   $0x1,0x13f97(%rip)        # 0x140029ed0
140015f39:	75 04                	jne    0x140015f3f
140015f3b:	83 4b 5c 08          	orl    $0x8,0x5c(%rbx)
140015f3f:	83 4b 5c 02          	orl    $0x2,0x5c(%rbx)
140015f43:	4c 89 43 30          	mov    %r8,0x30(%rbx)
140015f47:	48 89 4b 38          	mov    %rcx,0x38(%rbx)
140015f4b:	4c 89 5b 40          	mov    %r11,0x40(%rbx)
140015f4f:	48 83 c4 20          	add    $0x20,%rsp
140015f53:	5b                   	pop    %rbx
140015f54:	c3                   	ret
140015f55:	cc                   	int3
140015f56:	cc                   	int3
140015f57:	cc                   	int3
140015f58:	cc                   	int3
140015f59:	cc                   	int3
140015f5a:	cc                   	int3
140015f5b:	cc                   	int3
140015f5c:	cc                   	int3
140015f5d:	cc                   	int3
140015f5e:	cc                   	int3
140015f5f:	cc                   	int3
140015f60:	8b 02                	mov    (%rdx),%eax
140015f62:	39 01                	cmp    %eax,(%rcx)
140015f64:	76 07                	jbe    0x140015f6d
140015f66:	b8 01 00 00 00       	mov    $0x1,%eax
140015f6b:	c3                   	ret
140015f6c:	cc                   	int3
140015f6d:	1b c0                	sbb    %eax,%eax
140015f6f:	c3                   	ret
140015f70:	cc                   	int3
140015f71:	cc                   	int3
140015f72:	cc                   	int3
140015f73:	cc                   	int3
140015f74:	cc                   	int3
140015f75:	cc                   	int3
140015f76:	cc                   	int3
140015f77:	cc                   	int3
140015f78:	48 8b d1             	mov    %rcx,%rdx
140015f7b:	33 c9                	xor    %ecx,%ecx
140015f7d:	8d 41 01             	lea    0x1(%rcx),%eax
140015f80:	48 d1 ea             	shr    $1,%rdx
140015f83:	74 07                	je     0x140015f8c
140015f85:	03 c8                	add    %eax,%ecx
140015f87:	83 f9 40             	cmp    $0x40,%ecx
140015f8a:	72 f4                	jb     0x140015f80
140015f8c:	48 d3 e0             	shl    %cl,%rax
140015f8f:	c3                   	ret
140015f90:	cc                   	int3
140015f91:	cc                   	int3
140015f92:	cc                   	int3
140015f93:	cc                   	int3
140015f94:	cc                   	int3
140015f95:	cc                   	int3
140015f96:	cc                   	int3
140015f97:	cc                   	int3
140015f98:	cc                   	int3
140015f99:	cc                   	int3
140015f9a:	cc                   	int3
140015f9b:	cc                   	int3
140015f9c:	cc                   	int3
140015f9d:	cc                   	int3
140015f9e:	cc                   	int3
140015f9f:	cc                   	int3
140015fa0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140015fa5:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140015faa:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140015faf:	57                   	push   %rdi
140015fb0:	48 81 ec 20 01 00 00 	sub    $0x120,%rsp
140015fb7:	48 8b 05 b2 2e 01 00 	mov    0x12eb2(%rip),%rax        # 0x140028e70
140015fbe:	48 33 c4             	xor    %rsp,%rax
140015fc1:	48 89 84 24 10 01 00 	mov    %rax,0x110(%rsp)
140015fc8:	00
140015fc9:	8b 0d d9 3b 01 00    	mov    0x13bd9(%rip),%ecx        # 0x140029ba8
140015fcf:	33 d2                	xor    %edx,%edx
140015fd1:	48 8b 05 c8 3e 01 00 	mov    0x13ec8(%rip),%rax        # 0x140029ea0
140015fd8:	45 33 c9             	xor    %r9d,%r9d
140015fdb:	48 f7 f1             	div    %rcx
140015fde:	45 8d 41 20          	lea    0x20(%r9),%r8d
140015fe2:	48 8d 54 24 38       	lea    0x38(%rsp),%rdx
140015fe7:	48 8b e8             	mov    %rax,%rbp
140015fea:	41 8d 49 7b          	lea    0x7b(%r9),%ecx
140015fee:	48 ff 15 83 4d 00 00 	rex.W call *0x4d83(%rip)        # 0x14001ad78
140015ff5:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140015ffa:	85 c0                	test   %eax,%eax
140015ffc:	0f 88 e8 01 00 00    	js     0x1400161ea
140016002:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
140016007:	48 3b 0d da 3e 01 00 	cmp    0x13eda(%rip),%rcx        # 0x140029ee8
14001600e:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140016013:	76 0a                	jbe    0x14001601f
140016015:	48 89 0d cc 3e 01 00 	mov    %rcx,0x13ecc(%rip)        # 0x140029ee8
14001601c:	48 8b f1             	mov    %rcx,%rsi
14001601f:	41 b8 b0 00 00 00    	mov    $0xb0,%r8d
140016025:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
14001602a:	48 8d 54 24 60       	lea    0x60(%rsp),%rdx
14001602f:	41 8d 48 a0          	lea    -0x60(%r8),%ecx
140016033:	48 ff 15 3e 4d 00 00 	rex.W call *0x4d3e(%rip)        # 0x14001ad78
14001603a:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
14001603f:	85 c0                	test   %eax,%eax
140016041:	0f 88 a3 01 00 00    	js     0x1400161ea
140016047:	bf 00 01 00 00       	mov    $0x100,%edi
14001604c:	eb 50                	jmp    0x14001609e
14001604e:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
140016053:	44 8b c7             	mov    %edi,%r8d
140016056:	48 8b d3             	mov    %rbx,%rdx
140016059:	b9 12 00 00 00       	mov    $0x12,%ecx
14001605e:	48 ff 15 13 4d 00 00 	rex.W call *0x4d13(%rip)        # 0x14001ad78
140016065:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
14001606a:	8b f8                	mov    %eax,%edi
14001606c:	85 c0                	test   %eax,%eax
14001606e:	79 59                	jns    0x1400160c9
140016070:	65 48 8b 0c 25 60 00 	mov    %gs:0x60,%rcx
140016077:	00 00
140016079:	4c 8b c3             	mov    %rbx,%r8
14001607c:	33 d2                	xor    %edx,%edx
14001607e:	48 8b 49 30          	mov    0x30(%rcx),%rcx
140016082:	48 ff 15 2f 4d 00 00 	rex.W call *0x4d2f(%rip)        # 0x14001adb8
140016089:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
14001608e:	81 ff 04 00 00 c0    	cmp    $0xc0000004,%edi
140016094:	0f 85 50 01 00 00    	jne    0x1400161ea
14001609a:	8b 7c 24 30          	mov    0x30(%rsp),%edi
14001609e:	65 48 8b 0c 25 60 00 	mov    %gs:0x60,%rcx
1400160a5:	00 00
1400160a7:	4c 8b c7             	mov    %rdi,%r8
1400160aa:	33 d2                	xor    %edx,%edx
1400160ac:	48 8b 49 30          	mov    0x30(%rcx),%rcx
1400160b0:	48 ff 15 f9 4c 00 00 	rex.W call *0x4cf9(%rip)        # 0x14001adb0
1400160b7:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400160bc:	48 8b d8             	mov    %rax,%rbx
1400160bf:	48 85 c0             	test   %rax,%rax
1400160c2:	75 8a                	jne    0x14001604e
1400160c4:	e9 21 01 00 00       	jmp    0x1400161ea
1400160c9:	33 ff                	xor    %edi,%edi
1400160cb:	39 7c 24 30          	cmp    %edi,0x30(%rsp)
1400160cf:	74 19                	je     0x1400160ea
1400160d1:	8b 7b 08             	mov    0x8(%rbx),%edi
1400160d4:	48 8b cb             	mov    %rbx,%rcx
1400160d7:	8b 03                	mov    (%rbx),%eax
1400160d9:	eb 0b                	jmp    0x1400160e6
1400160db:	48 03 c8             	add    %rax,%rcx
1400160de:	8b 41 08             	mov    0x8(%rcx),%eax
1400160e1:	48 03 f8             	add    %rax,%rdi
1400160e4:	8b 01                	mov    (%rcx),%eax
1400160e6:	85 c0                	test   %eax,%eax
1400160e8:	75 f1                	jne    0x1400160db
1400160ea:	65 48 8b 0c 25 60 00 	mov    %gs:0x60,%rcx
1400160f1:	00 00
1400160f3:	4c 8b c3             	mov    %rbx,%r8
1400160f6:	33 d2                	xor    %edx,%edx
1400160f8:	48 8b 49 30          	mov    0x30(%rcx),%rcx
1400160fc:	48 ff 15 b5 4c 00 00 	rex.W call *0x4cb5(%rip)        # 0x14001adb8
140016103:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140016108:	4c 8b 8c 24 08 01 00 	mov    0x108(%rsp),%r9
14001610f:	00
140016110:	48 8d 0c b6          	lea    (%rsi,%rsi,4),%rcx
140016114:	48 03 c9             	add    %rcx,%rcx
140016117:	48 b8 8f e3 38 8e e3 	movabs $0xe38e38e38e38e38f,%rax
14001611e:	38 8e e3
140016121:	48 f7 e1             	mul    %rcx
140016124:	8b 0d 7e 3a 01 00    	mov    0x13a7e(%rip),%ecx        # 0x140029ba8
14001612a:	48 b8 00 00 00 00 04 	movabs $0x400000000,%rax
140016131:	00 00 00
140016134:	4c 8b c2             	mov    %rdx,%r8
140016137:	4c 03 cf             	add    %rdi,%r9
14001613a:	33 d2                	xor    %edx,%edx
14001613c:	49 c1 e8 03          	shr    $0x3,%r8
140016140:	48 f7 f1             	div    %rcx
140016143:	48 8d 0c 30          	lea    (%rax,%rsi,1),%rcx
140016147:	4c 3b c1             	cmp    %rcx,%r8
14001614a:	49 0f 46 c8          	cmovbe %r8,%rcx
14001614e:	48 3b cd             	cmp    %rbp,%rcx
140016151:	76 0a                	jbe    0x14001615d
140016153:	48 2b cd             	sub    %rbp,%rcx
140016156:	49 3b c9             	cmp    %r9,%rcx
140016159:	4c 0f 47 c9          	cmova  %rcx,%r9
14001615d:	8b 0d 8d 3d 01 00    	mov    0x13d8d(%rip),%ecx        # 0x140029ef0
140016163:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
140016168:	4c 3b c8             	cmp    %rax,%r9
14001616b:	4c 0f 47 c8          	cmova  %rax,%r9
14001616f:	b8 89 88 88 88       	mov    $0x88888889,%eax
140016174:	f7 e1                	mul    %ecx
140016176:	c1 ea 07             	shr    $0x7,%edx
140016179:	69 c2 f0 00 00 00    	imul   $0xf0,%edx,%eax
14001617f:	2b c8                	sub    %eax,%ecx
140016181:	8b c1                	mov    %ecx,%eax
140016183:	48 8d 0d 6a 3d 01 00 	lea    0x13d6a(%rip),%rcx        # 0x140029ef4
14001618a:	44 89 0c 81          	mov    %r9d,(%rcx,%rax,4)
14001618e:	b9 07 00 00 00       	mov    $0x7,%ecx
140016193:	8b 15 47 3d 01 00    	mov    0x13d47(%rip),%edx        # 0x140029ee0
140016199:	ff 05 51 3d 01 00    	incl   0x13d51(%rip)        # 0x140029ef0
14001619f:	ff c2                	inc    %edx
1400161a1:	89 15 39 3d 01 00    	mov    %edx,0x13d39(%rip)        # 0x140029ee0
1400161a7:	8d 42 ff             	lea    -0x1(%rdx),%eax
1400161aa:	3b c1                	cmp    %ecx,%eax
1400161ac:	0f 42 c8             	cmovb  %eax,%ecx
1400161af:	85 d1                	test   %edx,%ecx
1400161b1:	75 37                	jne    0x1400161ea
1400161b3:	48 8b 0d d6 3c 01 00 	mov    0x13cd6(%rip),%rcx        # 0x140029e90
1400161ba:	48 8d 05 2f 3d 01 00 	lea    0x13d2f(%rip),%rax        # 0x140029ef0
1400161c1:	c7 44 24 28 c4 03 00 	movl   $0x3c4,0x28(%rsp)
1400161c8:	00
1400161c9:	48 8d 15 b0 4a 00 00 	lea    0x4ab0(%rip),%rdx        # 0x14001ac80
1400161d0:	41 b9 03 00 00 00    	mov    $0x3,%r9d
1400161d6:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1400161db:	45 33 c0             	xor    %r8d,%r8d
1400161de:	48 ff 15 db 4b 00 00 	rex.W call *0x4bdb(%rip)        # 0x14001adc0
1400161e5:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400161ea:	48 8b 8c 24 10 01 00 	mov    0x110(%rsp),%rcx
1400161f1:	00
1400161f2:	48 33 cc             	xor    %rsp,%rcx
1400161f5:	e8 86 87 ff ff       	call   0x14000e980
1400161fa:	4c 8d 9c 24 20 01 00 	lea    0x120(%rsp),%r11
140016201:	00
140016202:	49 8b 5b 10          	mov    0x10(%r11),%rbx
140016206:	49 8b 6b 18          	mov    0x18(%r11),%rbp
14001620a:	49 8b 73 20          	mov    0x20(%r11),%rsi
14001620e:	49 8b e3             	mov    %r11,%rsp
140016211:	5f                   	pop    %rdi
140016212:	c3                   	ret
140016213:	cc                   	int3
140016214:	cc                   	int3
140016215:	cc                   	int3
140016216:	cc                   	int3
140016217:	cc                   	int3
140016218:	cc                   	int3
140016219:	cc                   	int3
14001621a:	cc                   	int3
14001621b:	cc                   	int3
14001621c:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
140016221:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
140016226:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
14001622b:	53                   	push   %rbx
14001622c:	55                   	push   %rbp
14001622d:	56                   	push   %rsi
14001622e:	57                   	push   %rdi
14001622f:	48 83 ec 28          	sub    $0x28,%rsp
140016233:	33 ed                	xor    %ebp,%ebp
140016235:	48 8b f1             	mov    %rcx,%rsi
140016238:	8b cd                	mov    %ebp,%ecx
14001623a:	8b fd                	mov    %ebp,%edi
14001623c:	8b dd                	mov    %ebp,%ebx
14001623e:	f6 06 01             	testb  $0x1,(%rsi)
140016241:	75 72                	jne    0x1400162b5
140016243:	0f b7 46 02          	movzwl 0x2(%rsi),%eax
140016247:	a8 01                	test   $0x1,%al
140016249:	75 6a                	jne    0x1400162b5
14001624b:	66 39 06             	cmp    %ax,(%rsi)
14001624e:	77 65                	ja     0x1400162b5
140016250:	41 b8 fe ff 00 00    	mov    $0xfffe,%r8d
140016256:	66 41 3b c0          	cmp    %r8w,%ax
14001625a:	77 59                	ja     0x1400162b5
14001625c:	48 39 6e 08          	cmp    %rbp,0x8(%rsi)
140016260:	75 11                	jne    0x140016273
140016262:	66 39 2e             	cmp    %bp,(%rsi)
140016265:	75 05                	jne    0x14001626c
140016267:	66 85 c0             	test   %ax,%ax
14001626a:	74 07                	je     0x140016273
14001626c:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
140016271:	eb 0a                	jmp    0x14001627d
140016273:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
140016277:	48 8b f8             	mov    %rax,%rdi
14001627a:	48 d1 ef             	shr    $1,%rdi
14001627d:	85 db                	test   %ebx,%ebx
14001627f:	78 39                	js     0x1400162ba
140016281:	4c 8b c2             	mov    %rdx,%r8
140016284:	4c 8d 4c 24 60       	lea    0x60(%rsp),%r9
140016289:	48 8b d7             	mov    %rdi,%rdx
14001628c:	8b dd                	mov    %ebp,%ebx
14001628e:	48 ff 15 8b 4c 00 00 	rex.W call *0x4c8b(%rip)        # 0x14001af20
140016295:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
14001629a:	85 c0                	test   %eax,%eax
14001629c:	78 07                	js     0x1400162a5
14001629e:	48 98                	cltq
1400162a0:	48 3b c7             	cmp    %rdi,%rax
1400162a3:	76 08                	jbe    0x1400162ad
1400162a5:	48 8b c7             	mov    %rdi,%rax
1400162a8:	bb 05 00 00 80       	mov    $0x80000005,%ebx
1400162ad:	66 03 c0             	add    %ax,%ax
1400162b0:	66 89 06             	mov    %ax,(%rsi)
1400162b3:	eb 05                	jmp    0x1400162ba
1400162b5:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
1400162ba:	8b c3                	mov    %ebx,%eax
1400162bc:	48 83 c4 28          	add    $0x28,%rsp
1400162c0:	5f                   	pop    %rdi
1400162c1:	5e                   	pop    %rsi
1400162c2:	5d                   	pop    %rbp
1400162c3:	5b                   	pop    %rbx
1400162c4:	c3                   	ret
1400162c5:	cc                   	int3
1400162c6:	cc                   	int3
1400162c7:	cc                   	int3
1400162c8:	cc                   	int3
1400162c9:	cc                   	int3
1400162ca:	cc                   	int3
1400162cb:	cc                   	int3
1400162cc:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1400162d1:	55                   	push   %rbp
1400162d2:	56                   	push   %rsi
1400162d3:	57                   	push   %rdi
1400162d4:	41 54                	push   %r12
1400162d6:	41 55                	push   %r13
1400162d8:	41 56                	push   %r14
1400162da:	41 57                	push   %r15
1400162dc:	48 8d 6c 24 d0       	lea    -0x30(%rsp),%rbp
1400162e1:	48 81 ec 30 01 00 00 	sub    $0x130,%rsp
1400162e8:	48 8b 05 81 2b 01 00 	mov    0x12b81(%rip),%rax        # 0x140028e70
1400162ef:	48 33 c4             	xor    %rsp,%rax
1400162f2:	48 89 45 20          	mov    %rax,0x20(%rbp)
1400162f6:	48 83 64 24 70 00    	andq   $0x0,0x70(%rsp)
1400162fc:	4c 8d 4d 80          	lea    -0x80(%rbp),%r9
140016300:	48 83 64 24 78 00    	andq   $0x0,0x78(%rsp)