180086802:	0f 82 df fe ff ff    	jb     0x1800866e7
180086808:	0f b7 47 06          	movzwl 0x6(%rdi),%eax
18008680c:	66 89 44 24 30       	mov    %ax,0x30(%rsp)
180086811:	66 44 3b 5f 04       	cmp    0x4(%rdi),%r11w
180086816:	74 3c                	je     0x180086854
180086818:	8b 5f 10             	mov    0x10(%rdi),%ebx
18008681b:	48 03 df             	add    %rdi,%rbx
18008681e:	8b 4b 04             	mov    0x4(%rbx),%ecx
180086821:	e8 2a 36 01 00       	call   0x180099e50
180086826:	4c 8b e0             	mov    %rax,%r12
180086829:	48 85 c0             	test   %rax,%rax
18008682c:	0f 84 92 fc ff ff    	je     0x1800864c4
180086832:	44 8b 43 04          	mov    0x4(%rbx),%r8d
180086836:	48 8d 53 08          	lea    0x8(%rbx),%rdx
18008683a:	48 8b c8             	mov    %rax,%rcx
18008683d:	e8 7e f1 0a 00       	call   0x1801359c0
180086842:	44 8b 7b 04          	mov    0x4(%rbx),%r15d
180086846:	45 33 db             	xor    %r11d,%r11d
180086849:	48 8b 5d a7          	mov    -0x59(%rbp),%rbx
18008684d:	44 89 7c 24 38       	mov    %r15d,0x38(%rsp)
180086852:	eb 09                	jmp    0x18008685d
180086854:	48 8b 5d a7          	mov    -0x59(%rbp),%rbx
180086858:	44 8b 7c 24 38       	mov    0x38(%rsp),%r15d
18008685d:	0f b7 4e 04          	movzwl 0x4(%rsi),%ecx
180086861:	41 ff c5             	inc    %r13d
180086864:	44 3b e9             	cmp    %ecx,%r13d
180086867:	73 08                	jae    0x180086871
180086869:	4d 8b ce             	mov    %r14,%r9
18008686c:	e9 8b fc ff ff       	jmp    0x1800864fc
180086871:	41 8b 46 0c          	mov    0xc(%r14),%eax
180086875:	41 03 46 08          	add    0x8(%r14),%eax
180086879:	48 39 45 f7          	cmp    %rax,-0x9(%rbp)
18008687d:	75 59                	jne    0x1800868d8
18008687f:	41 81 3e 44 53 49 47 	cmpl   $0x47495344,(%r14)
180086886:	75 50                	jne    0x1800868d8
180086888:	48 8b 45 6f          	mov    0x6f(%rbp),%rax
18008688c:	66 c1 44 24 30 08    	rolw   $0x8,0x30(%rsp)
180086892:	44 39 58 08          	cmp    %r11d,0x8(%rax)
180086896:	0f 85 e4 fa ff ff    	jne    0x180086380
18008689c:	41 b8 02 00 00 00    	mov    $0x2,%r8d
1800868a2:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
1800868a7:	48 8b cb             	mov    %rbx,%rcx
1800868aa:	e8 8d 9f f9 ff       	call   0x18002083c
1800868af:	8b 4d 67             	mov    0x67(%rbp),%ecx
1800868b2:	48 8d 55 f7          	lea    -0x9(%rbp),%rdx
1800868b6:	e8 ad 24 fe ff       	call   0x180068d68
1800868bb:	33 c9                	xor    %ecx,%ecx
1800868bd:	8b d8                	mov    %eax,%ebx
1800868bf:	85 c0                	test   %eax,%eax
1800868c1:	78 1a                	js     0x1800868dd
1800868c3:	48 8b 45 77          	mov    0x77(%rbp),%rax
1800868c7:	8b d9                	mov    %ecx,%ebx
1800868c9:	4c 89 20             	mov    %r12,(%rax)
1800868cc:	44 8b e1             	mov    %ecx,%r12d
1800868cf:	48 8b 45 7f          	mov    0x7f(%rbp),%rax
1800868d3:	44 89 38             	mov    %r15d,(%rax)
1800868d6:	eb 05                	jmp    0x1800868dd
1800868d8:	bb c4 02 00 c0       	mov    $0xc00002c4,%ebx
1800868dd:	48 8b ce             	mov    %rsi,%rcx
1800868e0:	e8 17 37 01 00       	call   0x180099ffc
1800868e5:	4d 85 e4             	test   %r12,%r12
1800868e8:	74 08                	je     0x1800868f2
1800868ea:	49 8b cc             	mov    %r12,%rcx
1800868ed:	e8 0a 37 01 00       	call   0x180099ffc
1800868f2:	48 85 ff             	test   %rdi,%rdi
1800868f5:	74 08                	je     0x1800868ff
1800868f7:	48 8b cf             	mov    %rdi,%rcx
1800868fa:	e8 fd 36 01 00       	call   0x180099ffc
1800868ff:	8b c3                	mov    %ebx,%eax
180086901:	48 81 c4 d8 00 00 00 	add    $0xd8,%rsp
180086908:	41 5f                	pop    %r15
18008690a:	41 5e                	pop    %r14
18008690c:	41 5d                	pop    %r13
18008690e:	41 5c                	pop    %r12
180086910:	5f                   	pop    %rdi
180086911:	5e                   	pop    %rsi
180086912:	5b                   	pop    %rbx
180086913:	5d                   	pop    %rbp
180086914:	c3                   	ret
180086915:	cc                   	int3
180086916:	cc                   	int3
180086917:	cc                   	int3
180086918:	40 55                	rex push %rbp
18008691a:	53                   	push   %rbx
18008691b:	56                   	push   %rsi
18008691c:	57                   	push   %rdi
18008691d:	41 56                	push   %r14
18008691f:	48 8d 6c 24 c9       	lea    -0x37(%rsp),%rbp
180086924:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
18008692b:	8b f9                	mov    %ecx,%edi
18008692d:	4c 8d 45 77          	lea    0x77(%rbp),%r8
180086931:	45 33 f6             	xor    %r14d,%r14d
180086934:	48 8d 55 07          	lea    0x7(%rbp),%rdx
180086938:	b9 0c 80 00 00       	mov    $0x800c,%ecx
18008693d:	4c 89 75 7f          	mov    %r14,0x7f(%rbp)
180086941:	4c 89 75 07          	mov    %r14,0x7(%rbp)
180086945:	e8 66 09 01 00       	call   0x1800972b0
18008694a:	8b d8                	mov    %eax,%ebx
18008694c:	85 c0                	test   %eax,%eax
18008694e:	0f 88 d2 00 00 00    	js     0x180086a26
180086954:	48 8b 75 07          	mov    0x7(%rbp),%rsi
180086958:	4c 8d 4d 6f          	lea    0x6f(%rbp),%r9
18008695c:	48 8b d6             	mov    %rsi,%rdx
18008695f:	4c 8d 45 7f          	lea    0x7f(%rbp),%r8
180086963:	8b cf                	mov    %edi,%ecx
180086965:	e8 62 f5 ff ff       	call   0x180085ecc
18008696a:	8b d8                	mov    %eax,%ebx
18008696c:	85 c0                	test   %eax,%eax
18008696e:	0f 88 b2 00 00 00    	js     0x180086a26
180086974:	44 39 75 6f          	cmp    %r14d,0x6f(%rbp)
180086978:	75 0a                	jne    0x180086984
18008697a:	bb c4 02 00 c0       	mov    $0xc00002c4,%ebx
18008697f:	e9 a2 00 00 00       	jmp    0x180086a26
180086984:	8b 4d 77             	mov    0x77(%rbp),%ecx
180086987:	e8 c4 34 01 00       	call   0x180099e50
18008698c:	48 8b f8             	mov    %rax,%rdi
18008698f:	48 85 c0             	test   %rax,%rax
180086992:	75 0a                	jne    0x18008699e
180086994:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180086999:	e9 88 00 00 00       	jmp    0x180086a26
18008699e:	44 39 76 08          	cmp    %r14d,0x8(%rsi)
1800869a2:	74 07                	je     0x1800869ab
1800869a4:	bb 02 00 00 c0       	mov    $0xc0000002,%ebx
1800869a9:	eb 73                	jmp    0x180086a1e
1800869ab:	48 8d 4e 10          	lea    0x10(%rsi),%rcx
1800869af:	48 8b d7             	mov    %rdi,%rdx
1800869b2:	e8 05 9f f9 ff       	call   0x1800208bc
1800869b7:	48 8b 45 7f          	mov    0x7f(%rbp),%rax
1800869bb:	4c 8d 4d 0f          	lea    0xf(%rbp),%r9
1800869bf:	4c 89 74 24 50       	mov    %r14,0x50(%rsp)
1800869c4:	48 8d 0d d1 0e 0c 00 	lea    0xc0ed1(%rip),%rcx        # 0x18014789c
1800869cb:	4c 89 74 24 48       	mov    %r14,0x48(%rsp)
1800869d0:	0f 57 c0             	xorps  %xmm0,%xmm0
1800869d3:	4c 89 74 24 40       	mov    %r14,0x40(%rsp)
1800869d8:	45 33 c0             	xor    %r8d,%r8d
1800869db:	c7 44 24 38 01 00 00 	movl   $0x1,0x38(%rsp)
1800869e2:	00
1800869e3:	33 d2                	xor    %edx,%edx
1800869e5:	c7 44 24 30 65 01 00 	movl   $0x165,0x30(%rsp)
1800869ec:	00
1800869ed:	48 89 45 0f          	mov    %rax,0xf(%rbp)
1800869f1:	8b 45 6f             	mov    0x6f(%rbp),%eax
1800869f4:	48 89 7c 24 28       	mov    %rdi,0x28(%rsp)
1800869f9:	c7 44 24 20 0c 80 00 	movl   $0x800c,0x20(%rsp)
180086a00:	00
180086a01:	f3 0f 7f 45 1b       	movdqu %xmm0,0x1b(%rbp)
180086a06:	4c 89 75 2b          	mov    %r14,0x2b(%rbp)
180086a0a:	44 89 75 33          	mov    %r14d,0x33(%rbp)
180086a0e:	89 45 17             	mov    %eax,0x17(%rbp)
180086a11:	e8 c2 c4 ff ff       	call   0x180082ed8
180086a16:	85 c0                	test   %eax,%eax
180086a18:	8b d8                	mov    %eax,%ebx
180086a1a:	41 0f 49 de          	cmovns %r14d,%ebx
180086a1e:	48 8b cf             	mov    %rdi,%rcx
180086a21:	e8 d6 35 01 00       	call   0x180099ffc
180086a26:	48 8b 4d 7f          	mov    0x7f(%rbp),%rcx
180086a2a:	48 85 c9             	test   %rcx,%rcx
180086a2d:	74 05                	je     0x180086a34
180086a2f:	e8 c8 35 01 00       	call   0x180099ffc
180086a34:	8b c3                	mov    %ebx,%eax
180086a36:	48 81 c4 90 00 00 00 	add    $0x90,%rsp
180086a3d:	41 5e                	pop    %r14
180086a3f:	5f                   	pop    %rdi
180086a40:	5e                   	pop    %rsi
180086a41:	5b                   	pop    %rbx
180086a42:	5d                   	pop    %rbp
180086a43:	c3                   	ret
180086a44:	cc                   	int3
180086a45:	cc                   	int3
180086a46:	cc                   	int3
180086a47:	cc                   	int3
180086a48:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180086a4d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180086a52:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180086a57:	57                   	push   %rdi
180086a58:	41 54                	push   %r12
180086a5a:	41 55                	push   %r13
180086a5c:	41 56                	push   %r14
180086a5e:	41 57                	push   %r15
180086a60:	48 83 ec 20          	sub    $0x20,%rsp
180086a64:	45 33 ed             	xor    %r13d,%r13d
180086a67:	4d 8b e1             	mov    %r9,%r12
180086a6a:	49 8b f0             	mov    %r8,%rsi
180086a6d:	48 8b fa             	mov    %rdx,%rdi
180086a70:	48 8b e9             	mov    %rcx,%rbp
180086a73:	48 85 c9             	test   %rcx,%rcx
180086a76:	75 0a                	jne    0x180086a82
180086a78:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180086a7d:	e9 bb 00 00 00       	jmp    0x180086b3d
180086a82:	b9 40 00 00 00       	mov    $0x40,%ecx
180086a87:	e8 c4 33 01 00       	call   0x180099e50
180086a8c:	48 8b d8             	mov    %rax,%rbx
180086a8f:	48 85 c0             	test   %rax,%rax
180086a92:	75 0a                	jne    0x180086a9e
180086a94:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
180086a99:	e9 9d 00 00 00       	jmp    0x180086b3b
180086a9e:	4c 8d 78 20          	lea    0x20(%rax),%r15
180086aa2:	48 8b d7             	mov    %rdi,%rdx
180086aa5:	4c 8d 70 10          	lea    0x10(%rax),%r14
180086aa9:	4d 89 6f 08          	mov    %r13,0x8(%r15)
180086aad:	45 89 2f             	mov    %r13d,(%r15)
180086ab0:	49 8b cf             	mov    %r15,%rcx
180086ab3:	4d 89 6e 08          	mov    %r13,0x8(%r14)
180086ab7:	45 89 2e             	mov    %r13d,(%r14)
180086aba:	e8 71 74 ff ff       	call   0x18007df30
180086abf:	8b f8                	mov    %eax,%edi
180086ac1:	85 c0                	test   %eax,%eax
180086ac3:	78 5e                	js     0x180086b23
180086ac5:	48 8b d5             	mov    %rbp,%rdx
180086ac8:	49 8b ce             	mov    %r14,%rcx
180086acb:	e8 60 74 ff ff       	call   0x18007df30
180086ad0:	8b f8                	mov    %eax,%edi
180086ad2:	85 c0                	test   %eax,%eax
180086ad4:	78 4d                	js     0x180086b23
180086ad6:	48 85 f6             	test   %rsi,%rsi
180086ad9:	75 0a                	jne    0x180086ae5
180086adb:	8b 44 24 70          	mov    0x70(%rsp),%eax
180086adf:	49 8b f4             	mov    %r12,%rsi
180086ae2:	89 43 38             	mov    %eax,0x38(%rbx)
180086ae5:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
180086aea:	48 89 73 30          	mov    %rsi,0x30(%rbx)
180086aee:	48 85 c0             	test   %rax,%rax
180086af1:	74 1e                	je     0x180086b11
180086af3:	48 8b 48 08          	mov    0x8(%rax),%rcx
180086af7:	48 39 01             	cmp    %rax,(%rcx)
180086afa:	74 07                	je     0x180086b03
180086afc:	b9 03 00 00 00       	mov    $0x3,%ecx
180086b01:	cd 29                	int    $0x29
180086b03:	48 89 03             	mov    %rax,(%rbx)
180086b06:	48 89 4b 08          	mov    %rcx,0x8(%rbx)
180086b0a:	48 89 19             	mov    %rbx,(%rcx)
180086b0d:	48 89 58 08          	mov    %rbx,0x8(%rax)
180086b11:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
180086b18:	00
180086b19:	48 85 c0             	test   %rax,%rax
180086b1c:	74 1d                	je     0x180086b3b
180086b1e:	48 89 18             	mov    %rbx,(%rax)
180086b21:	eb 18                	jmp    0x180086b3b
180086b23:	49 8b cf             	mov    %r15,%rcx
180086b26:	e8 f9 72 ff ff       	call   0x18007de24
180086b2b:	49 8b ce             	mov    %r14,%rcx
180086b2e:	e8 f1 72 ff ff       	call   0x18007de24
180086b33:	48 8b cb             	mov    %rbx,%rcx
180086b36:	e8 c1 34 01 00       	call   0x180099ffc
180086b3b:	8b c7                	mov    %edi,%eax
180086b3d:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
180086b42:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
180086b47:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
180086b4c:	48 83 c4 20          	add    $0x20,%rsp
180086b50:	41 5f                	pop    %r15
180086b52:	41 5e                	pop    %r14
180086b54:	41 5d                	pop    %r13
180086b56:	41 5c                	pop    %r12
180086b58:	5f                   	pop    %rdi
180086b59:	c3                   	ret
180086b5a:	cc                   	int3
180086b5b:	cc                   	int3
180086b5c:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
180086b61:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
180086b66:	55                   	push   %rbp
180086b67:	53                   	push   %rbx
180086b68:	56                   	push   %rsi
180086b69:	57                   	push   %rdi
180086b6a:	41 54                	push   %r12
180086b6c:	41 55                	push   %r13
180086b6e:	41 56                	push   %r14
180086b70:	41 57                	push   %r15
180086b72:	48 8b ec             	mov    %rsp,%rbp
180086b75:	48 83 ec 78          	sub    $0x78,%rsp
180086b79:	49 8b 00             	mov    (%r8),%rax
180086b7c:	45 33 ed             	xor    %r13d,%r13d
180086b7f:	48 8b 49 30          	mov    0x30(%rcx),%rcx
180086b83:	4d 8b f1             	mov    %r9,%r14
180086b86:	4c 8b 52 30          	mov    0x30(%rdx),%r10
180086b8a:	4c 8b fa             	mov    %rdx,%r15
180086b8d:	48 89 4d d8          	mov    %rcx,-0x28(%rbp)
180086b91:	48 85 c0             	test   %rax,%rax
180086b94:	79 19                	jns    0x180086baf
180086b96:	44 38 ad 80 00 00 00 	cmp    %r13b,0x80(%rbp)
180086b9d:	75 10                	jne    0x180086baf
180086b9f:	4c 8b 45 68          	mov    0x68(%rbp),%r8
180086ba3:	0f b7 c0             	movzwl %ax,%eax
180086ba6:	41 2b 40 10          	sub    0x10(%r8),%eax
180086baa:	e9 b6 00 00 00       	jmp    0x180086c65
180086baf:	4c 8b 45 68          	mov    0x68(%rbp),%r8
180086bb3:	48 8d 78 02          	lea    0x2(%rax),%rdi
180086bb7:	0f b7 14 08          	movzwl (%rax,%rcx,1),%edx
180086bbb:	48 03 f9             	add    %rcx,%rdi
180086bbe:	41 8b 70 20          	mov    0x20(%r8),%esi
180086bc2:	45 8b 70 24          	mov    0x24(%r8),%r14d
180086bc6:	49 03 f2             	add    %r10,%rsi
180086bc9:	41 8b 58 18          	mov    0x18(%r8),%ebx
180086bcd:	4d 03 f2             	add    %r10,%r14
180086bd0:	3b da                	cmp    %edx,%ebx
180086bd2:	76 27                	jbe    0x180086bfb
180086bd4:	8b 0c 96             	mov    (%rsi,%rdx,4),%ecx
180086bd7:	48 8b c7             	mov    %rdi,%rax
180086bda:	49 03 ca             	add    %r10,%rcx
180086bdd:	48 2b cf             	sub    %rdi,%rcx
180086be0:	44 0f b6 08          	movzbl (%rax),%r9d
180086be4:	44 0f b6 1c 08       	movzbl (%rax,%rcx,1),%r11d
180086be9:	45 2b cb             	sub    %r11d,%r9d
180086bec:	75 08                	jne    0x180086bf6
180086bee:	48 ff c0             	inc    %rax
180086bf1:	45 85 db             	test   %r11d,%r11d
180086bf4:	75 ea                	jne    0x180086be0
180086bf6:	45 85 c9             	test   %r9d,%r9d
180086bf9:	74 5e                	je     0x180086c59
180086bfb:	44 8d 4b ff          	lea    -0x1(%rbx),%r9d
180086bff:	45 8b dd             	mov    %r13d,%r11d
180086c02:	45 85 c9             	test   %r9d,%r9d
180086c05:	0f 88 fc 01 00 00    	js     0x180086e07
180086c0b:	43 8d 04 19          	lea    (%r9,%r11,1),%eax
180086c0f:	99                   	cltd
180086c10:	2b c2                	sub    %edx,%eax
180086c12:	d1 f8                	sar    $1,%eax
180086c14:	48 63 d0             	movslq %eax,%rdx
180086c17:	48 8b c7             	mov    %rdi,%rax
180086c1a:	8b 1c 96             	mov    (%rsi,%rdx,4),%ebx
180086c1d:	49 03 da             	add    %r10,%rbx
180086c20:	48 2b df             	sub    %rdi,%rbx
180086c23:	8a 08                	mov    (%rax),%cl
180086c25:	3a 0c 18             	cmp    (%rax,%rbx,1),%cl
180086c28:	75 0c                	jne    0x180086c36
180086c2a:	48 ff c0             	inc    %rax
180086c2d:	84 c9                	test   %cl,%cl
180086c2f:	75 f2                	jne    0x180086c23
180086c31:	41 8b c5             	mov    %r13d,%eax
180086c34:	eb 05                	jmp    0x180086c3b
180086c36:	1b c0                	sbb    %eax,%eax
180086c38:	83 c8 01             	or     $0x1,%eax
180086c3b:	85 c0                	test   %eax,%eax
180086c3d:	79 06                	jns    0x180086c45
180086c3f:	44 8d 4a ff          	lea    -0x1(%rdx),%r9d
180086c43:	eb 06                	jmp    0x180086c4b
180086c45:	7e 09                	jle    0x180086c50
180086c47:	44 8d 5a 01          	lea    0x1(%rdx),%r11d
180086c4b:	45 3b d9             	cmp    %r9d,%r11d
180086c4e:	7e bb                	jle    0x180086c0b
180086c50:	45 3b cb             	cmp    %r11d,%r9d
180086c53:	0f 8c ae 01 00 00    	jl     0x180086e07
180086c59:	48 63 c2             	movslq %edx,%rax
180086c5c:	41 0f b7 04 46       	movzwl (%r14,%rax,2),%eax
180086c61:	4c 8b 75 60          	mov    0x60(%rbp),%r14
180086c65:	41 39 40 14          	cmp    %eax,0x14(%r8)
180086c69:	0f 86 98 01 00 00    	jbe    0x180086e07
180086c6f:	41 8b 58 1c          	mov    0x1c(%r8),%ebx
180086c73:	49 03 da             	add    %r10,%rbx
180086c76:	8b f0                	mov    %eax,%esi
180086c78:	8b 3c 83             	mov    (%rbx,%rax,4),%edi