14012bc97:	48 81 ec 80 00 00 00 	sub    $0x80,%rsp
14012bc9e:	48 8b 05 cb f5 17 00 	mov    0x17f5cb(%rip),%rax        # 0x1402ab270
14012bca5:	48 33 c4             	xor    %rsp,%rax
14012bca8:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
14012bcad:	48 8b 84 24 c8 00 00 	mov    0xc8(%rsp),%rax
14012bcb4:	00
14012bcb5:	33 ff                	xor    %edi,%edi
14012bcb7:	44 8b ac 24 c0 00 00 	mov    0xc0(%rsp),%r13d
14012bcbe:	00
14012bcbf:	49 89 5b 08          	mov    %rbx,0x8(%r11)
14012bcc3:	48 8b da             	mov    %rdx,%rbx
14012bcc6:	49 89 6b e0          	mov    %rbp,-0x20(%r11)
14012bcca:	4d 89 63 d8          	mov    %r12,-0x28(%r11)
14012bcce:	4d 8b e0             	mov    %r8,%r12
14012bcd1:	4d 89 73 d0          	mov    %r14,-0x30(%r11)
14012bcd5:	4d 89 7b c8          	mov    %r15,-0x38(%r11)
14012bcd9:	4c 8b bc 24 d0 00 00 	mov    0xd0(%rsp),%r15
14012bce0:	00
14012bce1:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
14012bce6:	b8 01 00 00 00       	mov    $0x1,%eax
14012bceb:	44 89 4c 24 24       	mov    %r9d,0x24(%rsp)
14012bcf0:	41 83 fd 09          	cmp    $0x9,%r13d
14012bcf4:	7f 04                	jg     0x14012bcfa
14012bcf6:	8b e8                	mov    %eax,%ebp
14012bcf8:	eb 1d                	jmp    0x14012bd17
14012bcfa:	41 83 fd 63          	cmp    $0x63,%r13d
14012bcfe:	7f 07                	jg     0x14012bd07
14012bd00:	bd 02 00 00 00       	mov    $0x2,%ebp
14012bd05:	eb 10                	jmp    0x14012bd17
14012bd07:	41 81 fd e7 03 00 00 	cmp    $0x3e7,%r13d
14012bd0e:	8b ef                	mov    %edi,%ebp
14012bd10:	40 0f 9f c5          	setg   %bpl
14012bd14:	83 c5 03             	add    $0x3,%ebp
14012bd17:	49 8b d4             	mov    %r12,%rdx
14012bd1a:	4c 8d 74 24 38       	lea    0x38(%rsp),%r14
14012bd1f:	48 8b cb             	mov    %rbx,%rcx
14012bd22:	8b f7                	mov    %edi,%esi
14012bd24:	e8 47 71 fb ff       	call   0x1400e2e70
14012bd29:	84 c0                	test   %al,%al
14012bd2b:	0f 85 b2 00 00 00    	jne    0x14012bde3
14012bd31:	3b f5                	cmp    %ebp,%esi
14012bd33:	0f 8d aa 00 00 00    	jge    0x14012bde3
14012bd39:	40 38 7b 08          	cmp    %dil,0x8(%rbx)
14012bd3d:	75 38                	jne    0x14012bd77
14012bd3f:	48 8b 0b             	mov    (%rbx),%rcx
14012bd42:	48 85 c9             	test   %rcx,%rcx
14012bd45:	74 29                	je     0x14012bd70
14012bd47:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012bd4b:	48 8b 10             	mov    (%rax),%rdx
14012bd4e:	48 85 d2             	test   %rdx,%rdx
14012bd51:	74 0d                	je     0x14012bd60
14012bd53:	48 8b 41 50          	mov    0x50(%rcx),%rax
14012bd57:	39 38                	cmp    %edi,(%rax)
14012bd59:	7e 05                	jle    0x14012bd60
14012bd5b:	0f b6 02             	movzbl (%rdx),%eax
14012bd5e:	eb 06                	jmp    0x14012bd66
14012bd60:	48 8b 01             	mov    (%rcx),%rax
14012bd63:	ff 50 30             	call   *0x30(%rax)
14012bd66:	83 f8 ff             	cmp    $0xffffffff,%eax
14012bd69:	74 05                	je     0x14012bd70
14012bd6b:	88 43 09             	mov    %al,0x9(%rbx)
14012bd6e:	eb 03                	jmp    0x14012bd73
14012bd70:	48 89 3b             	mov    %rdi,(%rbx)
14012bd73:	c6 43 08 01          	movb   $0x1,0x8(%rbx)
14012bd77:	0f b6 4b 09          	movzbl 0x9(%rbx),%ecx
14012bd7b:	49 8b 47 18          	mov    0x18(%r15),%rax
14012bd7f:	f6 04 48 48          	testb  $0x48,(%rax,%rcx,2)
14012bd83:	74 5e                	je     0x14012bde3
14012bd85:	48 8b 0b             	mov    (%rbx),%rcx
14012bd88:	48 85 c9             	test   %rcx,%rcx
14012bd8b:	74 39                	je     0x14012bdc6
14012bd8d:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012bd91:	48 39 38             	cmp    %rdi,(%rax)
14012bd94:	74 21                	je     0x14012bdb7
14012bd96:	48 8b 51 50          	mov    0x50(%rcx),%rdx
14012bd9a:	8b 02                	mov    (%rdx),%eax
14012bd9c:	85 c0                	test   %eax,%eax
14012bd9e:	7e 17                	jle    0x14012bdb7
14012bda0:	ff c8                	dec    %eax
14012bda2:	89 02                	mov    %eax,(%rdx)
14012bda4:	48 8b 49 38          	mov    0x38(%rcx),%rcx
14012bda8:	48 8b 11             	mov    (%rcx),%rdx
14012bdab:	48 8d 42 01          	lea    0x1(%rdx),%rax
14012bdaf:	48 89 01             	mov    %rax,(%rcx)
14012bdb2:	0f b6 02             	movzbl (%rdx),%eax
14012bdb5:	eb 06                	jmp    0x14012bdbd
14012bdb7:	48 8b 01             	mov    (%rcx),%rax
14012bdba:	ff 50 38             	call   *0x38(%rax)
14012bdbd:	83 f8 ff             	cmp    $0xffffffff,%eax
14012bdc0:	74 04                	je     0x14012bdc6
14012bdc2:	32 c0                	xor    %al,%al
14012bdc4:	eb 05                	jmp    0x14012bdcb
14012bdc6:	48 89 3b             	mov    %rdi,(%rbx)
14012bdc9:	b0 01                	mov    $0x1,%al
14012bdcb:	49 8b d4             	mov    %r12,%rdx
14012bdce:	88 43 08             	mov    %al,0x8(%rbx)
14012bdd1:	48 8b cb             	mov    %rbx,%rcx
14012bdd4:	ff c6                	inc    %esi
14012bdd6:	e8 95 70 fb ff       	call   0x1400e2e70
14012bddb:	84 c0                	test   %al,%al
14012bddd:	0f 84 4e ff ff ff    	je     0x14012bd31
14012bde3:	49 8b d4             	mov    %r12,%rdx
14012bde6:	48 8b cb             	mov    %rbx,%rcx
14012bde9:	e8 82 70 fb ff       	call   0x1400e2e70
14012bdee:	84 c0                	test   %al,%al
14012bdf0:	0f 85 08 01 00 00    	jne    0x14012befe
14012bdf6:	3b f5                	cmp    %ebp,%esi
14012bdf8:	0f 8d 00 01 00 00    	jge    0x14012befe
14012bdfe:	40 38 7b 08          	cmp    %dil,0x8(%rbx)
14012be02:	75 38                	jne    0x14012be3c
14012be04:	48 8b 0b             	mov    (%rbx),%rcx
14012be07:	48 85 c9             	test   %rcx,%rcx
14012be0a:	74 29                	je     0x14012be35
14012be0c:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012be10:	48 8b 10             	mov    (%rax),%rdx
14012be13:	48 85 d2             	test   %rdx,%rdx
14012be16:	74 0d                	je     0x14012be25
14012be18:	48 8b 41 50          	mov    0x50(%rcx),%rax
14012be1c:	39 38                	cmp    %edi,(%rax)
14012be1e:	7e 05                	jle    0x14012be25
14012be20:	0f b6 02             	movzbl (%rdx),%eax
14012be23:	eb 06                	jmp    0x14012be2b
14012be25:	48 8b 01             	mov    (%rcx),%rax
14012be28:	ff 50 30             	call   *0x30(%rax)
14012be2b:	83 f8 ff             	cmp    $0xffffffff,%eax
14012be2e:	74 05                	je     0x14012be35
14012be30:	88 43 09             	mov    %al,0x9(%rbx)
14012be33:	eb 03                	jmp    0x14012be38
14012be35:	48 89 3b             	mov    %rdi,(%rbx)
14012be38:	c6 43 08 01          	movb   $0x1,0x8(%rbx)
14012be3c:	49 8b 07             	mov    (%r15),%rax
14012be3f:	45 33 c0             	xor    %r8d,%r8d
14012be42:	0f b6 53 09          	movzbl 0x9(%rbx),%edx
14012be46:	49 8b cf             	mov    %r15,%rcx
14012be49:	ff 50 50             	call   *0x50(%rax)
14012be4c:	3c 2b                	cmp    $0x2b,%al
14012be4e:	75 57                	jne    0x14012bea7
14012be50:	48 8b 0b             	mov    (%rbx),%rcx
14012be53:	4c 8d 74 24 39       	lea    0x39(%rsp),%r14
14012be58:	88 44 24 38          	mov    %al,0x38(%rsp)
14012be5c:	48 85 c9             	test   %rcx,%rcx
14012be5f:	74 3c                	je     0x14012be9d
14012be61:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012be65:	48 39 38             	cmp    %rdi,(%rax)
14012be68:	74 21                	je     0x14012be8b
14012be6a:	48 8b 51 50          	mov    0x50(%rcx),%rdx
14012be6e:	8b 02                	mov    (%rdx),%eax
14012be70:	85 c0                	test   %eax,%eax
14012be72:	7e 17                	jle    0x14012be8b
14012be74:	ff c8                	dec    %eax
14012be76:	89 02                	mov    %eax,(%rdx)
14012be78:	48 8b 49 38          	mov    0x38(%rcx),%rcx
14012be7c:	48 8b 11             	mov    (%rcx),%rdx
14012be7f:	48 8d 42 01          	lea    0x1(%rdx),%rax
14012be83:	48 89 01             	mov    %rax,(%rcx)
14012be86:	0f b6 02             	movzbl (%rdx),%eax
14012be89:	eb 06                	jmp    0x14012be91
14012be8b:	48 8b 01             	mov    (%rcx),%rax
14012be8e:	ff 50 38             	call   *0x38(%rax)
14012be91:	83 f8 ff             	cmp    $0xffffffff,%eax
14012be94:	74 07                	je     0x14012be9d
14012be96:	32 c0                	xor    %al,%al
14012be98:	88 43 08             	mov    %al,0x8(%rbx)
14012be9b:	eb 61                	jmp    0x14012befe
14012be9d:	b0 01                	mov    $0x1,%al
14012be9f:	48 89 3b             	mov    %rdi,(%rbx)
14012bea2:	88 43 08             	mov    %al,0x8(%rbx)
14012bea5:	eb 57                	jmp    0x14012befe
14012bea7:	3c 2d                	cmp    $0x2d,%al
14012bea9:	75 53                	jne    0x14012befe
14012beab:	48 8b 0b             	mov    (%rbx),%rcx
14012beae:	4c 8d 74 24 39       	lea    0x39(%rsp),%r14
14012beb3:	88 44 24 38          	mov    %al,0x38(%rsp)
14012beb7:	48 85 c9             	test   %rcx,%rcx
14012beba:	74 3b                	je     0x14012bef7
14012bebc:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012bec0:	48 39 38             	cmp    %rdi,(%rax)
14012bec3:	74 21                	je     0x14012bee6
14012bec5:	48 8b 51 50          	mov    0x50(%rcx),%rdx
14012bec9:	8b 02                	mov    (%rdx),%eax
14012becb:	85 c0                	test   %eax,%eax
14012becd:	7e 17                	jle    0x14012bee6
14012becf:	ff c8                	dec    %eax
14012bed1:	89 02                	mov    %eax,(%rdx)
14012bed3:	48 8b 49 38          	mov    0x38(%rcx),%rcx
14012bed7:	48 8b 11             	mov    (%rcx),%rdx
14012beda:	48 8d 42 01          	lea    0x1(%rdx),%rax
14012bede:	48 89 01             	mov    %rax,(%rcx)
14012bee1:	0f b6 02             	movzbl (%rdx),%eax
14012bee4:	eb 06                	jmp    0x14012beec
14012bee6:	48 8b 01             	mov    (%rcx),%rax
14012bee9:	ff 50 38             	call   *0x38(%rax)
14012beec:	83 f8 ff             	cmp    $0xffffffff,%eax
14012beef:	74 06                	je     0x14012bef7
14012bef1:	40 88 7b 08          	mov    %dil,0x8(%rbx)
14012bef5:	eb 07                	jmp    0x14012befe
14012bef7:	48 89 3b             	mov    %rdi,(%rbx)
14012befa:	c6 43 08 01          	movb   $0x1,0x8(%rbx)
14012befe:	49 8b d4             	mov    %r12,%rdx
14012bf01:	48 8b cb             	mov    %rbx,%rcx
14012bf04:	e8 67 6f fb ff       	call   0x1400e2e70
14012bf09:	84 c0                	test   %al,%al
14012bf0b:	0f 85 b8 00 00 00    	jne    0x14012bfc9
14012bf11:	3b f5                	cmp    %ebp,%esi
14012bf13:	0f 8d b0 00 00 00    	jge    0x14012bfc9
14012bf19:	40 38 7b 08          	cmp    %dil,0x8(%rbx)
14012bf1d:	75 38                	jne    0x14012bf57
14012bf1f:	48 8b 0b             	mov    (%rbx),%rcx
14012bf22:	48 85 c9             	test   %rcx,%rcx
14012bf25:	74 29                	je     0x14012bf50
14012bf27:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012bf2b:	48 8b 10             	mov    (%rax),%rdx
14012bf2e:	48 85 d2             	test   %rdx,%rdx
14012bf31:	74 0d                	je     0x14012bf40
14012bf33:	48 8b 41 50          	mov    0x50(%rcx),%rax
14012bf37:	39 38                	cmp    %edi,(%rax)
14012bf39:	7e 05                	jle    0x14012bf40
14012bf3b:	0f b6 02             	movzbl (%rdx),%eax
14012bf3e:	eb 06                	jmp    0x14012bf46
14012bf40:	48 8b 01             	mov    (%rcx),%rax
14012bf43:	ff 50 30             	call   *0x30(%rax)
14012bf46:	83 f8 ff             	cmp    $0xffffffff,%eax
14012bf49:	74 05                	je     0x14012bf50
14012bf4b:	88 43 09             	mov    %al,0x9(%rbx)
14012bf4e:	eb 03                	jmp    0x14012bf53
14012bf50:	48 89 3b             	mov    %rdi,(%rbx)
14012bf53:	c6 43 08 01          	movb   $0x1,0x8(%rbx)
14012bf57:	49 8b 07             	mov    (%r15),%rax
14012bf5a:	45 33 c0             	xor    %r8d,%r8d
14012bf5d:	0f b6 53 09          	movzbl 0x9(%rbx),%edx
14012bf61:	49 8b cf             	mov    %r15,%rcx
14012bf64:	ff 50 50             	call   *0x50(%rax)
14012bf67:	3c 30                	cmp    $0x30,%al
14012bf69:	75 5e                	jne    0x14012bfc9
14012bf6b:	48 8b 0b             	mov    (%rbx),%rcx
14012bf6e:	ff c6                	inc    %esi
14012bf70:	48 85 c9             	test   %rcx,%rcx
14012bf73:	74 39                	je     0x14012bfae
14012bf75:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012bf79:	48 39 38             	cmp    %rdi,(%rax)
14012bf7c:	74 21                	je     0x14012bf9f
14012bf7e:	48 8b 51 50          	mov    0x50(%rcx),%rdx
14012bf82:	8b 02                	mov    (%rdx),%eax
14012bf84:	85 c0                	test   %eax,%eax
14012bf86:	7e 17                	jle    0x14012bf9f
14012bf88:	ff c8                	dec    %eax
14012bf8a:	89 02                	mov    %eax,(%rdx)
14012bf8c:	48 8b 49 38          	mov    0x38(%rcx),%rcx
14012bf90:	48 8b 11             	mov    (%rcx),%rdx
14012bf93:	48 8d 42 01          	lea    0x1(%rdx),%rax
14012bf97:	48 89 01             	mov    %rax,(%rcx)
14012bf9a:	0f b6 02             	movzbl (%rdx),%eax
14012bf9d:	eb 06                	jmp    0x14012bfa5
14012bf9f:	48 8b 01             	mov    (%rcx),%rax
14012bfa2:	ff 50 38             	call   *0x38(%rax)
14012bfa5:	83 f8 ff             	cmp    $0xffffffff,%eax
14012bfa8:	74 04                	je     0x14012bfae
14012bfaa:	32 c0                	xor    %al,%al
14012bfac:	eb 05                	jmp    0x14012bfb3
14012bfae:	48 89 3b             	mov    %rdi,(%rbx)
14012bfb1:	b0 01                	mov    $0x1,%al
14012bfb3:	49 8b d4             	mov    %r12,%rdx
14012bfb6:	88 43 08             	mov    %al,0x8(%rbx)
14012bfb9:	48 8b cb             	mov    %rbx,%rcx
14012bfbc:	e8 af 6e fb ff       	call   0x1400e2e70
14012bfc1:	84 c0                	test   %al,%al
14012bfc3:	0f 84 48 ff ff ff    	je     0x14012bf11
14012bfc9:	85 f6                	test   %esi,%esi
14012bfcb:	7e 07                	jle    0x14012bfd4
14012bfcd:	41 c6 06 30          	movb   $0x30,(%r14)
14012bfd1:	49 ff c6             	inc    %r14
14012bfd4:	49 8b d4             	mov    %r12,%rdx
14012bfd7:	48 8b cb             	mov    %rbx,%rcx
14012bfda:	e8 91 6e fb ff       	call   0x1400e2e70
14012bfdf:	84 c0                	test   %al,%al
14012bfe1:	0f 85 d2 00 00 00    	jne    0x14012c0b9
14012bfe7:	40 38 7b 08          	cmp    %dil,0x8(%rbx)
14012bfeb:	75 38                	jne    0x14012c025
14012bfed:	48 8b 0b             	mov    (%rbx),%rcx
14012bff0:	48 85 c9             	test   %rcx,%rcx
14012bff3:	74 29                	je     0x14012c01e
14012bff5:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012bff9:	48 8b 10             	mov    (%rax),%rdx
14012bffc:	48 85 d2             	test   %rdx,%rdx
14012bfff:	74 0d                	je     0x14012c00e
14012c001:	48 8b 41 50          	mov    0x50(%rcx),%rax
14012c005:	39 38                	cmp    %edi,(%rax)
14012c007:	7e 05                	jle    0x14012c00e
14012c009:	0f b6 02             	movzbl (%rdx),%eax
14012c00c:	eb 06                	jmp    0x14012c014
14012c00e:	48 8b 01             	mov    (%rcx),%rax
14012c011:	ff 50 30             	call   *0x30(%rax)
14012c014:	83 f8 ff             	cmp    $0xffffffff,%eax
14012c017:	74 05                	je     0x14012c01e
14012c019:	88 43 09             	mov    %al,0x9(%rbx)
14012c01c:	eb 03                	jmp    0x14012c021
14012c01e:	48 89 3b             	mov    %rdi,(%rbx)
14012c021:	c6 43 08 01          	movb   $0x1,0x8(%rbx)
14012c025:	49 8b 07             	mov    (%r15),%rax
14012c028:	45 33 c0             	xor    %r8d,%r8d
14012c02b:	0f b6 53 09          	movzbl 0x9(%rbx),%edx
14012c02f:	49 8b cf             	mov    %r15,%rcx
14012c032:	ff 50 50             	call   *0x50(%rax)
14012c035:	8d 48 d0             	lea    -0x30(%rax),%ecx
14012c038:	80 f9 09             	cmp    $0x9,%cl
14012c03b:	0f 87 78 00 00 00    	ja     0x14012c0b9
14012c041:	3b f5                	cmp    %ebp,%esi
14012c043:	7d 74                	jge    0x14012c0b9
14012c045:	41 88 06             	mov    %al,(%r14)
14012c048:	48 8d 4c 24 57       	lea    0x57(%rsp),%rcx
14012c04d:	4c 3b f1             	cmp    %rcx,%r14
14012c050:	49 8d 46 01          	lea    0x1(%r14),%rax
14012c054:	48 8b 0b             	mov    (%rbx),%rcx
14012c057:	49 0f 43 c6          	cmovae %r14,%rax
14012c05b:	ff c6                	inc    %esi
14012c05d:	4c 8b f0             	mov    %rax,%r14
14012c060:	48 85 c9             	test   %rcx,%rcx
14012c063:	74 39                	je     0x14012c09e
14012c065:	48 8b 41 38          	mov    0x38(%rcx),%rax
14012c069:	48 39 38             	cmp    %rdi,(%rax)
14012c06c:	74 21                	je     0x14012c08f
14012c06e:	48 8b 51 50          	mov    0x50(%rcx),%rdx
14012c072:	8b 02                	mov    (%rdx),%eax
14012c074:	85 c0                	test   %eax,%eax
14012c076:	7e 17                	jle    0x14012c08f
14012c078:	ff c8                	dec    %eax
14012c07a:	89 02                	mov    %eax,(%rdx)
14012c07c:	48 8b 49 38          	mov    0x38(%rcx),%rcx
14012c080:	48 8b 11             	mov    (%rcx),%rdx
14012c083:	48 8d 42 01          	lea    0x1(%rdx),%rax
14012c087:	48 89 01             	mov    %rax,(%rcx)
14012c08a:	0f b6 02             	movzbl (%rdx),%eax
14012c08d:	eb 06                	jmp    0x14012c095
14012c08f:	48 8b 01             	mov    (%rcx),%rax
14012c092:	ff 50 38             	call   *0x38(%rax)
14012c095:	83 f8 ff             	cmp    $0xffffffff,%eax
14012c098:	74 04                	je     0x14012c09e
14012c09a:	32 c0                	xor    %al,%al
14012c09c:	eb 05                	jmp    0x14012c0a3
14012c09e:	48 89 3b             	mov    %rdi,(%rbx)
14012c0a1:	b0 01                	mov    $0x1,%al
14012c0a3:	49 8b d4             	mov    %r12,%rdx
14012c0a6:	88 43 08             	mov    %al,0x8(%rbx)
14012c0a9:	48 8b cb             	mov    %rbx,%rcx
14012c0ac:	e8 bf 6d fb ff       	call   0x1400e2e70
14012c0b1:	84 c0                	test   %al,%al
14012c0b3:	0f 84 2e ff ff ff    	je     0x14012bfe7
14012c0b9:	85 f6                	test   %esi,%esi
14012c0bb:	89 7c 24 20          	mov    %edi,0x20(%rsp)
14012c0bf:	48 8d 44 24 38       	lea    0x38(%rsp),%rax