180033558:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
18003355c:	45 23 df             	and    %r15d,%r11d
18003355f:	74 08                	je     0x180033569
180033561:	48 85 c0             	test   %rax,%rax
180033564:	74 03                	je     0x180033569
180033566:	49 33 c2             	xor    %r10,%rax
180033569:	49 3b c0             	cmp    %r8,%rax
18003356c:	0f 85 bc 02 00 00    	jne    0x18003382e
180033572:	8b f1                	mov    %ecx,%esi
180033574:	49 33 f7             	xor    %r15,%rsi
180033577:	8b f9                	mov    %ecx,%edi
180033579:	49 8b 04 f0          	mov    (%r8,%rsi,8),%rax
18003357d:	45 85 db             	test   %r11d,%r11d
180033580:	74 08                	je     0x18003358a
180033582:	48 85 c0             	test   %rax,%rax
180033585:	74 03                	je     0x18003358a
180033587:	49 33 c0             	xor    %r8,%rax
18003358a:	49 3b c2             	cmp    %r10,%rax
18003358d:	0f 85 9b 02 00 00    	jne    0x18003382e
180033593:	48 8b 04 ca          	mov    (%rdx,%rcx,8),%rax
180033597:	45 85 db             	test   %r11d,%r11d
18003359a:	74 08                	je     0x1800335a4
18003359c:	48 85 c0             	test   %rax,%rax
18003359f:	74 03                	je     0x1800335a4
1800335a1:	48 33 c2             	xor    %rdx,%rax
1800335a4:	49 3b c0             	cmp    %r8,%rax
1800335a7:	0f 85 81 02 00 00    	jne    0x18003382e
1800335ad:	49 8b 40 10          	mov    0x10(%r8),%rax
1800335b1:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
1800335b5:	45 85 db             	test   %r11d,%r11d
1800335b8:	74 08                	je     0x1800335c2
1800335ba:	48 85 c0             	test   %rax,%rax
1800335bd:	74 03                	je     0x1800335c2
1800335bf:	49 33 c0             	xor    %r8,%rax
1800335c2:	48 3b c2             	cmp    %rdx,%rax
1800335c5:	0f 85 63 02 00 00    	jne    0x18003382e
1800335cb:	48 8b ca             	mov    %rdx,%rcx
1800335ce:	49 33 ca             	xor    %r10,%rcx
1800335d1:	45 85 db             	test   %r11d,%r11d
1800335d4:	48 8b c1             	mov    %rcx,%rax
1800335d7:	49 0f 44 c2          	cmove  %r10,%rax
1800335db:	48 89 04 fa          	mov    %rax,(%rdx,%rdi,8)
1800335df:	74 05                	je     0x1800335e6
1800335e1:	48 85 d2             	test   %rdx,%rdx
1800335e4:	75 03                	jne    0x1800335e9
1800335e6:	48 8b ca             	mov    %rdx,%rcx
1800335e9:	49 83 62 10 03       	andq   $0x3,0x10(%r10)
1800335ee:	49 09 4a 10          	or     %rcx,0x10(%r10)
1800335f2:	49 8b 0c fa          	mov    (%r10,%rdi,8),%rcx
1800335f6:	45 85 db             	test   %r11d,%r11d
1800335f9:	74 08                	je     0x180033603
1800335fb:	48 85 c9             	test   %rcx,%rcx
1800335fe:	74 40                	je     0x180033640
180033600:	49 33 ca             	xor    %r10,%rcx
180033603:	48 85 c9             	test   %rcx,%rcx
180033606:	74 38                	je     0x180033640
180033608:	48 8b 59 10          	mov    0x10(%rcx),%rbx
18003360c:	48 8b c3             	mov    %rbx,%rax
18003360f:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
180033613:	45 85 db             	test   %r11d,%r11d
180033616:	74 08                	je     0x180033620
180033618:	48 85 c0             	test   %rax,%rax
18003361b:	74 03                	je     0x180033620
18003361d:	48 33 c1             	xor    %rcx,%rax
180033620:	49 3b c2             	cmp    %r10,%rax
180033623:	0f 85 05 02 00 00    	jne    0x18003382e
180033629:	48 8b c1             	mov    %rcx,%rax
18003362c:	49 33 c0             	xor    %r8,%rax
18003362f:	45 85 db             	test   %r11d,%r11d
180033632:	49 0f 44 c0          	cmove  %r8,%rax
180033636:	83 e3 03             	and    $0x3,%ebx
180033639:	48 0b c3             	or     %rbx,%rax
18003363c:	48 89 41 10          	mov    %rax,0x10(%rcx)
180033640:	45 85 db             	test   %r11d,%r11d
180033643:	74 08                	je     0x18003364d
180033645:	48 85 c9             	test   %rcx,%rcx
180033648:	74 03                	je     0x18003364d
18003364a:	49 33 c8             	xor    %r8,%rcx
18003364d:	49 89 0c f0          	mov    %rcx,(%r8,%rsi,8)
180033651:	49 8b ca             	mov    %r10,%rcx
180033654:	49 33 c8             	xor    %r8,%rcx
180033657:	45 85 db             	test   %r11d,%r11d
18003365a:	48 8b c1             	mov    %rcx,%rax
18003365d:	49 0f 44 c0          	cmove  %r8,%rax
180033661:	49 89 04 fa          	mov    %rax,(%r10,%rdi,8)
180033665:	49 83 60 10 03       	andq   $0x3,0x10(%r8)
18003366a:	45 85 db             	test   %r11d,%r11d
18003366d:	4d 8b d8             	mov    %r8,%r11
180033670:	49 0f 44 ca          	cmove  %r10,%rcx
180033674:	49 09 48 10          	or     %rcx,0x10(%r8)
180033678:	4d 8b c2             	mov    %r10,%r8
18003367b:	41 8a 40 10          	mov    0x10(%r8),%al
18003367f:	32 42 10             	xor    0x10(%rdx),%al
180033682:	41 22 c7             	and    %r15b,%al
180033685:	41 30 40 10          	xor    %al,0x10(%r8)
180033689:	80 62 10 fe          	andb   $0xfe,0x10(%rdx)
18003368d:	41 80 63 10 fe       	andb   $0xfe,0x10(%r11)
180033692:	4d 8b 11             	mov    (%r9),%r10
180033695:	45 84 79 08          	test   %r15b,0x8(%r9)
180033699:	74 08                	je     0x1800336a3
18003369b:	4d 85 d2             	test   %r10,%r10
18003369e:	74 03                	je     0x1800336a3
1800336a0:	4d 33 d1             	xor    %r9,%r10
1800336a3:	49 8b 40 10          	mov    0x10(%r8),%rax
1800336a7:	45 0f b6 59 08       	movzbl 0x8(%r9),%r11d
1800336ac:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
1800336b0:	45 23 df             	and    %r15d,%r11d
1800336b3:	74 08                	je     0x1800336bd
1800336b5:	48 85 c0             	test   %rax,%rax
1800336b8:	74 03                	je     0x1800336bd
1800336ba:	49 33 c0             	xor    %r8,%rax
1800336bd:	48 3b c2             	cmp    %rdx,%rax
1800336c0:	0f 85 68 01 00 00    	jne    0x18003382e
1800336c6:	48 8b 04 ea          	mov    (%rdx,%rbp,8),%rax
1800336ca:	45 85 db             	test   %r11d,%r11d
1800336cd:	74 08                	je     0x1800336d7
1800336cf:	48 85 c0             	test   %rax,%rax
1800336d2:	74 03                	je     0x1800336d7
1800336d4:	48 33 c2             	xor    %rdx,%rax
1800336d7:	49 3b c0             	cmp    %r8,%rax
1800336da:	0f 85 4e 01 00 00    	jne    0x18003382e
1800336e0:	48 8b 4a 10          	mov    0x10(%rdx),%rcx
1800336e4:	48 83 e1 fc          	and    $0xfffffffffffffffc,%rcx
1800336e8:	45 85 db             	test   %r11d,%r11d
1800336eb:	74 08                	je     0x1800336f5
1800336ed:	48 85 c9             	test   %rcx,%rcx
1800336f0:	74 08                	je     0x1800336fa
1800336f2:	48 33 ca             	xor    %rdx,%rcx
1800336f5:	48 85 c9             	test   %rcx,%rcx
1800336f8:	75 0e                	jne    0x180033708
1800336fa:	4c 3b d2             	cmp    %rdx,%r10
1800336fd:	0f 85 2b 01 00 00    	jne    0x18003382e
180033703:	4d 8b d0             	mov    %r8,%r10
180033706:	eb 52                	jmp    0x18003375a
180033708:	48 8b 41 08          	mov    0x8(%rcx),%rax
18003370c:	45 85 db             	test   %r11d,%r11d
18003370f:	74 08                	je     0x180033719
180033711:	48 85 c0             	test   %rax,%rax
180033714:	74 03                	je     0x180033719
180033716:	48 33 c1             	xor    %rcx,%rax
180033719:	48 3b c2             	cmp    %rdx,%rax
18003371c:	75 13                	jne    0x180033731
18003371e:	48 8b c1             	mov    %rcx,%rax
180033721:	49 33 c0             	xor    %r8,%rax
180033724:	45 85 db             	test   %r11d,%r11d
180033727:	49 0f 44 c0          	cmove  %r8,%rax
18003372b:	48 89 41 08          	mov    %rax,0x8(%rcx)
18003372f:	eb 29                	jmp    0x18003375a
180033731:	48 8b 01             	mov    (%rcx),%rax
180033734:	45 85 db             	test   %r11d,%r11d
180033737:	74 08                	je     0x180033741
180033739:	48 85 c0             	test   %rax,%rax
18003373c:	74 03                	je     0x180033741
18003373e:	48 33 c1             	xor    %rcx,%rax
180033741:	48 3b c2             	cmp    %rdx,%rax
180033744:	0f 85 e4 00 00 00    	jne    0x18003382e
18003374a:	48 8b c1             	mov    %rcx,%rax
18003374d:	49 33 c0             	xor    %r8,%rax
180033750:	45 85 db             	test   %r11d,%r11d
180033753:	49 0f 44 c0          	cmove  %r8,%rax
180033757:	48 89 01             	mov    %rax,(%rcx)
18003375a:	45 85 db             	test   %r11d,%r11d
18003375d:	74 08                	je     0x180033767
18003375f:	48 85 c9             	test   %rcx,%rcx
180033762:	74 03                	je     0x180033767
180033764:	49 33 c8             	xor    %r8,%rcx
180033767:	49 83 60 10 03       	andq   $0x3,0x10(%r8)
18003376c:	49 09 48 10          	or     %rcx,0x10(%r8)
180033770:	41 8b fe             	mov    %r14d,%edi
180033773:	49 8d 34 f8          	lea    (%r8,%rdi,8),%rsi
180033777:	48 8b 0e             	mov    (%rsi),%rcx
18003377a:	45 85 db             	test   %r11d,%r11d
18003377d:	74 08                	je     0x180033787
18003377f:	48 85 c9             	test   %rcx,%rcx
180033782:	74 40                	je     0x1800337c4
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