18004956f:	74 08                	je     0x180049579
180049571:	66 44 09 66 12       	or     %r12w,0x12(%rsi)
180049576:	89 4d 60             	mov    %ecx,0x60(%rbp)
180049579:	0f b7 4e 14          	movzwl 0x14(%rsi),%ecx
18004957d:	0f b7 55 48          	movzwl 0x48(%rbp),%edx
180049581:	66 83 ea 08          	sub    $0x8,%dx
180049585:	66 3b d1             	cmp    %cx,%dx
180049588:	66 0f 43 d1          	cmovae %cx,%dx
18004958c:	48 8b c8             	mov    %rax,%rcx
18004958f:	44 0f b7 c2          	movzwl %dx,%r8d
180049593:	48 8d 56 1c          	lea    0x1c(%rsi),%rdx
180049597:	eb 38                	jmp    0x1800495d1
180049599:	0f b7 45 48          	movzwl 0x48(%rbp),%eax
18004959d:	0f b7 55 ec          	movzwl -0x14(%rbp),%edx
1800495a1:	8b c8                	mov    %eax,%ecx
1800495a3:	44 0f b7 4e 14       	movzwl 0x14(%rsi),%r9d
1800495a8:	44 0f b7 c0          	movzwl %ax,%r8d
1800495ac:	0f af d0             	imul   %eax,%edx
1800495af:	41 8b c1             	mov    %r9d,%eax
1800495b2:	83 ea 08             	sub    $0x8,%edx
1800495b5:	2b c2                	sub    %edx,%eax
1800495b7:	3b c8                	cmp    %eax,%ecx
1800495b9:	72 08                	jb     0x1800495c3
1800495bb:	45 0f b7 c1          	movzwl %r9w,%r8d
1800495bf:	66 44 2b c2          	sub    %dx,%r8w
1800495c3:	48 83 c2 1c          	add    $0x1c,%rdx
1800495c7:	45 0f b7 c0          	movzwl %r8w,%r8d
1800495cb:	48 03 d6             	add    %rsi,%rdx
1800495ce:	49 8b ca             	mov    %r10,%rcx
1800495d1:	e8 ea c3 0e 00       	call   0x1801359c0
1800495d6:	33 f6                	xor    %esi,%esi
1800495d8:	45 8b e5             	mov    %r13d,%r12d
1800495db:	4c 8b 45 58          	mov    0x58(%rbp),%r8
1800495df:	ff c7                	inc    %edi
1800495e1:	41 8d 0c 3f          	lea    (%r15,%rdi,1),%ecx
1800495e5:	3b 8b 90 00 00 00    	cmp    0x90(%rbx),%ecx
1800495eb:	0f 82 91 fd ff ff    	jb     0x180049382
1800495f1:	41 8a c6             	mov    %r14b,%al
1800495f4:	48 83 c4 58          	add    $0x58,%rsp
1800495f8:	41 5f                	pop    %r15
1800495fa:	41 5e                	pop    %r14
1800495fc:	41 5d                	pop    %r13
1800495fe:	41 5c                	pop    %r12
180049600:	5f                   	pop    %rdi
180049601:	5e                   	pop    %rsi
180049602:	5b                   	pop    %rbx
180049603:	5d                   	pop    %rbp
180049604:	c3                   	ret
180049605:	cc                   	int3
180049606:	cc                   	int3
180049607:	cc                   	int3
180049608:	48 8b c4             	mov    %rsp,%rax
18004960b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18004960f:	48 89 70 10          	mov    %rsi,0x10(%rax)
180049613:	48 89 78 18          	mov    %rdi,0x18(%rax)
180049617:	55                   	push   %rbp
180049618:	48 8d 68 a1          	lea    -0x5f(%rax),%rbp
18004961c:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
180049623:	4c 8b d9             	mov    %rcx,%r11
180049626:	33 ff                	xor    %edi,%edi
180049628:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18004962d:	8b df                	mov    %edi,%ebx
18004962f:	4c 8b d2             	mov    %rdx,%r10
180049632:	e8 31 d9 ff ff       	call   0x180046f68
180049637:	83 4d b3 04          	orl    $0x4,-0x4d(%rbp)
18004963b:	8d 57 01             	lea    0x1(%rdi),%edx
18004963e:	49 8b 83 c0 00 00 00 	mov    0xc0(%r11),%rax
180049645:	89 55 d7             	mov    %edx,-0x29(%rbp)
180049648:	48 89 45 df          	mov    %rax,-0x21(%rbp)
18004964c:	4c 89 55 ef          	mov    %r10,-0x11(%rbp)
180049650:	44 89 45 f7          	mov    %r8d,-0x9(%rbp)
180049654:	4c 89 4d e7          	mov    %r9,-0x19(%rbp)
180049658:	c6 45 0f 04          	movb   $0x4,0xf(%rbp)
18004965c:	4c 89 5d 47          	mov    %r11,0x47(%rbp)
180049660:	4c 89 5d 4f          	mov    %r11,0x4f(%rbp)
180049664:	4d 85 c9             	test   %r9,%r9
180049667:	74 19                	je     0x180049682
180049669:	49 8b 03             	mov    (%r11),%rax
18004966c:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180049671:	49 8b cb             	mov    %r11,%rcx
180049674:	48 8b 40 08          	mov    0x8(%rax),%rax
180049678:	ff d0                	call   *%rax
18004967a:	0f 1f 00             	nopl   (%rax)
18004967d:	8b 7d 17             	mov    0x17(%rbp),%edi
180049680:	eb 5c                	jmp    0x1800496de
180049682:	49 81 c3 18 01 00 00 	add    $0x118,%r11
180049689:	49 8b 03             	mov    (%r11),%rax
18004968c:	49 3b c3             	cmp    %r11,%rax
18004968f:	74 28                	je     0x1800496b9
180049691:	83 60 20 f7          	andl   $0xfffffff7,0x20(%rax)
180049695:	8b 48 20             	mov    0x20(%rax),%ecx
180049698:	84 ca                	test   %cl,%dl
18004969a:	74 08                	je     0x1800496a4
18004969c:	83 c9 08             	or     $0x8,%ecx
18004969f:	89 48 20             	mov    %ecx,0x20(%rax)
1800496a2:	03 da                	add    %edx,%ebx
1800496a4:	48 8b 00             	mov    (%rax),%rax
1800496a7:	49 3b c3             	cmp    %r11,%rax
1800496aa:	75 e5                	jne    0x180049691
1800496ac:	3b da                	cmp    %edx,%ebx
1800496ae:	76 09                	jbe    0x1800496b9
1800496b0:	8b c3                	mov    %ebx,%eax
1800496b2:	d1 e8                	shr    $1,%eax
1800496b4:	89 45 ff             	mov    %eax,-0x1(%rbp)
1800496b7:	eb 03                	jmp    0x1800496bc
1800496b9:	89 5d ff             	mov    %ebx,-0x1(%rbp)
1800496bc:	8b f7                	mov    %edi,%esi
1800496be:	85 db                	test   %ebx,%ebx
1800496c0:	74 1c                	je     0x1800496de
1800496c2:	48 8b 4d 4f          	mov    0x4f(%rbp),%rcx
1800496c6:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800496cb:	48 8b 01             	mov    (%rcx),%rax
1800496ce:	48 8b 40 08          	mov    0x8(%rax),%rax
1800496d2:	ff d0                	call   *%rax
1800496d4:	0f 1f 00             	nopl   (%rax)
1800496d7:	03 75 ff             	add    -0x1(%rbp),%esi
1800496da:	3b f3                	cmp    %ebx,%esi
1800496dc:	72 e4                	jb     0x1800496c2
1800496de:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800496e3:	e8 50 d9 ff ff       	call   0x180047038
1800496e8:	4c 8d 9c 24 00 01 00 	lea    0x100(%rsp),%r11
1800496ef:	00
1800496f0:	8b c7                	mov    %edi,%eax
1800496f2:	49 8b 5b 10          	mov    0x10(%r11),%rbx
1800496f6:	49 8b 73 18          	mov    0x18(%r11),%rsi
1800496fa:	49 8b 7b 20          	mov    0x20(%r11),%rdi
1800496fe:	49 8b e3             	mov    %r11,%rsp
180049701:	5d                   	pop    %rbp
180049702:	c3                   	ret
180049703:	cc                   	int3
180049704:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180049709:	55                   	push   %rbp
18004970a:	48 8d 6c 24 a9       	lea    -0x57(%rsp),%rbp
18004970f:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
180049716:	4c 8b c9             	mov    %rcx,%r9
180049719:	4c 8b c2             	mov    %rdx,%r8
18004971c:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180049721:	e8 42 d8 ff ff       	call   0x180046f68
180049726:	83 4d b3 04          	orl    $0x4,-0x4d(%rbp)
18004972a:	33 db                	xor    %ebx,%ebx
18004972c:	4c 89 45 e7          	mov    %r8,-0x19(%rbp)
180049730:	c6 45 0f 09          	movb   $0x9,0xf(%rbp)
180049734:	4c 89 4d 47          	mov    %r9,0x47(%rbp)
180049738:	4c 89 4d 4f          	mov    %r9,0x4f(%rbp)
18004973c:	4d 85 c0             	test   %r8,%r8
18004973f:	74 19                	je     0x18004975a
180049741:	49 8b 01             	mov    (%r9),%rax
180049744:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180049749:	49 8b c9             	mov    %r9,%rcx
18004974c:	48 8b 40 08          	mov    0x8(%rax),%rax
180049750:	ff d0                	call   *%rax
180049752:	0f 1f 00             	nopl   (%rax)
180049755:	8b 5d 17             	mov    0x17(%rbp),%ebx
180049758:	eb 41                	jmp    0x18004979b
18004975a:	49 8d 91 18 01 00 00 	lea    0x118(%r9),%rdx
180049761:	48 8b 02             	mov    (%rdx),%rax
180049764:	48 3b c2             	cmp    %rdx,%rax
180049767:	74 1e                	je     0x180049787
180049769:	83 60 20 f7          	andl   $0xfffffff7,0x20(%rax)
18004976d:	8b 48 20             	mov    0x20(%rax),%ecx
180049770:	f6 c1 01             	test   $0x1,%cl
180049773:	74 06                	je     0x18004977b
180049775:	83 c9 08             	or     $0x8,%ecx
180049778:	89 48 20             	mov    %ecx,0x20(%rax)
18004977b:	48 8b 00             	mov    (%rax),%rax
18004977e:	48 3b c2             	cmp    %rdx,%rax
180049781:	75 e6                	jne    0x180049769
180049783:	4c 8b 4d 4f          	mov    0x4f(%rbp),%r9
180049787:	49 8b 01             	mov    (%r9),%rax
18004978a:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
18004978f:	49 8b c9             	mov    %r9,%rcx
180049792:	48 8b 40 08          	mov    0x8(%rax),%rax
180049796:	ff d0                	call   *%rax
180049798:	0f 1f 00             	nopl   (%rax)
18004979b:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800497a0:	e8 93 d8 ff ff       	call   0x180047038
1800497a5:	8b c3                	mov    %ebx,%eax
1800497a7:	48 8b 9c 24 10 01 00 	mov    0x110(%rsp),%rbx
1800497ae:	00
1800497af:	48 81 c4 00 01 00 00 	add    $0x100,%rsp
1800497b6:	5d                   	pop    %rbp
1800497b7:	c3                   	ret
1800497b8:	cc                   	int3
1800497b9:	cc                   	int3
1800497ba:	cc                   	int3
1800497bb:	cc                   	int3
1800497bc:	48 8d 41 08          	lea    0x8(%rcx),%rax
1800497c0:	c3                   	ret
1800497c1:	cc                   	int3
1800497c2:	cc                   	int3
1800497c3:	cc                   	int3
1800497c4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800497c9:	57                   	push   %rdi
1800497ca:	48 83 ec 20          	sub    $0x20,%rsp
1800497ce:	8b 91 08 01 00 00    	mov    0x108(%rcx),%edx
1800497d4:	48 8b f9             	mov    %rcx,%rdi
1800497d7:	32 db                	xor    %bl,%bl
1800497d9:	e8 46 53 0f 00       	call   0x18013eb24
1800497de:	84 c0                	test   %al,%al
1800497e0:	74 29                	je     0x18004980b
1800497e2:	48 8d 97 18 01 00 00 	lea    0x118(%rdi),%rdx
1800497e9:	48 8b 0a             	mov    (%rdx),%rcx
1800497ec:	48 3b ca             	cmp    %rdx,%rcx
1800497ef:	74 1a                	je     0x18004980b
1800497f1:	48 8b 41 10          	mov    0x10(%rcx),%rax
1800497f5:	38 98 f8 01 00 00    	cmp    %bl,0x1f8(%rax)
1800497fb:	75 07                	jne    0x180049804
1800497fd:	8b 41 20             	mov    0x20(%rcx),%eax
180049800:	a8 01                	test   $0x1,%al
180049802:	74 05                	je     0x180049809
180049804:	48 8b 09             	mov    (%rcx),%rcx
180049807:	eb e3                	jmp    0x1800497ec
180049809:	b3 01                	mov    $0x1,%bl
18004980b:	8a c3                	mov    %bl,%al
18004980d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180049812:	48 83 c4 20          	add    $0x20,%rsp
180049816:	5f                   	pop    %rdi
180049817:	c3                   	ret
180049818:	cc                   	int3
180049819:	cc                   	int3
18004981a:	cc                   	int3
18004981b:	cc                   	int3
18004981c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180049821:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180049826:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18004982b:	57                   	push   %rdi
18004982c:	48 83 ec 30          	sub    $0x30,%rsp
180049830:	8b 91 08 01 00 00    	mov    0x108(%rcx),%edx
180049836:	48 8b d9             	mov    %rcx,%rbx
180049839:	33 ed                	xor    %ebp,%ebp
18004983b:	e8 e4 52 0f 00       	call   0x18013eb24
180049840:	84 c0                	test   %al,%al
180049842:	0f 84 8c 00 00 00    	je     0x1800498d4
180049848:	48 8d bb 18 01 00 00 	lea    0x118(%rbx),%rdi
18004984f:	48 8b 37             	mov    (%rdi),%rsi
180049852:	eb 31                	jmp    0x180049885
180049854:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
180049858:	8d 45 01             	lea    0x1(%rbp),%eax
18004985b:	f6 81 cc 01 00 00 02 	testb  $0x2,0x1cc(%rcx)
180049862:	0f 44 c5             	cmove  %ebp,%eax
180049865:	80 b9 f8 01 00 00 00 	cmpb   $0x0,0x1f8(%rcx)
18004986c:	8b e8                	mov    %eax,%ebp
18004986e:	75 12                	jne    0x180049882
180049870:	8b 46 20             	mov    0x20(%rsi),%eax
180049873:	a8 01                	test   $0x1,%al
180049875:	75 0b                	jne    0x180049882
180049877:	48 8b d6             	mov    %rsi,%rdx
18004987a:	48 8b cb             	mov    %rbx,%rcx
18004987d:	e8 6a 00 00 00       	call   0x1800498ec
180049882:	48 8b 36             	mov    (%rsi),%rsi
180049885:	48 3b f7             	cmp    %rdi,%rsi
180049888:	75 ca                	jne    0x180049854
18004988a:	83 bb 08 01 00 00 02 	cmpl   $0x2,0x108(%rbx)
180049891:	75 41                	jne    0x1800498d4
180049893:	48 8b cb             	mov    %rbx,%rcx
180049896:	e8 85 06 00 00       	call   0x180049f20
18004989b:	3b 83 0c 01 00 00    	cmp    0x10c(%rbx),%eax
1800498a1:	75 31                	jne    0x1800498d4
1800498a3:	83 fd 01             	cmp    $0x1,%ebp
1800498a6:	75 2c                	jne    0x1800498d4
1800498a8:	0f 10 05 79 2d 10 00 	movups 0x102d79(%rip),%xmm0        # 0x18014c628
1800498af:	48 8b 1f             	mov    (%rdi),%rbx
1800498b2:	f3 0f 7f 44 24 20    	movdqu %xmm0,0x20(%rsp)
1800498b8:	eb 15                	jmp    0x1800498cf
1800498ba:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
1800498be:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800498c3:	e8 24 74 00 00       	call   0x180050cec
1800498c8:	85 c0                	test   %eax,%eax
1800498ca:	78 08                	js     0x1800498d4
1800498cc:	48 8b 1b             	mov    (%rbx),%rbx
1800498cf:	48 3b df             	cmp    %rdi,%rbx
1800498d2:	75 e6                	jne    0x1800498ba
1800498d4:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1800498d9:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
1800498de:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
1800498e3:	48 83 c4 30          	add    $0x30,%rsp
1800498e7:	5f                   	pop    %rdi
1800498e8:	c3                   	ret
1800498e9:	cc                   	int3
1800498ea:	cc                   	int3
1800498eb:	cc                   	int3
1800498ec:	48 8b c4             	mov    %rsp,%rax
1800498ef:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800498f3:	48 89 68 10          	mov    %rbp,0x10(%rax)
1800498f7:	48 89 70 18          	mov    %rsi,0x18(%rax)
1800498fb:	48 89 78 20          	mov    %rdi,0x20(%rax)
1800498ff:	41 56                	push   %r14
180049901:	48 83 ec 20          	sub    $0x20,%rsp
180049905:	48 8b f9             	mov    %rcx,%rdi
180049908:	48 8b f2             	mov    %rdx,%rsi
18004990b:	48 8b 4a 10          	mov    0x10(%rdx),%rcx
18004990f:	48 8b 52 18          	mov    0x18(%rdx),%rdx
180049913:	44 8b 47 1c          	mov    0x1c(%rdi),%r8d
180049917:	48 8b 01             	mov    (%rcx),%rax
18004991a:	44 0f af 47 18       	imul   0x18(%rdi),%r8d
18004991f:	48 8b 40 68          	mov    0x68(%rax),%rax
180049923:	ff d0                	call   *%rax
180049925:	0f 1f 00             	nopl   (%rax)
180049928:	45 33 c0             	xor    %r8d,%r8d
18004992b:	4c 8d b7 b8 00 00 00 	lea    0xb8(%rdi),%r14
180049932:	41 b9 00 00 01 00    	mov    $0x10000,%r9d
180049938:	49 8b ce             	mov    %r14,%rcx
18004993b:	41 8d 50 03          	lea    0x3(%r8),%edx
18004993f:	e8 58 d2 ff ff       	call   0x180046b9c
180049944:	8b d8                	mov    %eax,%ebx
180049946:	bd 01 00 00 00       	mov    $0x1,%ebp
18004994b:	85 c0                	test   %eax,%eax
18004994d:	78 3b                	js     0x18004998a
18004994f:	8d 55 04             	lea    0x4(%rbp),%edx
180049952:	4c 8b c6             	mov    %rsi,%r8
180049955:	48 8b cf             	mov    %rdi,%rcx
180049958:	e8 f3 f6 ff ff       	call   0x180049050
18004995d:	8b d8                	mov    %eax,%ebx
18004995f:	85 c0                	test   %eax,%eax
180049961:	78 27                	js     0x18004998a
180049963:	48 8b d6             	mov    %rsi,%rdx
180049966:	48 8b cf             	mov    %rdi,%rcx
180049969:	e8 12 f8 ff ff       	call   0x180049180
18004996e:	8b d8                	mov    %eax,%ebx
180049970:	85 c0                	test   %eax,%eax
180049972:	78 16                	js     0x18004998a
180049974:	8b d5                	mov    %ebp,%edx
180049976:	4c 8b c6             	mov    %rsi,%r8
180049979:	48 8b cf             	mov    %rdi,%rcx
18004997c:	e8 cf f6 ff ff       	call   0x180049050
180049981:	8b d8                	mov    %eax,%ebx
180049983:	85 c0                	test   %eax,%eax
180049985:	78 03                	js     0x18004998a
180049987:	09 6e 20             	or     %ebp,0x20(%rsi)
18004998a:	66 89 6f 28          	mov    %bp,0x28(%rdi)
18004998e:	41 83 3e 03          	cmpl   $0x3,(%r14)
180049992:	75 09                	jne    0x18004999d
180049994:	49 8b 4e 08          	mov    0x8(%r14),%rcx
180049998:	e8 bf cf ff ff       	call   0x18004695c
18004999d:	41 83 26 00          	andl   $0x0,(%r14)
1800499a1:	48 8b cf             	mov    %rdi,%rcx
1800499a4:	49 83 66 08 00       	andq   $0x0,0x8(%r14)
1800499a9:	48 8b 07             	mov    (%rdi),%rax
1800499ac:	48 8b 76 10          	mov    0x10(%rsi),%rsi
1800499b0:	48 8b 40 10          	mov    0x10(%rax),%rax
1800499b4:	ff d0                	call   *%rax
1800499b6:	0f 1f 00             	nopl   (%rax)
1800499b9:	4c 8d 86 bc 01 00 00 	lea    0x1bc(%rsi),%r8
1800499c0:	48 8b d0             	mov    %rax,%rdx
1800499c3:	85 db                	test   %ebx,%ebx
1800499c5:	79 0f                	jns    0x1800499d6
1800499c7:	44 8b cb             	mov    %ebx,%r9d
1800499ca:	b9 51 04 00 00       	mov    $0x451,%ecx
1800499cf:	e8 a4 d1 ff ff       	call   0x180046b78
1800499d4:	eb 0a                	jmp    0x1800499e0