140037949:	41 8d 48 ff          	lea    -0x1(%r8),%ecx
14003794d:	89 08                	mov    %ecx,(%rax)
14003794f:	8b c6                	mov    %esi,%eax
140037951:	48 8b 53 40          	mov    0x40(%rbx),%rdx
140037955:	4c 8b 02             	mov    (%rdx),%r8
140037958:	49 8d 48 01          	lea    0x1(%r8),%rcx
14003795c:	48 89 0a             	mov    %rcx,(%rdx)
14003795f:	41 88 30             	mov    %sil,(%r8)
140037962:	e9 d2 01 00 00       	jmp    0x140037b39
140037967:	48 83 bb 80 00 00 00 	cmpq   $0x0,0x80(%rbx)
14003796e:	00
14003796f:	75 08                	jne    0x140037979
140037971:	83 c8 ff             	or     $0xffffffff,%eax
140037974:	e9 c0 01 00 00       	jmp    0x140037b39
140037979:	4c 8b 43 18          	mov    0x18(%rbx),%r8
14003797d:	48 8d 43 70          	lea    0x70(%rbx),%rax
140037981:	49 39 00             	cmp    %rax,(%r8)
140037984:	75 20                	jne    0x1400379a6
140037986:	48 8b 8b 88 00 00 00 	mov    0x88(%rbx),%rcx
14003798d:	48 8b 93 90 00 00 00 	mov    0x90(%rbx),%rdx
140037994:	49 89 08             	mov    %rcx,(%r8)
140037997:	2b d1                	sub    %ecx,%edx
140037999:	48 8b 43 38          	mov    0x38(%rbx),%rax
14003799d:	48 89 08             	mov    %rcx,(%rax)
1400379a0:	48 8b 43 50          	mov    0x50(%rbx),%rax
1400379a4:	89 10                	mov    %edx,(%rax)
1400379a6:	48 83 7b 68 00       	cmpq   $0x0,0x68(%rbx)
1400379ab:	75 1d                	jne    0x1400379ca
1400379ad:	48 8b 93 80 00 00 00 	mov    0x80(%rbx),%rdx
1400379b4:	40 0f be ce          	movsbl %sil,%ecx
1400379b8:	e8 43 b2 fe ff       	call   0x140022c00
1400379bd:	83 cb ff             	or     $0xffffffff,%ebx
1400379c0:	3b c3                	cmp    %ebx,%eax
1400379c2:	0f 45 de             	cmovne %esi,%ebx
1400379c5:	e9 6d 01 00 00       	jmp    0x140037b37
1400379ca:	33 c9                	xor    %ecx,%ecx
1400379cc:	c6 45 d8 00          	movb   $0x0,-0x28(%rbp)
1400379d0:	ba 0f 00 00 00       	mov    $0xf,%edx
1400379d5:	4c 89 b4 24 b8 00 00 	mov    %r14,0xb8(%rsp)
1400379dc:	00
1400379dd:	48 83 fa 10          	cmp    $0x10,%rdx
1400379e1:	40 88 75 c0          	mov    %sil,-0x40(%rbp)
1400379e5:	48 8d 45 d8          	lea    -0x28(%rbp),%rax
1400379e9:	48 89 55 f0          	mov    %rdx,-0x10(%rbp)
1400379ed:	48 0f 43 c1          	cmovae %rcx,%rax
1400379f1:	48 89 4d d8          	mov    %rcx,-0x28(%rbp)
1400379f5:	48 c7 45 e8 08 00 00 	movq   $0x8,-0x18(%rbp)
1400379fc:	00
1400379fd:	48 89 bc 24 b0 00 00 	mov    %rdi,0xb0(%rsp)
140037a04:	00
140037a05:	88 48 08             	mov    %cl,0x8(%rax)
140037a08:	4c 8b 4d f0          	mov    -0x10(%rbp),%r9
140037a0c:	0f 1f 40 00          	nopl   0x0(%rax)
140037a10:	48 8b 4b 68          	mov    0x68(%rbx),%rcx
140037a14:	48 8d 45 c8          	lea    -0x38(%rbp),%rax
140037a18:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140037a1d:	48 8d 55 d8          	lea    -0x28(%rbp),%rdx
140037a21:	49 83 f9 10          	cmp    $0x10,%r9
140037a25:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
140037a29:	4c 8d 45 d8          	lea    -0x28(%rbp),%r8
140037a2d:	4c 0f 43 45 d8       	cmovae -0x28(%rbp),%r8
140037a32:	4c 8d 4d c1          	lea    -0x3f(%rbp),%r9
140037a36:	48 0f 43 55 d8       	cmovae -0x28(%rbp),%rdx
140037a3b:	48 03 55 e8          	add    -0x18(%rbp),%rdx
140037a3f:	4c 8b 11             	mov    (%rcx),%r10
140037a42:	48 89 54 24 30       	mov    %rdx,0x30(%rsp)
140037a47:	48 8d 53 74          	lea    0x74(%rbx),%rdx
140037a4b:	4c 89 44 24 28       	mov    %r8,0x28(%rsp)
140037a50:	4c 8d 45 c0          	lea    -0x40(%rbp),%r8
140037a54:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140037a59:	41 ff 52 38          	call   *0x38(%r10)
140037a5d:	85 c0                	test   %eax,%eax
140037a5f:	0f 88 a4 00 00 00    	js     0x140037b09
140037a65:	83 f8 01             	cmp    $0x1,%eax
140037a68:	7f 7c                	jg     0x140037ae6
140037a6a:	4c 8b 4d f0          	mov    -0x10(%rbp),%r9
140037a6e:	48 8d 45 d8          	lea    -0x28(%rbp),%rax
140037a72:	4c 8b 55 d8          	mov    -0x28(%rbp),%r10
140037a76:	49 83 f9 10          	cmp    $0x10,%r9
140037a7a:	48 8b 7d c8          	mov    -0x38(%rbp),%rdi
140037a7e:	49 0f 43 c2          	cmovae %r10,%rax
140037a82:	48 2b f8             	sub    %rax,%rdi
140037a85:	74 29                	je     0x140037ab0
140037a87:	49 83 f9 10          	cmp    $0x10,%r9
140037a8b:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
140037a8f:	4c 8b 8b 80 00 00 00 	mov    0x80(%rbx),%r9
140037a96:	4c 8b c7             	mov    %rdi,%r8
140037a99:	49 0f 43 ca          	cmovae %r10,%rcx
140037a9d:	ba 01 00 00 00       	mov    $0x1,%edx
140037aa2:	e8 ad e2 fe ff       	call   0x140025d54
140037aa7:	4c 8b 4d f0          	mov    -0x10(%rbp),%r9
140037aab:	48 3b f8             	cmp    %rax,%rdi
140037aae:	75 5d                	jne    0x140037b0d
140037ab0:	48 8d 45 c0          	lea    -0x40(%rbp),%rax
140037ab4:	c6 43 71 01          	movb   $0x1,0x71(%rbx)
140037ab8:	48 39 45 d0          	cmp    %rax,-0x30(%rbp)
140037abc:	75 24                	jne    0x140037ae2
140037abe:	48 85 ff             	test   %rdi,%rdi
140037ac1:	0f 85 49 ff ff ff    	jne    0x140037a10
140037ac7:	48 83 7d e8 20       	cmpq   $0x20,-0x18(%rbp)
140037acc:	73 3f                	jae    0x140037b0d
140037ace:	45 33 c0             	xor    %r8d,%r8d
140037ad1:	8d 57 08             	lea    0x8(%rdi),%edx
140037ad4:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
140037ad8:	e8 a3 ed ff ff       	call   0x140036880
140037add:	e9 26 ff ff ff       	jmp    0x140037a08
140037ae2:	8b de                	mov    %esi,%ebx
140037ae4:	eb 2a                	jmp    0x140037b10
140037ae6:	83 f8 03             	cmp    $0x3,%eax
140037ae9:	75 1e                	jne    0x140037b09
140037aeb:	0f be 4d c0          	movsbl -0x40(%rbp),%ecx
140037aef:	48 8b 93 80 00 00 00 	mov    0x80(%rbx),%rdx
140037af6:	e8 05 b1 fe ff       	call   0x140022c00
140037afb:	4c 8b 4d f0          	mov    -0x10(%rbp),%r9
140037aff:	83 cb ff             	or     $0xffffffff,%ebx
140037b02:	3b c3                	cmp    %ebx,%eax
140037b04:	0f 45 de             	cmovne %esi,%ebx
140037b07:	eb 07                	jmp    0x140037b10
140037b09:	4c 8b 4d f0          	mov    -0x10(%rbp),%r9
140037b0d:	83 cb ff             	or     $0xffffffff,%ebx
140037b10:	4c 8b b4 24 b8 00 00 	mov    0xb8(%rsp),%r14
140037b17:	00
140037b18:	48 8b bc 24 b0 00 00 	mov    0xb0(%rsp),%rdi
140037b1f:	00
140037b20:	49 83 f9 10          	cmp    $0x10,%r9
140037b24:	72 11                	jb     0x140037b37
140037b26:	48 8b 55 d8          	mov    -0x28(%rbp),%rdx
140037b2a:	4d 8d 41 01          	lea    0x1(%r9),%r8
140037b2e:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
140037b32:	e8 29 f4 ff ff       	call   0x140036f60
140037b37:	8b c3                	mov    %ebx,%eax
140037b39:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
140037b3d:	48 33 cc             	xor    %rsp,%rcx
140037b40:	e8 5b 18 fd ff       	call   0x1400093a0
140037b45:	48 81 c4 80 00 00 00 	add    $0x80,%rsp
140037b4c:	5e                   	pop    %rsi
140037b4d:	5b                   	pop    %rbx
140037b4e:	5d                   	pop    %rbp
140037b4f:	c3                   	ret
140037b50:	83 c8 ff             	or     $0xffffffff,%eax
140037b53:	c3                   	ret
140037b54:	cc                   	int3
140037b55:	cc                   	int3
140037b56:	cc                   	int3
140037b57:	cc                   	int3
140037b58:	cc                   	int3
140037b59:	cc                   	int3
140037b5a:	cc                   	int3
140037b5b:	cc                   	int3
140037b5c:	cc                   	int3
140037b5d:	cc                   	int3
140037b5e:	cc                   	int3
140037b5f:	cc                   	int3
140037b60:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140037b65:	57                   	push   %rdi
140037b66:	48 83 ec 20          	sub    $0x20,%rsp
140037b6a:	48 8b 41 38          	mov    0x38(%rcx),%rax
140037b6e:	48 8b f9             	mov    %rcx,%rdi
140037b71:	8b da                	mov    %edx,%ebx
140037b73:	48 8b 08             	mov    (%rax),%rcx
140037b76:	48 85 c9             	test   %rcx,%rcx
140037b79:	74 36                	je     0x140037bb1
140037b7b:	48 8b 47 18          	mov    0x18(%rdi),%rax
140037b7f:	48 39 08             	cmp    %rcx,(%rax)
140037b82:	73 2d                	jae    0x140037bb1
140037b84:	83 fa ff             	cmp    $0xffffffff,%edx
140037b87:	74 08                	je     0x140037b91
140037b89:	0f b6 41 ff          	movzbl -0x1(%rcx),%eax
140037b8d:	3b c2                	cmp    %edx,%eax
140037b8f:	75 20                	jne    0x140037bb1
140037b91:	48 8b 47 50          	mov    0x50(%rdi),%rax
140037b95:	ff 00                	incl   (%rax)
140037b97:	48 8b 47 38          	mov    0x38(%rdi),%rax
140037b9b:	48 ff 08             	decq   (%rax)
140037b9e:	33 c0                	xor    %eax,%eax
140037ba0:	83 fa ff             	cmp    $0xffffffff,%edx
140037ba3:	0f 45 c2             	cmovne %edx,%eax
140037ba6:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140037bab:	48 83 c4 20          	add    $0x20,%rsp
140037baf:	5f                   	pop    %rdi
140037bb0:	c3                   	ret
140037bb1:	48 8b 97 80 00 00 00 	mov    0x80(%rdi),%rdx
140037bb8:	48 85 d2             	test   %rdx,%rdx
140037bbb:	74 3d                	je     0x140037bfa
140037bbd:	83 fb ff             	cmp    $0xffffffff,%ebx
140037bc0:	74 38                	je     0x140037bfa
140037bc2:	48 83 7f 68 00       	cmpq   $0x0,0x68(%rdi)
140037bc7:	75 0d                	jne    0x140037bd6
140037bc9:	0f b6 cb             	movzbl %bl,%ecx
140037bcc:	e8 47 e3 fe ff       	call   0x140025f18
140037bd1:	83 f8 ff             	cmp    $0xffffffff,%eax
140037bd4:	75 17                	jne    0x140037bed
140037bd6:	48 8b 47 38          	mov    0x38(%rdi),%rax
140037bda:	48 8d 4f 70          	lea    0x70(%rdi),%rcx
140037bde:	48 39 08             	cmp    %rcx,(%rax)
140037be1:	74 17                	je     0x140037bfa
140037be3:	88 19                	mov    %bl,(%rcx)
140037be5:	48 8b cf             	mov    %rdi,%rcx
140037be8:	e8 a3 e9 ff ff       	call   0x140036590
140037bed:	8b c3                	mov    %ebx,%eax
140037bef:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140037bf4:	48 83 c4 20          	add    $0x20,%rsp
140037bf8:	5f                   	pop    %rdi
140037bf9:	c3                   	ret
140037bfa:	83 c8 ff             	or     $0xffffffff,%eax
140037bfd:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140037c02:	48 83 c4 20          	add    $0x20,%rsp
140037c06:	5f                   	pop    %rdi
140037c07:	c3                   	ret
140037c08:	cc                   	int3
140037c09:	cc                   	int3
140037c0a:	cc                   	int3
140037c0b:	cc                   	int3
140037c0c:	cc                   	int3
140037c0d:	cc                   	int3
140037c0e:	cc                   	int3
140037c0f:	cc                   	int3
140037c10:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140037c15:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140037c1a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140037c1f:	57                   	push   %rdi
140037c20:	48 83 ec 20          	sub    $0x20,%rsp
140037c24:	33 ff                	xor    %edi,%edi
140037c26:	48 8b d9             	mov    %rcx,%rbx
140037c29:	48 89 79 08          	mov    %rdi,0x8(%rcx)
140037c2d:	49 8b f0             	mov    %r8,%rsi
140037c30:	48 8b 01             	mov    (%rcx),%rax
140037c33:	48 8b ea             	mov    %rdx,%rbp
140037c36:	4c 63 48 04          	movslq 0x4(%rax),%r9
140037c3a:	49 8b 4c 09 48       	mov    0x48(%r9,%rcx,1),%rcx
140037c3f:	48 85 c9             	test   %rcx,%rcx
140037c42:	74 06                	je     0x140037c4a
140037c44:	48 8b 01             	mov    (%rcx),%rax
140037c47:	ff 50 08             	call   *0x8(%rax)
140037c4a:	48 8b 03             	mov    (%rbx),%rax
140037c4d:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037c51:	48 03 cb             	add    %rbx,%rcx
140037c54:	39 79 10             	cmp    %edi,0x10(%rcx)
140037c57:	75 43                	jne    0x140037c9c
140037c59:	48 8b 49 50          	mov    0x50(%rcx),%rcx
140037c5d:	48 85 c9             	test   %rcx,%rcx
140037c60:	74 05                	je     0x140037c67
140037c62:	e8 19 f6 ff ff       	call   0x140037280
140037c67:	48 8b 03             	mov    (%rbx),%rax
140037c6a:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037c6e:	48 03 cb             	add    %rbx,%rcx
140037c71:	39 79 10             	cmp    %edi,0x10(%rcx)
140037c74:	75 26                	jne    0x140037c9c
140037c76:	48 85 f6             	test   %rsi,%rsi
140037c79:	7e 38                	jle    0x140037cb3
140037c7b:	48 8b 49 48          	mov    0x48(%rcx),%rcx
140037c7f:	4c 8b c6             	mov    %rsi,%r8
140037c82:	48 8b d5             	mov    %rbp,%rdx
140037c85:	48 8b 01             	mov    (%rcx),%rax
140037c88:	ff 50 40             	call   *0x40(%rax)
140037c8b:	48 01 43 08          	add    %rax,0x8(%rbx)
140037c8f:	b9 03 00 00 00       	mov    $0x3,%ecx
140037c94:	48 3b c6             	cmp    %rsi,%rax
140037c97:	0f 45 f9             	cmovne %ecx,%edi
140037c9a:	eb 17                	jmp    0x140037cb3
140037c9c:	8b 51 10             	mov    0x10(%rcx),%edx
140037c9f:	83 ca 02             	or     $0x2,%edx
140037ca2:	48 39 79 48          	cmp    %rdi,0x48(%rcx)
140037ca6:	75 03                	jne    0x140037cab
140037ca8:	83 ca 04             	or     $0x4,%edx
140037cab:	45 33 c0             	xor    %r8d,%r8d
140037cae:	e8 4d ef ff ff       	call   0x140036c00
140037cb3:	48 8b 03             	mov    (%rbx),%rax
140037cb6:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037cba:	48 03 cb             	add    %rbx,%rcx
140037cbd:	85 ff                	test   %edi,%edi
140037cbf:	74 17                	je     0x140037cd8
140037cc1:	8b 51 10             	mov    0x10(%rcx),%edx
140037cc4:	0b d7                	or     %edi,%edx
140037cc6:	48 83 79 48 00       	cmpq   $0x0,0x48(%rcx)
140037ccb:	75 03                	jne    0x140037cd0
140037ccd:	83 ca 04             	or     $0x4,%edx
140037cd0:	45 33 c0             	xor    %r8d,%r8d
140037cd3:	e8 28 ef ff ff       	call   0x140036c00
140037cd8:	48 8b 03             	mov    (%rbx),%rax
140037cdb:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037cdf:	48 8b 4c 19 48       	mov    0x48(%rcx,%rbx,1),%rcx
140037ce4:	48 85 c9             	test   %rcx,%rcx
140037ce7:	74 06                	je     0x140037cef
140037ce9:	48 8b 01             	mov    (%rcx),%rax
140037cec:	ff 50 10             	call   *0x10(%rax)
140037cef:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
140037cf4:	48 8b c3             	mov    %rbx,%rax
140037cf7:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140037cfc:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140037d01:	48 83 c4 20          	add    $0x20,%rsp
140037d05:	5f                   	pop    %rdi
140037d06:	c3                   	ret
140037d07:	cc                   	int3
140037d08:	cc                   	int3
140037d09:	cc                   	int3
140037d0a:	cc                   	int3
140037d0b:	cc                   	int3
140037d0c:	cc                   	int3
140037d0d:	cc                   	int3
140037d0e:	cc                   	int3
140037d0f:	cc                   	int3
140037d10:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140037d15:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140037d1a:	57                   	push   %rdi
140037d1b:	48 83 ec 50          	sub    $0x50,%rsp
140037d1f:	48 8b 01             	mov    (%rcx),%rax
140037d22:	48 8b d9             	mov    %rcx,%rbx
140037d25:	48 8b f2             	mov    %rdx,%rsi
140037d28:	41 8b f8             	mov    %r8d,%edi
140037d2b:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037d2f:	48 03 cb             	add    %rbx,%rcx
140037d32:	8b 51 10             	mov    0x10(%rcx),%edx
140037d35:	83 e2 fe             	and    $0xfffffffe,%edx
140037d38:	48 83 79 48 00       	cmpq   $0x0,0x48(%rcx)
140037d3d:	75 03                	jne    0x140037d42
140037d3f:	83 ca 04             	or     $0x4,%edx
140037d42:	45 33 c0             	xor    %r8d,%r8d
140037d45:	e8 b6 ee ff ff       	call   0x140036c00
140037d4a:	48 8b 03             	mov    (%rbx),%rax
140037d4d:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037d51:	48 8b 4c 19 48       	mov    0x48(%rcx,%rbx,1),%rcx
140037d56:	48 85 c9             	test   %rcx,%rcx
140037d59:	74 06                	je     0x140037d61
140037d5b:	48 8b 01             	mov    (%rcx),%rax
140037d5e:	ff 50 08             	call   *0x8(%rax)
140037d61:	48 8b 03             	mov    (%rbx),%rax
140037d64:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037d68:	48 03 cb             	add    %rbx,%rcx
140037d6b:	83 79 10 00          	cmpl   $0x0,0x10(%rcx)
140037d6f:	75 1e                	jne    0x140037d8f
140037d71:	48 8b 49 50          	mov    0x50(%rcx),%rcx
140037d75:	48 85 c9             	test   %rcx,%rcx
140037d78:	74 05                	je     0x140037d7f
140037d7a:	e8 01 f5 ff ff       	call   0x140037280
140037d7f:	48 8b 03             	mov    (%rbx),%rax
140037d82:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037d86:	48 03 cb             	add    %rbx,%rcx
140037d89:	83 79 10 00          	cmpl   $0x0,0x10(%rcx)
140037d8d:	74 18                	je     0x140037da7
140037d8f:	8b 51 10             	mov    0x10(%rcx),%edx
140037d92:	83 ca 02             	or     $0x2,%edx
140037d95:	48 83 79 48 00       	cmpq   $0x0,0x48(%rcx)
140037d9a:	75 03                	jne    0x140037d9f
140037d9c:	83 ca 04             	or     $0x4,%edx
140037d9f:	45 33 c0             	xor    %r8d,%r8d
140037da2:	e8 59 ee ff ff       	call   0x140036c00
140037da7:	48 8b 03             	mov    (%rbx),%rax
140037daa:	48 63 48 04          	movslq 0x4(%rax),%rcx
140037dae:	f6 44 19 10 06       	testb  $0x6,0x10(%rcx,%rbx,1)