140190835:	66 83 f8 19          	cmp    $0x19,%ax
140190839:	77 03                	ja     0x14019083e
14019083b:	83 e9 20             	sub    $0x20,%ecx
14019083e:	83 c1 c9             	add    $0xffffffc9,%ecx
140190841:	41 3b c9             	cmp    %r9d,%ecx
140190844:	74 30                	je     0x140190876
140190846:	41 3b cf             	cmp    %r15d,%ecx
140190849:	73 2b                	jae    0x140190876
14019084b:	0b ee                	or     %esi,%ebp
14019084d:	45 3b f0             	cmp    %r8d,%r14d
140190850:	72 0b                	jb     0x14019085d
140190852:	75 04                	jne    0x140190858
140190854:	3b ca                	cmp    %edx,%ecx
140190856:	76 05                	jbe    0x14019085d
140190858:	83 cd 04             	or     $0x4,%ebp
14019085b:	eb 07                	jmp    0x140190864
14019085d:	45 0f af f7          	imul   %r15d,%r14d
140190861:	44 03 f1             	add    %ecx,%r14d
140190864:	48 8b 07             	mov    (%rdi),%rax
140190867:	0f b7 18             	movzwl (%rax),%ebx
14019086a:	48 83 c0 02          	add    $0x2,%rax
14019086e:	48 89 07             	mov    %rax,(%rdi)
140190871:	e9 ea fd ff ff       	jmp    0x140190660
140190876:	48 83 07 fe          	addq   $0xfffffffffffffffe,(%rdi)
14019087a:	45 33 ed             	xor    %r13d,%r13d
14019087d:	48 8b 07             	mov    (%rdi),%rax
140190880:	4c 8b 64 24 20       	mov    0x20(%rsp),%r12
140190885:	66 85 db             	test   %bx,%bx
140190888:	74 15                	je     0x14019089f
14019088a:	66 39 18             	cmp    %bx,(%rax)
14019088d:	74 10                	je     0x14019089f
14019088f:	e8 78 f6 ff ff       	call   0x14018ff0c
140190894:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
14019089a:	e8 c5 ac ff ff       	call   0x14018b564
14019089f:	40 84 ee             	test   %bpl,%sil
1401908a2:	75 1f                	jne    0x1401908c3
1401908a4:	4c 89 27             	mov    %r12,(%rdi)
1401908a7:	44 38 6c 24 40       	cmp    %r13b,0x40(%rsp)
1401908ac:	0f 84 43 fa ff ff    	je     0x1401902f5
1401908b2:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
1401908b7:	83 a0 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rax)
1401908be:	e9 32 fa ff ff       	jmp    0x1401902f5
1401908c3:	41 8b d6             	mov    %r14d,%edx
1401908c6:	8b cd                	mov    %ebp,%ecx
1401908c8:	e8 5f f6 ff ff       	call   0x14018ff2c
1401908cd:	84 c0                	test   %al,%al
1401908cf:	74 6f                	je     0x140190940
1401908d1:	e8 36 f6 ff ff       	call   0x14018ff0c
1401908d6:	c7 00 22 00 00 00    	movl   $0x22,(%rax)
1401908dc:	40 f6 c5 01          	test   $0x1,%bpl
1401908e0:	75 06                	jne    0x1401908e8
1401908e2:	41 83 ce ff          	or     $0xffffffff,%r14d
1401908e6:	eb 61                	jmp    0x140190949
1401908e8:	40 f6 c5 02          	test   $0x2,%bpl
1401908ec:	74 29                	je     0x140190917
1401908ee:	44 38 6c 24 40       	cmp    %r13b,0x40(%rsp)
1401908f3:	74 0c                	je     0x140190901
1401908f5:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
1401908fa:	83 a0 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rax)
140190901:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
140190905:	48 85 c9             	test   %rcx,%rcx
140190908:	74 06                	je     0x140190910
14019090a:	48 8b 07             	mov    (%rdi),%rax
14019090d:	48 89 01             	mov    %rax,(%rcx)
140190910:	b8 00 00 00 80       	mov    $0x80000000,%eax
140190915:	eb 57                	jmp    0x14019096e
140190917:	44 38 6c 24 40       	cmp    %r13b,0x40(%rsp)
14019091c:	74 0c                	je     0x14019092a
14019091e:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
140190923:	83 a0 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rax)
14019092a:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
14019092e:	48 85 c9             	test   %rcx,%rcx
140190931:	74 06                	je     0x140190939
140190933:	48 8b 07             	mov    (%rdi),%rax
140190936:	48 89 01             	mov    %rax,(%rcx)
140190939:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
14019093e:	eb 2e                	jmp    0x14019096e
140190940:	40 f6 c5 02          	test   $0x2,%bpl
140190944:	74 03                	je     0x140190949
140190946:	41 f7 de             	neg    %r14d
140190949:	44 38 6c 24 40       	cmp    %r13b,0x40(%rsp)
14019094e:	74 0c                	je     0x14019095c
140190950:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
140190955:	83 a1 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rcx)
14019095c:	48 8b 57 08          	mov    0x8(%rdi),%rdx
140190960:	48 85 d2             	test   %rdx,%rdx
140190963:	74 06                	je     0x14019096b
140190965:	48 8b 0f             	mov    (%rdi),%rcx
140190968:	48 89 0a             	mov    %rcx,(%rdx)
14019096b:	41 8b c6             	mov    %r14d,%eax
14019096e:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
140190973:	49 8b 5b 30          	mov    0x30(%r11),%rbx
140190977:	49 8b 6b 40          	mov    0x40(%r11),%rbp
14019097b:	49 8b 73 48          	mov    0x48(%r11),%rsi
14019097f:	49 8b e3             	mov    %r11,%rsp
140190982:	41 5f                	pop    %r15
140190984:	41 5e                	pop    %r14
140190986:	41 5d                	pop    %r13
140190988:	41 5c                	pop    %r12
14019098a:	5f                   	pop    %rdi
14019098b:	c3                   	ret
14019098c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140190991:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140190996:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
14019099b:	55                   	push   %rbp
14019099c:	41 54                	push   %r12
14019099e:	41 55                	push   %r13
1401909a0:	41 56                	push   %r14
1401909a2:	41 57                	push   %r15
1401909a4:	48 8b ec             	mov    %rsp,%rbp
1401909a7:	48 83 ec 40          	sub    $0x40,%rsp
1401909ab:	48 83 3a 00          	cmpq   $0x0,(%rdx)
1401909af:	45 8a e1             	mov    %r9b,%r12b
1401909b2:	45 8b f8             	mov    %r8d,%r15d
1401909b5:	48 8b da             	mov    %rdx,%rbx
1401909b8:	75 26                	jne    0x1401909e0
1401909ba:	e8 4d f5 ff ff       	call   0x14018ff0c
1401909bf:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
1401909c5:	e8 9a ab ff ff       	call   0x14018b564
1401909ca:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
1401909ce:	48 85 c9             	test   %rcx,%rcx
1401909d1:	74 06                	je     0x1401909d9
1401909d3:	48 8b 03             	mov    (%rbx),%rax
1401909d6:	48 89 01             	mov    %rax,(%rcx)
1401909d9:	33 c0                	xor    %eax,%eax
1401909db:	e9 c1 02 00 00       	jmp    0x140190ca1
1401909e0:	45 85 c0             	test   %r8d,%r8d
1401909e3:	74 09                	je     0x1401909ee
1401909e5:	41 8d 40 fe          	lea    -0x2(%r8),%eax
1401909e9:	83 f8 22             	cmp    $0x22,%eax
1401909ec:	77 cc                	ja     0x1401909ba
1401909ee:	48 8b d1             	mov    %rcx,%rdx
1401909f1:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
1401909f5:	e8 a6 b2 ff ff       	call   0x14018bca0
1401909fa:	4c 8b 2b             	mov    (%rbx),%r13
1401909fd:	45 33 f6             	xor    %r14d,%r14d
140190a00:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx
140190a04:	4c 89 6d 38          	mov    %r13,0x38(%rbp)
140190a08:	41 8a 7d 00          	mov    0x0(%r13),%dil
140190a0c:	49 8d 45 01          	lea    0x1(%r13),%rax
140190a10:	45 8d 6e 08          	lea    0x8(%r14),%r13d
140190a14:	48 89 03             	mov    %rax,(%rbx)
140190a17:	83 7a 08 01          	cmpl   $0x1,0x8(%rdx)
140190a1b:	40 0f b6 c7          	movzbl %dil,%eax
140190a1f:	7e 14                	jle    0x140190a35
140190a21:	4c 8d 45 e8          	lea    -0x18(%rbp),%r8
140190a25:	41 8b d5             	mov    %r13d,%edx
140190a28:	8b c8                	mov    %eax,%ecx
140190a2a:	e8 89 71 01 00       	call   0x1401a7bb8
140190a2f:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx
140190a33:	eb 0d                	jmp    0x140190a42
140190a35:	48 8b c8             	mov    %rax,%rcx
140190a38:	48 8b 02             	mov    (%rdx),%rax
140190a3b:	0f b7 04 48          	movzwl (%rax,%rcx,2),%eax
140190a3f:	41 23 c5             	and    %r13d,%eax
140190a42:	85 c0                	test   %eax,%eax
140190a44:	74 0b                	je     0x140190a51
140190a46:	48 8b 03             	mov    (%rbx),%rax
140190a49:	40 8a 38             	mov    (%rax),%dil
140190a4c:	48 ff c0             	inc    %rax
140190a4f:	eb c3                	jmp    0x140190a14
140190a51:	33 f6                	xor    %esi,%esi
140190a53:	45 84 e4             	test   %r12b,%r12b
140190a56:	40 0f 95 c6          	setne  %sil
140190a5a:	40 80 ff 2d          	cmp    $0x2d,%dil
140190a5e:	75 05                	jne    0x140190a65
140190a60:	83 ce 02             	or     $0x2,%esi
140190a63:	eb 06                	jmp    0x140190a6b
140190a65:	40 80 ff 2b          	cmp    $0x2b,%dil
140190a69:	75 0c                	jne    0x140190a77
140190a6b:	48 8b 03             	mov    (%rbx),%rax
140190a6e:	40 8a 38             	mov    (%rax),%dil
140190a71:	48 ff c0             	inc    %rax
140190a74:	48 89 03             	mov    %rax,(%rbx)
140190a77:	4c 8b 6d 38          	mov    0x38(%rbp),%r13
140190a7b:	41 f7 c7 ef ff ff ff 	test   $0xffffffef,%r15d
140190a82:	0f 85 80 00 00 00    	jne    0x140190b08
140190a88:	8d 47 d0             	lea    -0x30(%rdi),%eax
140190a8b:	3c 09                	cmp    $0x9,%al
140190a8d:	77 09                	ja     0x140190a98
140190a8f:	40 0f be c7          	movsbl %dil,%eax
140190a93:	83 c0 d0             	add    $0xffffffd0,%eax
140190a96:	eb 23                	jmp    0x140190abb
140190a98:	8d 47 9f             	lea    -0x61(%rdi),%eax
140190a9b:	3c 19                	cmp    $0x19,%al
140190a9d:	77 09                	ja     0x140190aa8
140190a9f:	40 0f be c7          	movsbl %dil,%eax
140190aa3:	83 c0 a9             	add    $0xffffffa9,%eax
140190aa6:	eb 13                	jmp    0x140190abb
140190aa8:	8d 47 bf             	lea    -0x41(%rdi),%eax
140190aab:	3c 19                	cmp    $0x19,%al
140190aad:	77 09                	ja     0x140190ab8
140190aaf:	40 0f be c7          	movsbl %dil,%eax
140190ab3:	83 c0 c9             	add    $0xffffffc9,%eax
140190ab6:	eb 03                	jmp    0x140190abb
140190ab8:	83 c8 ff             	or     $0xffffffff,%eax
140190abb:	41 bb 08 00 00 00    	mov    $0x8,%r11d
140190ac1:	85 c0                	test   %eax,%eax
140190ac3:	74 0b                	je     0x140190ad0
140190ac5:	45 85 ff             	test   %r15d,%r15d
140190ac8:	75 44                	jne    0x140190b0e
140190aca:	45 8d 7b 02          	lea    0x2(%r11),%r15d
140190ace:	eb 3e                	jmp    0x140190b0e
140190ad0:	48 8b 03             	mov    (%rbx),%rax
140190ad3:	8a 10                	mov    (%rax),%dl
140190ad5:	48 8d 48 01          	lea    0x1(%rax),%rcx
140190ad9:	48 89 0b             	mov    %rcx,(%rbx)
140190adc:	8d 42 a8             	lea    -0x58(%rdx),%eax
140190adf:	a8 df                	test   $0xdf,%al
140190ae1:	74 4f                	je     0x140190b32
140190ae3:	45 85 ff             	test   %r15d,%r15d
140190ae6:	45 0f 44 fb          	cmove  %r11d,%r15d
140190aea:	48 ff c9             	dec    %rcx
140190aed:	48 89 0b             	mov    %rcx,(%rbx)
140190af0:	84 d2                	test   %dl,%dl
140190af2:	74 1a                	je     0x140190b0e
140190af4:	38 11                	cmp    %dl,(%rcx)
140190af6:	74 16                	je     0x140190b0e
140190af8:	e8 0f f4 ff ff       	call   0x14018ff0c
140190afd:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140190b03:	e8 5c aa ff ff       	call   0x14018b564
140190b08:	41 bb 08 00 00 00    	mov    $0x8,%r11d
140190b0e:	49 83 cc ff          	or     $0xffffffffffffffff,%r12
140190b12:	4d 63 d7             	movslq %r15d,%r10
140190b15:	49 8b c4             	mov    %r12,%rax
140190b18:	33 d2                	xor    %edx,%edx
140190b1a:	49 f7 f2             	div    %r10
140190b1d:	4c 8b c8             	mov    %rax,%r9
140190b20:	8d 4f d0             	lea    -0x30(%rdi),%ecx
140190b23:	80 f9 09             	cmp    $0x9,%cl
140190b26:	77 22                	ja     0x140190b4a
140190b28:	44 0f be c7          	movsbl %dil,%r8d
140190b2c:	41 83 c0 d0          	add    $0xffffffd0,%r8d
140190b30:	eb 3e                	jmp    0x140190b70
140190b32:	40 8a 39             	mov    (%rcx),%dil
140190b35:	b8 10 00 00 00       	mov    $0x10,%eax
140190b3a:	45 85 ff             	test   %r15d,%r15d
140190b3d:	44 0f 44 f8          	cmove  %eax,%r15d
140190b41:	48 8d 41 01          	lea    0x1(%rcx),%rax
140190b45:	48 89 03             	mov    %rax,(%rbx)
140190b48:	eb c4                	jmp    0x140190b0e
140190b4a:	8d 47 9f             	lea    -0x61(%rdi),%eax
140190b4d:	3c 19                	cmp    $0x19,%al
140190b4f:	77 0a                	ja     0x140190b5b
140190b51:	44 0f be c7          	movsbl %dil,%r8d
140190b55:	41 83 c0 a9          	add    $0xffffffa9,%r8d
140190b59:	eb 15                	jmp    0x140190b70
140190b5b:	8d 47 bf             	lea    -0x41(%rdi),%eax
140190b5e:	3c 19                	cmp    $0x19,%al
140190b60:	77 0a                	ja     0x140190b6c
140190b62:	44 0f be c7          	movsbl %dil,%r8d
140190b66:	41 83 c0 c9          	add    $0xffffffc9,%r8d
140190b6a:	eb 04                	jmp    0x140190b70
140190b6c:	41 83 c8 ff          	or     $0xffffffff,%r8d
140190b70:	41 83 f8 ff          	cmp    $0xffffffff,%r8d
140190b74:	74 3a                	je     0x140190bb0
140190b76:	45 3b c7             	cmp    %r15d,%r8d
140190b79:	73 35                	jae    0x140190bb0
140190b7b:	41 0b f3             	or     %r11d,%esi
140190b7e:	4d 3b f1             	cmp    %r9,%r14
140190b81:	72 0f                	jb     0x140190b92
140190b83:	75 08                	jne    0x140190b8d
140190b85:	41 8b c0             	mov    %r8d,%eax
140190b88:	48 3b c2             	cmp    %rdx,%rax
140190b8b:	76 05                	jbe    0x140190b92
140190b8d:	83 ce 04             	or     $0x4,%esi
140190b90:	eb 0d                	jmp    0x140190b9f
140190b92:	49 8b ca             	mov    %r10,%rcx
140190b95:	49 0f af ce          	imul   %r14,%rcx
140190b99:	45 8b f0             	mov    %r8d,%r14d
140190b9c:	4c 03 f1             	add    %rcx,%r14
140190b9f:	48 8b 03             	mov    (%rbx),%rax
140190ba2:	40 8a 38             	mov    (%rax),%dil
140190ba5:	48 ff c0             	inc    %rax
140190ba8:	48 89 03             	mov    %rax,(%rbx)
140190bab:	e9 70 ff ff ff       	jmp    0x140190b20
140190bb0:	4c 01 23             	add    %r12,(%rbx)
140190bb3:	48 8b 03             	mov    (%rbx),%rax
140190bb6:	40 84 ff             	test   %dil,%dil
140190bb9:	74 15                	je     0x140190bd0
140190bbb:	40 38 38             	cmp    %dil,(%rax)
140190bbe:	74 10                	je     0x140190bd0
140190bc0:	e8 47 f3 ff ff       	call   0x14018ff0c
140190bc5:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140190bcb:	e8 94 a9 ff ff       	call   0x14018b564
140190bd0:	40 f6 c6 08          	test   $0x8,%sil
140190bd4:	75 1d                	jne    0x140190bf3
140190bd6:	80 7d f8 00          	cmpb   $0x0,-0x8(%rbp)
140190bda:	4c 89 2b             	mov    %r13,(%rbx)
140190bdd:	0f 84 e7 fd ff ff    	je     0x1401909ca
140190be3:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
140190be7:	83 a0 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rax)
140190bee:	e9 d7 fd ff ff       	jmp    0x1401909ca
140190bf3:	49 8b d6             	mov    %r14,%rdx
140190bf6:	8b ce                	mov    %esi,%ecx
140190bf8:	e8 5b f3 ff ff       	call   0x14018ff58
140190bfd:	84 c0                	test   %al,%al
140190bff:	74 74                	je     0x140190c75
140190c01:	e8 06 f3 ff ff       	call   0x14018ff0c
140190c06:	c7 00 22 00 00 00    	movl   $0x22,(%rax)
140190c0c:	40 f6 c6 01          	test   $0x1,%sil
140190c10:	75 05                	jne    0x140190c17
140190c12:	4d 8b f4             	mov    %r12,%r14
140190c15:	eb 67                	jmp    0x140190c7e
140190c17:	40 f6 c6 02          	test   $0x2,%sil
140190c1b:	74 2c                	je     0x140190c49
140190c1d:	80 7d f8 00          	cmpb   $0x0,-0x8(%rbp)
140190c21:	74 0b                	je     0x140190c2e
140190c23:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
140190c27:	83 a0 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rax)
140190c2e:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
140190c32:	48 85 c9             	test   %rcx,%rcx
140190c35:	74 06                	je     0x140190c3d
140190c37:	48 8b 03             	mov    (%rbx),%rax
140190c3a:	48 89 01             	mov    %rax,(%rcx)
140190c3d:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
140190c44:	00 00 80
140190c47:	eb 58                	jmp    0x140190ca1
140190c49:	80 7d f8 00          	cmpb   $0x0,-0x8(%rbp)
140190c4d:	74 0b                	je     0x140190c5a
140190c4f:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
140190c53:	83 a0 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rax)
140190c5a:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
140190c5e:	48 85 c9             	test   %rcx,%rcx
140190c61:	74 06                	je     0x140190c69
140190c63:	48 8b 03             	mov    (%rbx),%rax
140190c66:	48 89 01             	mov    %rax,(%rcx)
140190c69:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
140190c70:	ff ff 7f
140190c73:	eb 2c                	jmp    0x140190ca1
140190c75:	40 f6 c6 02          	test   $0x2,%sil
140190c79:	74 03                	je     0x140190c7e
140190c7b:	49 f7 de             	neg    %r14
140190c7e:	80 7d f8 00          	cmpb   $0x0,-0x8(%rbp)
140190c82:	74 0b                	je     0x140190c8f
140190c84:	48 8b 4d e0          	mov    -0x20(%rbp),%rcx
140190c88:	83 a1 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rcx)
140190c8f:	48 8b 43 08          	mov    0x8(%rbx),%rax
140190c93:	48 85 c0             	test   %rax,%rax
140190c96:	74 06                	je     0x140190c9e
140190c98:	48 8b 0b             	mov    (%rbx),%rcx
140190c9b:	48 89 08             	mov    %rcx,(%rax)
140190c9e:	49 8b c6             	mov    %r14,%rax
140190ca1:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
140190ca6:	49 8b 5b 30          	mov    0x30(%r11),%rbx
140190caa:	49 8b 73 40          	mov    0x40(%r11),%rsi
140190cae:	49 8b 7b 48          	mov    0x48(%r11),%rdi
140190cb2:	49 8b e3             	mov    %r11,%rsp
140190cb5:	41 5f                	pop    %r15
140190cb7:	41 5e                	pop    %r14