1400445f2:	45 85 e4             	test   %r12d,%r12d
1400445f5:	0f 84 8e 00 00 00    	je     0x140044689
1400445fb:	45 33 c0             	xor    %r8d,%r8d
1400445fe:	45 33 c9             	xor    %r9d,%r9d
140044601:	42 8b 84 8d 74 01 00 	mov    0x174(%rbp,%r9,4),%eax
140044608:	00
140044609:	48 8d 0c 80          	lea    (%rax,%rax,4),%rcx
14004460d:	41 8b c0             	mov    %r8d,%eax
140044610:	4c 8d 04 48          	lea    (%rax,%rcx,2),%r8
140044614:	46 89 84 8d 74 01 00 	mov    %r8d,0x174(%rbp,%r9,4)
14004461b:	00
14004461c:	45 03 cf             	add    %r15d,%r9d
14004461f:	49 c1 e8 20          	shr    $0x20,%r8
140044623:	45 3b cc             	cmp    %r12d,%r9d
140044626:	75 d9                	jne    0x140044601
140044628:	45 85 c0             	test   %r8d,%r8d
14004462b:	74 5c                	je     0x140044689
14004462d:	83 bd 70 01 00 00 73 	cmpl   $0x73,0x170(%rbp)
140044634:	73 17                	jae    0x14004464d
140044636:	8b 85 70 01 00 00    	mov    0x170(%rbp),%eax
14004463c:	44 89 84 85 74 01 00 	mov    %r8d,0x174(%rbp,%rax,4)
140044643:	00
140044644:	44 01 bd 70 01 00 00 	add    %r15d,0x170(%rbp)
14004464b:	eb 3c                	jmp    0x140044689
14004464d:	83 a5 40 03 00 00 00 	andl   $0x0,0x340(%rbp)
140044654:	4c 8d 85 44 03 00 00 	lea    0x344(%rbp),%r8
14004465b:	83 a5 70 01 00 00 00 	andl   $0x0,0x170(%rbp)
140044662:	48 8d 8d 74 01 00 00 	lea    0x174(%rbp),%rcx
140044669:	45 33 c9             	xor    %r9d,%r9d
14004466c:	ba cc 01 00 00       	mov    $0x1cc,%edx
140044671:	e8 c6 e2 fe ff       	call   0x14003293c
140044676:	eb 11                	jmp    0x140044689
140044678:	85 c0                	test   %eax,%eax
14004467a:	75 05                	jne    0x140044681
14004467c:	41 2b ff             	sub    %r15d,%edi
14004467f:	eb 08                	jmp    0x140044689
140044681:	04 30                	add    $0x30,%al
140044683:	48 8d 5e 01          	lea    0x1(%rsi),%rbx
140044687:	88 06                	mov    %al,(%rsi)
140044689:	48 8b 45 98          	mov    -0x68(%rbp),%rax
14004468d:	89 78 04             	mov    %edi,0x4(%rax)
140044690:	8b 44 24 60          	mov    0x60(%rsp),%eax
140044694:	85 ff                	test   %edi,%edi
140044696:	78 10                	js     0x1400446a8
140044698:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
14004469d:	77 09                	ja     0x1400446a8
14004469f:	83 7c 24 64 00       	cmpl   $0x0,0x64(%rsp)
1400446a4:	75 02                	jne    0x1400446a8
1400446a6:	03 c7                	add    %edi,%eax
1400446a8:	8b f8                	mov    %eax,%edi
1400446aa:	48 8b 85 58 07 00 00 	mov    0x758(%rbp),%rax
1400446b1:	48 ff c8             	dec    %rax
1400446b4:	48 3b c7             	cmp    %rdi,%rax
1400446b7:	48 0f 42 f8          	cmovb  %rax,%rdi
1400446bb:	48 03 fe             	add    %rsi,%rdi
1400446be:	40 32 f6             	xor    %sil,%sil
1400446c1:	48 3b df             	cmp    %rdi,%rbx
1400446c4:	0f 84 f2 00 00 00    	je     0x1400447bc
1400446ca:	41 be 09 00 00 00    	mov    $0x9,%r14d
1400446d0:	44 8b 4d a0          	mov    -0x60(%rbp),%r9d
1400446d4:	45 85 c9             	test   %r9d,%r9d
1400446d7:	0f 84 e3 00 00 00    	je     0x1400447c0
1400446dd:	45 33 c0             	xor    %r8d,%r8d
1400446e0:	45 33 d2             	xor    %r10d,%r10d
1400446e3:	42 8b 44 95 a4       	mov    -0x5c(%rbp,%r10,4),%eax
1400446e8:	48 69 c8 00 ca 9a 3b 	imul   $0x3b9aca00,%rax,%rcx
1400446ef:	41 8b c0             	mov    %r8d,%eax
1400446f2:	48 03 c8             	add    %rax,%rcx
1400446f5:	4c 8b c1             	mov    %rcx,%r8
1400446f8:	42 89 4c 95 a4       	mov    %ecx,-0x5c(%rbp,%r10,4)
1400446fd:	49 c1 e8 20          	shr    $0x20,%r8
140044701:	45 03 d7             	add    %r15d,%r10d
140044704:	45 3b d1             	cmp    %r9d,%r10d
140044707:	75 da                	jne    0x1400446e3
140044709:	45 85 c0             	test   %r8d,%r8d
14004470c:	74 37                	je     0x140044745
14004470e:	83 7d a0 73          	cmpl   $0x73,-0x60(%rbp)
140044712:	73 0e                	jae    0x140044722
140044714:	8b 45 a0             	mov    -0x60(%rbp),%eax
140044717:	44 89 44 85 a4       	mov    %r8d,-0x5c(%rbp,%rax,4)
14004471c:	44 01 7d a0          	add    %r15d,-0x60(%rbp)
140044720:	eb 23                	jmp    0x140044745
140044722:	83 a5 40 03 00 00 00 	andl   $0x0,0x340(%rbp)
140044729:	4c 8d 85 44 03 00 00 	lea    0x344(%rbp),%r8
140044730:	83 65 a0 00          	andl   $0x0,-0x60(%rbp)
140044734:	48 8d 4d a4          	lea    -0x5c(%rbp),%rcx
140044738:	45 33 c9             	xor    %r9d,%r9d
14004473b:	ba cc 01 00 00       	mov    $0x1cc,%edx
140044740:	e8 f7 e1 fe ff       	call   0x14003293c
140044745:	48 8d 95 70 01 00 00 	lea    0x170(%rbp),%rdx
14004474c:	48 8d 4d a0          	lea    -0x60(%rbp),%rcx
140044750:	e8 4b dd fe ff       	call   0x1400324a0
140044755:	44 8b d7             	mov    %edi,%r10d
140044758:	4c 8b c0             	mov    %rax,%r8
14004475b:	44 2b d3             	sub    %ebx,%r10d
14004475e:	41 b9 08 00 00 00    	mov    $0x8,%r9d
140044764:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
140044769:	41 f7 e0             	mul    %r8d
14004476c:	c1 ea 03             	shr    $0x3,%edx
14004476f:	8a ca                	mov    %dl,%cl
140044771:	c0 e1 02             	shl    $0x2,%cl
140044774:	8d 04 11             	lea    (%rcx,%rdx,1),%eax
140044777:	02 c0                	add    %al,%al
140044779:	44 2a c0             	sub    %al,%r8b
14004477c:	41 8d 48 30          	lea    0x30(%r8),%ecx
140044780:	44 8b c2             	mov    %edx,%r8d
140044783:	45 3b d1             	cmp    %r9d,%r10d
140044786:	77 0a                	ja     0x140044792
140044788:	80 f9 30             	cmp    $0x30,%cl
14004478b:	74 0b                	je     0x140044798
14004478d:	41 8a f7             	mov    %r15b,%sil
140044790:	eb 06                	jmp    0x140044798
140044792:	41 8b c1             	mov    %r9d,%eax
140044795:	88 0c 18             	mov    %cl,(%rax,%rbx,1)
140044798:	83 c8 ff             	or     $0xffffffff,%eax
14004479b:	44 03 c8             	add    %eax,%r9d
14004479e:	44 3b c8             	cmp    %eax,%r9d
1400447a1:	75 c1                	jne    0x140044764
1400447a3:	48 8b c7             	mov    %rdi,%rax
1400447a6:	48 2b c3             	sub    %rbx,%rax
1400447a9:	49 3b c6             	cmp    %r14,%rax
1400447ac:	49 0f 4f c6          	cmovg  %r14,%rax
1400447b0:	48 03 d8             	add    %rax,%rbx
1400447b3:	48 3b df             	cmp    %rdi,%rbx
1400447b6:	0f 85 14 ff ff ff    	jne    0x1400446d0
1400447bc:	44 8b 4d a0          	mov    -0x60(%rbp),%r9d
1400447c0:	c6 03 00             	movb   $0x0,(%rbx)
1400447c3:	45 85 c9             	test   %r9d,%r9d
1400447c6:	75 05                	jne    0x1400447cd
1400447c8:	40 84 f6             	test   %sil,%sil
1400447cb:	74 03                	je     0x1400447d0
1400447cd:	45 33 ff             	xor    %r15d,%r15d
1400447d0:	44 8b 44 24 6c       	mov    0x6c(%rsp),%r8d
1400447d5:	48 8d 4c 24 64       	lea    0x64(%rsp),%rcx
1400447da:	8b 54 24 68          	mov    0x68(%rsp),%edx
1400447de:	e8 95 27 00 00       	call   0x140046f78
1400447e3:	80 7c 24 78 00       	cmpb   $0x0,0x78(%rsp)
1400447e8:	74 0a                	je     0x1400447f4
1400447ea:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
1400447ef:	e8 08 28 00 00       	call   0x140046ffc
1400447f4:	41 8b c7             	mov    %r15d,%eax
1400447f7:	48 8b 8d e0 06 00 00 	mov    0x6e0(%rbp),%rcx
1400447fe:	48 33 cc             	xor    %rsp,%rcx
140044801:	e8 fa 02 fe ff       	call   0x140024b00
140044806:	48 81 c4 f0 07 00 00 	add    $0x7f0,%rsp
14004480d:	41 5f                	pop    %r15
14004480f:	41 5e                	pop    %r14
140044811:	41 5c                	pop    %r12
140044813:	5f                   	pop    %rdi
140044814:	5e                   	pop    %rsi
140044815:	5b                   	pop    %rbx
140044816:	5d                   	pop    %rbp
140044817:	c3                   	ret
140044818:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
14004481e:	45 33 c9             	xor    %r9d,%r9d
140044821:	45 33 c0             	xor    %r8d,%r8d
140044824:	33 d2                	xor    %edx,%edx
140044826:	33 c9                	xor    %ecx,%ecx
140044828:	e8 c7 6d fe ff       	call   0x14002b5f4
14004482d:	cc                   	int3
14004482e:	cc                   	int3
14004482f:	cc                   	int3
140044830:	33 c0                	xor    %eax,%eax
140044832:	4c 8b d1             	mov    %rcx,%r10
140044835:	48 85 c9             	test   %rcx,%rcx
140044838:	75 09                	jne    0x140044843
14004483a:	49 89 00             	mov    %rax,(%r8)
14004483d:	b8 01 00 00 00       	mov    $0x1,%eax
140044842:	c3                   	ret
140044843:	85 d2                	test   %edx,%edx
140044845:	75 04                	jne    0x14004484b
140044847:	88 01                	mov    %al,(%rcx)
140044849:	eb ef                	jmp    0x14004483a
14004484b:	f7 c2 80 ff ff ff    	test   $0xffffff80,%edx
140044851:	75 04                	jne    0x140044857
140044853:	88 11                	mov    %dl,(%rcx)
140044855:	eb e6                	jmp    0x14004483d
140044857:	f7 c2 00 f8 ff ff    	test   $0xfffff800,%edx
14004485d:	75 0a                	jne    0x140044869
14004485f:	b9 01 00 00 00       	mov    $0x1,%ecx
140044864:	41 b1 c0             	mov    $0xc0,%r9b
140044867:	eb 37                	jmp    0x1400448a0
140044869:	f7 c2 00 00 ff ff    	test   $0xffff0000,%edx
14004486f:	75 17                	jne    0x140044888
140044871:	8d 82 00 28 ff ff    	lea    -0xd800(%rdx),%eax
140044877:	3d ff 07 00 00       	cmp    $0x7ff,%eax
14004487c:	76 49                	jbe    0x1400448c7
14004487e:	b9 02 00 00 00       	mov    $0x2,%ecx
140044883:	41 b1 e0             	mov    $0xe0,%r9b
140044886:	eb 18                	jmp    0x1400448a0
140044888:	f7 c2 00 00 e0 ff    	test   $0xffe00000,%edx
14004488e:	75 37                	jne    0x1400448c7
140044890:	81 fa ff ff 10 00    	cmp    $0x10ffff,%edx
140044896:	77 2f                	ja     0x1400448c7
140044898:	b9 03 00 00 00       	mov    $0x3,%ecx
14004489d:	41 b1 f0             	mov    $0xf0,%r9b
1400448a0:	4c 8b d9             	mov    %rcx,%r11
1400448a3:	8a c2                	mov    %dl,%al
1400448a5:	c1 ea 06             	shr    $0x6,%edx
1400448a8:	24 3f                	and    $0x3f,%al
1400448aa:	0c 80                	or     $0x80,%al
1400448ac:	43 88 04 13          	mov    %al,(%r11,%r10,1)
1400448b0:	49 83 eb 01          	sub    $0x1,%r11
1400448b4:	75 ed                	jne    0x1400448a3
1400448b6:	41 0a d1             	or     %r9b,%dl
1400448b9:	41 88 12             	mov    %dl,(%r10)
1400448bc:	48 ff c1             	inc    %rcx
1400448bf:	49 8b d0             	mov    %r8,%rdx
1400448c2:	e9 55 2e 00 00       	jmp    0x14004771c
1400448c7:	49 8b d1             	mov    %r9,%rdx
1400448ca:	49 8b c8             	mov    %r8,%rcx
1400448cd:	e9 52 2e 00 00       	jmp    0x140047724
1400448d2:	cc                   	int3
1400448d3:	cc                   	int3
1400448d4:	40 53                	rex push %rbx
1400448d6:	48 83 ec 40          	sub    $0x40,%rsp
1400448da:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
1400448df:	48 8b d9             	mov    %rcx,%rbx
1400448e2:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
1400448e7:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1400448ec:	e8 47 2e 00 00       	call   0x140047738
1400448f1:	48 83 f8 04          	cmp    $0x4,%rax
1400448f5:	77 1a                	ja     0x140044911
1400448f7:	8b 54 24 30          	mov    0x30(%rsp),%edx
1400448fb:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
140044900:	81 fa ff ff 00 00    	cmp    $0xffff,%edx
140044906:	0f 47 d1             	cmova  %ecx,%edx
140044909:	48 85 db             	test   %rbx,%rbx
14004490c:	74 03                	je     0x140044911
14004490e:	66 89 13             	mov    %dx,(%rbx)
140044911:	48 83 c4 40          	add    $0x40,%rsp
140044915:	5b                   	pop    %rbx
140044916:	c3                   	ret
140044917:	cc                   	int3
140044918:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
14004491d:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
140044922:	57                   	push   %rdi
140044923:	41 54                	push   %r12
140044925:	41 55                	push   %r13
140044927:	41 56                	push   %r14
140044929:	41 57                	push   %r15
14004492b:	48 83 ec 30          	sub    $0x30,%rsp
14004492f:	48 8b 3a             	mov    (%rdx),%rdi
140044932:	33 c0                	xor    %eax,%eax
140044934:	4d 8b e1             	mov    %r9,%r12
140044937:	49 8b e8             	mov    %r8,%rbp
14004493a:	4c 8b fa             	mov    %rdx,%r15
14004493d:	4c 8b f1             	mov    %rcx,%r14
140044940:	48 85 c9             	test   %rcx,%rcx
140044943:	0f 84 e7 00 00 00    	je     0x140044a30
140044949:	48 8b d9             	mov    %rcx,%rbx
14004494c:	4d 85 c0             	test   %r8,%r8
14004494f:	0f 84 b0 00 00 00    	je     0x140044a05
140044955:	4c 8b ac 24 80 00 00 	mov    0x80(%rsp),%r13
14004495c:	00
14004495d:	38 07                	cmp    %al,(%rdi)
14004495f:	75 08                	jne    0x140044969
140044961:	41 b8 01 00 00 00    	mov    $0x1,%r8d
140044967:	eb 1c                	jmp    0x140044985
140044969:	38 47 01             	cmp    %al,0x1(%rdi)
14004496c:	75 08                	jne    0x140044976
14004496e:	41 b8 02 00 00 00    	mov    $0x2,%r8d
140044974:	eb 0f                	jmp    0x140044985
140044976:	8a 47 02             	mov    0x2(%rdi),%al
140044979:	f6 d8                	neg    %al
14004497b:	4d 1b c0             	sbb    %r8,%r8
14004497e:	49 f7 d8             	neg    %r8
140044981:	49 83 c0 03          	add    $0x3,%r8
140044985:	4d 8b cc             	mov    %r12,%r9
140044988:	4c 89 6c 24 20       	mov    %r13,0x20(%rsp)
14004498d:	48 8b d7             	mov    %rdi,%rdx
140044990:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
140044995:	e8 9e 2d 00 00       	call   0x140047738
14004499a:	48 8b d0             	mov    %rax,%rdx
14004499d:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
1400449a1:	74 7b                	je     0x140044a1e
1400449a3:	33 c0                	xor    %eax,%eax
1400449a5:	48 85 d2             	test   %rdx,%rdx
1400449a8:	74 6c                	je     0x140044a16
1400449aa:	8b 4c 24 60          	mov    0x60(%rsp),%ecx
1400449ae:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
1400449b4:	76 3b                	jbe    0x1400449f1
1400449b6:	48 83 fd 01          	cmp    $0x1,%rbp
1400449ba:	76 49                	jbe    0x140044a05
1400449bc:	81 c1 00 00 ff ff    	add    $0xffff0000,%ecx
1400449c2:	41 b8 00 d8 00 00    	mov    $0xd800,%r8d
1400449c8:	8b c1                	mov    %ecx,%eax
1400449ca:	89 4c 24 60          	mov    %ecx,0x60(%rsp)
1400449ce:	c1 e8 0a             	shr    $0xa,%eax
1400449d1:	48 ff cd             	dec    %rbp
1400449d4:	66 41 0b c0          	or     %r8w,%ax
1400449d8:	66 89 03             	mov    %ax,(%rbx)
1400449db:	b8 ff 03 00 00       	mov    $0x3ff,%eax
1400449e0:	66 23 c8             	and    %ax,%cx
1400449e3:	48 83 c3 02          	add    $0x2,%rbx
1400449e7:	b8 00 dc 00 00       	mov    $0xdc00,%eax
1400449ec:	66 0b c8             	or     %ax,%cx
1400449ef:	33 c0                	xor    %eax,%eax
1400449f1:	66 89 0b             	mov    %cx,(%rbx)
1400449f4:	48 03 fa             	add    %rdx,%rdi
1400449f7:	48 83 c3 02          	add    $0x2,%rbx
1400449fb:	48 83 ed 01          	sub    $0x1,%rbp
1400449ff:	0f 85 58 ff ff ff    	jne    0x14004495d
140044a05:	49 2b de             	sub    %r14,%rbx
140044a08:	49 89 3f             	mov    %rdi,(%r15)
140044a0b:	48 d1 fb             	sar    $1,%rbx
140044a0e:	48 8b c3             	mov    %rbx,%rax
140044a11:	e9 8c 00 00 00       	jmp    0x140044aa2
140044a16:	48 8b f8             	mov    %rax,%rdi
140044a19:	66 89 03             	mov    %ax,(%rbx)
140044a1c:	eb e7                	jmp    0x140044a05
140044a1e:	49 89 3f             	mov    %rdi,(%r15)
140044a21:	41 c6 45 30 01       	movb   $0x1,0x30(%r13)
140044a26:	41 c7 45 2c 2a 00 00 	movl   $0x2a,0x2c(%r13)
140044a2d:	00
140044a2e:	eb 6e                	jmp    0x140044a9e
140044a30:	48 8b ac 24 80 00 00 	mov    0x80(%rsp),%rbp
140044a37:	00
140044a38:	48 8b d8             	mov    %rax,%rbx
140044a3b:	38 07                	cmp    %al,(%rdi)
140044a3d:	75 08                	jne    0x140044a47
140044a3f:	41 b8 01 00 00 00    	mov    $0x1,%r8d
140044a45:	eb 1c                	jmp    0x140044a63
140044a47:	38 47 01             	cmp    %al,0x1(%rdi)
140044a4a:	75 08                	jne    0x140044a54
140044a4c:	41 b8 02 00 00 00    	mov    $0x2,%r8d
140044a52:	eb 0f                	jmp    0x140044a63
140044a54:	8a 47 02             	mov    0x2(%rdi),%al
140044a57:	f6 d8                	neg    %al
140044a59:	4d 1b c0             	sbb    %r8,%r8
140044a5c:	49 f7 d8             	neg    %r8
140044a5f:	49 83 c0 03          	add    $0x3,%r8
140044a63:	4d 8b cc             	mov    %r12,%r9
140044a66:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
140044a6b:	48 8b d7             	mov    %rdi,%rdx
140044a6e:	33 c9                	xor    %ecx,%ecx
140044a70:	e8 c3 2c 00 00       	call   0x140047738
140044a75:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
140044a79:	74 18                	je     0x140044a93
140044a7b:	48 85 c0             	test   %rax,%rax
140044a7e:	74 8e                	je     0x140044a0e
140044a80:	48 83 f8 04          	cmp    $0x4,%rax
140044a84:	75 03                	jne    0x140044a89
140044a86:	48 ff c3             	inc    %rbx
140044a89:	48 03 f8             	add    %rax,%rdi
140044a8c:	48 ff c3             	inc    %rbx
140044a8f:	33 c0                	xor    %eax,%eax
140044a91:	eb a8                	jmp    0x140044a3b
140044a93:	c6 45 30 01          	movb   $0x1,0x30(%rbp)
140044a97:	c7 45 2c 2a 00 00 00 	movl   $0x2a,0x2c(%rbp)