140046d38:	48 83 ec 38          	sub    $0x38,%rsp
140046d3c:	33 c0                	xor    %eax,%eax
140046d3e:	41 83 f9 0a          	cmp    $0xa,%r9d
140046d42:	75 06                	jne    0x140046d4a
140046d44:	85 c9                	test   %ecx,%ecx
140046d46:	79 02                	jns    0x140046d4a
140046d48:	b0 01                	mov    $0x1,%al
140046d4a:	88 44 24 20          	mov    %al,0x20(%rsp)
140046d4e:	e8 79 ff ff ff       	call   0x140046ccc
140046d53:	48 83 c4 38          	add    $0x38,%rsp
140046d57:	c3                   	ret
140046d58:	4c 8b da             	mov    %rdx,%r11
140046d5b:	4c 8b d1             	mov    %rcx,%r10
140046d5e:	4d 85 c0             	test   %r8,%r8
140046d61:	75 03                	jne    0x140046d66
140046d63:	33 c0                	xor    %eax,%eax
140046d65:	c3                   	ret
140046d66:	41 0f b7 0a          	movzwl (%r10),%ecx
140046d6a:	4d 8d 52 02          	lea    0x2(%r10),%r10
140046d6e:	41 0f b7 13          	movzwl (%r11),%edx
140046d72:	4d 8d 5b 02          	lea    0x2(%r11),%r11
140046d76:	8d 41 bf             	lea    -0x41(%rcx),%eax
140046d79:	83 f8 19             	cmp    $0x19,%eax
140046d7c:	44 8d 49 20          	lea    0x20(%rcx),%r9d
140046d80:	8d 42 bf             	lea    -0x41(%rdx),%eax
140046d83:	44 0f 47 c9          	cmova  %ecx,%r9d
140046d87:	83 f8 19             	cmp    $0x19,%eax
140046d8a:	8d 4a 20             	lea    0x20(%rdx),%ecx
140046d8d:	41 8b c1             	mov    %r9d,%eax
140046d90:	0f 47 ca             	cmova  %edx,%ecx
140046d93:	2b c1                	sub    %ecx,%eax
140046d95:	75 0b                	jne    0x140046da2
140046d97:	45 85 c9             	test   %r9d,%r9d
140046d9a:	74 06                	je     0x140046da2
140046d9c:	49 83 e8 01          	sub    $0x1,%r8
140046da0:	75 c4                	jne    0x140046d66
140046da2:	c3                   	ret
140046da3:	cc                   	int3
140046da4:	48 83 ec 28          	sub    $0x28,%rsp
140046da8:	83 3d 19 12 03 00 00 	cmpl   $0x0,0x31219(%rip)        # 0x140077fc8
140046daf:	75 2d                	jne    0x140046dde
140046db1:	48 85 c9             	test   %rcx,%rcx
140046db4:	75 1a                	jne    0x140046dd0
140046db6:	e8 7d 4c fe ff       	call   0x14002ba38
140046dbb:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140046dc1:	e8 de 47 fe ff       	call   0x14002b5a4
140046dc6:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
140046dcb:	48 83 c4 28          	add    $0x28,%rsp
140046dcf:	c3                   	ret
140046dd0:	48 85 d2             	test   %rdx,%rdx
140046dd3:	74 e1                	je     0x140046db6
140046dd5:	48 83 c4 28          	add    $0x28,%rsp
140046dd9:	e9 7a ff ff ff       	jmp    0x140046d58
140046dde:	45 33 c9             	xor    %r9d,%r9d
140046de1:	48 83 c4 28          	add    $0x28,%rsp
140046de5:	e9 02 00 00 00       	jmp    0x140046dec
140046dea:	cc                   	int3
140046deb:	cc                   	int3
140046dec:	48 8b c4             	mov    %rsp,%rax
140046def:	48 89 58 08          	mov    %rbx,0x8(%rax)
140046df3:	48 89 68 10          	mov    %rbp,0x10(%rax)
140046df7:	48 89 70 18          	mov    %rsi,0x18(%rax)
140046dfb:	48 89 78 20          	mov    %rdi,0x20(%rax)
140046dff:	41 54                	push   %r12
140046e01:	41 56                	push   %r14
140046e03:	41 57                	push   %r15
140046e05:	48 83 ec 40          	sub    $0x40,%rsp
140046e09:	49 8b e8             	mov    %r8,%rbp
140046e0c:	48 8b f2             	mov    %rdx,%rsi
140046e0f:	48 8b d9             	mov    %rcx,%rbx
140046e12:	48 85 c9             	test   %rcx,%rcx
140046e15:	75 1a                	jne    0x140046e31
140046e17:	e8 1c 4c fe ff       	call   0x14002ba38
140046e1c:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140046e22:	e8 7d 47 fe ff       	call   0x14002b5a4
140046e27:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
140046e2c:	e9 ed 00 00 00       	jmp    0x140046f1e
140046e31:	48 85 f6             	test   %rsi,%rsi
140046e34:	74 e1                	je     0x140046e17
140046e36:	48 85 ed             	test   %rbp,%rbp
140046e39:	75 07                	jne    0x140046e42
140046e3b:	33 c0                	xor    %eax,%eax
140046e3d:	e9 dc 00 00 00       	jmp    0x140046f1e
140046e42:	49 8b d1             	mov    %r9,%rdx
140046e45:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140046e4a:	e8 21 50 fe ff       	call   0x14002be70
140046e4f:	48 8b 54 24 28       	mov    0x28(%rsp),%rdx
140046e54:	48 83 ba 38 01 00 00 	cmpq   $0x0,0x138(%rdx)
140046e5b:	00
140046e5c:	75 15                	jne    0x140046e73
140046e5e:	4c 8b c5             	mov    %rbp,%r8
140046e61:	48 8b d6             	mov    %rsi,%rdx
140046e64:	48 8b cb             	mov    %rbx,%rcx
140046e67:	e8 ec fe ff ff       	call   0x140046d58
140046e6c:	8b f8                	mov    %eax,%edi
140046e6e:	e9 96 00 00 00       	jmp    0x140046f09
140046e73:	41 bf 00 01 00 00    	mov    $0x100,%r15d
140046e79:	4c 8d 25 40 8c 00 00 	lea    0x8c40(%rip),%r12        # 0x14004fac0
140046e80:	0f b7 0b             	movzwl (%rbx),%ecx
140046e83:	48 8d 5b 02          	lea    0x2(%rbx),%rbx
140046e87:	66 41 3b cf          	cmp    %r15w,%cx
140046e8b:	73 1a                	jae    0x140046ea7
140046e8d:	0f b6 c9             	movzbl %cl,%ecx
140046e90:	41 f6 44 4c 02 01    	testb  $0x1,0x2(%r12,%rcx,2)
140046e96:	74 0a                	je     0x140046ea2
140046e98:	48 8b 82 10 01 00 00 	mov    0x110(%rdx),%rax
140046e9f:	8a 0c 01             	mov    (%rcx,%rax,1),%cl
140046ea2:	0f b6 c1             	movzbl %cl,%eax
140046ea5:	eb 0f                	jmp    0x140046eb6
140046ea7:	48 8d 54 24 28       	lea    0x28(%rsp),%rdx
140046eac:	e8 f3 a6 fe ff       	call   0x1400315a4
140046eb1:	48 8b 54 24 28       	mov    0x28(%rsp),%rdx
140046eb6:	0f b7 0e             	movzwl (%rsi),%ecx
140046eb9:	48 83 c6 02          	add    $0x2,%rsi
140046ebd:	44 0f b7 f0          	movzwl %ax,%r14d
140046ec1:	41 8b fe             	mov    %r14d,%edi
140046ec4:	66 41 3b cf          	cmp    %r15w,%cx
140046ec8:	73 1a                	jae    0x140046ee4
140046eca:	0f b6 c9             	movzbl %cl,%ecx
140046ecd:	41 f6 44 4c 02 01    	testb  $0x1,0x2(%r12,%rcx,2)
140046ed3:	74 0a                	je     0x140046edf
140046ed5:	48 8b 82 10 01 00 00 	mov    0x110(%rdx),%rax
140046edc:	8a 0c 01             	mov    (%rcx,%rax,1),%cl
140046edf:	0f b6 c1             	movzbl %cl,%eax
140046ee2:	eb 0f                	jmp    0x140046ef3
140046ee4:	48 8d 54 24 28       	lea    0x28(%rsp),%rdx
140046ee9:	e8 b6 a6 fe ff       	call   0x1400315a4
140046eee:	48 8b 54 24 28       	mov    0x28(%rsp),%rdx
140046ef3:	0f b7 c0             	movzwl %ax,%eax
140046ef6:	2b f8                	sub    %eax,%edi
140046ef8:	75 0f                	jne    0x140046f09
140046efa:	45 85 f6             	test   %r14d,%r14d
140046efd:	74 0a                	je     0x140046f09
140046eff:	48 83 ed 01          	sub    $0x1,%rbp
140046f03:	0f 85 77 ff ff ff    	jne    0x140046e80
140046f09:	80 7c 24 38 00       	cmpb   $0x0,0x38(%rsp)
140046f0e:	74 0c                	je     0x140046f1c
140046f10:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
140046f15:	83 a0 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rax)
140046f1c:	8b c7                	mov    %edi,%eax
140046f1e:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
140046f23:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
140046f28:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
140046f2d:	48 8b 7c 24 78       	mov    0x78(%rsp),%rdi
140046f32:	48 83 c4 40          	add    $0x40,%rsp
140046f36:	41 5f                	pop    %r15
140046f38:	41 5e                	pop    %r14
140046f3a:	41 5c                	pop    %r12
140046f3c:	c3                   	ret
140046f3d:	cc                   	int3
140046f3e:	cc                   	int3
140046f3f:	cc                   	int3
140046f40:	0f b7 02             	movzwl (%rdx),%eax
140046f43:	44 0f b7 01          	movzwl (%rcx),%r8d
140046f47:	44 2b c0             	sub    %eax,%r8d
140046f4a:	75 19                	jne    0x140046f65
140046f4c:	48 2b ca             	sub    %rdx,%rcx
140046f4f:	66 85 c0             	test   %ax,%ax
140046f52:	74 11                	je     0x140046f65
140046f54:	48 83 c2 02          	add    $0x2,%rdx
140046f58:	0f b7 02             	movzwl (%rdx),%eax
140046f5b:	44 0f b7 04 11       	movzwl (%rcx,%rdx,1),%r8d
140046f60:	44 2b c0             	sub    %eax,%r8d
140046f63:	74 ea                	je     0x140046f4f
140046f65:	41 8b c0             	mov    %r8d,%eax
140046f68:	41 c1 e8 1f          	shr    $0x1f,%r8d
140046f6c:	f7 d8                	neg    %eax
140046f6e:	c1 e8 1f             	shr    $0x1f,%eax
140046f71:	41 2b c0             	sub    %r8d,%eax
140046f74:	c3                   	ret
140046f75:	cc                   	int3
140046f76:	cc                   	int3
140046f77:	cc                   	int3
140046f78:	40 53                	rex push %rbx
140046f7a:	48 83 ec 20          	sub    $0x20,%rsp
140046f7e:	41 0f ba f0 13       	btr    $0x13,%r8d
140046f83:	8b c2                	mov    %edx,%eax
140046f85:	41 23 c0             	and    %r8d,%eax
140046f88:	44 8b ca             	mov    %edx,%r9d
140046f8b:	48 8b d9             	mov    %rcx,%rbx
140046f8e:	a9 e0 fc f0 fc       	test   $0xfcf0fce0,%eax
140046f93:	74 25                	je     0x140046fba
140046f95:	48 85 c9             	test   %rcx,%rcx
140046f98:	74 0b                	je     0x140046fa5
140046f9a:	33 d2                	xor    %edx,%edx
140046f9c:	33 c9                	xor    %ecx,%ecx
140046f9e:	e8 a5 0d 00 00       	call   0x140047d48
140046fa3:	89 03                	mov    %eax,(%rbx)
140046fa5:	e8 8e 4a fe ff       	call   0x14002ba38
140046faa:	bb 16 00 00 00       	mov    $0x16,%ebx
140046faf:	89 18                	mov    %ebx,(%rax)
140046fb1:	e8 ee 45 fe ff       	call   0x14002b5a4
140046fb6:	8b c3                	mov    %ebx,%eax
140046fb8:	eb 1b                	jmp    0x140046fd5
140046fba:	41 8b d0             	mov    %r8d,%edx
140046fbd:	41 8b c9             	mov    %r9d,%ecx
140046fc0:	48 85 db             	test   %rbx,%rbx
140046fc3:	74 09                	je     0x140046fce
140046fc5:	e8 7e 0d 00 00       	call   0x140047d48
140046fca:	89 03                	mov    %eax,(%rbx)
140046fcc:	eb 05                	jmp    0x140046fd3
140046fce:	e8 75 0d 00 00       	call   0x140047d48
140046fd3:	33 c0                	xor    %eax,%eax
140046fd5:	48 83 c4 20          	add    $0x20,%rsp
140046fd9:	5b                   	pop    %rbx
140046fda:	c3                   	ret
140046fdb:	cc                   	int3
140046fdc:	40 53                	rex push %rbx
140046fde:	48 83 ec 20          	sub    $0x20,%rsp
140046fe2:	48 8b d9             	mov    %rcx,%rbx
140046fe5:	e8 ae ed ff ff       	call   0x140045d98
140046fea:	89 03                	mov    %eax,(%rbx)
140046fec:	e8 8b ee ff ff       	call   0x140045e7c
140046ff1:	89 43 04             	mov    %eax,0x4(%rbx)
140046ff4:	33 c0                	xor    %eax,%eax
140046ff6:	48 83 c4 20          	add    $0x20,%rsp
140046ffa:	5b                   	pop    %rbx
140046ffb:	c3                   	ret
140046ffc:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140047001:	57                   	push   %rdi
140047002:	48 83 ec 20          	sub    $0x20,%rsp
140047006:	48 8b d9             	mov    %rcx,%rbx
140047009:	8b 09                	mov    (%rcx),%ecx
14004700b:	e8 c4 ee ff ff       	call   0x140045ed4
140047010:	8b 4b 04             	mov    0x4(%rbx),%ecx
140047013:	e8 f4 ef ff ff       	call   0x14004600c
140047018:	33 ff                	xor    %edi,%edi
14004701a:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
14004701f:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
140047024:	e8 b3 ff ff ff       	call   0x140046fdc
140047029:	85 c0                	test   %eax,%eax
14004702b:	75 17                	jne    0x140047044
14004702d:	8b 4c 24 30          	mov    0x30(%rsp),%ecx
140047031:	39 0b                	cmp    %ecx,(%rbx)
140047033:	75 0f                	jne    0x140047044
140047035:	8b 4c 24 34          	mov    0x34(%rsp),%ecx
140047039:	39 4b 04             	cmp    %ecx,0x4(%rbx)
14004703c:	40 0f 95 c7          	setne  %dil
140047040:	8b c7                	mov    %edi,%eax
140047042:	eb 05                	jmp    0x140047049
140047044:	b8 01 00 00 00       	mov    $0x1,%eax
140047049:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
14004704e:	48 83 c4 20          	add    $0x20,%rsp
140047052:	5f                   	pop    %rdi
140047053:	c3                   	ret
140047054:	40 53                	rex push %rbx
140047056:	48 83 ec 20          	sub    $0x20,%rsp
14004705a:	83 64 24 38 00       	andl   $0x0,0x38(%rsp)
14004705f:	48 8b d9             	mov    %rcx,%rbx
140047062:	83 64 24 3c 00       	andl   $0x0,0x3c(%rsp)
140047067:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
14004706c:	e8 6b ff ff ff       	call   0x140046fdc
140047071:	85 c0                	test   %eax,%eax
140047073:	75 24                	jne    0x140047099
140047075:	48 8b 44 24 38       	mov    0x38(%rsp),%rax
14004707a:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
14004707f:	83 4c 24 38 1f       	orl    $0x1f,0x38(%rsp)
140047084:	48 89 03             	mov    %rax,(%rbx)
140047087:	e8 70 ff ff ff       	call   0x140046ffc
14004708c:	85 c0                	test   %eax,%eax
14004708e:	75 09                	jne    0x140047099
140047090:	e8 47 0c 00 00       	call   0x140047cdc
140047095:	33 c0                	xor    %eax,%eax
140047097:	eb 05                	jmp    0x14004709e
140047099:	b8 01 00 00 00       	mov    $0x1,%eax
14004709e:	48 83 c4 20          	add    $0x20,%rsp
1400470a2:	5b                   	pop    %rbx
1400470a3:	c3                   	ret
1400470a4:	45 33 c0             	xor    %r8d,%r8d
1400470a7:	f2 0f 11 44 24 08    	movsd  %xmm0,0x8(%rsp)
1400470ad:	48 8b 54 24 08       	mov    0x8(%rsp),%rdx
1400470b2:	48 b9 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rcx
1400470b9:	ff ff 7f
1400470bc:	48 8b c2             	mov    %rdx,%rax
1400470bf:	48 23 c1             	and    %rcx,%rax
1400470c2:	48 b9 00 00 00 00 00 	movabs $0x4340000000000000,%rcx
1400470c9:	00 40 43
1400470cc:	48 3b d0             	cmp    %rax,%rdx
1400470cf:	41 0f 95 c0          	setne  %r8b
1400470d3:	48 3b c1             	cmp    %rcx,%rax
1400470d6:	72 17                	jb     0x1400470ef
1400470d8:	48 b9 00 00 00 00 00 	movabs $0x7ff0000000000000,%rcx
1400470df:	00 f0 7f
1400470e2:	48 3b c1             	cmp    %rcx,%rax
1400470e5:	76 7e                	jbe    0x140047165
1400470e7:	48 8b ca             	mov    %rdx,%rcx
1400470ea:	e9 11 f3 ff ff       	jmp    0x140046400
1400470ef:	48 b9 00 00 00 00 00 	movabs $0x3ff0000000000000,%rcx
1400470f6:	00 f0 3f
1400470f9:	48 3b c1             	cmp    %rcx,%rax
1400470fc:	73 2b                	jae    0x140047129
1400470fe:	48 85 c0             	test   %rax,%rax
140047101:	74 62                	je     0x140047165
140047103:	4d 85 c0             	test   %r8,%r8
140047106:	74 17                	je     0x14004711f
140047108:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
14004710f:	00 00 80
140047112:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
140047117:	f2 0f 10 44 24 08    	movsd  0x8(%rsp),%xmm0
14004711d:	eb 46                	jmp    0x140047165
14004711f:	f2 0f 10 05 89 83 00 	movsd  0x8389(%rip),%xmm0        # 0x14004f4b0
140047126:	00
140047127:	eb 3c                	jmp    0x140047165
140047129:	48 8b c2             	mov    %rdx,%rax
14004712c:	b9 33 00 00 00       	mov    $0x33,%ecx
140047131:	48 c1 e8 34          	shr    $0x34,%rax
140047135:	2a c8                	sub    %al,%cl
140047137:	b8 01 00 00 00       	mov    $0x1,%eax
14004713c:	48 d3 e0             	shl    %cl,%rax
14004713f:	48 ff c8             	dec    %rax
140047142:	48 f7 d0             	not    %rax
140047145:	48 23 c2             	and    %rdx,%rax
140047148:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
14004714d:	f2 0f 10 44 24 08    	movsd  0x8(%rsp),%xmm0
140047153:	4d 85 c0             	test   %r8,%r8
140047156:	75 0d                	jne    0x140047165
140047158:	48 3b c2             	cmp    %rdx,%rax
14004715b:	74 08                	je     0x140047165
14004715d:	f2 0f 58 05 4b 83 00 	addsd  0x834b(%rip),%xmm0        # 0x14004f4b0
140047164:	00
140047165:	c3                   	ret
140047166:	cc                   	int3
140047167:	cc                   	int3
140047168:	cc                   	int3
140047169:	cc                   	int3
14004716a:	cc                   	int3
14004716b:	cc                   	int3
14004716c:	cc                   	int3
14004716d:	cc                   	int3
14004716e:	cc                   	int3
14004716f:	cc                   	int3
140047170:	48 83 ec 58          	sub    $0x58,%rsp
140047174:	66 0f 7f 74 24 20    	movdqa %xmm6,0x20(%rsp)
14004717a:	83 3d 5b 14 03 00 00 	cmpl   $0x0,0x3145b(%rip)        # 0x1400785dc
140047181:	0f 85 e9 02 00 00    	jne    0x140047470
140047187:	66 0f 28 d8          	movapd %xmm0,%xmm3
14004718b:	66 0f 28 e0          	movapd %xmm0,%xmm4
14004718f:	66 0f 73 d3 34       	psrlq  $0x34,%xmm3
140047194:	66 48 0f 7e c0       	movq   %xmm0,%rax
140047199:	66 0f fb 1d 3f 2a 01 	psubq  0x12a3f(%rip),%xmm3        # 0x140059be0
1400471a0:	00
1400471a1:	66 0f 28 e8          	movapd %xmm0,%xmm5
1400471a5:	66 0f 54 2d 03 2a 01 	andpd  0x12a03(%rip),%xmm5        # 0x140059bb0
1400471ac:	00
1400471ad:	66 0f 2f 2d fb 29 01 	comisd 0x129fb(%rip),%xmm5        # 0x140059bb0
1400471b4:	00
1400471b5:	0f 84 85 02 00 00    	je     0x140047440
1400471bb:	66 0f 28 d0          	movapd %xmm0,%xmm2
1400471bf:	f3 0f e6 f3          	cvtdq2pd %xmm3,%xmm6
1400471c3:	66 0f 57 ed          	xorpd  %xmm5,%xmm5