180024784:	44 39 7d d4          	cmp    %r15d,-0x2c(%rbp)
180024788:	75 1d                	jne    0x1800247a7
18002478a:	be 0b 00 00 00       	mov    $0xb,%esi
18002478f:	44 3b f6             	cmp    %esi,%r14d
180024792:	72 65                	jb     0x1800247f9
180024794:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
180024798:	33 d2                	xor    %edx,%edx
18002479a:	8b ce                	mov    %esi,%ecx
18002479c:	e8 ff f3 10 00       	call   0x180133ba0
1800247a1:	44 39 7d d4          	cmp    %r15d,-0x2c(%rbp)
1800247a5:	74 52                	je     0x1800247f9
1800247a7:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
1800247ab:	33 d2                	xor    %edx,%edx
1800247ad:	8b ce                	mov    %esi,%ecx
1800247af:	e8 ec f3 10 00       	call   0x180133ba0
1800247b4:	44 39 7d d4          	cmp    %r15d,-0x2c(%rbp)
1800247b8:	0f 84 a9 00 00 00    	je     0x180024867
1800247be:	8b 4d d0             	mov    -0x30(%rbp),%ecx
1800247c1:	ba 01 00 00 00       	mov    $0x1,%edx
1800247c6:	8b 45 d8             	mov    -0x28(%rbp),%eax
1800247c9:	83 e1 1f             	and    $0x1f,%ecx
1800247cc:	d3 e2                	shl    %cl,%edx
1800247ce:	c1 e8 08             	shr    $0x8,%eax
1800247d1:	85 c0                	test   %eax,%eax
1800247d3:	74 0b                	je     0x1800247e0
1800247d5:	83 f8 01             	cmp    $0x1,%eax
1800247d8:	74 04                	je     0x1800247de
1800247da:	8b da                	mov    %edx,%ebx
1800247dc:	eb 02                	jmp    0x1800247e0
1800247de:	8b fa                	mov    %edx,%edi
1800247e0:	41 ff c7             	inc    %r15d
1800247e3:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
1800247e7:	41 8b d7             	mov    %r15d,%edx
1800247ea:	8b ce                	mov    %esi,%ecx
1800247ec:	e8 af f3 10 00       	call   0x180133ba0
1800247f1:	83 7d d4 00          	cmpl   $0x0,-0x2c(%rbp)
1800247f5:	75 c7                	jne    0x1800247be
1800247f7:	eb 6e                	jmp    0x180024867
1800247f9:	b9 04 00 00 00       	mov    $0x4,%ecx
1800247fe:	44 3b f1             	cmp    %ecx,%r14d
180024801:	72 2f                	jb     0x180024832
180024803:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
180024807:	33 d2                	xor    %edx,%edx
180024809:	e8 92 f3 10 00       	call   0x180133ba0
18002480e:	8b 45 d0             	mov    -0x30(%rbp),%eax
180024811:	c1 e8 1a             	shr    $0x1a,%eax
180024814:	8d 04 45 01 00 00 00 	lea    0x1(,%rax,2),%eax
18002481b:	0f bd c8             	bsr    %eax,%ecx
18002481e:	0f 95 c0             	setne  %al
180024821:	84 c0                	test   %al,%al
180024823:	75 05                	jne    0x18002482a
180024825:	45 33 c0             	xor    %r8d,%r8d
180024828:	eb 0b                	jmp    0x180024835
18002482a:	44 8b c3             	mov    %ebx,%r8d
18002482d:	41 d3 e0             	shl    %cl,%r8d
180024830:	eb 03                	jmp    0x180024835
180024832:	44 8b c3             	mov    %ebx,%r8d
180024835:	f7 45 ec 00 00 00 10 	testl  $0x10000000,-0x14(%rbp)
18002483c:	74 20                	je     0x18002485e
18002483e:	8b 45 e4             	mov    -0x1c(%rbp),%eax
180024841:	c1 e8 10             	shr    $0x10,%eax
180024844:	0f b6 c0             	movzbl %al,%eax
180024847:	8d 04 45 ff ff ff ff 	lea    -0x1(,%rax,2),%eax
18002484e:	0f bd c8             	bsr    %eax,%ecx
180024851:	0f 95 c0             	setne  %al
180024854:	84 c0                	test   %al,%al
180024856:	75 04                	jne    0x18002485c
180024858:	33 db                	xor    %ebx,%ebx
18002485a:	eb 02                	jmp    0x18002485e
18002485c:	d3 e3                	shl    %cl,%ebx
18002485e:	33 d2                	xor    %edx,%edx
180024860:	8b c3                	mov    %ebx,%eax
180024862:	41 f7 f0             	div    %r8d
180024865:	8b f8                	mov    %eax,%edi
180024867:	f7 db                	neg    %ebx
180024869:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
18002486e:	49 8b 73 38          	mov    0x38(%r11),%rsi
180024872:	f7 df                	neg    %edi
180024874:	41 89 3c 24          	mov    %edi,(%r12)
180024878:	49 8b 7b 40          	mov    0x40(%r11),%rdi
18002487c:	41 89 5d 00          	mov    %ebx,0x0(%r13)
180024880:	49 8b 5b 30          	mov    0x30(%r11),%rbx
180024884:	49 8b e3             	mov    %r11,%rsp
180024887:	41 5f                	pop    %r15
180024889:	41 5e                	pop    %r14
18002488b:	41 5d                	pop    %r13
18002488d:	41 5c                	pop    %r12
18002488f:	5d                   	pop    %rbp
180024890:	c3                   	ret
180024891:	cc                   	int3
180024892:	cc                   	int3
180024893:	cc                   	int3
180024894:	44 8b 02             	mov    (%rdx),%r8d
180024897:	44 39 01             	cmp    %r8d,(%rcx)
18002489a:	73 05                	jae    0x1800248a1
18002489c:	83 c8 ff             	or     $0xffffffff,%eax
18002489f:	c3                   	ret
1800248a0:	cc                   	int3
1800248a1:	33 c0                	xor    %eax,%eax
1800248a3:	44 39 01             	cmp    %r8d,(%rcx)
1800248a6:	0f 97 c0             	seta   %al
1800248a9:	c3                   	ret
1800248aa:	cc                   	int3
1800248ab:	cc                   	int3
1800248ac:	40 53                	rex push %rbx
1800248ae:	48 83 ec 30          	sub    $0x30,%rsp
1800248b2:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
1800248b7:	33 d2                	xor    %edx,%edx
1800248b9:	33 c9                	xor    %ecx,%ecx
1800248bb:	e8 e0 f2 10 00       	call   0x180133ba0
1800248c0:	8b 4c 24 28          	mov    0x28(%rsp),%ecx
1800248c4:	48 8d 15 35 6e 12 00 	lea    0x126e35(%rip),%rdx        # 0x18014b700
1800248cb:	8b 44 24 2c          	mov    0x2c(%rsp),%eax
1800248cf:	bb 0c 00 00 00       	mov    $0xc,%ebx
1800248d4:	89 4c 24 2c          	mov    %ecx,0x2c(%rsp)
1800248d8:	44 8b c3             	mov    %ebx,%r8d
1800248db:	48 8d 4c 24 24       	lea    0x24(%rsp),%rcx
1800248e0:	89 44 24 28          	mov    %eax,0x28(%rsp)
1800248e4:	e8 27 6e 10 00       	call   0x18012b710
1800248e9:	85 c0                	test   %eax,%eax
1800248eb:	75 05                	jne    0x1800248f2
1800248ed:	8d 43 f6             	lea    -0xa(%rbx),%eax
1800248f0:	eb 3c                	jmp    0x18002492e
1800248f2:	4c 8b c3             	mov    %rbx,%r8
1800248f5:	48 8d 15 14 6e 12 00 	lea    0x126e14(%rip),%rdx        # 0x18014b710
1800248fc:	48 8d 4c 24 24       	lea    0x24(%rsp),%rcx
180024901:	e8 0a 6e 10 00       	call   0x18012b710
180024906:	85 c0                	test   %eax,%eax
180024908:	75 07                	jne    0x180024911
18002490a:	b8 01 00 00 00       	mov    $0x1,%eax
18002490f:	eb 1d                	jmp    0x18002492e
180024911:	4c 8b c3             	mov    %rbx,%r8
180024914:	48 8d 15 05 6e 12 00 	lea    0x126e05(%rip),%rdx        # 0x18014b720
18002491b:	48 8d 4c 24 24       	lea    0x24(%rsp),%rcx
180024920:	e8 eb 6d 10 00       	call   0x18012b710
180024925:	f7 d8                	neg    %eax
180024927:	1b c0                	sbb    %eax,%eax
180024929:	f7 d0                	not    %eax
18002492b:	83 e0 03             	and    $0x3,%eax
18002492e:	48 83 c4 30          	add    $0x30,%rsp
180024932:	5b                   	pop    %rbx
180024933:	c3                   	ret
180024934:	cc                   	int3
180024935:	cc                   	int3
180024936:	cc                   	int3
180024937:	cc                   	int3
180024938:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18002493d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180024942:	57                   	push   %rdi
180024943:	48 83 ec 20          	sub    $0x20,%rsp
180024947:	33 db                	xor    %ebx,%ebx
180024949:	85 c9                	test   %ecx,%ecx
18002494b:	0f 85 9d 00 00 00    	jne    0x1800249ee
180024951:	8d 4b 10             	lea    0x10(%rbx),%ecx
180024954:	0f 32                	rdmsr
180024956:	48 c1 e2 20          	shl    $0x20,%rdx
18002495a:	48 0b c2             	or     %rdx,%rax
18002495d:	48 ba 00 00 00 00 00 	movabs $0xffc0000000000000,%rdx
180024964:	00 c0 ff
180024967:	48 85 c2             	test   %rax,%rdx
18002496a:	74 06                	je     0x180024972
18002496c:	33 c0                	xor    %eax,%eax
18002496e:	33 d2                	xor    %edx,%edx
180024970:	0f 30                	wrmsr
180024972:	48 8d 3d e7 06 18 00 	lea    0x1806e7(%rip),%rdi        # 0x1801a5060
180024979:	48 89 1d 88 06 18 00 	mov    %rbx,0x180688(%rip)        # 0x1801a5008
180024980:	48 8b cf             	mov    %rdi,%rcx
180024983:	c7 05 93 06 18 00 01 	movl   $0x1,0x180693(%rip)        # 0x1801a5020
18002498a:	00 00 00
18002498d:	89 1d cd 06 18 00    	mov    %ebx,0x1806cd(%rip)        # 0x1801a5060
180024993:	e8 cc 0e 00 00       	call   0x180025864
180024998:	85 c0                	test   %eax,%eax
18002499a:	8b f0                	mov    %eax,%esi
18002499c:	48 0f 48 3d 64 06 18 	cmovs  0x180664(%rip),%rdi        # 0x1801a5008
1800249a3:	00
1800249a4:	f7 05 ca 7e 14 00 00 	testl  $0x100000,0x147eca(%rip)        # 0x18016c878
1800249ab:	00 10 00
1800249ae:	48 89 3d 53 06 18 00 	mov    %rdi,0x180653(%rip)        # 0x1801a5008
1800249b5:	74 28                	je     0x1800249df
1800249b7:	48 8d 3d 62 06 18 00 	lea    0x180662(%rip),%rdi        # 0x1801a5020
1800249be:	48 8b cf             	mov    %rdi,%rcx
1800249c1:	e8 9e 0e 00 00       	call   0x180025864
1800249c6:	85 c0                	test   %eax,%eax
1800249c8:	79 04                	jns    0x1800249ce
1800249ca:	8b d8                	mov    %eax,%ebx
1800249cc:	eb 19                	jmp    0x1800249e7
1800249ce:	85 f6                	test   %esi,%esi
1800249d0:	48 0f 49 3d 30 06 18 	cmovns 0x180630(%rip),%rdi        # 0x1801a5008
1800249d7:	00
1800249d8:	48 89 3d 29 06 18 00 	mov    %rdi,0x180629(%rip)        # 0x1801a5008
1800249df:	48 8b cf             	mov    %rdi,%rcx
1800249e2:	e8 2d 0f 00 00       	call   0x180025914
1800249e7:	e8 34 02 00 00       	call   0x180024c20
1800249ec:	eb 11                	jmp    0x1800249ff
1800249ee:	f7 05 c8 ff 17 00 00 	testl  $0x4000,0x17ffc8(%rip)        # 0x1801a49c0
1800249f5:	40 00 00
1800249f8:	75 05                	jne    0x1800249ff
1800249fa:	e8 3d 00 00 00       	call   0x180024a3c
1800249ff:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
180024a04:	8b c3                	mov    %ebx,%eax
180024a06:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180024a0b:	48 83 c4 20          	add    $0x20,%rsp
180024a0f:	5f                   	pop    %rdi
180024a10:	c3                   	ret
180024a11:	cc                   	int3
180024a12:	cc                   	int3
180024a13:	cc                   	int3
180024a14:	48 83 ec 38          	sub    $0x38,%rsp
180024a18:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
180024a1d:	33 d2                	xor    %edx,%edx
180024a1f:	33 c9                	xor    %ecx,%ecx
180024a21:	e8 7a f1 10 00       	call   0x180133ba0
180024a26:	0f 31                	rdtsc
180024a28:	48 c1 e2 20          	shl    $0x20,%rdx
180024a2c:	48 0b c2             	or     %rdx,%rax
180024a2f:	48 83 c4 38          	add    $0x38,%rsp
180024a33:	c3                   	ret
180024a34:	cc                   	int3
180024a35:	cc                   	int3
180024a36:	cc                   	int3
180024a37:	cc                   	int3
180024a38:	b0 01                	mov    $0x1,%al
180024a3a:	c3                   	ret
180024a3b:	cc                   	int3
180024a3c:	48 83 ec 38          	sub    $0x38,%rsp
180024a40:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180024a45:	e8 b6 f0 10 00       	call   0x180133b00
180024a4a:	e8 81 f1 10 00       	call   0x180133bd0
180024a4f:	48 8b 54 24 22       	mov    0x22(%rsp),%rdx
180024a54:	48 8d 0d e5 f1 10 00 	lea    0x10f1e5(%rip),%rcx        # 0x180133c40
180024a5b:	44 0f b7 d0          	movzwl %ax,%r10d
180024a5f:	41 bb 00 8e 00 00    	mov    $0x8e00,%r11d
180024a65:	4c 8b c9             	mov    %rcx,%r9
180024a68:	4c 8b c1             	mov    %rcx,%r8
180024a6b:	49 c1 e9 10          	shr    $0x10,%r9
180024a6f:	66 44 89 4a 36       	mov    %r9w,0x36(%rdx)
180024a74:	66 89 4a 30          	mov    %cx,0x30(%rdx)
180024a78:	66 89 42 32          	mov    %ax,0x32(%rdx)
180024a7c:	66 44 89 5a 34       	mov    %r11w,0x34(%rdx)
180024a81:	49 c1 e8 20          	shr    $0x20,%r8
180024a85:	44 89 42 38          	mov    %r8d,0x38(%rdx)
180024a89:	48 8b 44 24 22       	mov    0x22(%rsp),%rax
180024a8e:	66 89 88 c0 02 00 00 	mov    %cx,0x2c0(%rax)
180024a95:	66 44 89 88 c6 02 00 	mov    %r9w,0x2c6(%rax)
180024a9c:	00
180024a9d:	44 89 80 c8 02 00 00 	mov    %r8d,0x2c8(%rax)
180024aa4:	66 44 89 90 c2 02 00 	mov    %r10w,0x2c2(%rax)
180024aab:	00
180024aac:	66 44 89 98 c4 02 00 	mov    %r11w,0x2c4(%rax)
180024ab3:	00
180024ab4:	48 8b 44 24 22       	mov    0x22(%rsp),%rax
180024ab9:	66 89 88 d0 02 00 00 	mov    %cx,0x2d0(%rax)
180024ac0:	66 44 89 88 d6 02 00 	mov    %r9w,0x2d6(%rax)
180024ac7:	00
180024ac8:	44 89 80 d8 02 00 00 	mov    %r8d,0x2d8(%rax)
180024acf:	66 44 89 90 d2 02 00 	mov    %r10w,0x2d2(%rax)
180024ad6:	00
180024ad7:	66 44 89 98 d4 02 00 	mov    %r11w,0x2d4(%rax)
180024ade:	00
180024adf:	f6 05 ba ed 17 00 02 	testb  $0x2,0x17edba(%rip)        # 0x1801a38a0
180024ae6:	74 3b                	je     0x180024b23
180024ae8:	48 8b 54 24 22       	mov    0x22(%rsp),%rdx
180024aed:	48 8d 05 60 e3 06 00 	lea    0x6e360(%rip),%rax        # 0x180092e54
180024af4:	48 8b c8             	mov    %rax,%rcx
180024af7:	48 c1 e9 10          	shr    $0x10,%rcx
180024afb:	66 89 82 80 00 00 00 	mov    %ax,0x80(%rdx)
180024b02:	48 c1 e8 20          	shr    $0x20,%rax
180024b06:	89 82 88 00 00 00    	mov    %eax,0x88(%rdx)
180024b0c:	66 89 8a 86 00 00 00 	mov    %cx,0x86(%rdx)
180024b13:	66 44 89 92 82 00 00 	mov    %r10w,0x82(%rdx)
180024b1a:	00
180024b1b:	66 44 89 9a 84 00 00 	mov    %r11w,0x84(%rdx)
180024b22:	00
180024b23:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180024b28:	e8 f3 ef 10 00       	call   0x180133b20
180024b2d:	48 83 c4 38          	add    $0x38,%rsp
180024b31:	c3                   	ret
180024b32:	cc                   	int3
180024b33:	cc                   	int3
180024b34:	45 32 c0             	xor    %r8b,%r8b
180024b37:	0f 20 c0             	mov    %cr0,%rax
180024b3a:	b9 00 00 00 80       	mov    $0x80000000,%ecx
180024b3f:	48 85 c1             	test   %rax,%rcx
180024b42:	74 2a                	je     0x180024b6e
180024b44:	b9 80 00 00 c0       	mov    $0xc0000080,%ecx
180024b49:	0f 32                	rdmsr
180024b4b:	48 c1 e2 20          	shl    $0x20,%rdx
180024b4f:	48 0b c2             	or     %rdx,%rax
180024b52:	48 0f ba e0 0a       	bt     $0xa,%rax
180024b57:	73 15                	jae    0x180024b6e
180024b59:	0f 20 e0             	mov    %cr4,%rax
180024b5c:	48 0f ba e0 0c       	bt     $0xc,%rax
180024b61:	45 0f b6 c0          	movzbl %r8b,%r8d
180024b65:	b8 01 00 00 00       	mov    $0x1,%eax
180024b6a:	44 0f 42 c0          	cmovb  %eax,%r8d
180024b6e:	41 8a c0             	mov    %r8b,%al
180024b71:	c3                   	ret
180024b72:	cc                   	int3
180024b73:	cc                   	int3
180024b74:	40 53                	rex push %rbx
180024b76:	48 83 ec 30          	sub    $0x30,%rsp
180024b7a:	b9 07 00 00 00       	mov    $0x7,%ecx
180024b7f:	32 db                	xor    %bl,%bl
180024b81:	e8 2e 00 00 00       	call   0x180024bb4
180024b86:	84 c0                	test   %al,%al
180024b88:	74 1f                	je     0x180024ba9
180024b8a:	33 d2                	xor    %edx,%edx
180024b8c:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
180024b91:	8d 4a 07             	lea    0x7(%rdx),%ecx
180024b94:	e8 07 f0 10 00       	call   0x180133ba0
180024b99:	f6 44 24 28 80       	testb  $0x80,0x28(%rsp)
180024b9e:	b8 01 00 00 00       	mov    $0x1,%eax
180024ba3:	0f b6 db             	movzbl %bl,%ebx
180024ba6:	0f 45 d8             	cmovne %eax,%ebx
180024ba9:	8a c3                	mov    %bl,%al
180024bab:	48 83 c4 30          	add    $0x30,%rsp
180024baf:	5b                   	pop    %rbx
180024bb0:	c3                   	ret
180024bb1:	cc                   	int3
180024bb2:	cc                   	int3
180024bb3:	cc                   	int3
180024bb4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180024bb9:	57                   	push   %rdi
180024bba:	48 83 ec 30          	sub    $0x30,%rsp
180024bbe:	8b d9                	mov    %ecx,%ebx
180024bc0:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
180024bc5:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
180024bcb:	33 d2                	xor    %edx,%edx
180024bcd:	40 32 ff             	xor    %dil,%dil
180024bd0:	e8 cb ef 10 00       	call   0x180133ba0
180024bd5:	3b 5c 24 20          	cmp    0x20(%rsp),%ebx
180024bd9:	b9 01 00 00 00       	mov    $0x1,%ecx
180024bde:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180024be3:	40 0f b6 c7          	movzbl %dil,%eax
180024be7:	0f 46 c1             	cmovbe %ecx,%eax
180024bea:	48 83 c4 30          	add    $0x30,%rsp
180024bee:	5f                   	pop    %rdi
180024bef:	c3                   	ret
180024bf0:	cc                   	int3
180024bf1:	cc                   	int3
180024bf2:	cc                   	int3
180024bf3:	cc                   	int3
180024bf4:	40 53                	rex push %rbx
180024bf6:	48 83 ec 20          	sub    $0x20,%rsp
180024bfa:	8a d9                	mov    %cl,%bl
180024bfc:	e8 ab fc ff ff       	call   0x1800248ac
180024c01:	83 f8 01             	cmp    $0x1,%eax
180024c04:	74 0c                	je     0x180024c12
180024c06:	8a cb                	mov    %bl,%cl
180024c08:	48 83 c4 20          	add    $0x20,%rsp