18009651a:	40 2a ea             	sub    %dl,%bpl
18009651d:	44 88 64 24 32       	mov    %r12b,0x32(%rsp)
180096522:	41 3a ec             	cmp    %r12b,%bpl
180096525:	40 0f b6 c5          	movzbl %bpl,%eax
180096529:	41 0f 42 c4          	cmovb  %r12d,%eax
18009652d:	0f b6 e8             	movzbl %al,%ebp
180096530:	66 0f 6e c5          	movd   %ebp,%xmm0
180096534:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
180096538:	f2 0f 59 c6          	mulsd  %xmm6,%xmm0
18009653c:	f2 0f 2c c0          	cvttsd2si %xmm0,%eax
180096540:	89 44 24 48          	mov    %eax,0x48(%rsp)
180096544:	d0 eb                	shr    $1,%bl
180096546:	41 3a dc             	cmp    %r12b,%bl
180096549:	0f b6 c3             	movzbl %bl,%eax
18009654c:	41 0f 42 c4          	cmovb  %r12d,%eax
180096550:	8a d8                	mov    %al,%bl
180096552:	88 1d d2 a3 0d 00    	mov    %bl,0xda3d2(%rip)        # 0x18017092a
180096558:	81 fe 01 00 00 c0    	cmp    $0xc0000001,%esi
18009655e:	75 1a                	jne    0x18009657a
180096560:	45 85 ed             	test   %r13d,%r13d
180096563:	75 15                	jne    0x18009657a
180096565:	0f b7 05 b8 a3 0d 00 	movzwl 0xda3b8(%rip),%eax        # 0x180170924
18009656c:	66 41 03 c4          	add    %r12w,%ax
180096570:	4c 8b 64 24 50       	mov    0x50(%rsp),%r12
180096575:	e9 d2 00 00 00       	jmp    0x18009664c
18009657a:	0f b7 3d ab a3 0e 00 	movzwl 0xea3ab(%rip),%edi        # 0x18018092c
180096581:	4c 8b 64 24 50       	mov    0x50(%rsp),%r12
180096586:	66 41 03 f8          	add    %r8w,%di
18009658a:	41 8b c1             	mov    %r9d,%eax
18009658d:	48 01 84 24 c8 00 00 	add    %rax,0xc8(%rsp)
180096594:	00
180096595:	4c 03 e0             	add    %rax,%r12
180096598:	66 89 3d 8d a3 0e 00 	mov    %di,0xea38d(%rip)        # 0x18018092c
18009659f:	4c 89 64 24 50       	mov    %r12,0x50(%rsp)
1800965a4:	44 38 9c 24 e0 00 00 	cmp    %r11b,0xe0(%rsp)
1800965ab:	00
1800965ac:	74 40                	je     0x1800965ee
1800965ae:	44 8b 6c 24 4c       	mov    0x4c(%rsp),%r13d
1800965b3:	b8 64 00 00 00       	mov    $0x64,%eax
1800965b8:	66 41 ff c5          	inc    %r13w
1800965bc:	44 89 6c 24 4c       	mov    %r13d,0x4c(%rsp)
1800965c1:	66 44 3b e8          	cmp    %ax,%r13w
1800965c5:	72 27                	jb     0x1800965ee
1800965c7:	33 d2                	xor    %edx,%edx
1800965c9:	44 89 5c 24 4c       	mov    %r11d,0x4c(%rsp)
1800965ce:	49 6b c4 64          	imul   $0x64,%r12,%rax
1800965d2:	48 f7 b4 24 d0 00 00 	divq   0xd0(%rsp)
1800965d9:	00
1800965da:	33 d2                	xor    %edx,%edx
1800965dc:	48 8b c8             	mov    %rax,%rcx
1800965df:	e8 10 ce ff ff       	call   0x1800933f4
1800965e4:	0f b7 3d 41 a3 0e 00 	movzwl 0xea341(%rip),%edi        # 0x18018092c
1800965eb:	45 33 db             	xor    %r11d,%r11d
1800965ee:	84 db                	test   %bl,%bl
1800965f0:	74 19                	je     0x18009660b
1800965f2:	44 0f b6 c3          	movzbl %bl,%r8d
1800965f6:	48 8d 0d 33 a3 0f 00 	lea    0xfa333(%rip),%rcx        # 0x180190930
1800965fd:	49 c1 e0 02          	shl    $0x2,%r8
180096601:	33 d2                	xor    %edx,%edx
180096603:	e8 78 f6 09 00       	call   0x180135c80
180096608:	45 33 db             	xor    %r11d,%r11d
18009660b:	b8 00 04 00 00       	mov    $0x400,%eax
180096610:	c7 05 06 a3 0d 00 05 	movl   $0x5,0xda306(%rip)        # 0x180170920
180096617:	00 00 00
18009661a:	66 89 05 05 a3 0d 00 	mov    %ax,0xda305(%rip)        # 0x180170926
180096621:	ba 01 00 00 00       	mov    $0x1,%edx
180096626:	0f b7 c7             	movzwl %di,%eax
180096629:	b9 ff 00 00 00       	mov    $0xff,%ecx
18009662e:	66 2b c2             	sub    %dx,%ax
180096631:	66 2b fa             	sub    %dx,%di
180096634:	66 c1 f8 08          	sar    $0x8,%ax
180096638:	66 23 c1             	and    %cx,%ax
18009663b:	66 c1 e7 08          	shl    $0x8,%di
18009663f:	66 0b c7             	or     %di,%ax
180096642:	66 89 05 df a2 0d 00 	mov    %ax,0xda2df(%rip)        # 0x180170928
180096649:	41 8b c3             	mov    %r11d,%eax
18009664c:	66 89 05 d1 a2 0d 00 	mov    %ax,0xda2d1(%rip)        # 0x180170924
180096653:	66 83 f8 0c          	cmp    $0xc,%ax
180096657:	73 52                	jae    0x1800966ab
180096659:	48 8b bc 24 d0 00 00 	mov    0xd0(%rsp),%rdi
180096660:	00
180096661:	44 8b 94 24 c0 00 00 	mov    0xc0(%rsp),%r10d
180096668:	00
180096669:	e9 97 fb ff ff       	jmp    0x180096205
18009666e:	8b 8c 24 c0 00 00 00 	mov    0xc0(%rsp),%ecx
180096675:	48 8d 15 aa a2 0d 00 	lea    0xda2aa(%rip),%rdx        # 0x180170926
18009667c:	b8 05 00 00 00       	mov    $0x5,%eax
180096681:	c7 05 9b a2 0d 00 00 	movl   $0x500,0xda29b(%rip)        # 0x180170926
180096688:	05 00 00
18009668b:	44 8b c0             	mov    %eax,%r8d
18009668e:	89 05 8c a2 0d 00    	mov    %eax,0xda28c(%rip)        # 0x180170920
180096694:	45 33 c9             	xor    %r9d,%r9d
180096697:	44 88 1d 8c a2 0d 00 	mov    %r11b,0xda28c(%rip)        # 0x18017092a
18009669e:	be 01 00 00 c0       	mov    $0xc0000001,%esi
1800966a3:	e8 e8 05 f9 ff       	call   0x180026c90
1800966a8:	45 33 db             	xor    %r11d,%r11d
1800966ab:	b8 64 00 00 00       	mov    $0x64,%eax
1800966b0:	44 38 9c 24 e0 00 00 	cmp    %r11b,0xe0(%rsp)
1800966b7:	00
1800966b8:	74 09                	je     0x1800966c3
1800966ba:	33 d2                	xor    %edx,%edx
1800966bc:	8b c8                	mov    %eax,%ecx
1800966be:	e8 31 cd ff ff       	call   0x1800933f4
1800966c3:	0f 28 74 24 60       	movaps 0x60(%rsp),%xmm6
1800966c8:	8b c6                	mov    %esi,%eax
1800966ca:	48 83 c4 78          	add    $0x78,%rsp
1800966ce:	41 5f                	pop    %r15
1800966d0:	41 5e                	pop    %r14
1800966d2:	41 5d                	pop    %r13
1800966d4:	41 5c                	pop    %r12
1800966d6:	5f                   	pop    %rdi
1800966d7:	5e                   	pop    %rsi
1800966d8:	5d                   	pop    %rbp
1800966d9:	5b                   	pop    %rbx
1800966da:	c3                   	ret
1800966db:	cc                   	int3
1800966dc:	41 8b f3             	mov    %r11d,%esi
1800966df:	eb ca                	jmp    0x1800966ab
1800966e1:	be 0d 00 00 c0       	mov    $0xc000000d,%esi
1800966e6:	eb c8                	jmp    0x1800966b0
1800966e8:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1800966ed:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1800966f2:	55                   	push   %rbp
1800966f3:	57                   	push   %rdi
1800966f4:	41 54                	push   %r12
1800966f6:	41 56                	push   %r14
1800966f8:	41 57                	push   %r15
1800966fa:	48 8d 6c 24 b0       	lea    -0x50(%rsp),%rbp
1800966ff:	48 81 ec 50 01 00 00 	sub    $0x150,%rsp
180096706:	83 a5 80 00 00 00 00 	andl   $0x0,0x80(%rbp)
18009670d:	33 c0                	xor    %eax,%eax
18009670f:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180096714:	45 8b f9             	mov    %r9d,%r15d
180096717:	89 44 24 28          	mov    %eax,0x28(%rsp)
18009671b:	45 0f b7 e0          	movzwl %r8w,%r12d
18009671f:	48 8b fa             	mov    %rdx,%rdi
180096722:	44 8b f1             	mov    %ecx,%r14d
180096725:	83 f9 ff             	cmp    $0xffffffff,%ecx
180096728:	0f 84 fa 00 00 00    	je     0x180096828
18009672e:	48 85 d2             	test   %rdx,%rdx
180096731:	0f 84 f1 00 00 00    	je     0x180096828
180096737:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
18009673c:	e8 e7 05 f9 ff       	call   0x180026d28
180096741:	8b d8                	mov    %eax,%ebx
180096743:	85 c0                	test   %eax,%eax
180096745:	0f 85 e2 00 00 00    	jne    0x18009682d
18009674b:	8b b5 a0 00 00 00    	mov    0xa0(%rbp),%esi
180096751:	66 39 74 24 42       	cmp    %si,0x42(%rsp)
180096756:	75 07                	jne    0x18009675f
180096758:	83 7c 24 44 01       	cmpl   $0x1,0x44(%rsp)
18009675d:	74 24                	je     0x180096783
18009675f:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
180096764:	66 89 74 24 42       	mov    %si,0x42(%rsp)
180096769:	41 8b ce             	mov    %r14d,%ecx
18009676c:	c7 44 24 44 01 00 00 	movl   $0x1,0x44(%rsp)
180096773:	00
180096774:	e8 17 06 f9 ff       	call   0x180026d90
180096779:	8b d8                	mov    %eax,%ebx
18009677b:	85 c0                	test   %eax,%eax
18009677d:	0f 85 aa 00 00 00    	jne    0x18009682d
180096783:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
180096788:	ba 01 00 00 00       	mov    $0x1,%edx
18009678d:	8b ce                	mov    %esi,%ecx
18009678f:	e8 d4 f7 f8 ff       	call   0x180025f68
180096794:	8b d8                	mov    %eax,%ebx
180096796:	85 c0                	test   %eax,%eax
180096798:	0f 88 8f 00 00 00    	js     0x18009682d
18009679e:	48 8d 77 06          	lea    0x6(%rdi),%rsi
1800967a2:	4c 8d 8d 80 00 00 00 	lea    0x80(%rbp),%r9
1800967a9:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
1800967af:	48 8b d6             	mov    %rsi,%rdx
1800967b2:	41 8b ce             	mov    %r14d,%ecx
1800967b5:	e8 3e 04 f9 ff       	call   0x180026bf8
1800967ba:	8b d8                	mov    %eax,%ebx
1800967bc:	3d 02 01 00 00       	cmp    $0x102,%eax
1800967c1:	74 24                	je     0x1800967e7
1800967c3:	85 c0                	test   %eax,%eax
1800967c5:	78 66                	js     0x18009682d
1800967c7:	8b 85 80 00 00 00    	mov    0x80(%rbp),%eax
1800967cd:	41 3b c7             	cmp    %r15d,%eax
1800967d0:	72 06                	jb     0x1800967d8
1800967d2:	66 44 39 26          	cmp    %r12w,(%rsi)
1800967d6:	74 24                	je     0x1800967fc
1800967d8:	83 f8 04             	cmp    $0x4,%eax
1800967db:	72 0a                	jb     0x1800967e7
1800967dd:	b8 00 05 00 00       	mov    $0x500,%eax
1800967e2:	66 39 06             	cmp    %ax,(%rsi)
1800967e5:	74 19                	je     0x180096800
1800967e7:	8b 4c 24 28          	mov    0x28(%rsp),%ecx
1800967eb:	e8 a0 a8 ff ff       	call   0x180091090
1800967f0:	2b 44 24 20          	sub    0x20(%rsp),%eax
1800967f4:	3b 44 24 24          	cmp    0x24(%rsp),%eax
1800967f8:	73 33                	jae    0x18009682d
1800967fa:	eb a6                	jmp    0x1800967a2
1800967fc:	89 07                	mov    %eax,(%rdi)
1800967fe:	eb 2d                	jmp    0x18009682d
180096800:	b8 00 01 00 00       	mov    $0x100,%eax
180096805:	66 39 47 08          	cmp    %ax,0x8(%rdi)
180096809:	74 16                	je     0x180096821
18009680b:	bb 22 00 00 c0       	mov    $0xc0000022,%ebx
180096810:	b8 00 02 00 00       	mov    $0x200,%eax
180096815:	66 39 47 08          	cmp    %ax,0x8(%rdi)
180096819:	8d 4b df             	lea    -0x21(%rbx),%ecx
18009681c:	0f 45 d9             	cmovne %ecx,%ebx
18009681f:	eb 0c                	jmp    0x18009682d
180096821:	bb 0f 00 00 c0       	mov    $0xc000000f,%ebx
180096826:	eb 05                	jmp    0x18009682d
180096828:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
18009682d:	4c 8d 9c 24 50 01 00 	lea    0x150(%rsp),%r11
180096834:	00
180096835:	8b c3                	mov    %ebx,%eax
180096837:	49 8b 5b 38          	mov    0x38(%r11),%rbx
18009683b:	49 8b 73 40          	mov    0x40(%r11),%rsi
18009683f:	49 8b e3             	mov    %r11,%rsp
180096842:	41 5f                	pop    %r15
180096844:	41 5e                	pop    %r14
180096846:	41 5c                	pop    %r12
180096848:	5f                   	pop    %rdi
180096849:	5d                   	pop    %rbp
18009684a:	c3                   	ret
18009684b:	cc                   	int3
18009684c:	4c 8b dc             	mov    %rsp,%r11
18009684f:	49 89 5b 08          	mov    %rbx,0x8(%r11)
180096853:	49 89 6b 10          	mov    %rbp,0x10(%r11)
180096857:	49 89 73 18          	mov    %rsi,0x18(%r11)
18009685b:	57                   	push   %rdi
18009685c:	48 83 ec 40          	sub    $0x40,%rsp
180096860:	33 c0                	xor    %eax,%eax
180096862:	41 8b e9             	mov    %r9d,%ebp
180096865:	49 89 43 e8          	mov    %rax,-0x18(%r11)
180096869:	41 8b f8             	mov    %r8d,%edi
18009686c:	89 44 24 38          	mov    %eax,0x38(%rsp)
180096870:	48 8b da             	mov    %rdx,%rbx
180096873:	8b f1                	mov    %ecx,%esi
180096875:	83 f9 ff             	cmp    $0xffffffff,%ecx
180096878:	0f 84 02 01 00 00    	je     0x180096980
18009687e:	48 85 d2             	test   %rdx,%rdx
180096881:	0f 84 f9 00 00 00    	je     0x180096980
180096887:	41 8d 40 ff          	lea    -0x1(%r8),%eax
18009688b:	83 f8 3f             	cmp    $0x3f,%eax
18009688e:	0f 87 ec 00 00 00    	ja     0x180096980
180096894:	4d 8d 43 e8          	lea    -0x18(%r11),%r8
180096898:	ba 01 00 00 00       	mov    $0x1,%edx
18009689d:	41 8b c9             	mov    %r9d,%ecx
1800968a0:	e8 c3 f6 f8 ff       	call   0x180025f68
1800968a5:	44 8b c0             	mov    %eax,%r8d
1800968a8:	85 c0                	test   %eax,%eax
1800968aa:	0f 88 d6 00 00 00    	js     0x180096986
1800968b0:	41 b8 00 03 00 00    	mov    $0x300,%r8d
1800968b6:	89 6c 24 20          	mov    %ebp,0x20(%rsp)
1800968ba:	41 b9 04 00 00 00    	mov    $0x4,%r9d
1800968c0:	48 8b d3             	mov    %rbx,%rdx
1800968c3:	8b ce                	mov    %esi,%ecx
1800968c5:	e8 1e fe ff ff       	call   0x1800966e8
1800968ca:	44 8b c0             	mov    %eax,%r8d
1800968cd:	3d 01 00 00 c0       	cmp    $0xc0000001,%eax
1800968d2:	74 7d                	je     0x180096951
1800968d4:	85 c0                	test   %eax,%eax
1800968d6:	0f 88 9c 00 00 00    	js     0x180096978
1800968dc:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
1800968e0:	0f b6 53 09          	movzbl 0x9(%rbx),%edx
1800968e4:	44 0f b7 4b 04       	movzwl 0x4(%rbx),%r9d
1800968e9:	66 c1 e0 08          	shl    $0x8,%ax
1800968ed:	66 0b d0             	or     %ax,%dx
1800968f0:	b8 ff ff 00 00       	mov    $0xffff,%eax
1800968f5:	41 2b c1             	sub    %r9d,%eax
1800968f8:	66 89 53 08          	mov    %dx,0x8(%rbx)
1800968fc:	3b c7                	cmp    %edi,%eax
1800968fe:	72 13                	jb     0x180096913
180096900:	66 41 3b d1          	cmp    %r9w,%dx
180096904:	72 4b                	jb     0x180096951
180096906:	41 8d 0c 39          	lea    (%r9,%rdi,1),%ecx
18009690a:	0f b7 c2             	movzwl %dx,%eax
18009690d:	3b c1                	cmp    %ecx,%eax
18009690f:	73 40                	jae    0x180096951
180096911:	eb 0e                	jmp    0x180096921
180096913:	45 0f b7 d1          	movzwl %r9w,%r10d
180096917:	66 41 f7 da          	neg    %r10w
18009691b:	66 41 3b d1          	cmp    %r9w,%dx
18009691f:	72 06                	jb     0x180096927
180096921:	66 41 2b d1          	sub    %r9w,%dx
180096925:	eb 13                	jmp    0x18009693a
180096927:	41 0f b7 c2          	movzwl %r10w,%eax
18009692b:	8b cf                	mov    %edi,%ecx
18009692d:	2b c8                	sub    %eax,%ecx
18009692f:	0f b7 c2             	movzwl %dx,%eax
180096932:	3b c1                	cmp    %ecx,%eax
180096934:	73 1b                	jae    0x180096951
180096936:	66 41 03 d2          	add    %r10w,%dx
18009693a:	83 7c 24 70 01       	cmpl   $0x1,0x70(%rsp)
18009693f:	75 28                	jne    0x180096969
180096941:	0f b7 c2             	movzwl %dx,%eax
180096944:	48 8d 0d e5 9f 0f 00 	lea    0xf9fe5(%rip),%rcx        # 0x180190930
18009694b:	83 3c 81 00          	cmpl   $0x0,(%rcx,%rax,4)
18009694f:	74 18                	je     0x180096969
180096951:	8b 4c 24 38          	mov    0x38(%rsp),%ecx
180096955:	e8 36 a7 ff ff       	call   0x180091090
18009695a:	2b 44 24 30          	sub    0x30(%rsp),%eax
18009695e:	3b 44 24 34          	cmp    0x34(%rsp),%eax
180096962:	73 14                	jae    0x180096978
180096964:	e9 47 ff ff ff       	jmp    0x1800968b0
180096969:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
18009696e:	48 85 c0             	test   %rax,%rax
180096971:	74 13                	je     0x180096986
180096973:	66 89 10             	mov    %dx,(%rax)
180096976:	eb 0e                	jmp    0x180096986
180096978:	41 b8 01 00 00 c0    	mov    $0xc0000001,%r8d
18009697e:	eb 06                	jmp    0x180096986
180096980:	41 b8 0d 00 00 c0    	mov    $0xc000000d,%r8d
180096986:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
18009698b:	41 8b c0             	mov    %r8d,%eax
18009698e:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180096993:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
180096998:	48 83 c4 40          	add    $0x40,%rsp
18009699c:	5f                   	pop    %rdi
18009699d:	c3                   	ret
18009699e:	cc                   	int3
18009699f:	cc                   	int3
1800969a0:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
1800969a5:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
1800969aa:	55                   	push   %rbp
1800969ab:	53                   	push   %rbx
1800969ac:	56                   	push   %rsi
1800969ad:	57                   	push   %rdi
1800969ae:	41 54                	push   %r12
1800969b0:	41 55                	push   %r13
1800969b2:	41 56                	push   %r14
1800969b4:	41 57                	push   %r15
1800969b6:	48 8d ac 24 78 ff ff 	lea    -0x88(%rsp),%rbp
1800969bd:	ff
1800969be:	48 81 ec 88 01 00 00 	sub    $0x188,%rsp
1800969c5:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
1800969cb:	48 89 54 24 50       	mov    %rdx,0x50(%rsp)
1800969d0:	48 8b fa             	mov    %rdx,%rdi
1800969d3:	44 8b f1             	mov    %ecx,%r14d
1800969d6:	41 3b cf             	cmp    %r15d,%ecx
1800969d9:	0f 84 5c 05 00 00    	je     0x180096f3b
1800969df:	33 f6                	xor    %esi,%esi
1800969e1:	48 85 d2             	test   %rdx,%rdx
1800969e4:	0f 84 51 05 00 00    	je     0x180096f3b
1800969ea:	44 8d 66 01          	lea    0x1(%rsi),%r12d
1800969ee:	8b de                	mov    %esi,%ebx
1800969f0:	66 39 32             	cmp    %si,(%rdx)
1800969f3:	74 1e                	je     0x180096a13
1800969f5:	b9 00 04 00 00       	mov    $0x400,%ecx
1800969fa:	3b d9                	cmp    %ecx,%ebx
1800969fc:	0f 87 39 05 00 00    	ja     0x180096f3b
180096a02:	41 03 dc             	add    %r12d,%ebx
180096a05:	66 39 34 5a          	cmp    %si,(%rdx,%rbx,2)
180096a09:	75 ef                	jne    0x1800969fa