180057676:	8d 04 89             	lea    (%rcx,%rcx,4),%eax
180057679:	c1 e0 03             	shl    $0x3,%eax
18005767c:	8b c8                	mov    %eax,%ecx
18005767e:	44 8b e0             	mov    %eax,%r12d
180057681:	e8 8e f2 fe ff       	call   0x180046914
180057686:	4c 8b f8             	mov    %rax,%r15
180057689:	48 85 c0             	test   %rax,%rax
18005768c:	75 1c                	jne    0x1800576aa
18005768e:	48 8b 07             	mov    (%rdi),%rax
180057691:	41 8d 57 01          	lea    0x1(%r15),%edx
180057695:	48 8b cf             	mov    %rdi,%rcx
180057698:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
18005769d:	48 8b 00             	mov    (%rax),%rax
1800576a0:	ff d0                	call   *%rax
1800576a2:	0f 1f 00             	nopl   (%rax)
1800576a5:	e9 45 01 00 00       	jmp    0x1800577ef
1800576aa:	49 8b 56 08          	mov    0x8(%r14),%rdx
1800576ae:	4d 8b c4             	mov    %r12,%r8
1800576b1:	49 8b cf             	mov    %r15,%rcx
1800576b4:	e8 07 e3 0d 00       	call   0x1801359c0
1800576b9:	49 8b 46 08          	mov    0x8(%r14),%rax
1800576bd:	48 8b 48 10          	mov    0x10(%rax),%rcx
1800576c1:	48 89 4f 78          	mov    %rcx,0x78(%rdi)
1800576c5:	49 8b 46 08          	mov    0x8(%r14),%rax
1800576c9:	8b 48 08             	mov    0x8(%rax),%ecx
1800576cc:	89 8f 80 00 00 00    	mov    %ecx,0x80(%rdi)
1800576d2:	49 8b 46 08          	mov    0x8(%r14),%rax
1800576d6:	8b 48 0c             	mov    0xc(%rax),%ecx
1800576d9:	89 8f 84 00 00 00    	mov    %ecx,0x84(%rdi)
1800576df:	41 8b 46 10          	mov    0x10(%r14),%eax
1800576e3:	89 87 f0 00 00 00    	mov    %eax,0xf0(%rdi)
1800576e9:	49 8b 06             	mov    (%r14),%rax
1800576ec:	48 89 87 f8 00 00 00 	mov    %rax,0xf8(%rdi)
1800576f3:	4c 89 bf 00 01 00 00 	mov    %r15,0x100(%rdi)
1800576fa:	48 81 c7 b0 00 00 00 	add    $0xb0,%rdi
180057701:	48 8b 46 08          	mov    0x8(%rsi),%rax
180057705:	48 8b 88 50 01 00 00 	mov    0x150(%rax),%rcx
18005770c:	48 81 c1 28 01 00 00 	add    $0x128,%rcx
180057713:	48 8b 41 08          	mov    0x8(%rcx),%rax
180057717:	48 39 08             	cmp    %rcx,(%rax)
18005771a:	74 07                	je     0x180057723
18005771c:	b9 03 00 00 00       	mov    $0x3,%ecx
180057721:	cd 29                	int    $0x29
180057723:	48 89 0f             	mov    %rcx,(%rdi)
180057726:	48 89 47 08          	mov    %rax,0x8(%rdi)
18005772a:	48 89 38             	mov    %rdi,(%rax)
18005772d:	48 89 79 08          	mov    %rdi,0x8(%rcx)
180057731:	48 8b 46 08          	mov    0x8(%rsi),%rax
180057735:	48 8b 88 50 01 00 00 	mov    0x150(%rax),%rcx
18005773c:	ff 81 24 01 00 00    	incl   0x124(%rcx)
180057742:	e9 a8 00 00 00       	jmp    0x1800577ef
180057747:	48 8b 4e 20          	mov    0x20(%rsi),%rcx
18005774b:	48 85 c9             	test   %rcx,%rcx
18005774e:	74 06                	je     0x180057756
180057750:	48 83 c1 58          	add    $0x58,%rcx
180057754:	eb 08                	jmp    0x18005775e
180057756:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
18005775a:	48 83 c1 50          	add    $0x50,%rcx
18005775e:	41 8b 41 0c          	mov    0xc(%r9),%eax
180057762:	33 d2                	xor    %edx,%edx
180057764:	f7 71 08             	divl   0x8(%rcx)
180057767:	41 89 41 0c          	mov    %eax,0xc(%r9)
18005776b:	4d 8b 4e 08          	mov    0x8(%r14),%r9
18005776f:	4d 8b 41 10          	mov    0x10(%r9),%r8
180057773:	49 8b 06             	mov    (%r14),%rax
180057776:	4c 89 45 e8          	mov    %r8,-0x18(%rbp)
18005777a:	41 8b 51 08          	mov    0x8(%r9),%edx
18005777e:	89 55 f0             	mov    %edx,-0x10(%rbp)
180057781:	45 8b 51 0c          	mov    0xc(%r9),%r10d
180057785:	48 89 45 50          	mov    %rax,0x50(%rbp)
180057789:	44 89 55 f4          	mov    %r10d,-0xc(%rbp)
18005778d:	49 8b 49 18          	mov    0x18(%r9),%rcx
180057791:	48 2b 4e 10          	sub    0x10(%rsi),%rcx
180057795:	48 89 4d 58          	mov    %rcx,0x58(%rbp)
180057799:	41 8b 41 04          	mov    0x4(%r9),%eax
18005779d:	4d 8b c8             	mov    %r8,%r9
1800577a0:	8a 4e 2a             	mov    0x2a(%rsi),%cl
1800577a3:	89 45 60             	mov    %eax,0x60(%rbp)
1800577a6:	48 8d 44 24 70       	lea    0x70(%rsp),%rax
1800577ab:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
1800577b0:	41 8b 46 10          	mov    0x10(%r14),%eax
1800577b4:	89 44 24 5c          	mov    %eax,0x5c(%rsp)
1800577b8:	41 0f b6 46 14       	movzbl 0x14(%r14),%eax
1800577bd:	89 44 24 60          	mov    %eax,0x60(%rsp)
1800577c1:	48 8d 44 24 40       	lea    0x40(%rsp),%rax
1800577c6:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
1800577cb:	48 8d 05 a2 cd ff ff 	lea    -0x325e(%rip),%rax        # 0x180054574
1800577d2:	49 d3 e9             	shr    %cl,%r9
1800577d5:	48 8b 4e 40          	mov    0x40(%rsi),%rcx
1800577d9:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
1800577de:	44 89 54 24 20       	mov    %r10d,0x20(%rsp)
1800577e3:	48 89 74 24 40       	mov    %rsi,0x40(%rsp)
1800577e8:	e8 a3 39 00 00       	call   0x18005b190
1800577ed:	8b d8                	mov    %eax,%ebx
1800577ef:	48 8d 05 72 b6 0e 00 	lea    0xeb672(%rip),%rax        # 0x180142e68
1800577f6:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
1800577fb:	48 89 44 24 70       	mov    %rax,0x70(%rsp)
180057800:	e8 33 f8 fe ff       	call   0x180047038
180057805:	4c 8d 9c 24 70 01 00 	lea    0x170(%rsp),%r11
18005780c:	00
18005780d:	8b c3                	mov    %ebx,%eax
18005780f:	49 8b 5b 20          	mov    0x20(%r11),%rbx
180057813:	49 8b 73 28          	mov    0x28(%r11),%rsi
180057817:	49 8b 7b 30          	mov    0x30(%r11),%rdi
18005781b:	4d 8b 63 38          	mov    0x38(%r11),%r12
18005781f:	49 8b e3             	mov    %r11,%rsp
180057822:	41 5f                	pop    %r15
180057824:	41 5e                	pop    %r14
180057826:	5d                   	pop    %rbp
180057827:	c3                   	ret
180057828:	cc                   	int3
180057829:	cc                   	int3
18005782a:	cc                   	int3
18005782b:	cc                   	int3
18005782c:	4c 8b dc             	mov    %rsp,%r11
18005782f:	49 89 5b 08          	mov    %rbx,0x8(%r11)
180057833:	49 89 6b 10          	mov    %rbp,0x10(%r11)
180057837:	49 89 73 18          	mov    %rsi,0x18(%r11)
18005783b:	57                   	push   %rdi
18005783c:	41 56                	push   %r14
18005783e:	41 57                	push   %r15
180057840:	48 83 ec 40          	sub    $0x40,%rsp
180057844:	8b 7a 08             	mov    0x8(%rdx),%edi
180057847:	33 c0                	xor    %eax,%eax
180057849:	4c 8b fa             	mov    %rdx,%r15
18005784c:	0f 57 c0             	xorps  %xmm0,%xmm0
18005784f:	0f 11 44 24 20       	movups %xmm0,0x20(%rsp)
180057854:	49 89 43 d8          	mov    %rax,-0x28(%r11)
180057858:	48 8b e9             	mov    %rcx,%rbp
18005785b:	48 8b 02             	mov    (%rdx),%rax
18005785e:	33 d2                	xor    %edx,%edx
180057860:	44 8b 70 30          	mov    0x30(%rax),%r14d
180057864:	48 8b 41 08          	mov    0x8(%rcx),%rax
180057868:	48 8d 0c bf          	lea    (%rdi,%rdi,4),%rcx
18005786c:	4c 8b 80 50 01 00 00 	mov    0x150(%rax),%r8
180057873:	49 8b 47 10          	mov    0x10(%r15),%rax
180057877:	49 8b 58 28          	mov    0x28(%r8),%rbx
18005787b:	48 8d 34 c8          	lea    (%rax,%rcx,8),%rsi
18005787f:	48 8b 5b 18          	mov    0x18(%rbx),%rbx
180057883:	eb 53                	jmp    0x1800578d8
180057885:	4c 8b 46 18          	mov    0x18(%rsi),%r8
180057889:	4c 8b 4d 10          	mov    0x10(%rbp),%r9
18005788d:	4d 3b c1             	cmp    %r9,%r8
180057890:	72 40                	jb     0x1800578d2
180057892:	48 8b 45 08          	mov    0x8(%rbp),%rax
180057896:	48 8b 40 70          	mov    0x70(%rax),%rax
18005789a:	49 03 c1             	add    %r9,%rax
18005789d:	4c 3b c0             	cmp    %rax,%r8
1800578a0:	73 3b                	jae    0x1800578dd
1800578a2:	48 8b 46 20          	mov    0x20(%rsi),%rax
1800578a6:	48 3b c3             	cmp    %rbx,%rax
1800578a9:	72 27                	jb     0x1800578d2
1800578ab:	83 4c 24 30 ff       	orl    $0xffffffff,0x30(%rsp)
1800578b0:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800578b5:	48 8b cd             	mov    %rbp,%rcx
1800578b8:	48 89 74 24 28       	mov    %rsi,0x28(%rsp)
1800578bd:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1800578c2:	c6 44 24 34 01       	movb   $0x1,0x34(%rsp)
1800578c7:	e8 90 fc ff ff       	call   0x18005755c
1800578cc:	8b d0                	mov    %eax,%edx
1800578ce:	85 c0                	test   %eax,%eax
1800578d0:	78 1a                	js     0x1800578ec
1800578d2:	ff c7                	inc    %edi
1800578d4:	48 83 c6 28          	add    $0x28,%rsi
1800578d8:	41 3b fe             	cmp    %r14d,%edi
1800578db:	72 a8                	jb     0x180057885
1800578dd:	41 3b fe             	cmp    %r14d,%edi
1800578e0:	41 89 7f 08          	mov    %edi,0x8(%r15)
1800578e4:	b8 02 00 e7 00       	mov    $0xe70002,%eax
1800578e9:	0f 44 d0             	cmove  %eax,%edx
1800578ec:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1800578f1:	8b c2                	mov    %edx,%eax
1800578f3:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
1800578f8:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
1800578fd:	48 83 c4 40          	add    $0x40,%rsp
180057901:	41 5f                	pop    %r15
180057903:	41 5e                	pop    %r14
180057905:	5f                   	pop    %rdi
180057906:	c3                   	ret
180057907:	cc                   	int3
180057908:	48 8b c4             	mov    %rsp,%rax
18005790b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18005790f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180057913:	48 89 70 18          	mov    %rsi,0x18(%rax)
180057917:	48 89 78 20          	mov    %rdi,0x20(%rax)
18005791b:	41 54                	push   %r12
18005791d:	41 56                	push   %r14
18005791f:	41 57                	push   %r15
180057921:	48 83 ec 30          	sub    $0x30,%rsp
180057925:	44 8b 42 2c          	mov    0x2c(%rdx),%r8d
180057929:	48 8b da             	mov    %rdx,%rbx
18005792c:	44 8b 72 28          	mov    0x28(%rdx),%r14d
180057930:	48 8b f9             	mov    %rcx,%rdi
180057933:	41 8b d6             	mov    %r14d,%edx
180057936:	e8 41 9a ff ff       	call   0x18005137c
18005793b:	48 8b 51 08          	mov    0x8(%rcx),%rdx
18005793f:	44 8b f8             	mov    %eax,%r15d
180057942:	44 8a 63 39          	mov    0x39(%rbx),%r12b
180057946:	0f b6 5b 38          	movzbl 0x38(%rbx),%ebx
18005794a:	48 8b aa a8 00 00 00 	mov    0xa8(%rdx),%rbp
180057951:	83 f8 ff             	cmp    $0xffffffff,%eax
180057954:	75 0c                	jne    0x180057962
180057956:	48 ff 85 68 01 00 00 	incq   0x168(%rbp)
18005795d:	e9 bc 00 00 00       	jmp    0x180057a1e
180057962:	45 8b c7             	mov    %r15d,%r8d
180057965:	41 8b d6             	mov    %r14d,%edx
180057968:	e8 e3 99 ff ff       	call   0x180051350
18005796d:	48 8b f0             	mov    %rax,%rsi
180057970:	8b c3                	mov    %ebx,%eax
180057972:	84 db                	test   %bl,%bl
180057974:	74 28                	je     0x18005799e
180057976:	83 f8 01             	cmp    $0x1,%eax
180057979:	75 28                	jne    0x1800579a3
18005797b:	48 8b d6             	mov    %rsi,%rdx
18005797e:	e8 39 9a ff ff       	call   0x1800513bc
180057983:	48 85 c0             	test   %rax,%rax
180057986:	75 04                	jne    0x18005798c
180057988:	b3 02                	mov    $0x2,%bl
18005798a:	eb 17                	jmp    0x1800579a3
18005798c:	8a 46 02             	mov    0x2(%rsi),%al
18005798f:	24 0f                	and    $0xf,%al
180057991:	3c 01                	cmp    $0x1,%al
180057993:	75 0e                	jne    0x1800579a3
180057995:	48 ff 85 68 01 00 00 	incq   0x168(%rbp)
18005799c:	eb 05                	jmp    0x1800579a3
18005799e:	b3 03                	mov    $0x3,%bl
1800579a0:	44 8a e3             	mov    %bl,%r12b
1800579a3:	44 8a cb             	mov    %bl,%r9b
1800579a6:	44 88 64 24 20       	mov    %r12b,0x20(%rsp)
1800579ab:	45 8b c7             	mov    %r15d,%r8d
1800579ae:	41 8b d6             	mov    %r14d,%edx
1800579b1:	48 8b cf             	mov    %rdi,%rcx
1800579b4:	e8 4f df ff ff       	call   0x180055908
1800579b9:	84 db                	test   %bl,%bl
1800579bb:	74 53                	je     0x180057a10
1800579bd:	80 fb 02             	cmp    $0x2,%bl
1800579c0:	76 5c                	jbe    0x180057a1e
1800579c2:	80 fb 03             	cmp    $0x3,%bl
1800579c5:	75 49                	jne    0x180057a10
1800579c7:	48 8b 5f 08          	mov    0x8(%rdi),%rbx
1800579cb:	8b 43 2c             	mov    0x2c(%rbx),%eax
1800579ce:	a8 10                	test   $0x10,%al
1800579d0:	74 3e                	je     0x180057a10
1800579d2:	48 8b d6             	mov    %rsi,%rdx
1800579d5:	48 8b cf             	mov    %rdi,%rcx
1800579d8:	e8 27 9a ff ff       	call   0x180051404
1800579dd:	4c 8b 4f 20          	mov    0x20(%rdi),%r9
1800579e1:	48 8d 4b 30          	lea    0x30(%rbx),%rcx
1800579e5:	48 8b 56 08          	mov    0x8(%rsi),%rdx
1800579e9:	4d 85 c9             	test   %r9,%r9
1800579ec:	4d 8d 41 38          	lea    0x38(%r9),%r8
1800579f0:	4c 0f 44 c1          	cmove  %rcx,%r8
1800579f4:	48 8b c8             	mov    %rax,%rcx
1800579f7:	4d 8b 40 08          	mov    0x8(%r8),%r8
1800579fb:	e8 fc ff fd ff       	call   0x1800379fc
180057a00:	84 c0                	test   %al,%al
180057a02:	74 0c                	je     0x180057a10
180057a04:	0f b7 06             	movzwl (%rsi),%eax
180057a07:	66 83 c8 40          	or     $0x40,%ax
180057a0b:	66 89 06             	mov    %ax,(%rsi)
180057a0e:	eb 0e                	jmp    0x180057a1e
180057a10:	45 8b c7             	mov    %r15d,%r8d
180057a13:	41 8b d6             	mov    %r14d,%edx
180057a16:	48 8b cf             	mov    %rdi,%rcx
180057a19:	e8 be dd ff ff       	call   0x1800557dc
180057a1e:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180057a23:	33 c0                	xor    %eax,%eax
180057a25:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180057a2a:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
180057a2f:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
180057a34:	48 83 c4 30          	add    $0x30,%rsp
180057a38:	41 5f                	pop    %r15
180057a3a:	41 5e                	pop    %r14
180057a3c:	41 5c                	pop    %r12
180057a3e:	c3                   	ret
180057a3f:	cc                   	int3
180057a40:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180057a45:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
180057a4a:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
180057a4f:	57                   	push   %rdi
180057a50:	41 54                	push   %r12
180057a52:	41 55                	push   %r13
180057a54:	41 56                	push   %r14
180057a56:	41 57                	push   %r15
180057a58:	48 83 ec 20          	sub    $0x20,%rsp
180057a5c:	48 8b d9             	mov    %rcx,%rbx
180057a5f:	48 8b f2             	mov    %rdx,%rsi
180057a62:	48 8b 49 20          	mov    0x20(%rcx),%rcx
180057a66:	48 85 c9             	test   %rcx,%rcx
180057a69:	74 06                	je     0x180057a71
180057a6b:	48 83 c1 58          	add    $0x58,%rcx
180057a6f:	eb 08                	jmp    0x180057a79
180057a71:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
180057a75:	48 83 c1 50          	add    $0x50,%rcx
180057a79:	0f b6 43 2b          	movzbl 0x2b(%rbx),%eax
180057a7d:	41 bd 01 00 00 00    	mov    $0x1,%r13d
180057a83:	8b 49 10             	mov    0x10(%rcx),%ecx
180057a86:	0f af c8             	imul   %eax,%ecx
180057a89:	39 4a 04             	cmp    %ecx,0x4(%rdx)
180057a8c:	73 04                	jae    0x180057a92
180057a8e:	44 88 6a 02          	mov    %r13b,0x2(%rdx)
180057a92:	33 ed                	xor    %ebp,%ebp
180057a94:	44 8d 7d 02          	lea    0x2(%rbp),%r15d
180057a98:	48 8b 43 20          	mov    0x20(%rbx),%rax
180057a9c:	48 85 c0             	test   %rax,%rax
180057a9f:	74 06                	je     0x180057aa7
180057aa1:	48 83 c0 58          	add    $0x58,%rax
180057aa5:	eb 08                	jmp    0x180057aaf
180057aa7:	48 8b 43 08          	mov    0x8(%rbx),%rax
180057aab:	48 83 c0 50          	add    $0x50,%rax
180057aaf:	3b 68 10             	cmp    0x10(%rax),%ebp
180057ab2:	0f 83 ca 00 00 00    	jae    0x180057b82
180057ab8:	45 33 f6             	xor    %r14d,%r14d
180057abb:	44 38 73 2b          	cmp    %r14b,0x2b(%rbx)
180057abf:	0f 86 b5 00 00 00    	jbe    0x180057b7a
180057ac5:	45 8b c6             	mov    %r14d,%r8d
180057ac8:	8b d5                	mov    %ebp,%edx
180057aca:	48 8b cb             	mov    %rbx,%rcx
180057acd:	e8 7e 98 ff ff       	call   0x180051350
180057ad2:	48 8b f8             	mov    %rax,%rdi
180057ad5:	8a 40 02             	mov    0x2(%rax),%al
180057ad8:	24 0f                	and    $0xf,%al
180057ada:	2c 07                	sub    $0x7,%al
180057adc:	41 3a c5             	cmp    %r13b,%al
180057adf:	0f 86 85 00 00 00    	jbe    0x180057b6a
180057ae5:	44 38 6e 02          	cmp    %r13b,0x2(%rsi)
180057ae9:	75 33                	jne    0x180057b1e
180057aeb:	44 8b 4f 10          	mov    0x10(%rdi),%r9d
180057aef:	44 8b c5             	mov    %ebp,%r8d
180057af2:	48 8b 53 10          	mov    0x10(%rbx),%rdx
180057af6:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
180057afa:	e8 41 21 fe ff       	call   0x180039c40
180057aff:	48 8b c8             	mov    %rax,%rcx
180057b02:	8a 47 03             	mov    0x3(%rdi),%al
180057b05:	24 0f                	and    $0xf,%al
180057b07:	41 3a c5             	cmp    %r13b,%al
180057b0a:	75 5e                	jne    0x180057b6a
180057b0c:	e8 5f 6e 0e 00       	call   0x18013e970
180057b11:	44 84 68 4c          	test   %r13b,0x4c(%rax)
180057b15:	75 53                	jne    0x180057b6a
180057b17:	0f b7 07             	movzwl (%rdi),%eax
180057b1a:	a8 04                	test   $0x4,%al
180057b1c:	75 4c                	jne    0x180057b6a
180057b1e:	44 8b 47 14          	mov    0x14(%rdi),%r8d
180057b22:	41 83 f8 ff          	cmp    $0xffffffff,%r8d
180057b26:	74 32                	je     0x180057b5a
180057b28:	8b d5                	mov    %ebp,%edx
180057b2a:	48 8b cb             	mov    %rbx,%rcx
180057b2d:	e8 1e 98 ff ff       	call   0x180051350
180057b32:	8a 48 03             	mov    0x3(%rax),%cl