140045d3d:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
140045d41:	74 c5                	je     0x140045d08
140045d43:	48 8b d7             	mov    %rdi,%rdx
140045d46:	4c 8d 05 43 24 03 00 	lea    0x32443(%rip),%r8        # 0x140078190
140045d4d:	83 e2 3f             	and    $0x3f,%edx
140045d50:	48 8b cf             	mov    %rdi,%rcx
140045d53:	48 c1 f9 06          	sar    $0x6,%rcx
140045d57:	48 8d 14 d2          	lea    (%rdx,%rdx,8),%rdx
140045d5b:	49 8b 0c c8          	mov    (%r8,%rcx,8),%rcx
140045d5f:	80 64 d1 38 fd       	andb   $0xfd,0x38(%rcx,%rdx,8)
140045d64:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140045d69:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140045d6e:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140045d73:	48 83 c4 30          	add    $0x30,%rsp
140045d77:	5f                   	pop    %rdi
140045d78:	c3                   	ret
140045d79:	cc                   	int3
140045d7a:	cc                   	int3
140045d7b:	cc                   	int3
140045d7c:	e9 4f ff ff ff       	jmp    0x140045cd0
140045d81:	cc                   	int3
140045d82:	cc                   	int3
140045d83:	cc                   	int3
140045d84:	48 ff 25 dd 64 00 00 	rex.W jmp *0x64dd(%rip)        # 0x14004c268
140045d8b:	cc                   	int3
140045d8c:	81 e1 00 03 00 00    	and    $0x300,%ecx
140045d92:	8b c1                	mov    %ecx,%eax
140045d94:	c3                   	ret
140045d95:	cc                   	int3
140045d96:	cc                   	int3
140045d97:	cc                   	int3
140045d98:	48 89 7c 24 10       	mov    %rdi,0x10(%rsp)
140045d9d:	41 ba 40 80 00 00    	mov    $0x8040,%r10d
140045da3:	33 d2                	xor    %edx,%edx
140045da5:	0f ae 5c 24 08       	stmxcsr 0x8(%rsp)
140045daa:	44 8b 4c 24 08       	mov    0x8(%rsp),%r9d
140045daf:	bf 00 04 00 00       	mov    $0x400,%edi
140045db4:	41 0f b7 c1          	movzwl %r9w,%eax
140045db8:	66 41 23 c2          	and    %r10w,%ax
140045dbc:	41 8d 4a c0          	lea    -0x40(%r10),%ecx
140045dc0:	66 3b c1             	cmp    %cx,%ax
140045dc3:	75 08                	jne    0x140045dcd
140045dc5:	41 b8 00 0c 00 00    	mov    $0xc00,%r8d
140045dcb:	eb 19                	jmp    0x140045de6
140045dcd:	66 83 f8 40          	cmp    $0x40,%ax
140045dd1:	75 08                	jne    0x140045ddb
140045dd3:	41 b8 00 08 00 00    	mov    $0x800,%r8d
140045dd9:	eb 0b                	jmp    0x140045de6
140045ddb:	66 41 3b c2          	cmp    %r10w,%ax
140045ddf:	44 8b c2             	mov    %edx,%r8d
140045de2:	44 0f 44 c7          	cmove  %edi,%r8d
140045de6:	41 8b c1             	mov    %r9d,%eax
140045de9:	41 ba 00 60 00 00    	mov    $0x6000,%r10d
140045def:	41 bb 00 02 00 00    	mov    $0x200,%r11d
140045df5:	41 23 c2             	and    %r10d,%eax
140045df8:	74 27                	je     0x140045e21
140045dfa:	3d 00 20 00 00       	cmp    $0x2000,%eax
140045dff:	74 19                	je     0x140045e1a
140045e01:	3d 00 40 00 00       	cmp    $0x4000,%eax
140045e06:	74 0d                	je     0x140045e15
140045e08:	41 3b c2             	cmp    %r10d,%eax
140045e0b:	b9 00 03 00 00       	mov    $0x300,%ecx
140045e10:	0f 45 ca             	cmovne %edx,%ecx
140045e13:	eb 0e                	jmp    0x140045e23
140045e15:	41 8b cb             	mov    %r11d,%ecx
140045e18:	eb 09                	jmp    0x140045e23
140045e1a:	b9 00 01 00 00       	mov    $0x100,%ecx
140045e1f:	eb 02                	jmp    0x140045e23
140045e21:	8b ca                	mov    %edx,%ecx
140045e23:	41 8b d1             	mov    %r9d,%edx
140045e26:	41 8b c1             	mov    %r9d,%eax
140045e29:	c1 ea 02             	shr    $0x2,%edx
140045e2c:	25 00 08 00 00       	and    $0x800,%eax
140045e31:	23 d7                	and    %edi,%edx
140045e33:	0b d0                	or     %eax,%edx
140045e35:	41 8b c1             	mov    %r9d,%eax
140045e38:	23 c7                	and    %edi,%eax
140045e3a:	c1 ea 02             	shr    $0x2,%edx
140045e3d:	48 8b 7c 24 10       	mov    0x10(%rsp),%rdi
140045e42:	0b d0                	or     %eax,%edx
140045e44:	c1 ea 02             	shr    $0x2,%edx
140045e47:	41 8b c1             	mov    %r9d,%eax
140045e4a:	41 23 c3             	and    %r11d,%eax
140045e4d:	41 81 e1 80 01 00 00 	and    $0x180,%r9d
140045e54:	0b d0                	or     %eax,%edx
140045e56:	c1 ea 03             	shr    $0x3,%edx
140045e59:	41 0b d1             	or     %r9d,%edx
140045e5c:	c1 ea 03             	shr    $0x3,%edx
140045e5f:	41 0b d0             	or     %r8d,%edx
140045e62:	0b d1                	or     %ecx,%edx
140045e64:	8b c2                	mov    %edx,%eax
140045e66:	25 00 ff ff ff       	and    $0xffffff00,%eax
140045e6b:	8d 0c 95 00 00 00 00 	lea    0x0(,%rdx,4),%ecx
140045e72:	0b c1                	or     %ecx,%eax
140045e74:	c1 e0 16             	shl    $0x16,%eax
140045e77:	0b c2                	or     %edx,%eax
140045e79:	c3                   	ret
140045e7a:	cc                   	int3
140045e7b:	cc                   	int3
140045e7c:	0f ae 5c 24 08       	stmxcsr 0x8(%rsp)
140045e81:	8b 54 24 08          	mov    0x8(%rsp),%edx
140045e85:	83 e2 3f             	and    $0x3f,%edx
140045e88:	44 8b c2             	mov    %edx,%r8d
140045e8b:	8b c2                	mov    %edx,%eax
140045e8d:	83 e0 10             	and    $0x10,%eax
140045e90:	41 c1 e8 02          	shr    $0x2,%r8d
140045e94:	41 83 e0 08          	and    $0x8,%r8d
140045e98:	8b ca                	mov    %edx,%ecx
140045e9a:	44 0b c0             	or     %eax,%r8d
140045e9d:	83 e1 02             	and    $0x2,%ecx
140045ea0:	41 c1 e8 02          	shr    $0x2,%r8d
140045ea4:	8b c2                	mov    %edx,%eax
140045ea6:	83 e0 08             	and    $0x8,%eax
140045ea9:	c1 e1 03             	shl    $0x3,%ecx
140045eac:	44 0b c0             	or     %eax,%r8d
140045eaf:	8b c2                	mov    %edx,%eax
140045eb1:	83 e0 04             	and    $0x4,%eax
140045eb4:	41 d1 e8             	shr    $1,%r8d
140045eb7:	0b c8                	or     %eax,%ecx
140045eb9:	83 e2 01             	and    $0x1,%edx
140045ebc:	03 c9                	add    %ecx,%ecx
140045ebe:	c1 e2 04             	shl    $0x4,%edx
140045ec1:	44 0b c1             	or     %ecx,%r8d
140045ec4:	44 0b c2             	or     %edx,%r8d
140045ec7:	41 8b c0             	mov    %r8d,%eax
140045eca:	c1 e0 18             	shl    $0x18,%eax
140045ecd:	41 0b c0             	or     %r8d,%eax
140045ed0:	c3                   	ret
140045ed1:	cc                   	int3
140045ed2:	cc                   	int3
140045ed3:	cc                   	int3
140045ed4:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140045ed9:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140045ede:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
140045ee3:	8b c1                	mov    %ecx,%eax
140045ee5:	8b d1                	mov    %ecx,%edx
140045ee7:	c1 e8 16             	shr    $0x16,%eax
140045eea:	41 b8 00 03 00 00    	mov    $0x300,%r8d
140045ef0:	c1 ea 18             	shr    $0x18,%edx
140045ef3:	41 23 c0             	and    %r8d,%eax
140045ef6:	83 e2 3f             	and    $0x3f,%edx
140045ef9:	33 f6                	xor    %esi,%esi
140045efb:	0b d0                	or     %eax,%edx
140045efd:	bf 00 04 00 00       	mov    $0x400,%edi
140045f02:	b8 00 0c 00 00       	mov    $0xc00,%eax
140045f07:	41 bb 00 08 00 00    	mov    $0x800,%r11d
140045f0d:	23 c8                	and    %eax,%ecx
140045f0f:	3b cf                	cmp    %edi,%ecx
140045f11:	74 1f                	je     0x140045f32
140045f13:	41 3b cb             	cmp    %r11d,%ecx
140045f16:	74 12                	je     0x140045f2a
140045f18:	3b c8                	cmp    %eax,%ecx
140045f1a:	74 06                	je     0x140045f22
140045f1c:	44 0f b7 ce          	movzwl %si,%r9d
140045f20:	eb 16                	jmp    0x140045f38
140045f22:	41 b9 00 80 00 00    	mov    $0x8000,%r9d
140045f28:	eb 0e                	jmp    0x140045f38
140045f2a:	41 b9 40 00 00 00    	mov    $0x40,%r9d
140045f30:	eb 06                	jmp    0x140045f38
140045f32:	41 b9 40 80 00 00    	mov    $0x8040,%r9d
140045f38:	8b c2                	mov    %edx,%eax
140045f3a:	bb 00 01 00 00       	mov    $0x100,%ebx
140045f3f:	41 ba 00 02 00 00    	mov    $0x200,%r10d
140045f45:	41 23 c0             	and    %r8d,%eax
140045f48:	74 26                	je     0x140045f70
140045f4a:	3b c3                	cmp    %ebx,%eax
140045f4c:	74 1a                	je     0x140045f68
140045f4e:	41 3b c2             	cmp    %r10d,%eax
140045f51:	74 0d                	je     0x140045f60
140045f53:	41 3b c0             	cmp    %r8d,%eax
140045f56:	75 18                	jne    0x140045f70
140045f58:	41 b8 00 60 00 00    	mov    $0x6000,%r8d
140045f5e:	eb 14                	jmp    0x140045f74
140045f60:	41 b8 00 40 00 00    	mov    $0x4000,%r8d
140045f66:	eb 0c                	jmp    0x140045f74
140045f68:	41 b8 00 20 00 00    	mov    $0x2000,%r8d
140045f6e:	eb 04                	jmp    0x140045f74
140045f70:	44 0f b7 c6          	movzwl %si,%r8d
140045f74:	0f ba e2 00          	bt     $0x0,%edx
140045f78:	73 07                	jae    0x140045f81
140045f7a:	b9 00 10 00 00       	mov    $0x1000,%ecx
140045f7f:	eb 03                	jmp    0x140045f84
140045f81:	0f b7 ce             	movzwl %si,%ecx
140045f84:	0f ba e2 01          	bt     $0x1,%edx
140045f88:	72 04                	jb     0x140045f8e
140045f8a:	44 0f b7 de          	movzwl %si,%r11d
140045f8e:	66 41 0b cb          	or     %r11w,%cx
140045f92:	0f ba e2 02          	bt     $0x2,%edx
140045f96:	72 03                	jb     0x140045f9b
140045f98:	0f b7 fe             	movzwl %si,%edi
140045f9b:	66 0b cf             	or     %di,%cx
140045f9e:	0f ba e2 03          	bt     $0x3,%edx
140045fa2:	72 04                	jb     0x140045fa8
140045fa4:	44 0f b7 d6          	movzwl %si,%r10d
140045fa8:	66 41 0b ca          	or     %r10w,%cx
140045fac:	0f ba e2 04          	bt     $0x4,%edx
140045fb0:	73 07                	jae    0x140045fb9
140045fb2:	b8 80 00 00 00       	mov    $0x80,%eax
140045fb7:	eb 03                	jmp    0x140045fbc
140045fb9:	0f b7 c6             	movzwl %si,%eax
140045fbc:	66 0b c8             	or     %ax,%cx
140045fbf:	0f ba e2 05          	bt     $0x5,%edx
140045fc3:	72 03                	jb     0x140045fc8
140045fc5:	0f b7 de             	movzwl %si,%ebx
140045fc8:	48 8b 74 24 18       	mov    0x18(%rsp),%rsi
140045fcd:	66 0b cb             	or     %bx,%cx
140045fd0:	48 8b 5c 24 10       	mov    0x10(%rsp),%rbx
140045fd5:	66 44 0b c1          	or     %cx,%r8w
140045fd9:	48 8b 7c 24 20       	mov    0x20(%rsp),%rdi
140045fde:	b8 c0 ff 00 00       	mov    $0xffc0,%eax
140045fe3:	0f ae 5c 24 08       	stmxcsr 0x8(%rsp)
140045fe8:	66 45 0b c1          	or     %r9w,%r8w
140045fec:	66 44 23 c0          	and    %ax,%r8w
140045ff0:	8b 44 24 08          	mov    0x8(%rsp),%eax
140045ff4:	25 3f 00 ff ff       	and    $0xffff003f,%eax
140045ff9:	41 0f b7 c8          	movzwl %r8w,%ecx
140045ffd:	0b c1                	or     %ecx,%eax
140045fff:	89 44 24 08          	mov    %eax,0x8(%rsp)
140046003:	0f ae 54 24 08       	ldmxcsr 0x8(%rsp)
140046008:	c3                   	ret
140046009:	cc                   	int3
14004600a:	cc                   	int3
14004600b:	cc                   	int3
14004600c:	8b d1                	mov    %ecx,%edx
14004600e:	c1 ea 18             	shr    $0x18,%edx
140046011:	83 e2 3f             	and    $0x3f,%edx
140046014:	8b c2                	mov    %edx,%eax
140046016:	83 e0 01             	and    $0x1,%eax
140046019:	f7 d8                	neg    %eax
14004601b:	8b c2                	mov    %edx,%eax
14004601d:	1b c9                	sbb    %ecx,%ecx
14004601f:	83 e0 02             	and    $0x2,%eax
140046022:	83 e1 20             	and    $0x20,%ecx
140046025:	f7 d8                	neg    %eax
140046027:	0f ae 5c 24 08       	stmxcsr 0x8(%rsp)
14004602c:	1b c0                	sbb    %eax,%eax
14004602e:	83 e0 10             	and    $0x10,%eax
140046031:	0b c8                	or     %eax,%ecx
140046033:	8b c2                	mov    %edx,%eax
140046035:	83 e0 04             	and    $0x4,%eax
140046038:	f7 d8                	neg    %eax
14004603a:	1b c0                	sbb    %eax,%eax
14004603c:	83 e0 08             	and    $0x8,%eax
14004603f:	0b c8                	or     %eax,%ecx
140046041:	8b c2                	mov    %edx,%eax
140046043:	83 e0 08             	and    $0x8,%eax
140046046:	f7 d8                	neg    %eax
140046048:	1b c0                	sbb    %eax,%eax
14004604a:	83 e0 04             	and    $0x4,%eax
14004604d:	0b c8                	or     %eax,%ecx
14004604f:	b8 00 00 00 00       	mov    $0x0,%eax
140046054:	0f ba e2 04          	bt     $0x4,%edx
140046058:	0f 92 c0             	setb   %al
14004605b:	83 e2 20             	and    $0x20,%edx
14004605e:	0b c8                	or     %eax,%ecx
140046060:	f7 da                	neg    %edx
140046062:	1b c0                	sbb    %eax,%eax
140046064:	83 e0 02             	and    $0x2,%eax
140046067:	0b c8                	or     %eax,%ecx
140046069:	8b 44 24 08          	mov    0x8(%rsp),%eax
14004606d:	83 e0 c0             	and    $0xffffffc0,%eax
140046070:	83 e1 3f             	and    $0x3f,%ecx
140046073:	0b c1                	or     %ecx,%eax
140046075:	89 44 24 08          	mov    %eax,0x8(%rsp)
140046079:	0f ae 54 24 08       	ldmxcsr 0x8(%rsp)
14004607e:	c3                   	ret
14004607f:	cc                   	int3
140046080:	48 8b c4             	mov    %rsp,%rax
140046083:	53                   	push   %rbx
140046084:	48 83 ec 50          	sub    $0x50,%rsp
140046088:	f2 0f 10 84 24 80 00 	movsd  0x80(%rsp),%xmm0
14004608f:	00 00
140046091:	8b d9                	mov    %ecx,%ebx
140046093:	f2 0f 10 8c 24 88 00 	movsd  0x88(%rsp),%xmm1
14004609a:	00 00
14004609c:	ba c0 ff 00 00       	mov    $0xffc0,%edx
1400460a1:	89 48 c8             	mov    %ecx,-0x38(%rax)
1400460a4:	48 8b 8c 24 90 00 00 	mov    0x90(%rsp),%rcx
1400460ab:	00
1400460ac:	f2 0f 11 40 e0       	movsd  %xmm0,-0x20(%rax)
1400460b1:	f2 0f 11 48 e8       	movsd  %xmm1,-0x18(%rax)
1400460b6:	f2 0f 11 58 d8       	movsd  %xmm3,-0x28(%rax)
1400460bb:	4c 89 40 d0          	mov    %r8,-0x30(%rax)
1400460bf:	e8 b8 61 ff ff       	call   0x14003c27c
1400460c4:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1400460c9:	e8 02 01 ff ff       	call   0x1400361d0
1400460ce:	85 c0                	test   %eax,%eax
1400460d0:	75 07                	jne    0x1400460d9
1400460d2:	8b cb                	mov    %ebx,%ecx
1400460d4:	e8 db 5e ff ff       	call   0x14003bfb4
1400460d9:	f2 0f 10 44 24 40    	movsd  0x40(%rsp),%xmm0
1400460df:	48 83 c4 50          	add    $0x50,%rsp
1400460e3:	5b                   	pop    %rbx
1400460e4:	c3                   	ret
1400460e5:	cc                   	int3
1400460e6:	cc                   	int3
1400460e7:	cc                   	int3
1400460e8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400460ed:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1400460f2:	57                   	push   %rdi
1400460f3:	48 83 ec 20          	sub    $0x20,%rsp
1400460f7:	8b d9                	mov    %ecx,%ebx
1400460f9:	48 8b f2             	mov    %rdx,%rsi
1400460fc:	83 e3 1f             	and    $0x1f,%ebx
1400460ff:	8b f9                	mov    %ecx,%edi
140046101:	f6 c1 08             	test   $0x8,%cl
140046104:	74 14                	je     0x14004611a
140046106:	40 84 f6             	test   %sil,%sil
140046109:	79 0f                	jns    0x14004611a
14004610b:	b9 01 00 00 00       	mov    $0x1,%ecx
140046110:	e8 e3 61 ff ff       	call   0x14003c2f8
140046115:	83 e3 f7             	and    $0xfffffff7,%ebx
140046118:	eb 57                	jmp    0x140046171
14004611a:	b9 04 00 00 00       	mov    $0x4,%ecx
14004611f:	40 84 f9             	test   %dil,%cl
140046122:	74 11                	je     0x140046135
140046124:	48 0f ba e6 09       	bt     $0x9,%rsi
140046129:	73 0a                	jae    0x140046135
14004612b:	e8 c8 61 ff ff       	call   0x14003c2f8
140046130:	83 e3 fb             	and    $0xfffffffb,%ebx
140046133:	eb 3c                	jmp    0x140046171
140046135:	40 f6 c7 01          	test   $0x1,%dil
140046139:	74 16                	je     0x140046151
14004613b:	48 0f ba e6 0a       	bt     $0xa,%rsi
140046140:	73 0f                	jae    0x140046151
140046142:	b9 08 00 00 00       	mov    $0x8,%ecx
140046147:	e8 ac 61 ff ff       	call   0x14003c2f8
14004614c:	83 e3 fe             	and    $0xfffffffe,%ebx
14004614f:	eb 20                	jmp    0x140046171
140046151:	40 f6 c7 02          	test   $0x2,%dil
140046155:	74 1a                	je     0x140046171
140046157:	48 0f ba e6 0b       	bt     $0xb,%rsi
14004615c:	73 13                	jae    0x140046171
14004615e:	40 f6 c7 10          	test   $0x10,%dil
140046162:	74 0a                	je     0x14004616e
140046164:	b9 10 00 00 00       	mov    $0x10,%ecx
140046169:	e8 8a 61 ff ff       	call   0x14003c2f8
14004616e:	83 e3 fd             	and    $0xfffffffd,%ebx
140046171:	40 f6 c7 10          	test   $0x10,%dil
140046175:	74 14                	je     0x14004618b
140046177:	48 0f ba e6 0c       	bt     $0xc,%rsi
14004617c:	73 0d                	jae    0x14004618b
14004617e:	b9 20 00 00 00       	mov    $0x20,%ecx
140046183:	e8 70 61 ff ff       	call   0x14003c2f8
140046188:	83 e3 ef             	and    $0xffffffef,%ebx
14004618b:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140046190:	33 c0                	xor    %eax,%eax
140046192:	85 db                	test   %ebx,%ebx
140046194:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140046199:	0f 94 c0             	sete   %al