180087667:	c1 ee 02             	shr    $0x2,%esi
18008766a:	40 80 e6 01          	and    $0x1,%sil
18008766e:	48 85 ff             	test   %rdi,%rdi
180087671:	74 42                	je     0x1800876b5
180087673:	48 8b 07             	mov    (%rdi),%rax
180087676:	48 85 c0             	test   %rax,%rax
180087679:	74 3a                	je     0x1800876b5
18008767b:	48 8b 40 50          	mov    0x50(%rax),%rax
18008767f:	48 85 c0             	test   %rax,%rax
180087682:	74 31                	je     0x1800876b5
180087684:	48 8d 4d 88          	lea    -0x78(%rbp),%rcx
180087688:	33 d2                	xor    %edx,%edx
18008768a:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
18008768f:	4c 8d 4d 78          	lea    0x78(%rbp),%r9
180087693:	48 8d 4d 8c          	lea    -0x74(%rbp),%rcx
180087697:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
18008769c:	4c 8d 85 80 00 00 00 	lea    0x80(%rbp),%r8
1800876a3:	8b 4f 08             	mov    0x8(%rdi),%ecx
1800876a6:	ff d0                	call   *%rax
1800876a8:	0f 1f 00             	nopl   (%rax)
1800876ab:	8b d8                	mov    %eax,%ebx
1800876ad:	85 c0                	test   %eax,%eax
1800876af:	0f 88 08 03 00 00    	js     0x1800879bd
1800876b5:	41 8b 4f 0c          	mov    0xc(%r15),%ecx
1800876b9:	85 c9                	test   %ecx,%ecx
1800876bb:	0f 84 fc 02 00 00    	je     0x1800879bd
1800876c1:	8b 45 84             	mov    -0x7c(%rbp),%eax
1800876c4:	89 45 84             	mov    %eax,-0x7c(%rbp)
1800876c7:	45 39 27             	cmp    %r12d,(%r15)
1800876ca:	0f 84 ed 02 00 00    	je     0x1800879bd
1800876d0:	85 c0                	test   %eax,%eax
1800876d2:	0f 84 e5 02 00 00    	je     0x1800879bd
1800876d8:	49 8b 45 30          	mov    0x30(%r13),%rax
1800876dc:	8b d1                	mov    %ecx,%edx
1800876de:	48 8d 4d b0          	lea    -0x50(%rbp),%rcx
1800876e2:	48 03 50 30          	add    0x30(%rax),%rdx
1800876e6:	e8 f1 67 ff ff       	call   0x18007dedc
1800876eb:	8b d8                	mov    %eax,%ebx
1800876ed:	85 c0                	test   %eax,%eax
1800876ef:	0f 88 c8 02 00 00    	js     0x1800879bd
1800876f5:	44 88 65 58          	mov    %r12b,0x58(%rbp)
1800876f9:	48 85 ff             	test   %rdi,%rdi
1800876fc:	74 55                	je     0x180087753
1800876fe:	48 8b 07             	mov    (%rdi),%rax
180087701:	48 85 c0             	test   %rax,%rax
180087704:	74 4d                	je     0x180087753
180087706:	48 8b 40 20          	mov    0x20(%rax),%rax
18008770a:	48 85 c0             	test   %rax,%rax
18008770d:	74 44                	je     0x180087753
18008770f:	48 8d 55 c0          	lea    -0x40(%rbp),%rdx
180087713:	48 89 54 24 30       	mov    %rdx,0x30(%rsp)
180087718:	4d 8d 4d 20          	lea    0x20(%r13),%r9
18008771c:	48 8d 55 a0          	lea    -0x60(%rbp),%rdx
180087720:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
180087725:	48 8d 4f 08          	lea    0x8(%rdi),%rcx
180087729:	48 8d 55 58          	lea    0x58(%rbp),%rdx
18008772d:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
180087732:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
180087736:	48 8d 55 b0          	lea    -0x50(%rbp),%rdx
18008773a:	ff d0                	call   *%rax
18008773c:	0f 1f 00             	nopl   (%rax)
18008773f:	8b d8                	mov    %eax,%ebx
180087741:	85 c0                	test   %eax,%eax
180087743:	0f 88 74 02 00 00    	js     0x1800879bd
180087749:	44 38 65 58          	cmp    %r12b,0x58(%rbp)
18008774d:	0f 85 38 02 00 00    	jne    0x18008798b
180087753:	48 8b 4d a8          	mov    -0x58(%rbp),%rcx
180087757:	48 85 c9             	test   %rcx,%rcx
18008775a:	74 39                	je     0x180087795
18008775c:	48 85 ff             	test   %rdi,%rdi
18008775f:	74 2b                	je     0x18008778c
180087761:	48 8b 07             	mov    (%rdi),%rax
180087764:	48 85 c0             	test   %rax,%rax
180087767:	74 23                	je     0x18008778c
180087769:	48 8b 40 30          	mov    0x30(%rax),%rax
18008776d:	48 85 c0             	test   %rax,%rax
180087770:	74 1a                	je     0x18008778c
180087772:	49 8b 4d 30          	mov    0x30(%r13),%rcx
180087776:	49 8b d7             	mov    %r15,%rdx
180087779:	ff d0                	call   *%rax
18008777b:	0f 1f 00             	nopl   (%rax)
18008777e:	8b d8                	mov    %eax,%ebx
180087780:	85 c0                	test   %eax,%eax
180087782:	0f 88 35 02 00 00    	js     0x1800879bd
180087788:	48 8b 4d a8          	mov    -0x58(%rbp),%rcx
18008778c:	4c 8d 75 a0          	lea    -0x60(%rbp),%r14
180087790:	48 85 c9             	test   %rcx,%rcx
180087793:	75 04                	jne    0x180087799
180087795:	4c 8d 75 b0          	lea    -0x50(%rbp),%r14
180087799:	48 83 7d c8 00       	cmpq   $0x0,-0x38(%rbp)
18008779e:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
1800877a2:	49 8b 56 08          	mov    0x8(%r14),%rdx
1800877a6:	4c 8d 65 c0          	lea    -0x40(%rbp),%r12
1800877aa:	48 8b 4d 70          	mov    0x70(%rbp),%rcx
1800877ae:	4c 0f 44 e0          	cmove  %rax,%r12
1800877b2:	e8 39 08 00 00       	call   0x180087ff0
1800877b7:	49 8d 4d 20          	lea    0x20(%r13),%rcx
1800877bb:	48 89 45 e0          	mov    %rax,-0x20(%rbp)
1800877bf:	41 b0 01             	mov    $0x1,%r8b
1800877c2:	49 8b d6             	mov    %r14,%rdx
1800877c5:	e8 3a 5f ff ff       	call   0x18007d704
1800877ca:	84 c0                	test   %al,%al
1800877cc:	0f 85 b6 01 00 00    	jne    0x180087988
1800877d2:	4c 8d 45 90          	lea    -0x70(%rbp),%r8
1800877d6:	49 8b d4             	mov    %r12,%rdx
1800877d9:	49 8b ce             	mov    %r14,%rcx
1800877dc:	e8 23 07 00 00       	call   0x180087f04
1800877e1:	33 c9                	xor    %ecx,%ecx
1800877e3:	8b d8                	mov    %eax,%ebx
1800877e5:	85 c0                	test   %eax,%eax
1800877e7:	0f 88 d0 01 00 00    	js     0x1800879bd
1800877ed:	8b 85 80 00 00 00    	mov    0x80(%rbp),%eax
1800877f3:	48 8d 55 90          	lea    -0x70(%rbp),%rdx
1800877f7:	48 89 8c 24 80 00 00 	mov    %rcx,0x80(%rsp)
1800877fe:	00
1800877ff:	45 33 c9             	xor    %r9d,%r9d
180087802:	48 89 7c 24 78       	mov    %rdi,0x78(%rsp)
180087807:	4d 8b c6             	mov    %r14,%r8
18008780a:	89 44 24 70          	mov    %eax,0x70(%rsp)
18008780e:	8b 45 78             	mov    0x78(%rbp),%eax
180087811:	89 44 24 68          	mov    %eax,0x68(%rsp)
180087815:	8b 45 88             	mov    -0x78(%rbp),%eax
180087818:	89 44 24 60          	mov    %eax,0x60(%rsp)
18008781c:	8b 45 8c             	mov    -0x74(%rbp),%eax
18008781f:	89 44 24 58          	mov    %eax,0x58(%rsp)
180087823:	48 8d 45 e8          	lea    -0x18(%rbp),%rax
180087827:	89 4c 24 50          	mov    %ecx,0x50(%rsp)
18008782b:	48 89 4c 24 48       	mov    %rcx,0x48(%rsp)
180087830:	8b 4d 50             	mov    0x50(%rbp),%ecx
180087833:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
180087838:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
18008783c:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
180087841:	48 8b 45 70          	mov    0x70(%rbp),%rax
180087845:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
18008784a:	8b 45 68             	mov    0x68(%rbp),%eax
18008784d:	89 44 24 28          	mov    %eax,0x28(%rsp)
180087851:	8b 45 60             	mov    0x60(%rbp),%eax
180087854:	89 44 24 20          	mov    %eax,0x20(%rsp)
180087858:	e8 5b f6 ff ff       	call   0x180086eb8
18008785d:	48 8d 4d 90          	lea    -0x70(%rbp),%rcx
180087861:	8b d8                	mov    %eax,%ebx
180087863:	e8 bc 65 ff ff       	call   0x18007de24
180087868:	81 fb 0f 00 00 c0    	cmp    $0xc000000f,%ebx
18008786e:	0f 85 ec 00 00 00    	jne    0x180087960
180087874:	48 85 ff             	test   %rdi,%rdi
180087877:	0f 84 40 01 00 00    	je     0x1800879bd
18008787d:	48 8b 07             	mov    (%rdi),%rax
180087880:	48 85 c0             	test   %rax,%rax
180087883:	0f 84 34 01 00 00    	je     0x1800879bd
180087889:	48 83 78 08 00       	cmpq   $0x0,0x8(%rax)
18008788e:	0f 84 29 01 00 00    	je     0x1800879bd
180087894:	c6 45 80 00          	movb   $0x0,-0x80(%rbp)
180087898:	4c 8d 45 f0          	lea    -0x10(%rbp),%r8
18008789c:	48 8b 40 08          	mov    0x8(%rax),%rax
1800878a0:	48 8d 55 80          	lea    -0x80(%rbp),%rdx
1800878a4:	49 8b cc             	mov    %r12,%rcx
1800878a7:	ff d0                	call   *%rax
1800878a9:	0f 1f 00             	nopl   (%rax)
1800878ac:	45 33 e4             	xor    %r12d,%r12d
1800878af:	85 c0                	test   %eax,%eax
1800878b1:	0f 88 95 00 00 00    	js     0x18008794c
1800878b7:	44 38 65 80          	cmp    %r12b,-0x80(%rbp)
1800878bb:	0f 84 8b 00 00 00    	je     0x18008794c
1800878c1:	4c 8d 45 90          	lea    -0x70(%rbp),%r8
1800878c5:	49 8b ce             	mov    %r14,%rcx
1800878c8:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
1800878cc:	e8 33 06 00 00       	call   0x180087f04
1800878d1:	85 c0                	test   %eax,%eax
1800878d3:	78 77                	js     0x18008794c
1800878d5:	8b 85 80 00 00 00    	mov    0x80(%rbp),%eax
1800878db:	48 8d 55 90          	lea    -0x70(%rbp),%rdx
1800878df:	8b 4d 50             	mov    0x50(%rbp),%ecx
1800878e2:	45 33 c9             	xor    %r9d,%r9d
1800878e5:	4c 89 a4 24 80 00 00 	mov    %r12,0x80(%rsp)
1800878ec:	00
1800878ed:	4d 8b c6             	mov    %r14,%r8
1800878f0:	48 89 7c 24 78       	mov    %rdi,0x78(%rsp)
1800878f5:	89 44 24 70          	mov    %eax,0x70(%rsp)
1800878f9:	8b 45 78             	mov    0x78(%rbp),%eax
1800878fc:	89 44 24 68          	mov    %eax,0x68(%rsp)
180087900:	8b 45 88             	mov    -0x78(%rbp),%eax
180087903:	89 44 24 60          	mov    %eax,0x60(%rsp)
180087907:	8b 45 8c             	mov    -0x74(%rbp),%eax
18008790a:	89 44 24 58          	mov    %eax,0x58(%rsp)
18008790e:	48 8d 45 e8          	lea    -0x18(%rbp),%rax
180087912:	44 89 64 24 50       	mov    %r12d,0x50(%rsp)
180087917:	4c 89 64 24 48       	mov    %r12,0x48(%rsp)
18008791c:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
180087921:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
180087925:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
18008792a:	48 8b 45 70          	mov    0x70(%rbp),%rax
18008792e:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
180087933:	8b 45 68             	mov    0x68(%rbp),%eax
180087936:	89 44 24 28          	mov    %eax,0x28(%rsp)
18008793a:	8b 45 60             	mov    0x60(%rbp),%eax
18008793d:	89 44 24 20          	mov    %eax,0x20(%rsp)
180087941:	e8 72 f5 ff ff       	call   0x180086eb8
180087946:	85 c0                	test   %eax,%eax
180087948:	41 0f 49 dc          	cmovns %r12d,%ebx
18008794c:	48 8d 4d 90          	lea    -0x70(%rbp),%rcx
180087950:	e8 cf 64 ff ff       	call   0x18007de24
180087955:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
180087959:	e8 c6 64 ff ff       	call   0x18007de24
18008795e:	eb 03                	jmp    0x180087963
180087960:	45 33 e4             	xor    %r12d,%r12d
180087963:	85 db                	test   %ebx,%ebx
180087965:	78 56                	js     0x1800879bd
180087967:	4c 8b 4d 70          	mov    0x70(%rbp),%r9
18008796b:	4d 8b c7             	mov    %r15,%r8
18008796e:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx
180087972:	49 8b 4d 30          	mov    0x30(%r13),%rcx
180087976:	40 88 74 24 20       	mov    %sil,0x20(%rsp)
18008797b:	e8 8c 04 00 00       	call   0x180087e0c
180087980:	8b d8                	mov    %eax,%ebx
180087982:	85 c0                	test   %eax,%eax
180087984:	78 37                	js     0x1800879bd
180087986:	eb 03                	jmp    0x18008798b
180087988:	45 33 e4             	xor    %r12d,%r12d
18008798b:	83 45 84 ec          	addl   $0xffffffec,-0x7c(%rbp)
18008798f:	48 8d 4d a0          	lea    -0x60(%rbp),%rcx
180087993:	49 83 c7 14          	add    $0x14,%r15
180087997:	e8 88 64 ff ff       	call   0x18007de24
18008799c:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
1800879a0:	e8 7f 64 ff ff       	call   0x18007de24
1800879a5:	48 8d 4d b0          	lea    -0x50(%rbp),%rcx
1800879a9:	e8 76 64 ff ff       	call   0x18007de24
1800879ae:	41 8b 4f 0c          	mov    0xc(%r15),%ecx
1800879b2:	8b 45 84             	mov    -0x7c(%rbp),%eax
1800879b5:	85 c9                	test   %ecx,%ecx
1800879b7:	0f 85 0a fd ff ff    	jne    0x1800876c7
1800879bd:	48 8d 4d d0          	lea    -0x30(%rbp),%rcx
1800879c1:	e8 5e 64 ff ff       	call   0x18007de24
1800879c6:	48 8d 4d b0          	lea    -0x50(%rbp),%rcx
1800879ca:	e8 55 64 ff ff       	call   0x18007de24
1800879cf:	48 8d 4d 90          	lea    -0x70(%rbp),%rcx
1800879d3:	e8 4c 64 ff ff       	call   0x18007de24
1800879d8:	48 8d 4d c0          	lea    -0x40(%rbp),%rcx
1800879dc:	e8 43 64 ff ff       	call   0x18007de24
1800879e1:	48 8d 4d a0          	lea    -0x60(%rbp),%rcx
1800879e5:	e8 3a 64 ff ff       	call   0x18007de24
1800879ea:	8b c3                	mov    %ebx,%eax
1800879ec:	48 81 c4 18 01 00 00 	add    $0x118,%rsp
1800879f3:	41 5f                	pop    %r15
1800879f5:	41 5e                	pop    %r14
1800879f7:	41 5d                	pop    %r13
1800879f9:	41 5c                	pop    %r12
1800879fb:	5f                   	pop    %rdi
1800879fc:	5e                   	pop    %rsi
1800879fd:	5b                   	pop    %rbx
1800879fe:	5d                   	pop    %rbp
1800879ff:	c3                   	ret
180087a00:	cc                   	int3
180087a01:	cc                   	int3
180087a02:	cc                   	int3
180087a03:	cc                   	int3
180087a04:	48 8b c4             	mov    %rsp,%rax
180087a07:	48 89 58 08          	mov    %rbx,0x8(%rax)
180087a0b:	48 89 68 10          	mov    %rbp,0x10(%rax)
180087a0f:	48 89 70 18          	mov    %rsi,0x18(%rax)
180087a13:	48 89 78 20          	mov    %rdi,0x20(%rax)
180087a17:	41 56                	push   %r14
180087a19:	48 83 ec 20          	sub    $0x20,%rsp
180087a1d:	45 33 f6             	xor    %r14d,%r14d
180087a20:	49 8b f1             	mov    %r9,%rsi
180087a23:	49 8b e8             	mov    %r8,%rbp
180087a26:	48 8b da             	mov    %rdx,%rbx
180087a29:	48 8b f9             	mov    %rcx,%rdi
180087a2c:	48 85 d2             	test   %rdx,%rdx
180087a2f:	75 1e                	jne    0x180087a4f
180087a31:	48 85 c9             	test   %rcx,%rcx
180087a34:	74 1f                	je     0x180087a55
180087a36:	8d 53 5c             	lea    0x5c(%rbx),%edx
180087a39:	e8 86 3e 0a 00       	call   0x18012b8c4
180087a3e:	48 8b d8             	mov    %rax,%rbx
180087a41:	48 85 c0             	test   %rax,%rax
180087a44:	74 06                	je     0x180087a4c
180087a46:	48 83 c3 02          	add    $0x2,%rbx
180087a4a:	eb 03                	jmp    0x180087a4f
180087a4c:	48 8b df             	mov    %rdi,%rbx
180087a4f:	66 44 39 33          	cmp    %r14w,(%rbx)
180087a53:	75 07                	jne    0x180087a5c
180087a55:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180087a5a:	eb 18                	jmp    0x180087a74
180087a5c:	48 8b d7             	mov    %rdi,%rdx
180087a5f:	48 8b cd             	mov    %rbp,%rcx
180087a62:	e8 5d 5c ff ff       	call   0x18007d6c4
180087a67:	48 8b d3             	mov    %rbx,%rdx
180087a6a:	48 8b ce             	mov    %rsi,%rcx
180087a6d:	e8 52 5c ff ff       	call   0x18007d6c4
180087a72:	33 c0                	xor    %eax,%eax
180087a74:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180087a79:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180087a7e:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180087a83:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
180087a88:	48 83 c4 20          	add    $0x20,%rsp
180087a8c:	41 5e                	pop    %r14
180087a8e:	c3                   	ret
180087a8f:	cc                   	int3
180087a90:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180087a95:	57                   	push   %rdi
180087a96:	48 83 ec 30          	sub    $0x30,%rsp
180087a9a:	8b da                	mov    %edx,%ebx
180087a9c:	48 8b f9             	mov    %rcx,%rdi
180087a9f:	e8 70 cf f9 ff       	call   0x180024a14
180087aa4:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
180087aaa:	4c 8b c8             	mov    %rax,%r9
180087aad:	45 33 c0             	xor    %r8d,%r8d
180087ab0:	8b d3                	mov    %ebx,%edx
180087ab2:	48 8b cf             	mov    %rdi,%rcx
180087ab5:	e8 a6 77 fa ff       	call   0x18002f260
180087aba:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180087abf:	33 c0                	xor    %eax,%eax
180087ac1:	48 83 c4 30          	add    $0x30,%rsp
180087ac5:	5f                   	pop    %rdi
180087ac6:	c3                   	ret
180087ac7:	cc                   	int3
180087ac8:	48 8b c4             	mov    %rsp,%rax
180087acb:	48 89 58 08          	mov    %rbx,0x8(%rax)
180087acf:	48 89 68 10          	mov    %rbp,0x10(%rax)
180087ad3:	4c 89 60 18          	mov    %r12,0x18(%rax)
180087ad7:	4c 89 70 20          	mov    %r14,0x20(%rax)
180087adb:	41 57                	push   %r15
180087add:	48 83 ec 30          	sub    $0x30,%rsp
180087ae1:	45 33 e4             	xor    %r12d,%r12d
180087ae4:	48 8b da             	mov    %rdx,%rbx
180087ae7:	4c 89 60 f0          	mov    %r12,-0x10(%rax)
180087aeb:	41 8a ec             	mov    %r12b,%bpl
180087aee:	44 89 60 e8          	mov    %r12d,-0x18(%rax)
180087af2:	48 85 d2             	test   %rdx,%rdx
180087af5:	0f 84 a0 00 00 00    	je     0x180087b9b
180087afb:	4c 39 62 08          	cmp    %r12,0x8(%rdx)
180087aff:	0f 84 96 00 00 00    	je     0x180087b9b
180087b05:	4c 39 64 24 68       	cmp    %r12,0x68(%rsp)
180087b0a:	0f 84 8b 00 00 00    	je     0x180087b9b
180087b10:	4c 39 64 24 70       	cmp    %r12,0x70(%rsp)
180087b15:	0f 84 80 00 00 00    	je     0x180087b9b
180087b1b:	4c 8d 35 5e 9d 0c 00 	lea    0xc9d5e(%rip),%r14        # 0x180151880
180087b22:	45 8d 7c 24 02       	lea    0x2(%r12),%r15d
180087b27:	41 b0 01             	mov    $0x1,%r8b
180087b2a:	48 8b d3             	mov    %rbx,%rdx
180087b2d:	49 8b ce             	mov    %r14,%rcx
180087b30:	e8 cf 5b ff ff       	call   0x18007d704
180087b35:	40 0a e8             	or     %al,%bpl
180087b38:	49 83 c6 10          	add    $0x10,%r14
180087b3c:	49 83 ef 01          	sub    $0x1,%r15
180087b40:	75 e5                	jne    0x180087b27
180087b42:	40 84 ed             	test   %bpl,%bpl
180087b45:	74 46                	je     0x180087b8d
180087b47:	48 8b 15 92 bd 11 00 	mov    0x11bd92(%rip),%rdx        # 0x1801a38e0
180087b4e:	48 8b 4c 24 68       	mov    0x68(%rsp),%rcx