1801097c1:	0f 88 32 02 00 00    	js     0x1801099f9
1801097c7:	41 8b 17             	mov    (%r15),%edx
1801097ca:	4c 8b 7d f7          	mov    -0x9(%rbp),%r15
1801097ce:	49 8b cf             	mov    %r15,%rcx
1801097d1:	e8 26 e0 ff ff       	call   0x1801077fc
1801097d6:	45 33 d2             	xor    %r10d,%r10d
1801097d9:	4c 89 55 f7          	mov    %r10,-0x9(%rbp)
1801097dd:	41 8b ca             	mov    %r10d,%ecx
1801097e0:	89 4d ef             	mov    %ecx,-0x11(%rbp)
1801097e3:	41 8b d2             	mov    %r10d,%edx
1801097e6:	89 55 f3             	mov    %edx,-0xd(%rbp)
1801097e9:	45 8b e2             	mov    %r10d,%r12d
1801097ec:	41 8b f2             	mov    %r10d,%esi
1801097ef:	45 85 f6             	test   %r14d,%r14d
1801097f2:	74 7f                	je     0x180109873
1801097f4:	4c 8b 65 67          	mov    0x67(%rbp),%r12
1801097f8:	8b 45 5f             	mov    0x5f(%rbp),%eax
1801097fb:	85 c0                	test   %eax,%eax
1801097fd:	74 04                	je     0x180109803
1801097ff:	3b c6                	cmp    %esi,%eax
180109801:	74 6c                	je     0x18010986f
180109803:	45 0f b7 04 24       	movzwl (%r12),%r8d
180109808:	48 8d 45 df          	lea    -0x21(%rbp),%rax
18010980c:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
180109811:	44 8b c9             	mov    %ecx,%r9d
180109814:	89 54 24 20          	mov    %edx,0x20(%rsp)
180109818:	49 8b cf             	mov    %r15,%rcx
18010981b:	48 8d 57 28          	lea    0x28(%rdi),%rdx
18010981f:	e8 78 05 00 00       	call   0x180109d9c
180109824:	45 33 d2             	xor    %r10d,%r10d
180109827:	8b d8                	mov    %eax,%ebx
180109829:	3d 05 00 00 80       	cmp    $0x80000005,%eax
18010982e:	74 3f                	je     0x18010986f
180109830:	85 c0                	test   %eax,%eax
180109832:	0f 88 c5 01 00 00    	js     0x1801099fd
180109838:	4d 85 ed             	test   %r13,%r13
18010983b:	74 14                	je     0x180109851
18010983d:	41 3b 75 00          	cmp    0x0(%r13),%esi
180109841:	75 0e                	jne    0x180109851
180109843:	48 8b 45 ef          	mov    -0x11(%rbp),%rax
180109847:	8b 4d df             	mov    -0x21(%rbp),%ecx
18010984a:	48 89 45 f7          	mov    %rax,-0x9(%rbp)
18010984e:	89 4d e7             	mov    %ecx,-0x19(%rbp)
180109851:	8b 4d ef             	mov    -0x11(%rbp),%ecx
180109854:	03 4d df             	add    -0x21(%rbp),%ecx
180109857:	89 4d ef             	mov    %ecx,-0x11(%rbp)
18010985a:	3b 4d 07             	cmp    0x7(%rbp),%ecx
18010985d:	77 10                	ja     0x18010986f
18010985f:	ff c6                	inc    %esi
180109861:	49 83 c4 02          	add    $0x2,%r12
180109865:	41 3b f6             	cmp    %r14d,%esi
180109868:	73 05                	jae    0x18010986f
18010986a:	8b 55 f3             	mov    -0xd(%rbp),%edx
18010986d:	eb 89                	jmp    0x1801097f8
18010986f:	44 8b 65 f7          	mov    -0x9(%rbp),%r12d
180109873:	4d 85 ed             	test   %r13,%r13
180109876:	0f 84 8b 00 00 00    	je     0x180109907
18010987c:	41 3b 75 00          	cmp    0x0(%r13),%esi
180109880:	75 12                	jne    0x180109894
180109882:	48 8b 45 ef          	mov    -0x11(%rbp),%rax
180109886:	be 04 00 00 00       	mov    $0x4,%esi
18010988b:	48 89 45 f7          	mov    %rax,-0x9(%rbp)
18010988f:	44 8b e0             	mov    %eax,%r12d
180109892:	eb 03                	jmp    0x180109897
180109894:	8b 75 e7             	mov    -0x19(%rbp),%esi
180109897:	8b 47 44             	mov    0x44(%rdi),%eax
18010989a:	8b 4f 08             	mov    0x8(%rdi),%ecx
18010989d:	03 c0                	add    %eax,%eax
18010989f:	8b 55 07             	mov    0x7(%rbp),%edx
1801098a2:	2b c8                	sub    %eax,%ecx
1801098a4:	3b d1                	cmp    %ecx,%edx
1801098a6:	76 62                	jbe    0x18010990a
1801098a8:	89 4d 07             	mov    %ecx,0x7(%rbp)
1801098ab:	4c 8d 45 e7          	lea    -0x19(%rbp),%r8
1801098af:	48 8d 4d 07          	lea    0x7(%rbp),%rcx
1801098b3:	ba 20 00 00 00       	mov    $0x20,%edx
1801098b8:	e8 0b e1 ff ff       	call   0x1801079c8
1801098bd:	45 33 d2             	xor    %r10d,%r10d
1801098c0:	8b d8                	mov    %eax,%ebx
1801098c2:	85 c0                	test   %eax,%eax
1801098c4:	0f 88 33 01 00 00    	js     0x1801099fd
1801098ca:	48 8b 4d e7          	mov    -0x19(%rbp),%rcx
1801098ce:	4c 8d 4d 5f          	lea    0x5f(%rbp),%r9
1801098d2:	41 8b d4             	mov    %r12d,%edx
1801098d5:	44 89 55 63          	mov    %r10d,0x63(%rbp)
1801098d9:	2b 55 07             	sub    0x7(%rbp),%edx
1801098dc:	4c 8d 45 ff          	lea    -0x1(%rbp),%r8
1801098e0:	03 d6                	add    %esi,%edx
1801098e2:	4c 89 55 ff          	mov    %r10,-0x1(%rbp)
1801098e6:	41 0f 48 d2          	cmovs  %r10d,%edx
1801098ea:	89 55 5f             	mov    %edx,0x5f(%rbp)
1801098ed:	44 2b e2             	sub    %edx,%r12d
1801098f0:	49 8b d7             	mov    %r15,%rdx
1801098f3:	e8 8c dd ff ff       	call   0x180107684
1801098f8:	49 8b cf             	mov    %r15,%rcx
1801098fb:	e8 40 e2 ff ff       	call   0x180107b40
180109900:	4c 8b 7d e7          	mov    -0x19(%rbp),%r15
180109904:	45 33 d2             	xor    %r10d,%r10d
180109907:	8b 55 07             	mov    0x7(%rbp),%edx
18010990a:	f6 47 40 04          	testb  $0x4,0x40(%rdi)
18010990e:	74 05                	je     0x180109915
180109910:	8b 47 44             	mov    0x44(%rdi),%eax
180109913:	eb 14                	jmp    0x180109929
180109915:	f6 47 40 08          	testb  $0x8,0x40(%rdi)
180109919:	8b 47 08             	mov    0x8(%rdi),%eax
18010991c:	74 07                	je     0x180109925
18010991e:	2b 47 44             	sub    0x44(%rdi),%eax
180109921:	2b c2                	sub    %edx,%eax
180109923:	eb 04                	jmp    0x180109929
180109925:	2b c2                	sub    %edx,%eax
180109927:	d1 e8                	shr    $1,%eax
180109929:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
18010992d:	4c 8d 4d 5f          	lea    0x5f(%rbp),%r9
180109931:	4c 8d 45 ef          	lea    -0x11(%rbp),%r8
180109935:	89 45 ef             	mov    %eax,-0x11(%rbp)
180109938:	49 8b d7             	mov    %r15,%rdx
18010993b:	4c 89 55 5f          	mov    %r10,0x5f(%rbp)
18010993f:	e8 f8 da ff ff       	call   0x18010743c
180109944:	48 8b 75 5f          	mov    0x5f(%rbp),%rsi
180109948:	8b d8                	mov    %eax,%ebx
18010994a:	85 c0                	test   %eax,%eax
18010994c:	0f 88 98 00 00 00    	js     0x1801099ea
180109952:	4d 85 ed             	test   %r13,%r13
180109955:	74 5b                	je     0x1801099b2
180109957:	f6 45 6f 04          	testb  $0x4,0x6f(%rbp)
18010995b:	74 55                	je     0x1801099b2
18010995d:	8b 55 fb             	mov    -0x5(%rbp),%edx
180109960:	44 8b 46 08          	mov    0x8(%rsi),%r8d
180109964:	83 c2 02             	add    $0x2,%edx
180109967:	0f af 56 04          	imul   0x4(%rsi),%edx
18010996b:	44 8b 0e             	mov    (%rsi),%r9d
18010996e:	41 c1 e8 03          	shr    $0x3,%r8d
180109972:	ff c2                	inc    %edx
180109974:	41 03 d4             	add    %r12d,%edx
180109977:	41 0f af d0          	imul   %r8d,%edx
18010997b:	48 03 56 18          	add    0x18(%rsi),%rdx
18010997f:	41 83 c1 fc          	add    $0xfffffffc,%r9d
180109983:	74 2d                	je     0x1801099b2
180109985:	45 8b d8             	mov    %r8d,%r11d
180109988:	48 8b ca             	mov    %rdx,%rcx
18010998b:	41 ba 02 00 00 00    	mov    $0x2,%r10d
180109991:	f6 11                	notb   (%rcx)
180109993:	f6 51 01             	notb   0x1(%rcx)
180109996:	f6 51 02             	notb   0x2(%rcx)
180109999:	49 03 cb             	add    %r11,%rcx
18010999c:	49 83 ea 01          	sub    $0x1,%r10
1801099a0:	75 ef                	jne    0x180109991
1801099a2:	8b 46 04             	mov    0x4(%rsi),%eax
1801099a5:	41 0f af c0          	imul   %r8d,%eax
1801099a9:	48 03 d0             	add    %rax,%rdx
1801099ac:	41 83 c1 ff          	add    $0xffffffff,%r9d
1801099b0:	75 d6                	jne    0x180109988
1801099b2:	f6 47 40 01          	testb  $0x1,0x40(%rdi)
1801099b6:	74 10                	je     0x1801099c8
1801099b8:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
1801099bc:	48 8b d7             	mov    %rdi,%rdx
1801099bf:	e8 80 dd ff ff       	call   0x180107744
1801099c4:	8b d8                	mov    %eax,%ebx
1801099c6:	eb 05                	jmp    0x1801099cd
1801099c8:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
1801099cd:	85 db                	test   %ebx,%ebx
1801099cf:	78 19                	js     0x1801099ea
1801099d1:	8b 47 04             	mov    0x4(%rdi),%eax
1801099d4:	48 8d 55 ef          	lea    -0x11(%rbp),%rdx
1801099d8:	89 45 f3             	mov    %eax,-0xd(%rbp)
1801099db:	48 8b ce             	mov    %rsi,%rcx
1801099de:	8b 07                	mov    (%rdi),%eax
1801099e0:	01 45 ef             	add    %eax,-0x11(%rbp)
1801099e3:	e8 5c dd ff ff       	call   0x180107744
1801099e8:	8b d8                	mov    %eax,%ebx
1801099ea:	48 85 f6             	test   %rsi,%rsi
1801099ed:	74 0e                	je     0x1801099fd
1801099ef:	48 8b ce             	mov    %rsi,%rcx
1801099f2:	e8 49 e1 ff ff       	call   0x180107b40
1801099f7:	eb 04                	jmp    0x1801099fd
1801099f9:	4c 8b 7d f7          	mov    -0x9(%rbp),%r15
1801099fd:	4d 85 ff             	test   %r15,%r15
180109a00:	0f 84 72 fc ff ff    	je     0x180109678
180109a06:	49 8b cf             	mov    %r15,%rcx
180109a09:	e8 32 e1 ff ff       	call   0x180107b40
180109a0e:	e9 65 fc ff ff       	jmp    0x180109678
180109a13:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180109a18:	48 8b 9c 24 e8 00 00 	mov    0xe8(%rsp),%rbx
180109a1f:	00
180109a20:	48 81 c4 90 00 00 00 	add    $0x90,%rsp
180109a27:	41 5f                	pop    %r15
180109a29:	41 5e                	pop    %r14
180109a2b:	41 5d                	pop    %r13
180109a2d:	41 5c                	pop    %r12
180109a2f:	5f                   	pop    %rdi
180109a30:	5e                   	pop    %rsi
180109a31:	5d                   	pop    %rbp
180109a32:	c3                   	ret
180109a33:	cc                   	int3
180109a34:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180109a39:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180109a3e:	57                   	push   %rdi
180109a3f:	48 83 ec 20          	sub    $0x20,%rsp
180109a43:	48 8b 1d f6 30 06 00 	mov    0x630f6(%rip),%rbx        # 0x18016cb40
180109a4a:	48 8d 3d ef 30 06 00 	lea    0x630ef(%rip),%rdi        # 0x18016cb40
180109a51:	48 8b 03             	mov    (%rbx),%rax
180109a54:	48 39 7b 08          	cmp    %rdi,0x8(%rbx)
180109a58:	74 28                	je     0x180109a82
180109a5a:	b9 03 00 00 00       	mov    $0x3,%ecx
180109a5f:	cd 29                	int    $0x29
180109a61:	48 8b 4b 30          	mov    0x30(%rbx),%rcx
180109a65:	e8 d6 e0 ff ff       	call   0x180107b40
180109a6a:	48 8b cb             	mov    %rbx,%rcx
180109a6d:	e8 8a 05 f9 ff       	call   0x180099ffc
180109a72:	48 8b 1d c7 30 06 00 	mov    0x630c7(%rip),%rbx        # 0x18016cb40
180109a79:	48 39 7b 08          	cmp    %rdi,0x8(%rbx)
180109a7d:	75 db                	jne    0x180109a5a
180109a7f:	48 8b 03             	mov    (%rbx),%rax
180109a82:	48 39 58 08          	cmp    %rbx,0x8(%rax)
180109a86:	75 d2                	jne    0x180109a5a
180109a88:	48 89 05 b1 30 06 00 	mov    %rax,0x630b1(%rip)        # 0x18016cb40
180109a8f:	48 89 78 08          	mov    %rdi,0x8(%rax)
180109a93:	48 3b df             	cmp    %rdi,%rbx
180109a96:	75 c9                	jne    0x180109a61
180109a98:	33 ff                	xor    %edi,%edi
180109a9a:	40 38 3d 7f be 08 00 	cmp    %dil,0x8be7f(%rip)        # 0x180195920
180109aa1:	89 3d a9 30 06 00    	mov    %edi,0x630a9(%rip)        # 0x18016cb50
180109aa7:	74 5e                	je     0x180109b07
180109aa9:	48 8b 1d 90 be 08 00 	mov    0x8be90(%rip),%rbx        # 0x180195940
180109ab0:	48 8d 35 89 be 08 00 	lea    0x8be89(%rip),%rsi        # 0x180195940
180109ab7:	48 8b 03             	mov    (%rbx),%rax
180109aba:	48 39 73 08          	cmp    %rsi,0x8(%rbx)
180109abe:	75 9a                	jne    0x180109a5a
180109ac0:	eb 25                	jmp    0x180109ae7
180109ac2:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
180109ac6:	e8 31 05 f9 ff       	call   0x180099ffc
180109acb:	48 8b cb             	mov    %rbx,%rcx
180109ace:	e8 29 05 f9 ff       	call   0x180099ffc
180109ad3:	48 8b 1d 66 be 08 00 	mov    0x8be66(%rip),%rbx        # 0x180195940
180109ada:	48 39 73 08          	cmp    %rsi,0x8(%rbx)
180109ade:	0f 85 76 ff ff ff    	jne    0x180109a5a
180109ae4:	48 8b 03             	mov    (%rbx),%rax
180109ae7:	48 39 58 08          	cmp    %rbx,0x8(%rax)
180109aeb:	0f 85 69 ff ff ff    	jne    0x180109a5a
180109af1:	48 89 05 48 be 08 00 	mov    %rax,0x8be48(%rip)        # 0x180195940
180109af8:	48 89 70 08          	mov    %rsi,0x8(%rax)
180109afc:	48 3b de             	cmp    %rsi,%rbx
180109aff:	75 c1                	jne    0x180109ac2
180109b01:	89 3d 6d be 08 00    	mov    %edi,0x8be6d(%rip)        # 0x180195974
180109b07:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180109b0c:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
180109b11:	48 83 c4 20          	add    $0x20,%rsp
180109b15:	5f                   	pop    %rdi
180109b16:	c3                   	ret
180109b17:	cc                   	int3
180109b18:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180109b1d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180109b22:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
180109b27:	4c 8b 51 08          	mov    0x8(%rcx),%r10
180109b2b:	48 8b f2             	mov    %rdx,%rsi
180109b2e:	44 8b 49 10          	mov    0x10(%rcx),%r9d
180109b32:	49 8b f8             	mov    %r8,%rdi
180109b35:	41 0f b7 42 78       	movzwl 0x78(%r10),%eax
180109b3a:	41 0f bf 4a 52       	movswl 0x52(%r10),%ecx
180109b3f:	45 8b 5a 60          	mov    0x60(%r10),%r11d
180109b43:	48 8d 1c c0          	lea    (%rax,%rax,8),%rbx
180109b47:	41 0f bf 42 54       	movswl 0x54(%r10),%eax
180109b4c:	2b c8                	sub    %eax,%ecx
180109b4e:	48 c1 e3 03          	shl    $0x3,%rbx
180109b52:	48 63 c1             	movslq %ecx,%rax
180109b55:	49 0f af c1          	imul   %r9,%rax
180109b59:	49 0f af c3          	imul   %r11,%rax
180109b5d:	48 c1 e0 06          	shl    $0x6,%rax
180109b61:	48 99                	cqto
180109b63:	48 f7 fb             	idiv   %rbx
180109b66:	48 8b c8             	mov    %rax,%rcx
180109b69:	49 0f bf 42 50       	movswq 0x50(%r10),%rax
180109b6e:	49 0f af c1          	imul   %r9,%rax
180109b72:	49 0f af c3          	imul   %r11,%rax
180109b76:	48 c1 e0 06          	shl    $0x6,%rax
180109b7a:	48 99                	cqto
180109b7c:	48 f7 fb             	idiv   %rbx
180109b7f:	ba 00 00 00 fc       	mov    $0xfc000000,%edx
180109b84:	4c 8b c0             	mov    %rax,%r8
180109b87:	8b c1                	mov    %ecx,%eax
180109b89:	c1 f8 06             	sar    $0x6,%eax
180109b8c:	85 c9                	test   %ecx,%ecx
180109b8e:	79 04                	jns    0x180109b94
180109b90:	0b c2                	or     %edx,%eax
180109b92:	eb 07                	jmp    0x180109b9b
180109b94:	f6 c1 3f             	test   $0x3f,%cl
180109b97:	74 02                	je     0x180109b9b
180109b99:	ff c0                	inc    %eax
180109b9b:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
180109ba0:	83 c0 02             	add    $0x2,%eax
180109ba3:	89 06                	mov    %eax,(%rsi)
180109ba5:	41 8b c0             	mov    %r8d,%eax
180109ba8:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
180109bad:	c1 f8 06             	sar    $0x6,%eax
180109bb0:	8b c8                	mov    %eax,%ecx
180109bb2:	0b ca                	or     %edx,%ecx
180109bb4:	45 85 c0             	test   %r8d,%r8d
180109bb7:	0f 49 c8             	cmovns %eax,%ecx
180109bba:	41 f6 c0 20          	test   $0x20,%r8b
180109bbe:	8d 41 01             	lea    0x1(%rcx),%eax
180109bc1:	0f 44 c1             	cmove  %ecx,%eax
180109bc4:	89 07                	mov    %eax,(%rdi)
180109bc6:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
180109bcb:	c3                   	ret
180109bcc:	cc                   	int3
180109bcd:	cc                   	int3
180109bce:	cc                   	int3
180109bcf:	cc                   	int3
180109bd0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180109bd5:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
180109bda:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
180109bdf:	57                   	push   %rdi
180109be0:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
180109be7:	48 8b 41 10          	mov    0x10(%rcx),%rax
180109beb:	4c 8d 49 40          	lea    0x40(%rcx),%r9
180109bef:	8b 71 2c             	mov    0x2c(%rcx),%esi
180109bf2:	48 8b d9             	mov    %rcx,%rbx
180109bf5:	41 b8 64 61 65 68    	mov    $0x68656164,%r8d
180109bfb:	8b d6                	mov    %esi,%edx
180109bfd:	8b 78 10             	mov    0x10(%rax),%edi
180109c00:	8b cf                	mov    %edi,%ecx
180109c02:	e8 e5 cd f5 ff       	call   0x1800669ec
180109c07:	8b d0                	mov    %eax,%edx
180109c09:	85 c0                	test   %eax,%eax
180109c0b:	0f 88 6e 01 00 00    	js     0x180109d7f
180109c11:	4c 8d 4b 3c          	lea    0x3c(%rbx),%r9
180109c15:	41 b8 66 79 6c 67    	mov    $0x676c7966,%r8d
180109c1b:	8b d6                	mov    %esi,%edx
180109c1d:	8b cf                	mov    %edi,%ecx
180109c1f:	e8 c8 cd f5 ff       	call   0x1800669ec
180109c24:	8b d0                	mov    %eax,%edx
180109c26:	85 c0                	test   %eax,%eax
180109c28:	0f 88 51 01 00 00    	js     0x180109d7f
180109c2e:	4c 8d 4b 48          	lea    0x48(%rbx),%r9
180109c32:	41 b8 61 63 6f 6c    	mov    $0x6c6f6361,%r8d
180109c38:	8b d6                	mov    %esi,%edx
180109c3a:	8b cf                	mov    %edi,%ecx
180109c3c:	e8 ab cd f5 ff       	call   0x1800669ec
180109c41:	8b d0                	mov    %eax,%edx
180109c43:	85 c0                	test   %eax,%eax
180109c45:	0f 88 34 01 00 00    	js     0x180109d7f
180109c4b:	4c 8d 4b 44          	lea    0x44(%rbx),%r9
180109c4f:	41 b8 78 74 6d 68    	mov    $0x686d7478,%r8d
180109c55:	8b d6                	mov    %esi,%edx
180109c57:	8b cf                	mov    %edi,%ecx
180109c59:	e8 8e cd f5 ff       	call   0x1800669ec
180109c5e:	8b d0                	mov    %eax,%edx
180109c60:	85 c0                	test   %eax,%eax
180109c62:	0f 88 17 01 00 00    	js     0x180109d7f
180109c68:	44 8b 43 40          	mov    0x40(%rbx),%r8d