14002387a:	48 89 cd             	mov    %rcx,%rbp
14002387d:	89 d3                	mov    %edx,%ebx
14002387f:	83 e0 03             	and    $0x3,%eax
140023882:	0f 85 a8 00 00 00    	jne    0x140023930
140023888:	c1 fb 02             	sar    $0x2,%ebx
14002388b:	48 89 ee             	mov    %rbp,%rsi
14002388e:	0f 84 ce 00 00 00    	je     0x140023962
140023894:	48 8b 3d 25 83 02 00 	mov    0x28325(%rip),%rdi        # 0x14004bbc0
14002389b:	48 85 ff             	test   %rdi,%rdi
14002389e:	75 2d                	jne    0x1400238cd
1400238a0:	e9 ed 00 00 00       	jmp    0x140023992
1400238a5:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1400238ac:	00 00 00 00
1400238b0:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1400238b7:	00 00 00 00
1400238bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1400238c0:	48 8b 37             	mov    (%rdi),%rsi
1400238c3:	d1 fb                	sar    $1,%ebx
1400238c5:	48 85 f6             	test   %rsi,%rsi
1400238c8:	74 32                	je     0x1400238fc
1400238ca:	48 89 f7             	mov    %rsi,%rdi
1400238cd:	f6 c3 01             	test   $0x1,%bl
1400238d0:	74 ee                	je     0x1400238c0
1400238d2:	48 89 fa             	mov    %rdi,%rdx
1400238d5:	48 89 e9             	mov    %rbp,%rcx
1400238d8:	e8 43 fe ff ff       	call   0x140023720
1400238dd:	48 89 c6             	mov    %rax,%rsi
1400238e0:	48 85 c0             	test   %rax,%rax
1400238e3:	74 7b                	je     0x140023960
1400238e5:	48 89 e9             	mov    %rbp,%rcx
1400238e8:	e8 33 fc ff ff       	call   0x140023520
1400238ed:	d1 fb                	sar    $1,%ebx
1400238ef:	74 71                	je     0x140023962
1400238f1:	48 89 f5             	mov    %rsi,%rbp
1400238f4:	48 8b 37             	mov    (%rdi),%rsi
1400238f7:	48 85 f6             	test   %rsi,%rsi
1400238fa:	75 ce                	jne    0x1400238ca
1400238fc:	b9 01 00 00 00       	mov    $0x1,%ecx
140023901:	e8 fa f9 ff ff       	call   0x140023300
140023906:	48 8b 37             	mov    (%rdi),%rsi
140023909:	48 85 f6             	test   %rsi,%rsi
14002390c:	74 62                	je     0x140023970
14002390e:	83 3d 1b 8c 02 00 02 	cmpl   $0x2,0x28c1b(%rip)        # 0x14004c530
140023915:	75 b3                	jne    0x1400238ca
140023917:	48 8d 0d 4a 8c 02 00 	lea    0x28c4a(%rip),%rcx        # 0x14004c568
14002391e:	ff 15 7c a0 02 00    	call   *0x2a07c(%rip)        # 0x14004d9a0
140023924:	eb a4                	jmp    0x1400238ca
140023926:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
14002392d:	00 00 00
140023930:	83 e8 01             	sub    $0x1,%eax
140023933:	48 8d 15 a6 30 02 00 	lea    0x230a6(%rip),%rdx        # 0x1400469e0
14002393a:	45 31 c0             	xor    %r8d,%r8d
14002393d:	48 98                	cltq
14002393f:	8b 14 82             	mov    (%rdx,%rax,4),%edx
140023942:	e8 49 fc ff ff       	call   0x140023590
140023947:	48 89 c5             	mov    %rax,%rbp
14002394a:	48 85 c0             	test   %rax,%rax
14002394d:	0f 85 35 ff ff ff    	jne    0x140023888
140023953:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
14002395a:	00 00 00 00
14002395e:	66 90                	xchg   %ax,%ax
140023960:	31 f6                	xor    %esi,%esi
140023962:	48 89 f0             	mov    %rsi,%rax
140023965:	48 83 c4 28          	add    $0x28,%rsp
140023969:	5b                   	pop    %rbx
14002396a:	5e                   	pop    %rsi
14002396b:	5f                   	pop    %rdi
14002396c:	5d                   	pop    %rbp
14002396d:	c3                   	ret
14002396e:	66 90                	xchg   %ax,%ax
140023970:	48 89 fa             	mov    %rdi,%rdx
140023973:	48 89 f9             	mov    %rdi,%rcx
140023976:	e8 a5 fd ff ff       	call   0x140023720
14002397b:	48 89 07             	mov    %rax,(%rdi)
14002397e:	48 89 c6             	mov    %rax,%rsi
140023981:	48 85 c0             	test   %rax,%rax
140023984:	74 da                	je     0x140023960
140023986:	48 c7 00 00 00 00 00 	movq   $0x0,(%rax)
14002398d:	e9 7c ff ff ff       	jmp    0x14002390e
140023992:	b9 01 00 00 00       	mov    $0x1,%ecx
140023997:	e8 64 f9 ff ff       	call   0x140023300
14002399c:	48 8b 3d 1d 82 02 00 	mov    0x2821d(%rip),%rdi        # 0x14004bbc0
1400239a3:	48 85 ff             	test   %rdi,%rdi
1400239a6:	74 1f                	je     0x1400239c7
1400239a8:	83 3d 81 8b 02 00 02 	cmpl   $0x2,0x28b81(%rip)        # 0x14004c530
1400239af:	0f 85 18 ff ff ff    	jne    0x1400238cd
1400239b5:	48 8d 0d ac 8b 02 00 	lea    0x28bac(%rip),%rcx        # 0x14004c568
1400239bc:	ff 15 de 9f 02 00    	call   *0x29fde(%rip)        # 0x14004d9a0
1400239c2:	e9 06 ff ff ff       	jmp    0x1400238cd
1400239c7:	b9 01 00 00 00       	mov    $0x1,%ecx
1400239cc:	e8 5f fa ff ff       	call   0x140023430
1400239d1:	48 89 c7             	mov    %rax,%rdi
1400239d4:	48 85 c0             	test   %rax,%rax
1400239d7:	74 1e                	je     0x1400239f7
1400239d9:	48 b8 01 00 00 00 71 	movabs $0x27100000001,%rax
1400239e0:	02 00 00
1400239e3:	48 89 3d d6 81 02 00 	mov    %rdi,0x281d6(%rip)        # 0x14004bbc0
1400239ea:	48 89 47 14          	mov    %rax,0x14(%rdi)
1400239ee:	48 c7 07 00 00 00 00 	movq   $0x0,(%rdi)
1400239f5:	eb b1                	jmp    0x1400239a8
1400239f7:	48 c7 05 be 81 02 00 	movq   $0x0,0x281be(%rip)        # 0x14004bbc0
1400239fe:	00 00 00 00
140023a02:	31 f6                	xor    %esi,%esi
140023a04:	e9 59 ff ff ff       	jmp    0x140023962
140023a09:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140023a10:	41 56                	push   %r14
140023a12:	41 55                	push   %r13
140023a14:	41 54                	push   %r12
140023a16:	55                   	push   %rbp
140023a17:	57                   	push   %rdi
140023a18:	56                   	push   %rsi
140023a19:	53                   	push   %rbx
140023a1a:	48 83 ec 20          	sub    $0x20,%rsp
140023a1e:	48 89 cd             	mov    %rcx,%rbp
140023a21:	89 d6                	mov    %edx,%esi
140023a23:	8b 49 08             	mov    0x8(%rcx),%ecx
140023a26:	89 d3                	mov    %edx,%ebx
140023a28:	44 8b 65 14          	mov    0x14(%rbp),%r12d
140023a2c:	c1 fe 05             	sar    $0x5,%esi
140023a2f:	8b 45 0c             	mov    0xc(%rbp),%eax
140023a32:	41 01 f4             	add    %esi,%r12d
140023a35:	45 8d 6c 24 01       	lea    0x1(%r12),%r13d
140023a3a:	41 39 c5             	cmp    %eax,%r13d
140023a3d:	7e 0b                	jle    0x140023a4a
140023a3f:	90                   	nop
140023a40:	01 c0                	add    %eax,%eax
140023a42:	83 c1 01             	add    $0x1,%ecx
140023a45:	41 39 c5             	cmp    %eax,%r13d
140023a48:	7f f6                	jg     0x140023a40
140023a4a:	e8 e1 f9 ff ff       	call   0x140023430
140023a4f:	49 89 c6             	mov    %rax,%r14
140023a52:	48 85 c0             	test   %rax,%rax
140023a55:	0f 84 ba 00 00 00    	je     0x140023b15
140023a5b:	48 8d 78 18          	lea    0x18(%rax),%rdi
140023a5f:	85 f6                	test   %esi,%esi
140023a61:	7e 14                	jle    0x140023a77
140023a63:	48 c1 e6 02          	shl    $0x2,%rsi
140023a67:	48 89 f9             	mov    %rdi,%rcx
140023a6a:	31 d2                	xor    %edx,%edx
140023a6c:	49 89 f0             	mov    %rsi,%r8
140023a6f:	48 01 f7             	add    %rsi,%rdi
140023a72:	e8 51 0d 00 00       	call   0x1400247c8
140023a77:	48 63 45 14          	movslq 0x14(%rbp),%rax
140023a7b:	48 8d 75 18          	lea    0x18(%rbp),%rsi
140023a7f:	4c 8d 0c 86          	lea    (%rsi,%rax,4),%r9
140023a83:	83 e3 1f             	and    $0x1f,%ebx
140023a86:	0f 84 a4 00 00 00    	je     0x140023b30
140023a8c:	41 ba 20 00 00 00    	mov    $0x20,%r10d
140023a92:	49 89 f8             	mov    %rdi,%r8
140023a95:	31 d2                	xor    %edx,%edx
140023a97:	41 29 da             	sub    %ebx,%r10d
140023a9a:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140023aa1:	00 00 00 00
140023aa5:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140023aac:	00 00 00 00
140023ab0:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140023ab7:	00 00 00 00
140023abb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140023ac0:	8b 06                	mov    (%rsi),%eax
140023ac2:	89 d9                	mov    %ebx,%ecx
140023ac4:	49 83 c0 04          	add    $0x4,%r8
140023ac8:	48 83 c6 04          	add    $0x4,%rsi
140023acc:	d3 e0                	shl    %cl,%eax
140023ace:	44 89 d1             	mov    %r10d,%ecx
140023ad1:	09 d0                	or     %edx,%eax
140023ad3:	41 89 40 fc          	mov    %eax,-0x4(%r8)
140023ad7:	8b 56 fc             	mov    -0x4(%rsi),%edx
140023ada:	d3 ea                	shr    %cl,%edx
140023adc:	4c 39 ce             	cmp    %r9,%rsi
140023adf:	72 df                	jb     0x140023ac0
140023ae1:	4c 89 c8             	mov    %r9,%rax
140023ae4:	48 8d 4d 19          	lea    0x19(%rbp),%rcx
140023ae8:	48 29 e8             	sub    %rbp,%rax
140023aeb:	48 83 e8 19          	sub    $0x19,%rax
140023aef:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
140023af3:	49 39 c9             	cmp    %rcx,%r9
140023af6:	b9 00 00 00 00       	mov    $0x0,%ecx
140023afb:	48 0f 42 c1          	cmovb  %rcx,%rax
140023aff:	85 d2                	test   %edx,%edx
140023b01:	45 0f 45 e5          	cmovne %r13d,%r12d
140023b05:	89 54 07 04          	mov    %edx,0x4(%rdi,%rax,1)
140023b09:	45 89 66 14          	mov    %r12d,0x14(%r14)
140023b0d:	48 89 e9             	mov    %rbp,%rcx
140023b10:	e8 0b fa ff ff       	call   0x140023520
140023b15:	4c 89 f0             	mov    %r14,%rax
140023b18:	48 83 c4 20          	add    $0x20,%rsp
140023b1c:	5b                   	pop    %rbx
140023b1d:	5e                   	pop    %rsi
140023b1e:	5f                   	pop    %rdi
140023b1f:	5d                   	pop    %rbp
140023b20:	41 5c                	pop    %r12
140023b22:	41 5d                	pop    %r13
140023b24:	41 5e                	pop    %r14
140023b26:	c3                   	ret
140023b27:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140023b2e:	00 00
140023b30:	a5                   	movsl  %ds:(%rsi),%es:(%rdi)
140023b31:	4c 39 ce             	cmp    %r9,%rsi
140023b34:	73 d3                	jae    0x140023b09
140023b36:	a5                   	movsl  %ds:(%rsi),%es:(%rdi)
140023b37:	4c 39 ce             	cmp    %r9,%rsi
140023b3a:	72 f4                	jb     0x140023b30
140023b3c:	eb cb                	jmp    0x140023b09
140023b3e:	66 90                	xchg   %ax,%ax
140023b40:	48 63 42 14          	movslq 0x14(%rdx),%rax
140023b44:	44 8b 49 14          	mov    0x14(%rcx),%r9d
140023b48:	41 29 c1             	sub    %eax,%r9d
140023b4b:	75 4f                	jne    0x140023b9c
140023b4d:	4c 8d 04 85 00 00 00 	lea    0x0(,%rax,4),%r8
140023b54:	00
140023b55:	48 83 c1 18          	add    $0x18,%rcx
140023b59:	4a 8d 04 01          	lea    (%rcx,%r8,1),%rax
140023b5d:	4a 8d 54 02 18       	lea    0x18(%rdx,%r8,1),%rdx
140023b62:	eb 21                	jmp    0x140023b85
140023b64:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140023b6b:	00 00 00 00
140023b6f:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140023b76:	00 00 00 00
140023b7a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140023b80:	48 39 c1             	cmp    %rax,%rcx
140023b83:	73 17                	jae    0x140023b9c
140023b85:	48 83 e8 04          	sub    $0x4,%rax
140023b89:	48 83 ea 04          	sub    $0x4,%rdx
140023b8d:	44 8b 12             	mov    (%rdx),%r10d
140023b90:	44 39 10             	cmp    %r10d,(%rax)
140023b93:	74 eb                	je     0x140023b80
140023b95:	45 19 c9             	sbb    %r9d,%r9d
140023b98:	41 83 c9 01          	or     $0x1,%r9d
140023b9c:	44 89 c8             	mov    %r9d,%eax
140023b9f:	c3                   	ret
140023ba0:	41 54                	push   %r12
140023ba2:	55                   	push   %rbp
140023ba3:	57                   	push   %rdi
140023ba4:	56                   	push   %rsi
140023ba5:	53                   	push   %rbx
140023ba6:	48 83 ec 20          	sub    $0x20,%rsp
140023baa:	48 63 42 14          	movslq 0x14(%rdx),%rax
140023bae:	8b 79 14             	mov    0x14(%rcx),%edi
140023bb1:	48 89 cb             	mov    %rcx,%rbx
140023bb4:	48 89 d6             	mov    %rdx,%rsi
140023bb7:	29 c7                	sub    %eax,%edi
140023bb9:	0f 85 69 01 00 00    	jne    0x140023d28
140023bbf:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
140023bc6:	00
140023bc7:	48 8d 49 18          	lea    0x18(%rcx),%rcx
140023bcb:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140023bcf:	48 8d 54 16 18       	lea    0x18(%rsi,%rdx,1),%rdx
140023bd4:	eb 13                	jmp    0x140023be9
140023bd6:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
140023bdd:	00 00 00
140023be0:	48 39 c1             	cmp    %rax,%rcx
140023be3:	0f 83 57 01 00 00    	jae    0x140023d40
140023be9:	48 83 e8 04          	sub    $0x4,%rax
140023bed:	48 83 ea 04          	sub    $0x4,%rdx
140023bf1:	44 8b 02             	mov    (%rdx),%r8d
140023bf4:	44 39 00             	cmp    %r8d,(%rax)
140023bf7:	74 e7                	je     0x140023be0
140023bf9:	0f 83 69 01 00 00    	jae    0x140023d68
140023bff:	bf 01 00 00 00       	mov    $0x1,%edi
140023c04:	8b 4e 08             	mov    0x8(%rsi),%ecx
140023c07:	e8 24 f8 ff ff       	call   0x140023430
140023c0c:	49 89 c1             	mov    %rax,%r9
140023c0f:	48 85 c0             	test   %rax,%rax
140023c12:	0f 84 fb 00 00 00    	je     0x140023d13
140023c18:	89 78 10             	mov    %edi,0x10(%rax)
140023c1b:	48 63 46 14          	movslq 0x14(%rsi),%rax
140023c1f:	48 8d 6e 18          	lea    0x18(%rsi),%rbp
140023c23:	49 8d 79 18          	lea    0x18(%r9),%rdi
140023c27:	b9 18 00 00 00       	mov    $0x18,%ecx
140023c2c:	31 d2                	xor    %edx,%edx
140023c2e:	49 89 c2             	mov    %rax,%r10
140023c31:	4c 8d 44 85 00       	lea    0x0(%rbp,%rax,4),%r8
140023c36:	48 63 43 14          	movslq 0x14(%rbx),%rax
140023c3a:	4c 8d 64 83 18       	lea    0x18(%rbx,%rax,4),%r12
140023c3f:	90                   	nop
140023c40:	44 8b 1c 0b          	mov    (%rbx,%rcx,1),%r11d
140023c44:	8b 04 0e             	mov    (%rsi,%rcx,1),%eax
140023c47:	4c 29 d8             	sub    %r11,%rax
140023c4a:	48 29 d0             	sub    %rdx,%rax
140023c4d:	41 89 04 09          	mov    %eax,(%r9,%rcx,1)
140023c51:	48 89 c2             	mov    %rax,%rdx
140023c54:	48 83 c1 04          	add    $0x4,%rcx
140023c58:	41 89 c3             	mov    %eax,%r11d
140023c5b:	48 c1 ea 20          	shr    $0x20,%rdx
140023c5f:	48 8d 04 19          	lea    (%rcx,%rbx,1),%rax
140023c63:	83 e2 01             	and    $0x1,%edx
140023c66:	4c 39 e0             	cmp    %r12,%rax
140023c69:	72 d5                	jb     0x140023c40
140023c6b:	4c 89 e0             	mov    %r12,%rax
140023c6e:	31 c9                	xor    %ecx,%ecx
140023c70:	48 29 d8             	sub    %rbx,%rax
140023c73:	48 83 c3 19          	add    $0x19,%rbx
140023c77:	48 83 e8 19          	sub    $0x19,%rax
140023c7b:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
140023c7f:	49 39 dc             	cmp    %rbx,%r12
140023c82:	48 0f 42 c1          	cmovb  %rcx,%rax
140023c86:	48 8d 1c 38          	lea    (%rax,%rdi,1),%rbx
140023c8a:	4c 8d 64 05 04       	lea    0x4(%rbp,%rax,1),%r12
140023c8f:	48 29 ef             	sub    %rbp,%rdi
140023c92:	48 8d 73 04          	lea    0x4(%rbx),%rsi
140023c96:	4c 89 e1             	mov    %r12,%rcx
140023c99:	48 89 d8             	mov    %rbx,%rax
140023c9c:	4d 39 c4             	cmp    %r8,%r12
140023c9f:	73 51                	jae    0x140023cf2
140023ca1:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140023ca8:	00 00 00 00
140023cac:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
140023cb3:	00 00 00 00
140023cb7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140023cbe:	00 00
140023cc0:	48 89 c8             	mov    %rcx,%rax
140023cc3:	48 8d 1c 39          	lea    (%rcx,%rdi,1),%rbx
140023cc7:	48 83 c1 04          	add    $0x4,%rcx
140023ccb:	8b 00                	mov    (%rax),%eax
140023ccd:	48 29 d0             	sub    %rdx,%rax
140023cd0:	48 89 c2             	mov    %rax,%rdx
140023cd3:	89 03                	mov    %eax,(%rbx)
140023cd5:	41 89 c3             	mov    %eax,%r11d
140023cd8:	48 c1 ea 20          	shr    $0x20,%rdx
140023cdc:	83 e2 01             	and    $0x1,%edx
140023cdf:	4c 39 c1             	cmp    %r8,%rcx
140023ce2:	72 dc                	jb     0x140023cc0
140023ce4:	49 8d 40 ff          	lea    -0x1(%r8),%rax
140023ce8:	4c 29 e0             	sub    %r12,%rax
140023ceb:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
140023cef:	48 01 f0             	add    %rsi,%rax
140023cf2:	45 85 db             	test   %r11d,%r11d
140023cf5:	75 18                	jne    0x140023d0f
140023cf7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140023cfe:	00 00
140023d00:	8b 50 fc             	mov    -0x4(%rax),%edx
140023d03:	48 83 e8 04          	sub    $0x4,%rax
140023d07:	41 83 ea 01          	sub    $0x1,%r10d
140023d0b:	85 d2                	test   %edx,%edx
140023d0d:	74 f1                	je     0x140023d00
140023d0f:	45 89 51 14          	mov    %r10d,0x14(%r9)
140023d13:	4c 89 c8             	mov    %r9,%rax
140023d16:	48 83 c4 20          	add    $0x20,%rsp
140023d1a:	5b                   	pop    %rbx
140023d1b:	5e                   	pop    %rsi
140023d1c:	5f                   	pop    %rdi
140023d1d:	5d                   	pop    %rbp
140023d1e:	41 5c                	pop    %r12
140023d20:	c3                   	ret
140023d21:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
140023d28:	bf 01 00 00 00       	mov    $0x1,%edi
140023d2d:	0f 88 d1 fe ff ff    	js     0x140023c04
140023d33:	48 89 ce             	mov    %rcx,%rsi
140023d36:	48 89 d3             	mov    %rdx,%rbx
140023d39:	31 ff                	xor    %edi,%edi