14003179b:	56                   	push   %rsi
14003179c:	57                   	push   %rdi
14003179d:	41 54                	push   %r12
14003179f:	41 56                	push   %r14
1400317a1:	41 57                	push   %r15
1400317a3:	48 81 ec d0 00 00 00 	sub    $0xd0,%rsp
1400317aa:	48 8b 05 0f ca 01 00 	mov    0x1ca0f(%rip),%rax        # 0x14004e1c0
1400317b1:	48 33 c4             	xor    %rsp,%rax
1400317b4:	48 89 84 24 c0 00 00 	mov    %rax,0xc0(%rsp)
1400317bb:	00
1400317bc:	48 8b b4 24 30 01 00 	mov    0x130(%rsp),%rsi
1400317c3:	00
1400317c4:	33 ff                	xor    %edi,%edi
1400317c6:	41 8b e9             	mov    %r9d,%ebp
1400317c9:	4d 8b f0             	mov    %r8,%r14
1400317cc:	4c 8b e1             	mov    %rcx,%r12
1400317cf:	48 89 3e             	mov    %rdi,(%rsi)
1400317d2:	83 fa 01             	cmp    $0x1,%edx
1400317d5:	0f 85 da 00 00 00    	jne    0x1400318b5
1400317db:	4c 8d 4c 24 40       	lea    0x40(%rsp),%r9
1400317e0:	c7 44 24 20 80 00 00 	movl   $0x80,0x20(%rsp)
1400317e7:	00
1400317e8:	44 8b c5             	mov    %ebp,%r8d
1400317eb:	49 8b d6             	mov    %r14,%rdx
1400317ee:	e8 29 fe ff ff       	call   0x14003161c
1400317f3:	48 63 d8             	movslq %eax,%rbx
1400317f6:	85 c0                	test   %eax,%eax
1400317f8:	74 43                	je     0x14003183d
1400317fa:	8d 57 01             	lea    0x1(%rdi),%edx
1400317fd:	48 8b cb             	mov    %rbx,%rcx
140031800:	e8 6b fc fc ff       	call   0x140001470
140031805:	33 c9                	xor    %ecx,%ecx
140031807:	48 89 06             	mov    %rax,(%rsi)
14003180a:	e8 d1 fc fc ff       	call   0x1400014e0
14003180f:	48 39 3e             	cmp    %rdi,(%rsi)
140031812:	0f 84 0e 01 00 00    	je     0x140031926
140031818:	48 8b 0e             	mov    (%rsi),%rcx
14003181b:	8d 43 ff             	lea    -0x1(%rbx),%eax
14003181e:	4c 63 c8             	movslq %eax,%r9
140031821:	4c 8d 44 24 40       	lea    0x40(%rsp),%r8
140031826:	48 8b d3             	mov    %rbx,%rdx
140031829:	e8 a2 f6 ff ff       	call   0x140030ed0
14003182e:	85 c0                	test   %eax,%eax
140031830:	0f 85 15 01 00 00    	jne    0x14003194b
140031836:	33 c0                	xor    %eax,%eax
140031838:	e9 ec 00 00 00       	jmp    0x140031929
14003183d:	ff 15 85 a9 00 00    	call   *0xa985(%rip)        # 0x14003c1c8
140031843:	83 f8 7a             	cmp    $0x7a,%eax
140031846:	0f 85 da 00 00 00    	jne    0x140031926
14003184c:	45 33 c9             	xor    %r9d,%r9d
14003184f:	89 7c 24 20          	mov    %edi,0x20(%rsp)
140031853:	44 8b c5             	mov    %ebp,%r8d
140031856:	49 8b d6             	mov    %r14,%rdx
140031859:	49 8b cc             	mov    %r12,%rcx
14003185c:	e8 bb fd ff ff       	call   0x14003161c
140031861:	4c 63 f8             	movslq %eax,%r15
140031864:	85 c0                	test   %eax,%eax
140031866:	0f 84 ba 00 00 00    	je     0x140031926
14003186c:	49 8b cf             	mov    %r15,%rcx
14003186f:	ba 01 00 00 00       	mov    $0x1,%edx
140031874:	e8 f7 fb fc ff       	call   0x140001470
140031879:	48 8b d8             	mov    %rax,%rbx
14003187c:	48 85 c0             	test   %rax,%rax
14003187f:	74 25                	je     0x1400318a6
140031881:	4c 8b c8             	mov    %rax,%r9
140031884:	44 89 7c 24 20       	mov    %r15d,0x20(%rsp)
140031889:	44 8b c5             	mov    %ebp,%r8d
14003188c:	49 8b d6             	mov    %r14,%rdx
14003188f:	49 8b cc             	mov    %r12,%rcx
140031892:	e8 85 fd ff ff       	call   0x14003161c
140031897:	85 c0                	test   %eax,%eax
140031899:	74 0b                	je     0x1400318a6
14003189b:	48 8b c3             	mov    %rbx,%rax
14003189e:	48 8b df             	mov    %rdi,%rbx
1400318a1:	48 89 06             	mov    %rax,(%rsi)
1400318a4:	eb 03                	jmp    0x1400318a9
1400318a6:	83 cf ff             	or     $0xffffffff,%edi
1400318a9:	48 8b cb             	mov    %rbx,%rcx
1400318ac:	e8 2f fc fc ff       	call   0x1400014e0
1400318b1:	8b c7                	mov    %edi,%eax
1400318b3:	eb 74                	jmp    0x140031929
1400318b5:	bb 02 00 00 00       	mov    $0x2,%ebx
1400318ba:	3b d3                	cmp    %ebx,%edx
1400318bc:	75 3b                	jne    0x1400318f9
1400318be:	45 33 c9             	xor    %r9d,%r9d
1400318c1:	45 33 c0             	xor    %r8d,%r8d
1400318c4:	8b d5                	mov    %ebp,%edx
1400318c6:	49 8b ce             	mov    %r14,%rcx
1400318c9:	e8 ee 1d ff ff       	call   0x1400236bc
1400318ce:	4c 63 f8             	movslq %eax,%r15
1400318d1:	85 c0                	test   %eax,%eax
1400318d3:	74 51                	je     0x140031926
1400318d5:	49 8b cf             	mov    %r15,%rcx
1400318d8:	8b d3                	mov    %ebx,%edx
1400318da:	e8 91 fb fc ff       	call   0x140001470
1400318df:	48 8b d8             	mov    %rax,%rbx
1400318e2:	48 85 c0             	test   %rax,%rax
1400318e5:	74 bf                	je     0x1400318a6
1400318e7:	45 8b cf             	mov    %r15d,%r9d
1400318ea:	4c 8b c0             	mov    %rax,%r8
1400318ed:	8b d5                	mov    %ebp,%edx
1400318ef:	49 8b ce             	mov    %r14,%rcx
1400318f2:	e8 c5 1d ff ff       	call   0x1400236bc
1400318f7:	eb 9e                	jmp    0x140031897
1400318f9:	85 d2                	test   %edx,%edx
1400318fb:	75 29                	jne    0x140031926
1400318fd:	0f ba ed 1d          	bts    $0x1d,%ebp
140031901:	89 7c 24 30          	mov    %edi,0x30(%rsp)
140031905:	8b d5                	mov    %ebp,%edx
140031907:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
14003190c:	44 8b cb             	mov    %ebx,%r9d
14003190f:	49 8b ce             	mov    %r14,%rcx
140031912:	e8 a5 1d ff ff       	call   0x1400236bc
140031917:	85 c0                	test   %eax,%eax
140031919:	74 0b                	je     0x140031926
14003191b:	8a 44 24 30          	mov    0x30(%rsp),%al
14003191f:	88 06                	mov    %al,(%rsi)
140031921:	e9 10 ff ff ff       	jmp    0x140031836
140031926:	83 c8 ff             	or     $0xffffffff,%eax
140031929:	48 8b 8c 24 c0 00 00 	mov    0xc0(%rsp),%rcx
140031930:	00
140031931:	48 33 cc             	xor    %rsp,%rcx
140031934:	e8 67 7a fd ff       	call   0x1400093a0
140031939:	48 81 c4 d0 00 00 00 	add    $0xd0,%rsp
140031940:	41 5f                	pop    %r15
140031942:	41 5e                	pop    %r14
140031944:	41 5c                	pop    %r12
140031946:	5f                   	pop    %rdi
140031947:	5e                   	pop    %rsi
140031948:	5d                   	pop    %rbp
140031949:	5b                   	pop    %rbx
14003194a:	c3                   	ret
14003194b:	45 33 c9             	xor    %r9d,%r9d
14003194e:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
140031953:	45 33 c0             	xor    %r8d,%r8d
140031956:	33 d2                	xor    %edx,%edx
140031958:	33 c9                	xor    %ecx,%ecx
14003195a:	e8 45 d6 fd ff       	call   0x14000efa4
14003195f:	cc                   	int3
140031960:	0f b7 02             	movzwl (%rdx),%eax
140031963:	44 0f b7 01          	movzwl (%rcx),%r8d
140031967:	44 2b c0             	sub    %eax,%r8d
14003196a:	75 19                	jne    0x140031985
14003196c:	48 2b ca             	sub    %rdx,%rcx
14003196f:	66 85 c0             	test   %ax,%ax
140031972:	74 11                	je     0x140031985
140031974:	48 83 c2 02          	add    $0x2,%rdx
140031978:	0f b7 02             	movzwl (%rdx),%eax
14003197b:	44 0f b7 04 11       	movzwl (%rcx,%rdx,1),%r8d
140031980:	44 2b c0             	sub    %eax,%r8d
140031983:	74 ea                	je     0x14003196f
140031985:	41 8b c0             	mov    %r8d,%eax
140031988:	41 c1 e8 1f          	shr    $0x1f,%r8d
14003198c:	f7 d8                	neg    %eax
14003198e:	c1 e8 1f             	shr    $0x1f,%eax
140031991:	41 2b c0             	sub    %r8d,%eax
140031994:	c3                   	ret
140031995:	cc                   	int3
140031996:	cc                   	int3
140031997:	cc                   	int3
140031998:	40 53                	rex push %rbx
14003199a:	48 83 ec 20          	sub    $0x20,%rsp
14003199e:	41 0f ba f0 13       	btr    $0x13,%r8d
1400319a3:	8b c2                	mov    %edx,%eax
1400319a5:	41 23 c0             	and    %r8d,%eax
1400319a8:	44 8b ca             	mov    %edx,%r9d
1400319ab:	48 8b d9             	mov    %rcx,%rbx
1400319ae:	a9 e0 fc f0 fc       	test   $0xfcf0fce0,%eax
1400319b3:	74 25                	je     0x1400319da
1400319b5:	48 85 c9             	test   %rcx,%rcx
1400319b8:	74 0b                	je     0x1400319c5
1400319ba:	33 d2                	xor    %edx,%edx
1400319bc:	33 c9                	xor    %ecx,%ecx
1400319be:	e8 c9 10 00 00       	call   0x140032a8c
1400319c3:	89 03                	mov    %eax,(%rbx)
1400319c5:	e8 12 f7 fe ff       	call   0x1400210dc
1400319ca:	bb 16 00 00 00       	mov    $0x16,%ebx
1400319cf:	89 18                	mov    %ebx,(%rax)
1400319d1:	e8 7e d5 fd ff       	call   0x14000ef54
1400319d6:	8b c3                	mov    %ebx,%eax
1400319d8:	eb 1b                	jmp    0x1400319f5
1400319da:	41 8b d0             	mov    %r8d,%edx
1400319dd:	41 8b c9             	mov    %r9d,%ecx
1400319e0:	48 85 db             	test   %rbx,%rbx
1400319e3:	74 09                	je     0x1400319ee
1400319e5:	e8 a2 10 00 00       	call   0x140032a8c
1400319ea:	89 03                	mov    %eax,(%rbx)
1400319ec:	eb 05                	jmp    0x1400319f3
1400319ee:	e8 99 10 00 00       	call   0x140032a8c
1400319f3:	33 c0                	xor    %eax,%eax
1400319f5:	48 83 c4 20          	add    $0x20,%rsp
1400319f9:	5b                   	pop    %rbx
1400319fa:	c3                   	ret
1400319fb:	cc                   	int3
1400319fc:	40 53                	rex push %rbx
1400319fe:	48 83 ec 20          	sub    $0x20,%rsp
140031a02:	48 8b d9             	mov    %rcx,%rbx
140031a05:	e8 b2 ed ff ff       	call   0x1400307bc
140031a0a:	89 03                	mov    %eax,(%rbx)
140031a0c:	e8 8f ee ff ff       	call   0x1400308a0
140031a11:	89 43 04             	mov    %eax,0x4(%rbx)
140031a14:	33 c0                	xor    %eax,%eax
140031a16:	48 83 c4 20          	add    $0x20,%rsp
140031a1a:	5b                   	pop    %rbx
140031a1b:	c3                   	ret
140031a1c:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140031a21:	57                   	push   %rdi
140031a22:	48 83 ec 20          	sub    $0x20,%rsp
140031a26:	48 8b d9             	mov    %rcx,%rbx
140031a29:	8b 09                	mov    (%rcx),%ecx
140031a2b:	e8 c8 ee ff ff       	call   0x1400308f8
140031a30:	8b 4b 04             	mov    0x4(%rbx),%ecx
140031a33:	e8 f8 ef ff ff       	call   0x140030a30
140031a38:	33 ff                	xor    %edi,%edi
140031a3a:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140031a3f:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
140031a44:	e8 b3 ff ff ff       	call   0x1400319fc
140031a49:	85 c0                	test   %eax,%eax
140031a4b:	75 17                	jne    0x140031a64
140031a4d:	8b 4c 24 30          	mov    0x30(%rsp),%ecx
140031a51:	39 0b                	cmp    %ecx,(%rbx)
140031a53:	75 0f                	jne    0x140031a64
140031a55:	8b 4c 24 34          	mov    0x34(%rsp),%ecx
140031a59:	39 4b 04             	cmp    %ecx,0x4(%rbx)
140031a5c:	40 0f 95 c7          	setne  %dil
140031a60:	8b c7                	mov    %edi,%eax
140031a62:	eb 05                	jmp    0x140031a69
140031a64:	b8 01 00 00 00       	mov    $0x1,%eax
140031a69:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140031a6e:	48 83 c4 20          	add    $0x20,%rsp
140031a72:	5f                   	pop    %rdi
140031a73:	c3                   	ret
140031a74:	40 53                	rex push %rbx
140031a76:	48 83 ec 20          	sub    $0x20,%rsp
140031a7a:	83 64 24 38 00       	andl   $0x0,0x38(%rsp)
140031a7f:	48 8b d9             	mov    %rcx,%rbx
140031a82:	83 64 24 3c 00       	andl   $0x0,0x3c(%rsp)
140031a87:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
140031a8c:	e8 6b ff ff ff       	call   0x1400319fc
140031a91:	85 c0                	test   %eax,%eax
140031a93:	75 24                	jne    0x140031ab9
140031a95:	48 8b 44 24 38       	mov    0x38(%rsp),%rax
140031a9a:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
140031a9f:	83 4c 24 38 1f       	orl    $0x1f,0x38(%rsp)
140031aa4:	48 89 03             	mov    %rax,(%rbx)
140031aa7:	e8 70 ff ff ff       	call   0x140031a1c
140031aac:	85 c0                	test   %eax,%eax
140031aae:	75 09                	jne    0x140031ab9
140031ab0:	e8 6b 0f 00 00       	call   0x140032a20
140031ab5:	33 c0                	xor    %eax,%eax
140031ab7:	eb 05                	jmp    0x140031abe
140031ab9:	b8 01 00 00 00       	mov    $0x1,%eax
140031abe:	48 83 c4 20          	add    $0x20,%rsp
140031ac2:	5b                   	pop    %rbx
140031ac3:	c3                   	ret
140031ac4:	45 33 c0             	xor    %r8d,%r8d
140031ac7:	f2 0f 11 44 24 08    	movsd  %xmm0,0x8(%rsp)
140031acd:	48 8b 54 24 08       	mov    0x8(%rsp),%rdx
140031ad2:	48 b9 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rcx
140031ad9:	ff ff 7f
140031adc:	48 8b c2             	mov    %rdx,%rax
140031adf:	48 23 c1             	and    %rcx,%rax
140031ae2:	48 b9 00 00 00 00 00 	movabs $0x4340000000000000,%rcx
140031ae9:	00 40 43
140031aec:	48 3b d0             	cmp    %rax,%rdx
140031aef:	41 0f 95 c0          	setne  %r8b
140031af3:	48 3b c1             	cmp    %rcx,%rax
140031af6:	72 17                	jb     0x140031b0f
140031af8:	48 b9 00 00 00 00 00 	movabs $0x7ff0000000000000,%rcx
140031aff:	00 f0 7f
140031b02:	48 3b c1             	cmp    %rcx,%rax
140031b05:	76 7e                	jbe    0x140031b85
140031b07:	48 8b ca             	mov    %rdx,%rcx
140031b0a:	e9 6d 14 00 00       	jmp    0x140032f7c
140031b0f:	48 b9 00 00 00 00 00 	movabs $0x3ff0000000000000,%rcx
140031b16:	00 f0 3f
140031b19:	48 3b c1             	cmp    %rcx,%rax
140031b1c:	73 2b                	jae    0x140031b49
140031b1e:	48 85 c0             	test   %rax,%rax
140031b21:	74 62                	je     0x140031b85
140031b23:	4d 85 c0             	test   %r8,%r8
140031b26:	74 17                	je     0x140031b3f
140031b28:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
140031b2f:	00 00 80
140031b32:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
140031b37:	f2 0f 10 44 24 08    	movsd  0x8(%rsp),%xmm0
140031b3d:	eb 46                	jmp    0x140031b85
140031b3f:	f2 0f 10 05 59 b2 00 	movsd  0xb259(%rip),%xmm0        # 0x14003cda0
140031b46:	00
140031b47:	eb 3c                	jmp    0x140031b85
140031b49:	48 8b c2             	mov    %rdx,%rax
140031b4c:	b9 33 00 00 00       	mov    $0x33,%ecx
140031b51:	48 c1 e8 34          	shr    $0x34,%rax
140031b55:	2a c8                	sub    %al,%cl
140031b57:	b8 01 00 00 00       	mov    $0x1,%eax
140031b5c:	48 d3 e0             	shl    %cl,%rax
140031b5f:	48 ff c8             	dec    %rax
140031b62:	48 f7 d0             	not    %rax
140031b65:	48 23 c2             	and    %rdx,%rax
140031b68:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
140031b6d:	f2 0f 10 44 24 08    	movsd  0x8(%rsp),%xmm0
140031b73:	4d 85 c0             	test   %r8,%r8
140031b76:	75 0d                	jne    0x140031b85
140031b78:	48 3b c2             	cmp    %rdx,%rax
140031b7b:	74 08                	je     0x140031b85
140031b7d:	f2 0f 58 05 1b b2 00 	addsd  0xb21b(%rip),%xmm0        # 0x14003cda0
140031b84:	00
140031b85:	c3                   	ret
140031b86:	cc                   	int3
140031b87:	cc                   	int3
140031b88:	cc                   	int3
140031b89:	cc                   	int3
140031b8a:	cc                   	int3
140031b8b:	cc                   	int3
140031b8c:	cc                   	int3
140031b8d:	cc                   	int3
140031b8e:	cc                   	int3
140031b8f:	cc                   	int3
140031b90:	48 83 ec 58          	sub    $0x58,%rsp
140031b94:	66 0f 7f 74 24 20    	movdqa %xmm6,0x20(%rsp)
140031b9a:	83 3d df 0e 02 00 00 	cmpl   $0x0,0x20edf(%rip)        # 0x140052a80
140031ba1:	0f 85 e9 02 00 00    	jne    0x140031e90
140031ba7:	66 0f 28 d8          	movapd %xmm0,%xmm3
140031bab:	66 0f 28 e0          	movapd %xmm0,%xmm4
140031baf:	66 0f 73 d3 34       	psrlq  $0x34,%xmm3
140031bb4:	66 48 0f 7e c0       	movq   %xmm0,%rax
140031bb9:	66 0f fb 1d cf 31 01 	psubq  0x131cf(%rip),%xmm3        # 0x140044d90
140031bc0:	00
140031bc1:	66 0f 28 e8          	movapd %xmm0,%xmm5
140031bc5:	66 0f 54 2d 93 31 01 	andpd  0x13193(%rip),%xmm5        # 0x140044d60
140031bcc:	00
140031bcd:	66 0f 2f 2d 8b 31 01 	comisd 0x1318b(%rip),%xmm5        # 0x140044d60
140031bd4:	00
140031bd5:	0f 84 85 02 00 00    	je     0x140031e60
140031bdb:	66 0f 28 d0          	movapd %xmm0,%xmm2
140031bdf:	f3 0f e6 f3          	cvtdq2pd %xmm3,%xmm6
140031be3:	66 0f 57 ed          	xorpd  %xmm5,%xmm5
140031be7:	66 0f 2f c5          	comisd %xmm5,%xmm0
140031beb:	0f 86 2f 02 00 00    	jbe    0x140031e20
140031bf1:	66 0f db 15 b7 31 01 	pand   0x131b7(%rip),%xmm2        # 0x140044db0
140031bf8:	00
140031bf9:	f2 0f 5c 25 3f 32 01 	subsd  0x1323f(%rip),%xmm4        # 0x140044e40
140031c00:	00
140031c01:	66 0f 2f 35 c7 32 01 	comisd 0x132c7(%rip),%xmm6        # 0x140044ed0
140031c08:	00
140031c09:	0f 84 d8 01 00 00    	je     0x140031de7
140031c0f:	66 0f 54 25 19 33 01 	andpd  0x13319(%rip),%xmm4        # 0x140044f30
140031c16:	00
140031c17:	4c 8b c8             	mov    %rax,%r9
140031c1a:	48 23 05 9f 31 01 00 	and    0x1319f(%rip),%rax        # 0x140044dc0