140174a4a:	0f b7 02             	movzwl (%rdx),%eax
140174a4d:	eb 0d                	jmp    0x140174a5c
140174a4f:	48 8b 01             	mov    (%rcx),%rax
140174a52:	48 8b 40 38          	mov    0x38(%rax),%rax
140174a56:	ff 15 c4 9b 08 00    	call   *0x89bc4(%rip)        # 0x1401fe620
140174a5c:	66 3b f0             	cmp    %ax,%si
140174a5f:	74 06                	je     0x140174a67
140174a61:	44 88 67 08          	mov    %r12b,0x8(%rdi)
140174a65:	eb 07                	jmp    0x140174a6e
140174a67:	4c 89 27             	mov    %r12,(%rdi)
140174a6a:	c6 47 08 01          	movb   $0x1,0x8(%rdi)
140174a6e:	8b 45 77             	mov    0x77(%rbp),%eax
140174a71:	25 00 0e 00 00       	and    $0xe00,%eax
140174a76:	b9 08 00 00 00       	mov    $0x8,%ecx
140174a7b:	8d 59 02             	lea    0x2(%rcx),%ebx
140174a7e:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
140174a83:	3d 00 04 00 00       	cmp    $0x400,%eax
140174a88:	75 05                	jne    0x140174a8f
140174a8a:	44 8b e9             	mov    %ecx,%r13d
140174a8d:	eb 17                	jmp    0x140174aa6
140174a8f:	3d 00 08 00 00       	cmp    $0x800,%eax
140174a94:	75 08                	jne    0x140174a9e
140174a96:	41 bd 10 00 00 00    	mov    $0x10,%r13d
140174a9c:	eb 08                	jmp    0x140174aa6
140174a9e:	f7 d8                	neg    %eax
140174aa0:	45 1b ed             	sbb    %r13d,%r13d
140174aa3:	44 23 eb             	and    %ebx,%r13d
140174aa6:	44 89 6c 24 34       	mov    %r13d,0x34(%rsp)
140174aab:	44 88 64 24 31       	mov    %r12b,0x31(%rsp)
140174ab0:	49 8b d7             	mov    %r15,%rdx
140174ab3:	48 8b cf             	mov    %rdi,%rcx
140174ab6:	e8 55 d9 00 00       	call   0x140182410
140174abb:	84 c0                	test   %al,%al
140174abd:	0f 85 f9 01 00 00    	jne    0x140174cbc
140174ac3:	44 38 67 08          	cmp    %r12b,0x8(%rdi)
140174ac7:	75 41                	jne    0x140174b0a
140174ac9:	48 8b 0f             	mov    (%rdi),%rcx
140174acc:	48 85 c9             	test   %rcx,%rcx
140174acf:	74 32                	je     0x140174b03
140174ad1:	48 8b 41 38          	mov    0x38(%rcx),%rax
140174ad5:	48 8b 10             	mov    (%rax),%rdx
140174ad8:	48 85 d2             	test   %rdx,%rdx
140174adb:	74 0e                	je     0x140174aeb
140174add:	48 8b 41 50          	mov    0x50(%rcx),%rax
140174ae1:	44 39 20             	cmp    %r12d,(%rax)
140174ae4:	7e 05                	jle    0x140174aeb
140174ae6:	0f b7 02             	movzwl (%rdx),%eax
140174ae9:	eb 0d                	jmp    0x140174af8
140174aeb:	48 8b 01             	mov    (%rcx),%rax
140174aee:	48 8b 40 30          	mov    0x30(%rax),%rax
140174af2:	ff 15 28 9b 08 00    	call   *0x89b28(%rip)        # 0x1401fe620
140174af8:	66 3b f0             	cmp    %ax,%si
140174afb:	74 06                	je     0x140174b03
140174afd:	66 89 47 0a          	mov    %ax,0xa(%rdi)
140174b01:	eb 03                	jmp    0x140174b06
140174b03:	4c 89 27             	mov    %r12,(%rdi)
140174b06:	c6 47 08 01          	movb   $0x1,0x8(%rdi)
140174b0a:	0f b7 47 0a          	movzwl 0xa(%rdi),%eax
140174b0e:	66 3b 45 d7          	cmp    -0x29(%rbp),%ax
140174b12:	0f 85 a4 01 00 00    	jne    0x140174cbc
140174b18:	40 b6 01             	mov    $0x1,%sil
140174b1b:	40 88 74 24 30       	mov    %sil,0x30(%rsp)
140174b20:	48 8b 0f             	mov    (%rdi),%rcx
140174b23:	48 85 c9             	test   %rcx,%rcx
140174b26:	74 43                	je     0x140174b6b
140174b28:	48 8b 41 38          	mov    0x38(%rcx),%rax
140174b2c:	4c 39 20             	cmp    %r12,(%rax)
140174b2f:	74 1e                	je     0x140174b4f
140174b31:	48 8b 41 50          	mov    0x50(%rcx),%rax
140174b35:	44 39 20             	cmp    %r12d,(%rax)
140174b38:	7e 15                	jle    0x140174b4f
140174b3a:	ff 08                	decl   (%rax)
140174b3c:	48 8b 49 38          	mov    0x38(%rcx),%rcx
140174b40:	48 8b 11             	mov    (%rcx),%rdx
140174b43:	48 8d 42 02          	lea    0x2(%rdx),%rax
140174b47:	48 89 01             	mov    %rax,(%rcx)
140174b4a:	0f b7 02             	movzwl (%rdx),%eax
140174b4d:	eb 0d                	jmp    0x140174b5c
140174b4f:	48 8b 01             	mov    (%rcx),%rax
140174b52:	48 8b 40 38          	mov    0x38(%rax),%rax
140174b56:	ff 15 c4 9a 08 00    	call   *0x89ac4(%rip)        # 0x1401fe620
140174b5c:	b9 ff ff 00 00       	mov    $0xffff,%ecx
140174b61:	66 3b c8             	cmp    %ax,%cx
140174b64:	74 05                	je     0x140174b6b
140174b66:	41 8a c4             	mov    %r12b,%al
140174b69:	eb 06                	jmp    0x140174b71
140174b6b:	4c 89 27             	mov    %r12,(%rdi)
140174b6e:	40 8a c6             	mov    %sil,%al
140174b71:	88 47 08             	mov    %al,0x8(%rdi)
140174b74:	49 8b d7             	mov    %r15,%rdx
140174b77:	48 8b cf             	mov    %rdi,%rcx
140174b7a:	e8 91 d8 00 00       	call   0x140182410
140174b7f:	84 c0                	test   %al,%al
140174b81:	0f 85 23 01 00 00    	jne    0x140174caa
140174b87:	8a 4f 08             	mov    0x8(%rdi),%cl
140174b8a:	84 c9                	test   %cl,%cl
140174b8c:	75 49                	jne    0x140174bd7
140174b8e:	48 8b 0f             	mov    (%rdi),%rcx
140174b91:	48 85 c9             	test   %rcx,%rcx
140174b94:	74 37                	je     0x140174bcd
140174b96:	48 8b 41 38          	mov    0x38(%rcx),%rax
140174b9a:	48 8b 10             	mov    (%rax),%rdx
140174b9d:	48 85 d2             	test   %rdx,%rdx
140174ba0:	74 0e                	je     0x140174bb0
140174ba2:	48 8b 41 50          	mov    0x50(%rcx),%rax
140174ba6:	44 39 20             	cmp    %r12d,(%rax)
140174ba9:	7e 05                	jle    0x140174bb0
140174bab:	0f b7 02             	movzwl (%rdx),%eax
140174bae:	eb 0d                	jmp    0x140174bbd
140174bb0:	48 8b 01             	mov    (%rcx),%rax
140174bb3:	48 8b 40 30          	mov    0x30(%rax),%rax
140174bb7:	ff 15 63 9a 08 00    	call   *0x89a63(%rip)        # 0x1401fe620
140174bbd:	b9 ff ff 00 00       	mov    $0xffff,%ecx
140174bc2:	66 3b c8             	cmp    %ax,%cx
140174bc5:	74 06                	je     0x140174bcd
140174bc7:	66 89 47 0a          	mov    %ax,0xa(%rdi)
140174bcb:	eb 03                	jmp    0x140174bd0
140174bcd:	4c 89 27             	mov    %r12,(%rdi)
140174bd0:	40 88 77 08          	mov    %sil,0x8(%rdi)
140174bd4:	40 8a ce             	mov    %sil,%cl
140174bd7:	0f b7 47 0a          	movzwl 0xa(%rdi),%eax
140174bdb:	66 3b 45 09          	cmp    0x9(%rbp),%ax
140174bdf:	74 54                	je     0x140174c35
140174be1:	84 c9                	test   %cl,%cl
140174be3:	75 4a                	jne    0x140174c2f
140174be5:	48 8b 0f             	mov    (%rdi),%rcx
140174be8:	48 85 c9             	test   %rcx,%rcx
140174beb:	74 37                	je     0x140174c24
140174bed:	48 8b 41 38          	mov    0x38(%rcx),%rax
140174bf1:	48 8b 10             	mov    (%rax),%rdx
140174bf4:	48 85 d2             	test   %rdx,%rdx
140174bf7:	74 0e                	je     0x140174c07
140174bf9:	48 8b 41 50          	mov    0x50(%rcx),%rax
140174bfd:	44 39 20             	cmp    %r12d,(%rax)
140174c00:	7e 05                	jle    0x140174c07
140174c02:	0f b7 02             	movzwl (%rdx),%eax
140174c05:	eb 0d                	jmp    0x140174c14
140174c07:	48 8b 01             	mov    (%rcx),%rax
140174c0a:	48 8b 40 30          	mov    0x30(%rax),%rax
140174c0e:	ff 15 0c 9a 08 00    	call   *0x89a0c(%rip)        # 0x1401fe620
140174c14:	b9 ff ff 00 00       	mov    $0xffff,%ecx
140174c19:	66 3b c8             	cmp    %ax,%cx
140174c1c:	74 06                	je     0x140174c24
140174c1e:	66 89 47 0a          	mov    %ax,0xa(%rdi)
140174c22:	eb 07                	jmp    0x140174c2b
140174c24:	4c 89 27             	mov    %r12,(%rdi)
140174c27:	0f b7 47 0a          	movzwl 0xa(%rdi),%eax
140174c2b:	40 88 77 08          	mov    %sil,0x8(%rdi)
140174c2f:	66 3b 45 07          	cmp    0x7(%rbp),%ax
140174c33:	75 75                	jne    0x140174caa
140174c35:	41 f7 c5 ef ff ff ff 	test   $0xffffffef,%r13d
140174c3c:	0f 85 87 00 00 00    	jne    0x140174cc9
140174c42:	41 bd 10 00 00 00    	mov    $0x10,%r13d
140174c48:	44 89 6c 24 34       	mov    %r13d,0x34(%rsp)
140174c4d:	41 8a f4             	mov    %r12b,%sil
140174c50:	44 88 64 24 30       	mov    %r12b,0x30(%rsp)
140174c55:	48 8b 0f             	mov    (%rdi),%rcx
140174c58:	48 85 c9             	test   %rcx,%rcx
140174c5b:	74 43                	je     0x140174ca0
140174c5d:	48 8b 41 38          	mov    0x38(%rcx),%rax
140174c61:	4c 39 20             	cmp    %r12,(%rax)
140174c64:	74 1e                	je     0x140174c84
140174c66:	48 8b 41 50          	mov    0x50(%rcx),%rax
140174c6a:	44 39 20             	cmp    %r12d,(%rax)
140174c6d:	7e 15                	jle    0x140174c84
140174c6f:	ff 08                	decl   (%rax)
140174c71:	48 8b 49 38          	mov    0x38(%rcx),%rcx
140174c75:	48 8b 11             	mov    (%rcx),%rdx
140174c78:	48 8d 42 02          	lea    0x2(%rdx),%rax
140174c7c:	48 89 01             	mov    %rax,(%rcx)
140174c7f:	0f b7 02             	movzwl (%rdx),%eax
140174c82:	eb 0d                	jmp    0x140174c91
140174c84:	48 8b 01             	mov    (%rcx),%rax
140174c87:	48 8b 40 38          	mov    0x38(%rax),%rax
140174c8b:	ff 15 8f 99 08 00    	call   *0x8998f(%rip)        # 0x1401fe620
140174c91:	b9 ff ff 00 00       	mov    $0xffff,%ecx
140174c96:	66 3b c8             	cmp    %ax,%cx
140174c99:	74 05                	je     0x140174ca0
140174c9b:	41 8a c4             	mov    %r12b,%al
140174c9e:	eb 05                	jmp    0x140174ca5
140174ca0:	4c 89 27             	mov    %r12,(%rdi)
140174ca3:	b0 01                	mov    $0x1,%al
140174ca5:	88 47 08             	mov    %al,0x8(%rdi)
140174ca8:	eb 24                	jmp    0x140174cce
140174caa:	45 85 ed             	test   %r13d,%r13d
140174cad:	75 1a                	jne    0x140174cc9
140174caf:	41 8d 45 08          	lea    0x8(%r13),%eax
140174cb3:	44 8b e8             	mov    %eax,%r13d
140174cb6:	89 44 24 34          	mov    %eax,0x34(%rsp)
140174cba:	eb 17                	jmp    0x140174cd3
140174cbc:	41 8a f4             	mov    %r12b,%sil
140174cbf:	44 88 64 24 30       	mov    %r12b,0x30(%rsp)
140174cc4:	45 85 ed             	test   %r13d,%r13d
140174cc7:	74 1b                	je     0x140174ce4
140174cc9:	44 3b eb             	cmp    %ebx,%r13d
140174ccc:	74 16                	je     0x140174ce4
140174cce:	b8 08 00 00 00       	mov    $0x8,%eax
140174cd3:	bb 16 00 00 00       	mov    $0x16,%ebx
140174cd8:	44 3b e8             	cmp    %eax,%r13d
140174cdb:	48 0f 44 d8          	cmove  %rax,%rbx
140174cdf:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
140174ce4:	4c 89 65 97          	mov    %r12,-0x69(%rbp)
140174ce8:	41 bf 0f 00 00 00    	mov    $0xf,%r15d
140174cee:	4c 89 7d af          	mov    %r15,-0x51(%rbp)
140174cf2:	66 44 89 65 97       	mov    %r12w,-0x69(%rbp)
140174cf7:	48 c7 45 a7 01 00 00 	movq   $0x1,-0x59(%rbp)
140174cfe:	00
140174cff:	40 0f b6 c6          	movzbl %sil,%eax
140174d03:	88 45 97             	mov    %al,-0x69(%rbp)
140174d06:	49 8b f4             	mov    %r12,%rsi
140174d09:	4d 8d 66 1f          	lea    0x1f(%r14),%r12
140174d0d:	4c 89 65 87          	mov    %r12,-0x79(%rbp)
140174d11:	48 8b 54 24 48       	mov    0x48(%rsp),%rdx
140174d16:	48 8b cf             	mov    %rdi,%rcx
140174d19:	e8 f2 d6 00 00       	call   0x140182410
140174d1e:	45 33 d2             	xor    %r10d,%r10d
140174d21:	4c 8b 75 97          	mov    -0x69(%rbp),%r14
140174d25:	84 c0                	test   %al,%al
140174d27:	0f 85 3f 02 00 00    	jne    0x140174f6c
140174d2d:	8a 5c 24 31          	mov    0x31(%rsp),%bl
140174d31:	4c 8b 6c 24 40       	mov    0x40(%rsp),%r13
140174d36:	44 38 57 08          	cmp    %r10b,0x8(%rdi)
140174d3a:	75 49                	jne    0x140174d85
140174d3c:	48 8b 0f             	mov    (%rdi),%rcx
140174d3f:	48 85 c9             	test   %rcx,%rcx
140174d42:	74 3a                	je     0x140174d7e
140174d44:	48 8b 41 38          	mov    0x38(%rcx),%rax
140174d48:	48 8b 10             	mov    (%rax),%rdx
140174d4b:	48 85 d2             	test   %rdx,%rdx
140174d4e:	74 0e                	je     0x140174d5e
140174d50:	48 8b 41 50          	mov    0x50(%rcx),%rax
140174d54:	44 39 10             	cmp    %r10d,(%rax)
140174d57:	7e 05                	jle    0x140174d5e
140174d59:	0f b7 02             	movzwl (%rdx),%eax
140174d5c:	eb 10                	jmp    0x140174d6e
140174d5e:	48 8b 01             	mov    (%rcx),%rax
140174d61:	48 8b 40 30          	mov    0x30(%rax),%rax
140174d65:	ff 15 b5 98 08 00    	call   *0x898b5(%rip)        # 0x1401fe620
140174d6b:	45 33 d2             	xor    %r10d,%r10d
140174d6e:	b9 ff ff 00 00       	mov    $0xffff,%ecx
140174d73:	66 3b c8             	cmp    %ax,%cx
140174d76:	74 06                	je     0x140174d7e
140174d78:	66 89 47 0a          	mov    %ax,0xa(%rdi)
140174d7c:	eb 03                	jmp    0x140174d81
140174d7e:	4c 89 17             	mov    %r10,(%rdi)
140174d81:	c6 47 08 01          	movb   $0x1,0x8(%rdi)
140174d85:	0f b7 4f 0a          	movzwl 0xa(%rdi),%ecx
140174d89:	48 8d 45 d7          	lea    -0x29(%rbp),%rax
140174d8d:	66 39 08             	cmp    %cx,(%rax)
140174d90:	74 0d                	je     0x140174d9f
140174d92:	48 83 c0 02          	add    $0x2,%rax
140174d96:	48 8d 55 0b          	lea    0xb(%rbp),%rdx
140174d9a:	48 3b c2             	cmp    %rdx,%rax
140174d9d:	75 ee                	jne    0x140174d8d
140174d9f:	48 8d 4d d7          	lea    -0x29(%rbp),%rcx
140174da3:	48 2b c1             	sub    %rcx,%rax
140174da6:	48 d1 f8             	sar    $1,%rax
140174da9:	49 3b c5             	cmp    %r13,%rax
140174dac:	73 5f                	jae    0x140174e0d
140174dae:	48 8d 0d b3 b8 0a 00 	lea    0xab8b3(%rip),%rcx        # 0x140220668
140174db5:	8a 0c 08             	mov    (%rax,%rcx,1),%cl
140174db8:	48 8b 44 24 38       	mov    0x38(%rsp),%rax
140174dbd:	88 08                	mov    %cl,(%rax)
140174dbf:	44 38 54 24 31       	cmp    %r10b,0x31(%rsp)
140174dc4:	75 05                	jne    0x140174dcb
140174dc6:	80 f9 30             	cmp    $0x30,%cl
140174dc9:	74 12                	je     0x140174ddd
140174dcb:	49 3b c4             	cmp    %r12,%rax
140174dce:	73 0d                	jae    0x140174ddd
140174dd0:	48 ff c0             	inc    %rax
140174dd3:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140174dd8:	c6 44 24 31 01       	movb   $0x1,0x31(%rsp)
140174ddd:	c6 44 24 30 01       	movb   $0x1,0x30(%rsp)
140174de2:	48 8d 45 97          	lea    -0x69(%rbp),%rax
140174de6:	49 83 ff 10          	cmp    $0x10,%r15
140174dea:	0f 93 c1             	setae  %cl
140174ded:	49 0f 43 c6          	cmovae %r14,%rax
140174df1:	80 3c 30 7f          	cmpb   $0x7f,(%rax,%rsi,1)
140174df5:	0f 84 e4 00 00 00    	je     0x140174edf
140174dfb:	48 8d 45 97          	lea    -0x69(%rbp),%rax
140174dff:	84 c9                	test   %cl,%cl
140174e01:	49 0f 45 c6          	cmovne %r14,%rax
140174e05:	fe 04 30             	incb   (%rax,%rsi,1)
140174e08:	e9 ca 00 00 00       	jmp    0x140174ed7
140174e0d:	48 8d 45 97          	lea    -0x69(%rbp),%rax
140174e11:	49 83 ff 10          	cmp    $0x10,%r15
140174e15:	41 0f 93 c4          	setae  %r12b
140174e19:	49 0f 43 c6          	cmovae %r14,%rax
140174e1d:	44 38 14 30          	cmp    %r10b,(%rax,%rsi,1)
140174e21:	0f 84 26 01 00 00    	je     0x140174f4d
140174e27:	44 0f b7 44 24 32    	movzwl 0x32(%rsp),%r8d
140174e2d:	66 45 85 c0          	test   %r8w,%r8w
140174e31:	0f 84 16 01 00 00    	je     0x140174f4d
140174e37:	44 38 57 08          	cmp    %r10b,0x8(%rdi)
140174e3b:	75 4f                	jne    0x140174e8c
140174e3d:	48 8b 0f             	mov    (%rdi),%rcx
140174e40:	48 85 c9             	test   %rcx,%rcx
140174e43:	74 40                	je     0x140174e85
140174e45:	48 8b 41 38          	mov    0x38(%rcx),%rax
140174e49:	48 8b 10             	mov    (%rax),%rdx
140174e4c:	48 85 d2             	test   %rdx,%rdx
140174e4f:	74 0e                	je     0x140174e5f
140174e51:	48 8b 41 50          	mov    0x50(%rcx),%rax
140174e55:	44 39 10             	cmp    %r10d,(%rax)
140174e58:	7e 05                	jle    0x140174e5f
140174e5a:	0f b7 02             	movzwl (%rdx),%eax
140174e5d:	eb 16                	jmp    0x140174e75
140174e5f:	48 8b 01             	mov    (%rcx),%rax
140174e62:	48 8b 40 30          	mov    0x30(%rax),%rax
140174e66:	ff 15 b4 97 08 00    	call   *0x897b4(%rip)        # 0x1401fe620
140174e6c:	44 0f b7 44 24 32    	movzwl 0x32(%rsp),%r8d
140174e72:	45 33 d2             	xor    %r10d,%r10d
140174e75:	b9 ff ff 00 00       	mov    $0xffff,%ecx
140174e7a:	66 3b c8             	cmp    %ax,%cx
140174e7d:	74 06                	je     0x140174e85
140174e7f:	66 89 47 0a          	mov    %ax,0xa(%rdi)
140174e83:	eb 03                	jmp    0x140174e88
140174e85:	4c 89 17             	mov    %r10,(%rdi)
140174e88:	c6 47 08 01          	movb   $0x1,0x8(%rdi)
140174e8c:	66 44 39 47 0a       	cmp    %r8w,0xa(%rdi)
140174e91:	0f 85 b6 00 00 00    	jne    0x140174f4d
140174e97:	48 8b 4d a7          	mov    -0x59(%rbp),%rcx
140174e9b:	49 3b cf             	cmp    %r15,%rcx
140174e9e:	73 1a                	jae    0x140174eba
140174ea0:	48 8d 41 01          	lea    0x1(%rcx),%rax
140174ea4:	48 89 45 a7          	mov    %rax,-0x59(%rbp)
140174ea8:	48 8d 45 97          	lea    -0x69(%rbp),%rax
140174eac:	45 84 e4             	test   %r12b,%r12b
140174eaf:	49 0f 45 c6          	cmovne %r14,%rax
140174eb3:	66 83 24 08 00       	andw   $0x0,(%rax,%rcx,1)
140174eb8:	eb 16                	jmp    0x140174ed0
140174eba:	45 33 c9             	xor    %r9d,%r9d
140174ebd:	44 8a c3             	mov    %bl,%r8b
140174ec0:	41 8d 51 01          	lea    0x1(%r9),%edx
140174ec4:	48 8d 4d 97          	lea    -0x69(%rbp),%rcx
140174ec8:	e8 5b 3e ff ff       	call   0x140168d28
140174ecd:	45 33 d2             	xor    %r10d,%r10d
140174ed0:	48 ff c6             	inc    %rsi
140174ed3:	4c 8b 65 87          	mov    -0x79(%rbp),%r12
140174ed7:	4c 8b 75 97          	mov    -0x69(%rbp),%r14
140174edb:	4c 8b 7d af          	mov    -0x51(%rbp),%r15
140174edf:	48 8b 0f             	mov    (%rdi),%rcx
140174ee2:	48 85 c9             	test   %rcx,%rcx
140174ee5:	74 46                	je     0x140174f2d
140174ee7:	48 8b 41 38          	mov    0x38(%rcx),%rax
140174eeb:	4c 39 10             	cmp    %r10,(%rax)
140174eee:	74 1e                	je     0x140174f0e
140174ef0:	48 8b 41 50          	mov    0x50(%rcx),%rax
140174ef4:	44 39 10             	cmp    %r10d,(%rax)
140174ef7:	7e 15                	jle    0x140174f0e