180033784:	49 33 c8             	xor    %r8,%rcx
180033787:	48 85 c9             	test   %rcx,%rcx
18003378a:	74 38                	je     0x1800337c4
18003378c:	48 8b 59 10          	mov    0x10(%rcx),%rbx
180033790:	48 8b c3             	mov    %rbx,%rax
180033793:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
180033797:	45 85 db             	test   %r11d,%r11d
18003379a:	74 08                	je     0x1800337a4
18003379c:	48 85 c0             	test   %rax,%rax
18003379f:	74 03                	je     0x1800337a4
1800337a1:	48 33 c1             	xor    %rcx,%rax
1800337a4:	49 3b c0             	cmp    %r8,%rax
1800337a7:	0f 85 81 00 00 00    	jne    0x18003382e
1800337ad:	48 8b c1             	mov    %rcx,%rax
1800337b0:	48 33 c2             	xor    %rdx,%rax
1800337b3:	45 85 db             	test   %r11d,%r11d
1800337b6:	48 0f 44 c2          	cmove  %rdx,%rax
1800337ba:	83 e3 03             	and    $0x3,%ebx
1800337bd:	48 0b c3             	or     %rbx,%rax
1800337c0:	48 89 41 10          	mov    %rax,0x10(%rcx)
1800337c4:	45 85 db             	test   %r11d,%r11d
1800337c7:	74 08                	je     0x1800337d1
1800337c9:	48 85 c9             	test   %rcx,%rcx
1800337cc:	74 03                	je     0x1800337d1
1800337ce:	48 33 ca             	xor    %rdx,%rcx
1800337d1:	49 33 ff             	xor    %r15,%rdi
1800337d4:	48 89 0c fa          	mov    %rcx,(%rdx,%rdi,8)
1800337d8:	48 8b ca             	mov    %rdx,%rcx
1800337db:	49 33 c8             	xor    %r8,%rcx
1800337de:	45 85 db             	test   %r11d,%r11d
1800337e1:	48 8b c1             	mov    %rcx,%rax
1800337e4:	48 0f 44 c2          	cmove  %rdx,%rax
1800337e8:	48 89 06             	mov    %rax,(%rsi)
1800337eb:	48 83 62 10 03       	andq   $0x3,0x10(%rdx)
1800337f0:	45 85 db             	test   %r11d,%r11d
1800337f3:	49 0f 44 c8          	cmove  %r8,%rcx
1800337f7:	48 09 4a 10          	or     %rcx,0x10(%rdx)
1800337fb:	45 84 79 08          	test   %r15b,0x8(%r9)
1800337ff:	74 17                	je     0x180033818
180033801:	49 8b ca             	mov    %r10,%rcx
180033804:	49 33 c9             	xor    %r9,%rcx
180033807:	49 f7 da             	neg    %r10
18003380a:	48 1b c0             	sbb    %rax,%rax
18003380d:	48 23 c1             	and    %rcx,%rax
180033810:	49 89 01             	mov    %rax,(%r9)
180033813:	e9 a0 f9 ff ff       	jmp    0x1800331b8
180033818:	4d 89 11             	mov    %r10,(%r9)
18003381b:	e9 98 f9 ff ff       	jmp    0x1800331b8
180033820:	24 fe                	and    $0xfe,%al
180033822:	88 42 10             	mov    %al,0x10(%rdx)
180033825:	45 08 78 10          	or     %r15b,0x10(%r8)
180033829:	e9 8a f9 ff ff       	jmp    0x1800331b8
18003382e:	b9 1d 00 00 00       	mov    $0x1d,%ecx
180033833:	cd 29                	int    $0x29
180033835:	cc                   	int3
180033836:	cc                   	int3
180033837:	cc                   	int3
180033838:	48 8b 01             	mov    (%rcx),%rax
18003383b:	4c 8b c9             	mov    %rcx,%r9
18003383e:	48 8b 09             	mov    (%rcx),%rcx
180033841:	48 f7 d8             	neg    %rax
180033844:	48 83 f9 00          	cmp    $0x0,%rcx
180033848:	4c 8b d2             	mov    %rdx,%r10
18003384b:	48 0f 4c c8          	cmovl  %rax,%rcx
18003384f:	48 8b 05 32 83 11 00 	mov    0x118332(%rip),%rax        # 0x18014bb88
180033856:	48 f7 e1             	mul    %rcx
180033859:	48 8b ca             	mov    %rdx,%rcx
18003385c:	48 c1 e9 0d          	shr    $0xd,%rcx
180033860:	49 83 39 00          	cmpq   $0x0,(%r9)
180033864:	7d 03                	jge    0x180033869
180033866:	48 f7 d9             	neg    %rcx
180033869:	48 8b 05 90 84 11 00 	mov    0x118490(%rip),%rax        # 0x18014bd00
180033870:	48 85 c9             	test   %rcx,%rcx
180033873:	78 05                	js     0x18003387a
180033875:	48 f7 e1             	mul    %rcx
180033878:	eb 09                	jmp    0x180033883
18003387a:	48 8b d1             	mov    %rcx,%rdx
18003387d:	48 f7 da             	neg    %rdx
180033880:	48 f7 e2             	mul    %rdx
180033883:	48 c1 ea 1a          	shr    $0x1a,%rdx
180033887:	48 85 c9             	test   %rcx,%rcx
18003388a:	79 03                	jns    0x18003388f
18003388c:	48 f7 da             	neg    %rdx
18003388f:	69 c2 00 5c 26 05    	imul   $0x5265c00,%edx,%eax
180033895:	41 89 12             	mov    %edx,(%r10)
180033898:	2b c8                	sub    %eax,%ecx
18003389a:	41 89 08             	mov    %ecx,(%r8)
18003389d:	c3                   	ret
18003389e:	cc                   	int3
18003389f:	cc                   	int3
1800338a0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800338a5:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1800338aa:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
1800338af:	57                   	push   %rdi
1800338b0:	48 83 ec 30          	sub    $0x30,%rsp
1800338b4:	4c 8b 05 cd fe 16 00 	mov    0x16fecd(%rip),%r8        # 0x1801a3788
1800338bb:	48 8b f2             	mov    %rdx,%rsi
1800338be:	4d 85 c0             	test   %r8,%r8
1800338c1:	0f 84 ff 00 00 00    	je     0x1800339c6
1800338c7:	41 80 38 00          	cmpb   $0x0,(%r8)
1800338cb:	0f 84 f5 00 00 00    	je     0x1800339c6
1800338d1:	45 8b 58 04          	mov    0x4(%r8),%r11d
1800338d5:	f0 83 0c 24 00       	lock orl $0x0,(%rsp)
1800338da:	48 8b 01             	mov    (%rcx),%rax
1800338dd:	33 db                	xor    %ebx,%ebx
1800338df:	45 33 c9             	xor    %r9d,%r9d
1800338e2:	45 33 d2             	xor    %r10d,%r10d
1800338e5:	8d 6b 01             	lea    0x1(%rbx),%ebp
1800338e8:	45 85 db             	test   %r11d,%r11d
1800338eb:	74 59                	je     0x180033946
1800338ed:	49 83 c0 08          	add    $0x8,%r8
1800338f1:	49 8b 10             	mov    (%r8),%rdx
1800338f4:	48 85 d2             	test   %rdx,%rdx
1800338f7:	78 2c                	js     0x180033925
1800338f9:	48 8d 8a 00 2d 31 01 	lea    0x1312d00(%rdx),%rcx
180033900:	48 3b c1             	cmp    %rcx,%rax
180033903:	7c 05                	jl     0x18003390a
180033905:	44 03 cd             	add    %ebp,%r9d
180033908:	eb 30                	jmp    0x18003393a
18003390a:	48 8d 8a 80 96 98 00 	lea    0x989680(%rdx),%rcx
180033911:	48 3b c1             	cmp    %rcx,%rax
180033914:	7c 05                	jl     0x18003391b
180033916:	83 cb 02             	or     $0x2,%ebx
180033919:	eb 1f                	jmp    0x18003393a
18003391b:	48 3b c2             	cmp    %rdx,%rax
18003391e:	7c 26                	jl     0x180033946
180033920:	83 cb 04             	or     $0x4,%ebx
180033923:	eb 15                	jmp    0x18003393a
180033925:	48 b9 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rcx
18003392c:	ff ff 7f
18003392f:	48 23 d1             	and    %rcx,%rdx
180033932:	48 3b c2             	cmp    %rdx,%rax
180033935:	7c 0f                	jl     0x180033946
180033937:	44 2b cd             	sub    %ebp,%r9d
18003393a:	44 03 d5             	add    %ebp,%r10d
18003393d:	49 83 c0 08          	add    $0x8,%r8
180033941:	45 3b d3             	cmp    %r11d,%r10d
180033944:	72 ab                	jb     0x1800338f1
180033946:	49 63 c9             	movslq %r9d,%rcx
180033949:	8b fb                	mov    %ebx,%edi
18003394b:	48 69 d1 80 96 98 00 	imul   $0x989680,%rcx,%rdx
180033952:	48 2b c2             	sub    %rdx,%rax
180033955:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
18003395a:	83 e7 02             	and    $0x2,%edi
18003395d:	74 0b                	je     0x18003396a
18003395f:	48 05 80 69 67 ff    	add    $0xffffffffff676980,%rax
180033965:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
18003396a:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
18003396f:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
180033974:	e8 6b 00 00 00       	call   0x1800339e4
180033979:	40 84 dd             	test   %bl,%bpl
18003397c:	75 34                	jne    0x1800339b2
18003397e:	f6 c3 04             	test   $0x4,%bl
180033981:	74 11                	je     0x180033994
180033983:	0f bf 44 24 2c       	movswl 0x2c(%rsp),%eax
180033988:	99                   	cltd
180033989:	2b c2                	sub    %edx,%eax
18003398b:	d1 f8                	sar    $1,%eax
18003398d:	66 89 44 24 2c       	mov    %ax,0x2c(%rsp)
180033992:	eb 05                	jmp    0x180033999
180033994:	0f b7 44 24 2c       	movzwl 0x2c(%rsp),%eax
180033999:	85 ff                	test   %edi,%edi
18003399b:	74 1e                	je     0x1800339bb
18003399d:	98                   	cwtl
18003399e:	b9 f4 01 00 00       	mov    $0x1f4,%ecx
1800339a3:	99                   	cltd
1800339a4:	2b c2                	sub    %edx,%eax
1800339a6:	d1 f8                	sar    $1,%eax
1800339a8:	66 03 c1             	add    %cx,%ax
1800339ab:	66 89 44 24 2c       	mov    %ax,0x2c(%rsp)
1800339b0:	eb 09                	jmp    0x1800339bb
1800339b2:	85 ff                	test   %edi,%edi
1800339b4:	74 05                	je     0x1800339bb
1800339b6:	66 01 6c 24 2a       	add    %bp,0x2a(%rsp)
1800339bb:	0f 10 44 24 20       	movups 0x20(%rsp),%xmm0
1800339c0:	f3 0f 7f 06          	movdqu %xmm0,(%rsi)
1800339c4:	eb 05                	jmp    0x1800339cb
1800339c6:	e8 19 00 00 00       	call   0x1800339e4
1800339cb:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1800339d0:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
1800339d5:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
1800339da:	48 83 c4 30          	add    $0x30,%rsp
1800339de:	5f                   	pop    %rdi
1800339df:	c3                   	ret
1800339e0:	cc                   	int3
1800339e1:	cc                   	int3
1800339e2:	cc                   	int3
1800339e3:	cc                   	int3
1800339e4:	48 8b c4             	mov    %rsp,%rax
1800339e7:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800339eb:	48 89 70 20          	mov    %rsi,0x20(%rax)
1800339ef:	57                   	push   %rdi
1800339f0:	48 83 ec 20          	sub    $0x20,%rsp
1800339f4:	48 8b fa             	mov    %rdx,%rdi
1800339f7:	4c 8d 40 18          	lea    0x18(%rax),%r8
1800339fb:	48 8d 50 10          	lea    0x10(%rax),%rdx
1800339ff:	e8 34 fe ff ff       	call   0x180033838
180033a04:	44 8b 5c 24 38       	mov    0x38(%rsp),%r11d
180033a09:	b8 25 49 92 24       	mov    $0x24924925,%eax
180033a0e:	41 8d 4b 01          	lea    0x1(%r11),%ecx
180033a12:	f7 e1                	mul    %ecx
180033a14:	8b c1                	mov    %ecx,%eax
180033a16:	2b c2                	sub    %edx,%eax
180033a18:	d1 e8                	shr    $1,%eax
180033a1a:	03 c2                	add    %edx,%eax
180033a1c:	c1 e8 02             	shr    $0x2,%eax
180033a1f:	6b c0 07             	imul   $0x7,%eax,%eax
180033a22:	2b c8                	sub    %eax,%ecx
180033a24:	b8 bd 06 6b 39       	mov    $0x396b06bd,%eax
180033a29:	41 f7 e3             	mul    %r11d
180033a2c:	66 89 4f 0e          	mov    %cx,0xe(%rdi)
180033a30:	41 8b cb             	mov    %r11d,%ecx
180033a33:	44 8b d2             	mov    %edx,%r10d
180033a36:	41 c1 ea 0f          	shr    $0xf,%r10d
180033a3a:	41 69 c2 b1 3a 02 00 	imul   $0x23ab1,%r10d,%eax
180033a41:	2b c8                	sub    %eax,%ecx
180033a43:	b8 c7 03 fb 25       	mov    $0x25fb03c7,%eax
180033a48:	44 6b c9 64          	imul   $0x64,%ecx,%r9d
180033a4c:	41 83 c1 4b          	add    $0x4b,%r9d
180033a50:	41 f7 e1             	mul    %r9d
180033a53:	44 2b ca             	sub    %edx,%r9d
180033a56:	41 d1 e9             	shr    $1,%r9d
180033a59:	44 03 ca             	add    %edx,%r9d
180033a5c:	41 c1 e9 15          	shr    $0x15,%r9d
180033a60:	41 69 c1 54 71 ff ff 	imul   $0xffff7154,%r9d,%eax
180033a67:	03 c8                	add    %eax,%ecx
180033a69:	b8 73 b0 6d 16       	mov    $0x166db073,%eax
180033a6e:	f7 e1                	mul    %ecx
180033a70:	44 8b c2             	mov    %edx,%r8d
180033a73:	41 c1 e8 07          	shr    $0x7,%r8d
180033a77:	41 69 c0 b5 05 00 00 	imul   $0x5b5,%r8d,%eax
180033a7e:	2b c8                	sub    %eax,%ecx
180033a80:	b8 e1 e5 aa e5       	mov    $0xe5aae5e1,%eax
180033a85:	6b c9 64             	imul   $0x64,%ecx,%ecx
180033a88:	83 c1 4b             	add    $0x4b,%ecx
180033a8b:	f7 e1                	mul    %ecx
180033a8d:	43 8d 04 91          	lea    (%r9,%r10,4),%eax
180033a91:	41 ba 1f 85 eb 51    	mov    $0x51eb851f,%r10d
180033a97:	6b c8 19             	imul   $0x19,%eax,%ecx
180033a9a:	41 8b c2             	mov    %r10d,%eax
180033a9d:	c1 ea 0f             	shr    $0xf,%edx
180033aa0:	41 03 c8             	add    %r8d,%ecx
180033aa3:	8d 34 8a             	lea    (%rdx,%rcx,4),%esi
180033aa6:	f7 e6                	mul    %esi
180033aa8:	69 ce 93 fe ff ff    	imul   $0xfffffe93,%esi,%ecx
180033aae:	44 8d 4e 01          	lea    0x1(%rsi),%r9d
180033ab2:	8b c6                	mov    %esi,%eax
180033ab4:	c1 ea 07             	shr    $0x7,%edx
180033ab7:	c1 e8 02             	shr    $0x2,%eax
180033aba:	2b ca                	sub    %edx,%ecx
180033abc:	2b c8                	sub    %eax,%ecx
180033abe:	41 8b c2             	mov    %r10d,%eax
180033ac1:	f7 e6                	mul    %esi
180033ac3:	44 03 d9             	add    %ecx,%r11d
180033ac6:	41 8b c2             	mov    %r10d,%eax
180033ac9:	c1 ea 05             	shr    $0x5,%edx
180033acc:	44 03 da             	add    %edx,%r11d
180033acf:	41 f7 e1             	mul    %r9d
180033ad2:	c1 ea 07             	shr    $0x7,%edx
180033ad5:	44 69 c2 90 01 00 00 	imul   $0x190,%edx,%r8d
180033adc:	45 3b c8             	cmp    %r8d,%r9d
180033adf:	74 31                	je     0x180033b12
180033ae1:	41 8b c2             	mov    %r10d,%eax
180033ae4:	41 f7 e1             	mul    %r9d
180033ae7:	c1 ea 05             	shr    $0x5,%edx
180033aea:	6b ca 64             	imul   $0x64,%edx,%ecx
180033aed:	44 3b c9             	cmp    %ecx,%r9d
180033af0:	74 06                	je     0x180033af8
180033af2:	41 f6 c1 03          	test   $0x3,%r9b
180033af6:	74 1a                	je     0x180033b12
180033af8:	48 8d 0d 01 c5 fc ff 	lea    -0x33aff(%rip),%rcx        # 0x180000000
180033aff:	41 0f b6 9c 0b 10 bd 	movzbl 0x14bd10(%r11,%rcx,1),%ebx
180033b06:	14 00
180033b08:	0f bf 84 59 80 be 14 	movswl 0x14be80(%rcx,%rbx,2),%eax
180033b0f:	00
180033b10:	eb 18                	jmp    0x180033b2a
180033b12:	48 8d 0d e7 c4 fc ff 	lea    -0x33b19(%rip),%rcx        # 0x180000000
180033b19:	41 0f b6 9c 0b 90 bb 	movzbl 0x14bb90(%r11,%rcx,1),%ebx
180033b20:	14 00
180033b22:	0f bf 84 59 68 bb 14 	movswl 0x14bb68(%rcx,%rbx,2),%eax
180033b29:	00
180033b2a:	44 8b 54 24 40       	mov    0x40(%rsp),%r10d
180033b2f:	44 2b d8             	sub    %eax,%r11d
180033b32:	66 ff c3             	inc    %bx
180033b35:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
180033b3a:	41 f7 e2             	mul    %r10d
180033b3d:	b9 41 06 00 00       	mov    $0x641,%ecx
180033b42:	66 89 5f 02          	mov    %bx,0x2(%rdi)
180033b46:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180033b4b:	44 8b ca             	mov    %edx,%r9d
180033b4e:	66 03 f1             	add    %cx,%si
180033b51:	41 c1 e9 06          	shr    $0x6,%r9d
180033b55:	41 69 c1 18 fc ff ff 	imul   $0xfffffc18,%r9d,%eax
180033b5c:	66 41 ff c3          	inc    %r11w
180033b60:	66 89 37             	mov    %si,(%rdi)
180033b63:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
180033b68:	66 44 89 5f 04       	mov    %r11w,0x4(%rdi)
180033b6d:	44 03 d0             	add    %eax,%r10d
180033b70:	b8 89 88 88 88       	mov    $0x88888889,%eax
180033b75:	41 f7 e1             	mul    %r9d
180033b78:	b8 89 88 88 88       	mov    $0x88888889,%eax
180033b7d:	66 44 89 57 0c       	mov    %r10w,0xc(%rdi)
180033b82:	44 8b c2             	mov    %edx,%r8d
180033b85:	41 c1 e8 05          	shr    $0x5,%r8d
180033b89:	41 f7 e0             	mul    %r8d
180033b8c:	c1 ea 05             	shr    $0x5,%edx
180033b8f:	0f bf c2             	movswl %dx,%eax
180033b92:	6b c8 3c             	imul   $0x3c,%eax,%ecx
180033b95:	41 0f b7 c0          	movzwl %r8w,%eax
180033b99:	66 89 57 06          	mov    %dx,0x6(%rdi)
180033b9d:	66 2b c1             	sub    %cx,%ax
180033ba0:	66 89 47 08          	mov    %ax,0x8(%rdi)
180033ba4:	41 0f bf c0          	movswl %r8w,%eax
180033ba8:	6b c8 3c             	imul   $0x3c,%eax,%ecx
180033bab:	66 44 2b c9          	sub    %cx,%r9w
180033baf:	66 44 89 4f 0a       	mov    %r9w,0xa(%rdi)
180033bb4:	48 83 c4 20          	add    $0x20,%rsp
180033bb8:	5f                   	pop    %rdi
180033bb9:	c3                   	ret
180033bba:	cc                   	int3
180033bbb:	cc                   	int3
180033bbc:	48 8b c4             	mov    %rsp,%rax
180033bbf:	48 89 58 08          	mov    %rbx,0x8(%rax)
180033bc3:	48 89 68 10          	mov    %rbp,0x10(%rax)
180033bc7:	48 89 70 20          	mov    %rsi,0x20(%rax)
180033bcb:	57                   	push   %rdi
180033bcc:	48 83 ec 20          	sub    $0x20,%rsp
180033bd0:	48 8b 3d b1 fb 16 00 	mov    0x16fbb1(%rip),%rdi        # 0x1801a3788
180033bd7:	33 db                	xor    %ebx,%ebx
180033bd9:	48 8b f2             	mov    %rdx,%rsi
180033bdc:	48 85 ff             	test   %rdi,%rdi
180033bdf:	0f 84 8e 00 00 00    	je     0x180033c73
180033be5:	38 1f                	cmp    %bl,(%rdi)
180033be7:	0f 84 86 00 00 00    	je     0x180033c73
180033bed:	8b 6f 04             	mov    0x4(%rdi),%ebp
180033bf0:	f0 09 1c 24          	lock or %ebx,(%rsp)
180033bf4:	48 8d 50 18          	lea    0x18(%rax),%rdx
180033bf8:	e8 97 00 00 00       	call   0x180033c94
180033bfd:	84 c0                	test   %al,%al
180033bff:	74 79                	je     0x180033c7a
180033c01:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
180033c06:	44 8b c3             	mov    %ebx,%r8d
180033c09:	85 ed                	test   %ebp,%ebp
180033c0b:	74 5f                	je     0x180033c6c
180033c0d:	48 83 c7 08          	add    $0x8,%rdi
180033c11:	48 8b 17             	mov    (%rdi),%rdx
180033c14:	48 85 d2             	test   %rdx,%rdx
180033c17:	78 21                	js     0x180033c3a
180033c19:	48 8d 8a 80 96 98 00 	lea    0x989680(%rdx),%rcx
180033c20:	48 3b c1             	cmp    %rcx,%rax