18003780f:	4c 8b c8             	mov    %rax,%r9
180037812:	39 50 58             	cmp    %edx,0x58(%rax)
180037815:	74 0a                	je     0x180037821
180037817:	48 8b 00             	mov    (%rax),%rax
18003781a:	48 3b c1             	cmp    %rcx,%rax
18003781d:	75 f0                	jne    0x18003780f
18003781f:	eb 03                	jmp    0x180037824
180037821:	41 b0 01             	mov    $0x1,%r8b
180037824:	41 f6 d8             	neg    %r8b
180037827:	48 1b c0             	sbb    %rax,%rax
18003782a:	49 23 c1             	and    %r9,%rax
18003782d:	c3                   	ret
18003782e:	cc                   	int3
18003782f:	cc                   	int3
180037830:	48 83 ec 28          	sub    $0x28,%rsp
180037834:	49 8b c1             	mov    %r9,%rax
180037837:	44 8b c9             	mov    %ecx,%r9d
18003783a:	8b 48 28             	mov    0x28(%rax),%ecx
18003783d:	49 d3 e0             	shl    %cl,%r8
180037840:	48 d3 e2             	shl    %cl,%rdx
180037843:	48 8b c8             	mov    %rax,%rcx
180037846:	e8 09 00 00 00       	call   0x180037854
18003784b:	48 83 c4 28          	add    $0x28,%rsp
18003784f:	c3                   	ret
180037850:	cc                   	int3
180037851:	cc                   	int3
180037852:	cc                   	int3
180037853:	cc                   	int3
180037854:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180037859:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18003785e:	56                   	push   %rsi
18003785f:	57                   	push   %rdi
180037860:	41 54                	push   %r12
180037862:	41 56                	push   %r14
180037864:	41 57                	push   %r15
180037866:	48 83 ec 20          	sub    $0x20,%rsp
18003786a:	48 8b 41 30          	mov    0x30(%rcx),%rax
18003786e:	33 ff                	xor    %edi,%edi
180037870:	48 21 7c 24 50       	and    %rdi,0x50(%rsp)
180037875:	41 8b d9             	mov    %r9d,%ebx
180037878:	4d 8b f0             	mov    %r8,%r14
18003787b:	48 8b f2             	mov    %rdx,%rsi
18003787e:	48 8b e9             	mov    %rcx,%rbp
180037881:	48 85 c0             	test   %rax,%rax
180037884:	75 17                	jne    0x18003789d
180037886:	85 db                	test   %ebx,%ebx
180037888:	0f 84 9d 00 00 00    	je     0x18003792b
18003788e:	e8 b5 00 00 00       	call   0x180037948
180037893:	8b f8                	mov    %eax,%edi
180037895:	85 c0                	test   %eax,%eax
180037897:	0f 88 8e 00 00 00    	js     0x18003792b
18003789d:	44 8b 4d 28          	mov    0x28(%rbp),%r9d
1800378a1:	4d 8d 66 ff          	lea    -0x1(%r14),%r12
1800378a5:	33 d2                	xor    %edx,%edx
1800378a7:	89 5c 24 50          	mov    %ebx,0x50(%rsp)
1800378ab:	41 8b c9             	mov    %r9d,%ecx
1800378ae:	41 b8 01 00 00 00    	mov    $0x1,%r8d
1800378b4:	49 d3 e0             	shl    %cl,%r8
1800378b7:	49 8d 0c 30          	lea    (%r8,%rsi,1),%rcx
1800378bb:	4c 03 e1             	add    %rcx,%r12
1800378be:	49 8b c4             	mov    %r12,%rax
1800378c1:	49 f7 f0             	div    %r8
1800378c4:	48 8b c6             	mov    %rsi,%rax
1800378c7:	4c 2b e2             	sub    %rdx,%r12
1800378ca:	33 d2                	xor    %edx,%edx
1800378cc:	49 f7 f0             	div    %r8
1800378cf:	48 2b f2             	sub    %rdx,%rsi
1800378d2:	49 3b f4             	cmp    %r12,%rsi
1800378d5:	73 54                	jae    0x18003792b
1800378d7:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1800378dc:	4c 8b 7d 30          	mov    0x30(%rbp),%r15
1800378e0:	41 8b c9             	mov    %r9d,%ecx
1800378e3:	4c 8b f6             	mov    %rsi,%r14
1800378e6:	33 ff                	xor    %edi,%edi
1800378e8:	49 d3 ee             	shr    %cl,%r14
1800378eb:	49 8b cf             	mov    %r15,%rcx
1800378ee:	49 8b d6             	mov    %r14,%rdx
1800378f1:	e8 e6 bf 00 00       	call   0x1800438dc
1800378f6:	48 85 c0             	test   %rax,%rax
1800378f9:	75 05                	jne    0x180037900
1800378fb:	48 85 db             	test   %rbx,%rbx
1800378fe:	74 10                	je     0x180037910
180037900:	4c 8b c3             	mov    %rbx,%r8
180037903:	49 8b d6             	mov    %r14,%rdx
180037906:	49 8b cf             	mov    %r15,%rcx
180037909:	e8 12 c0 00 00       	call   0x180043920
18003790e:	8b f8                	mov    %eax,%edi
180037910:	85 ff                	test   %edi,%edi
180037912:	78 17                	js     0x18003792b
180037914:	44 8b 4d 28          	mov    0x28(%rbp),%r9d
180037918:	b8 01 00 00 00       	mov    $0x1,%eax
18003791d:	41 8b c9             	mov    %r9d,%ecx
180037920:	48 d3 e0             	shl    %cl,%rax
180037923:	48 03 f0             	add    %rax,%rsi
180037926:	49 3b f4             	cmp    %r12,%rsi
180037929:	72 b1                	jb     0x1800378dc
18003792b:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
180037930:	8b c7                	mov    %edi,%eax
180037932:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
180037937:	48 83 c4 20          	add    $0x20,%rsp
18003793b:	41 5f                	pop    %r15
18003793d:	41 5e                	pop    %r14
18003793f:	41 5c                	pop    %r12
180037941:	5f                   	pop    %rdi
180037942:	5e                   	pop    %rsi
180037943:	c3                   	ret
180037944:	cc                   	int3
180037945:	cc                   	int3
180037946:	cc                   	int3
180037947:	cc                   	int3
180037948:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18003794d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180037952:	57                   	push   %rdi
180037953:	48 83 ec 20          	sub    $0x20,%rsp
180037957:	48 8b f1             	mov    %rcx,%rsi
18003795a:	bf 40 00 00 00       	mov    $0x40,%edi
18003795f:	8b cf                	mov    %edi,%ecx
180037961:	e8 ae ef 00 00       	call   0x180046914
180037966:	48 8b d8             	mov    %rax,%rbx
180037969:	48 85 c0             	test   %rax,%rax
18003796c:	74 2d                	je     0x18003799b
18003796e:	48 83 20 00          	andq   $0x0,(%rax)
180037972:	48 83 c0 08          	add    $0x8,%rax
180037976:	48 83 63 18 00       	andq   $0x0,0x18(%rbx)
18003797b:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%rbx)
180037982:	89 7b 24             	mov    %edi,0x24(%rbx)
180037985:	48 89 40 08          	mov    %rax,0x8(%rax)
180037989:	48 89 00             	mov    %rax,(%rax)
18003798c:	8d 47 c6             	lea    -0x3a(%rdi),%eax
18003798f:	89 43 28             	mov    %eax,0x28(%rbx)
180037992:	89 43 38             	mov    %eax,0x38(%rbx)
180037995:	48 89 7b 30          	mov    %rdi,0x30(%rbx)
180037999:	eb 02                	jmp    0x18003799d
18003799b:	33 db                	xor    %ebx,%ebx
18003799d:	48 85 db             	test   %rbx,%rbx
1800379a0:	75 07                	jne    0x1800379a9
1800379a2:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
1800379a7:	eb 3e                	jmp    0x1800379e7
1800379a9:	48 8b 56 20          	mov    0x20(%rsi),%rdx
1800379ad:	8b 4e 28             	mov    0x28(%rsi),%ecx
1800379b0:	48 d3 ea             	shr    %cl,%rdx
1800379b3:	48 8b cb             	mov    %rbx,%rcx
1800379b6:	e8 ad bd 00 00       	call   0x180043768
1800379bb:	8b f8                	mov    %eax,%edi
1800379bd:	85 c0                	test   %eax,%eax
1800379bf:	78 11                	js     0x1800379d2
1800379c1:	33 c0                	xor    %eax,%eax
1800379c3:	f0 48 0f b1 5e 30    	lock cmpxchg %rbx,0x30(%rsi)
1800379c9:	48 f7 d8             	neg    %rax
1800379cc:	48 1b d2             	sbb    %rdx,%rdx
1800379cf:	48 23 da             	and    %rdx,%rbx
1800379d2:	48 85 db             	test   %rbx,%rbx
1800379d5:	74 10                	je     0x1800379e7
1800379d7:	48 8b cb             	mov    %rbx,%rcx
1800379da:	e8 3d be 00 00       	call   0x18004381c
1800379df:	48 8b cb             	mov    %rbx,%rcx
1800379e2:	e8 75 ef 00 00       	call   0x18004695c
1800379e7:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800379ec:	8b c7                	mov    %edi,%eax
1800379ee:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1800379f3:	48 83 c4 20          	add    $0x20,%rsp
1800379f7:	5f                   	pop    %rdi
1800379f8:	c3                   	ret
1800379f9:	cc                   	int3
1800379fa:	cc                   	int3
1800379fb:	cc                   	int3
1800379fc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180037a01:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180037a06:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180037a0b:	57                   	push   %rdi
180037a0c:	48 83 ec 20          	sub    $0x20,%rsp
180037a10:	48 8b 41 30          	mov    0x30(%rcx),%rax
180037a14:	33 ff                	xor    %edi,%edi
180037a16:	4d 8b c8             	mov    %r8,%r9
180037a19:	48 8b da             	mov    %rdx,%rbx
180037a1c:	48 8b f1             	mov    %rcx,%rsi
180037a1f:	48 85 c0             	test   %rax,%rax
180037a22:	74 5c                	je     0x180037a80
180037a24:	8b 49 28             	mov    0x28(%rcx),%ecx
180037a27:	44 8d 47 01          	lea    0x1(%rdi),%r8d
180037a2b:	49 d3 e0             	shl    %cl,%r8
180037a2e:	49 8d 69 ff          	lea    -0x1(%r9),%rbp
180037a32:	49 8d 04 10          	lea    (%r8,%rdx,1),%rax
180037a36:	33 d2                	xor    %edx,%edx
180037a38:	48 03 e8             	add    %rax,%rbp
180037a3b:	48 8b c5             	mov    %rbp,%rax
180037a3e:	49 f7 f0             	div    %r8
180037a41:	48 8b c3             	mov    %rbx,%rax
180037a44:	48 2b ea             	sub    %rdx,%rbp
180037a47:	33 d2                	xor    %edx,%edx
180037a49:	49 f7 f0             	div    %r8
180037a4c:	48 2b da             	sub    %rdx,%rbx
180037a4f:	eb 25                	jmp    0x180037a76
180037a51:	48 8b 46 30          	mov    0x30(%rsi),%rax
180037a55:	48 8b d3             	mov    %rbx,%rdx
180037a58:	48 d3 ea             	shr    %cl,%rdx
180037a5b:	48 8b c8             	mov    %rax,%rcx
180037a5e:	e8 79 be 00 00       	call   0x1800438dc
180037a63:	83 f8 01             	cmp    $0x1,%eax
180037a66:	74 15                	je     0x180037a7d
180037a68:	8b 4e 28             	mov    0x28(%rsi),%ecx
180037a6b:	b8 01 00 00 00       	mov    $0x1,%eax
180037a70:	48 d3 e0             	shl    %cl,%rax
180037a73:	48 03 d8             	add    %rax,%rbx
180037a76:	48 3b dd             	cmp    %rbp,%rbx
180037a79:	72 d6                	jb     0x180037a51
180037a7b:	eb 03                	jmp    0x180037a80
180037a7d:	40 b7 01             	mov    $0x1,%dil
180037a80:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180037a85:	40 8a c7             	mov    %dil,%al
180037a88:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180037a8d:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180037a92:	48 83 c4 20          	add    $0x20,%rsp
180037a96:	5f                   	pop    %rdi
180037a97:	c3                   	ret
180037a98:	cc                   	int3
180037a99:	cc                   	int3
180037a9a:	cc                   	int3
180037a9b:	cc                   	int3
180037a9c:	45 33 d2             	xor    %r10d,%r10d
180037a9f:	48 8d 05 7a b2 10 00 	lea    0x10b27a(%rip),%rax        # 0x180142d20
180037aa6:	48 89 01             	mov    %rax,(%rcx)
180037aa9:	4c 8d 81 70 01 00 00 	lea    0x170(%rcx),%r8
180037ab0:	48 8d 81 20 01 00 00 	lea    0x120(%rcx),%rax
180037ab7:	4c 89 91 98 00 00 00 	mov    %r10,0x98(%rcx)
180037abe:	48 89 40 08          	mov    %rax,0x8(%rax)
180037ac2:	48 8b d1             	mov    %rcx,%rdx
180037ac5:	48 89 00             	mov    %rax,(%rax)
180037ac8:	45 8d 4a 0a          	lea    0xa(%r10),%r9d
180037acc:	48 83 c0 10          	add    $0x10,%rax
180037ad0:	44 89 91 a0 00 00 00 	mov    %r10d,0xa0(%rcx)
180037ad7:	4c 89 91 a8 00 00 00 	mov    %r10,0xa8(%rcx)
180037ade:	4c 89 91 b0 00 00 00 	mov    %r10,0xb0(%rcx)
180037ae5:	4c 89 91 b8 00 00 00 	mov    %r10,0xb8(%rcx)
180037aec:	49 8d 48 38          	lea    0x38(%r8),%rcx
180037af0:	48 89 40 08          	mov    %rax,0x8(%rax)
180037af4:	48 89 00             	mov    %rax,(%rax)
180037af7:	44 89 51 d0          	mov    %r10d,-0x30(%rcx)
180037afb:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
180037aff:	48 89 01             	mov    %rax,(%rcx)
180037b02:	4c 89 51 d8          	mov    %r10,-0x28(%rcx)
180037b06:	4c 89 51 08          	mov    %r10,0x8(%rcx)
180037b0a:	4d 89 10             	mov    %r10,(%r8)
180037b0d:	4d 8d 40 48          	lea    0x48(%r8),%r8
180037b11:	4c 89 51 e0          	mov    %r10,-0x20(%rcx)
180037b15:	4c 89 51 e8          	mov    %r10,-0x18(%rcx)
180037b19:	66 44 89 51 f4       	mov    %r10w,-0xc(%rcx)
180037b1e:	48 8d 49 48          	lea    0x48(%rcx),%rcx
180037b22:	48 89 00             	mov    %rax,(%rax)
180037b25:	49 83 e9 01          	sub    $0x1,%r9
180037b29:	75 cc                	jne    0x180037af7
180037b2b:	48 8d 82 f8 00 00 00 	lea    0xf8(%rdx),%rax
180037b32:	48 89 40 08          	mov    %rax,0x8(%rax)
180037b36:	48 89 00             	mov    %rax,(%rax)
180037b39:	48 8d 82 c0 00 00 00 	lea    0xc0(%rdx),%rax
180037b40:	48 89 40 08          	mov    %rax,0x8(%rax)
180037b44:	48 89 00             	mov    %rax,(%rax)
180037b47:	48 8b c2             	mov    %rdx,%rax
180037b4a:	c3                   	ret
180037b4b:	cc                   	int3
180037b4c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180037b51:	57                   	push   %rdi
180037b52:	48 83 ec 20          	sub    $0x20,%rsp
180037b56:	8b da                	mov    %edx,%ebx
180037b58:	48 8b f9             	mov    %rcx,%rdi
180037b5b:	e8 1c 00 00 00       	call   0x180037b7c
180037b60:	f6 c3 01             	test   $0x1,%bl
180037b63:	74 08                	je     0x180037b6d
180037b65:	48 8b cf             	mov    %rdi,%rcx
180037b68:	e8 ef ed 00 00       	call   0x18004695c
180037b6d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180037b72:	48 8b c7             	mov    %rdi,%rax
180037b75:	48 83 c4 20          	add    $0x20,%rsp
180037b79:	5f                   	pop    %rdi
180037b7a:	c3                   	ret
180037b7b:	cc                   	int3
180037b7c:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
180037b81:	55                   	push   %rbp
180037b82:	56                   	push   %rsi
180037b83:	57                   	push   %rdi
180037b84:	48 83 ec 20          	sub    $0x20,%rsp
180037b88:	48 83 64 24 48 00    	andq   $0x0,0x48(%rsp)
180037b8e:	48 8d 05 8b b1 10 00 	lea    0x10b18b(%rip),%rax        # 0x180142d20
180037b95:	48 8b 99 58 01 00 00 	mov    0x158(%rcx),%rbx
180037b9c:	48 8b f9             	mov    %rcx,%rdi
180037b9f:	48 89 01             	mov    %rax,(%rcx)
180037ba2:	48 85 db             	test   %rbx,%rbx
180037ba5:	0f 84 82 00 00 00    	je     0x180037c2d
180037bab:	48 8d 73 58          	lea    0x58(%rbx),%rsi
180037baf:	eb 26                	jmp    0x180037bd7
180037bb1:	48 39 70 08          	cmp    %rsi,0x8(%rax)
180037bb5:	0f 85 84 02 00 00    	jne    0x180037e3f
180037bbb:	48 8b 08             	mov    (%rax),%rcx
180037bbe:	48 39 41 08          	cmp    %rax,0x8(%rcx)
180037bc2:	0f 85 77 02 00 00    	jne    0x180037e3f
180037bc8:	48 89 0e             	mov    %rcx,(%rsi)
180037bcb:	48 89 71 08          	mov    %rsi,0x8(%rcx)
180037bcf:	48 8b c8             	mov    %rax,%rcx
180037bd2:	e8 85 ed 00 00       	call   0x18004695c
180037bd7:	48 8b 06             	mov    (%rsi),%rax
180037bda:	48 3b c6             	cmp    %rsi,%rax
180037bdd:	75 d2                	jne    0x180037bb1
180037bdf:	48 8b 4b 50          	mov    0x50(%rbx),%rcx
180037be3:	48 85 c9             	test   %rcx,%rcx
180037be6:	74 05                	je     0x180037bed
180037be8:	e8 6f ed 00 00       	call   0x18004695c
180037bed:	48 8b 4b 48          	mov    0x48(%rbx),%rcx
180037bf1:	48 85 c9             	test   %rcx,%rcx
180037bf4:	74 05                	je     0x180037bfb
180037bf6:	e8 61 ed 00 00       	call   0x18004695c
180037bfb:	48 8b 4b 20          	mov    0x20(%rbx),%rcx
180037bff:	48 85 c9             	test   %rcx,%rcx
180037c02:	74 05                	je     0x180037c09
180037c04:	e8 53 ed 00 00       	call   0x18004695c
180037c09:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
180037c0d:	48 85 c9             	test   %rcx,%rcx
180037c10:	74 05                	je     0x180037c17
180037c12:	e8 45 ed 00 00       	call   0x18004695c
180037c17:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
180037c1b:	48 85 c9             	test   %rcx,%rcx
180037c1e:	74 05                	je     0x180037c25
180037c20:	e8 37 ed 00 00       	call   0x18004695c
180037c25:	48 8b cb             	mov    %rbx,%rcx
180037c28:	e8 2f ed 00 00       	call   0x18004695c
180037c2d:	48 8b 8f 50 01 00 00 	mov    0x150(%rdi),%rcx
180037c34:	bd 01 00 00 00       	mov    $0x1,%ebp
180037c39:	48 85 c9             	test   %rcx,%rcx
180037c3c:	74 0d                	je     0x180037c4b
180037c3e:	48 8b 01             	mov    (%rcx),%rax
180037c41:	8b d5                	mov    %ebp,%edx
180037c43:	48 8b 00             	mov    (%rax),%rax
180037c46:	ff d0                	call   *%rax
180037c48:	0f 1f 00             	nopl   (%rax)
180037c4b:	48 8b 8f 48 01 00 00 	mov    0x148(%rdi),%rcx
180037c52:	48 85 c9             	test   %rcx,%rcx
180037c55:	74 0d                	je     0x180037c64
180037c57:	48 8b 01             	mov    (%rcx),%rax
180037c5a:	8b d5                	mov    %ebp,%edx
180037c5c:	48 8b 00             	mov    (%rax),%rax
180037c5f:	ff d0                	call   *%rax
180037c61:	0f 1f 00             	nopl   (%rax)
180037c64:	48 8b 8f 40 01 00 00 	mov    0x140(%rdi),%rcx
180037c6b:	48 85 c9             	test   %rcx,%rcx
180037c6e:	74 0d                	je     0x180037c7d
180037c70:	48 8b 01             	mov    (%rcx),%rax
180037c73:	8b d5                	mov    %ebp,%edx
180037c75:	48 8b 00             	mov    (%rax),%rax
180037c78:	ff d0                	call   *%rax
180037c7a:	0f 1f 00             	nopl   (%rax)
180037c7d:	48 8b 8f 60 01 00 00 	mov    0x160(%rdi),%rcx