18004b8a2:	84 d2                	test   %dl,%dl
18004b8a4:	74 20                	je     0x18004b8c6
18004b8a6:	48 8b 45 70          	mov    0x70(%rbp),%rax
18004b8aa:	49 89 43 88          	mov    %rax,-0x78(%r11)
18004b8ae:	8b 45 68             	mov    0x68(%rbp),%eax
18004b8b1:	89 44 24 28          	mov    %eax,0x28(%rsp)
18004b8b5:	8b 45 60             	mov    0x60(%rbp),%eax
18004b8b8:	89 44 24 20          	mov    %eax,0x20(%rsp)
18004b8bc:	e8 ab 03 00 00       	call   0x18004bc6c
18004b8c1:	e9 8b 03 00 00       	jmp    0x18004bc51
18004b8c6:	4c 8b 01             	mov    (%rcx),%r8
18004b8c9:	45 33 e4             	xor    %r12d,%r12d
18004b8cc:	4d 85 c0             	test   %r8,%r8
18004b8cf:	0f 84 64 03 00 00    	je     0x18004bc39
18004b8d5:	8b 49 54             	mov    0x54(%rcx),%ecx
18004b8d8:	44 8b 75 60          	mov    0x60(%rbp),%r14d
18004b8dc:	49 8d 46 ff          	lea    -0x1(%r14),%rax
18004b8e0:	49 03 c5             	add    %r13,%rax
18004b8e3:	48 99                	cqto
18004b8e5:	48 f7 f9             	idiv   %rcx
18004b8e8:	4c 8b c8             	mov    %rax,%r9
18004b8eb:	49 8b c5             	mov    %r13,%rax
18004b8ee:	48 99                	cqto
18004b8f0:	48 f7 f9             	idiv   %rcx
18004b8f3:	41 3b c1             	cmp    %r9d,%eax
18004b8f6:	0f 87 3d 03 00 00    	ja     0x18004bc39
18004b8fc:	44 3b 4f 58          	cmp    0x58(%rdi),%r9d
18004b900:	0f 83 33 03 00 00    	jae    0x18004bc39
18004b906:	33 c9                	xor    %ecx,%ecx
18004b908:	49 8b 00             	mov    (%r8),%rax
18004b90b:	ff c1                	inc    %ecx
18004b90d:	4c 8b c0             	mov    %rax,%r8
18004b910:	48 85 c0             	test   %rax,%rax
18004b913:	75 f3                	jne    0x18004b908
18004b915:	48 8b 47 78          	mov    0x78(%rdi),%rax
18004b919:	c1 e1 04             	shl    $0x4,%ecx
18004b91c:	8b d9                	mov    %ecx,%ebx
18004b91e:	48 85 c0             	test   %rax,%rax
18004b921:	75 1a                	jne    0x18004b93d
18004b923:	8b cb                	mov    %ebx,%ecx
18004b925:	e8 26 e5 04 00       	call   0x180099e50
18004b92a:	48 89 47 78          	mov    %rax,0x78(%rdi)
18004b92e:	48 85 c0             	test   %rax,%rax
18004b931:	75 0a                	jne    0x18004b93d
18004b933:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
18004b938:	e9 01 03 00 00       	jmp    0x18004bc3e
18004b93d:	4c 8b c3             	mov    %rbx,%r8
18004b940:	33 d2                	xor    %edx,%edx
18004b942:	48 8b c8             	mov    %rax,%rcx
18004b945:	e8 36 a3 0e 00       	call   0x180135c80
18004b94a:	4c 8b 7f 78          	mov    0x78(%rdi),%r15
18004b94e:	48 8b cf             	mov    %rdi,%rcx
18004b951:	48 89 4d d0          	mov    %rcx,-0x30(%rbp)
18004b955:	48 8b 75 f8          	mov    -0x8(%rbp),%rsi
18004b959:	45 85 f6             	test   %r14d,%r14d
18004b95c:	75 1a                	jne    0x18004b978
18004b95e:	4c 3b 79 78          	cmp    0x78(%rcx),%r15
18004b962:	0f 86 ba 02 00 00    	jbe    0x18004bc22
18004b968:	45 85 f6             	test   %r14d,%r14d
18004b96b:	75 0b                	jne    0x18004b978
18004b96d:	49 8b 7f f8          	mov    -0x8(%r15),%rdi
18004b971:	49 83 ef 10          	sub    $0x10,%r15
18004b975:	45 8b 37             	mov    (%r15),%r14d
18004b978:	44 8b 4f 54          	mov    0x54(%rdi),%r9d
18004b97c:	4c 8b 57 48          	mov    0x48(%rdi),%r10
18004b980:	41 8b dc             	mov    %r12d,%ebx
18004b983:	49 03 dd             	add    %r13,%rbx
18004b986:	48 8b c3             	mov    %rbx,%rax
18004b989:	48 89 5d d8          	mov    %rbx,-0x28(%rbp)
18004b98d:	48 99                	cqto
18004b98f:	49 f7 f9             	idiv   %r9
18004b992:	4c 8b c2             	mov    %rdx,%r8
18004b995:	48 89 55 e0          	mov    %rdx,-0x20(%rbp)
18004b999:	48 8b c8             	mov    %rax,%rcx
18004b99c:	33 d2                	xor    %edx,%edx
18004b99e:	41 8b c0             	mov    %r8d,%eax
18004b9a1:	f7 b7 80 00 00 00    	divl   0x80(%rdi)
18004b9a7:	44 8b e8             	mov    %eax,%r13d
18004b9aa:	8b c1                	mov    %ecx,%eax
18004b9ac:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
18004b9b0:	41 83 3c 82 ff       	cmpl   $0xffffffff,(%r10,%rax,4)
18004b9b5:	75 36                	jne    0x18004b9ed
18004b9b7:	44 8b 47 5c          	mov    0x5c(%rdi),%r8d
18004b9bb:	45 32 db             	xor    %r11b,%r11b
18004b9be:	41 8b c6             	mov    %r14d,%eax
18004b9c1:	45 2b c5             	sub    %r13d,%r8d
18004b9c4:	48 ff c8             	dec    %rax
18004b9c7:	48 03 c3             	add    %rbx,%rax
18004b9ca:	48 99                	cqto
18004b9cc:	49 f7 f9             	idiv   %r9
18004b9cf:	8d 51 01             	lea    0x1(%rcx),%edx
18004b9d2:	3b d0                	cmp    %eax,%edx
18004b9d4:	0f 87 22 01 00 00    	ja     0x18004bafc
18004b9da:	41 83 3c 92 ff       	cmpl   $0xffffffff,(%r10,%rdx,4)
18004b9df:	0f 85 17 01 00 00    	jne    0x18004bafc
18004b9e5:	44 03 47 5c          	add    0x5c(%rdi),%r8d
18004b9e9:	ff c2                	inc    %edx
18004b9eb:	eb e5                	jmp    0x18004b9d2
18004b9ed:	8b d1                	mov    %ecx,%edx
18004b9ef:	4c 8d 45 f0          	lea    -0x10(%rbp),%r8
18004b9f3:	48 8b cf             	mov    %rdi,%rcx
18004b9f6:	e8 59 05 00 00       	call   0x18004bf54
18004b9fb:	48 8b 75 f8          	mov    -0x8(%rbp),%rsi
18004b9ff:	8b d8                	mov    %eax,%ebx
18004ba01:	85 c0                	test   %eax,%eax
18004ba03:	0f 88 39 02 00 00    	js     0x18004bc42
18004ba09:	44 8b 55 f0          	mov    -0x10(%rbp),%r10d
18004ba0d:	48 8d 1d ec 45 fb ff 	lea    -0x4ba14(%rip),%rbx        # 0x180000000
18004ba14:	49 8b cd             	mov    %r13,%rcx
18004ba17:	45 8d 4d 01          	lea    0x1(%r13),%r9d
18004ba1b:	83 e1 07             	and    $0x7,%ecx
18004ba1e:	49 8b c5             	mov    %r13,%rax
18004ba21:	48 c1 e8 03          	shr    $0x3,%rax
18004ba25:	8a 04 30             	mov    (%rax,%rsi,1),%al
18004ba28:	22 84 19 b0 ef 14 00 	and    0x14efb0(%rcx,%rbx,1),%al
18004ba2f:	41 0f 95 c3          	setne  %r11b
18004ba33:	41 83 c8 ff          	or     $0xffffffff,%r8d
18004ba37:	84 c0                	test   %al,%al
18004ba39:	75 56                	jne    0x18004ba91
18004ba3b:	45 3b ca             	cmp    %r10d,%r9d
18004ba3e:	0f 84 a9 00 00 00    	je     0x18004baed
18004ba44:	41 8b c9             	mov    %r9d,%ecx
18004ba47:	83 e1 07             	and    $0x7,%ecx
18004ba4a:	41 8b c1             	mov    %r9d,%eax
18004ba4d:	48 c1 e8 03          	shr    $0x3,%rax
18004ba51:	0f b6 14 30          	movzbl (%rax,%rsi,1),%edx
18004ba55:	0f b6 84 19 a0 ef 14 	movzbl 0x14efa0(%rcx,%rbx,1),%eax
18004ba5c:	00
18004ba5d:	48 23 d0             	and    %rax,%rdx
18004ba60:	0f b6 84 1a 90 ed 14 	movzbl 0x14ed90(%rdx,%rbx,1),%eax
18004ba67:	00
18004ba68:	ba ff 00 00 00       	mov    $0xff,%edx
18004ba6d:	eb 13                	jmp    0x18004ba82
18004ba6f:	41 8b c1             	mov    %r9d,%eax
18004ba72:	48 c1 e8 03          	shr    $0x3,%rax
18004ba76:	0f b6 0c 30          	movzbl (%rax,%rsi,1),%ecx
18004ba7a:	0f b6 84 19 90 ed 14 	movzbl 0x14ed90(%rcx,%rbx,1),%eax
18004ba81:	00
18004ba82:	3b c2                	cmp    %edx,%eax
18004ba84:	75 5d                	jne    0x18004bae3
18004ba86:	41 83 c1 08          	add    $0x8,%r9d
18004ba8a:	45 3b ca             	cmp    %r10d,%r9d
18004ba8d:	72 e0                	jb     0x18004ba6f
18004ba8f:	eb 5c                	jmp    0x18004baed
18004ba91:	45 3b ca             	cmp    %r10d,%r9d
18004ba94:	74 57                	je     0x18004baed
18004ba96:	41 8b c9             	mov    %r9d,%ecx
18004ba99:	83 e1 07             	and    $0x7,%ecx
18004ba9c:	41 8b c1             	mov    %r9d,%eax
18004ba9f:	48 c1 e8 03          	shr    $0x3,%rax
18004baa3:	0f b6 14 30          	movzbl (%rax,%rsi,1),%edx
18004baa7:	0f b6 84 19 90 ee 14 	movzbl 0x14ee90(%rcx,%rbx,1),%eax
18004baae:	00
18004baaf:	48 0b d0             	or     %rax,%rdx
18004bab2:	0f b6 84 1a a0 ee 14 	movzbl 0x14eea0(%rdx,%rbx,1),%eax
18004bab9:	00
18004baba:	ba ff 00 00 00       	mov    $0xff,%edx
18004babf:	eb 13                	jmp    0x18004bad4
18004bac1:	41 8b c1             	mov    %r9d,%eax
18004bac4:	48 c1 e8 03          	shr    $0x3,%rax
18004bac8:	0f b6 0c 30          	movzbl (%rax,%rsi,1),%ecx
18004bacc:	0f b6 84 19 a0 ee 14 	movzbl 0x14eea0(%rcx,%rbx,1),%eax
18004bad3:	00
18004bad4:	3b c2                	cmp    %edx,%eax
18004bad6:	75 0b                	jne    0x18004bae3
18004bad8:	41 83 c1 08          	add    $0x8,%r9d
18004badc:	45 3b ca             	cmp    %r10d,%r9d
18004badf:	72 e0                	jb     0x18004bac1
18004bae1:	eb 0a                	jmp    0x18004baed
18004bae3:	45 8b c1             	mov    %r9d,%r8d
18004bae6:	41 83 e0 f8          	and    $0xfffffff8,%r8d
18004baea:	44 03 c0             	add    %eax,%r8d
18004baed:	48 8b 5d d8          	mov    -0x28(%rbp),%rbx
18004baf1:	41 83 f8 ff          	cmp    $0xffffffff,%r8d
18004baf5:	45 0f 44 c2          	cmove  %r10d,%r8d
18004baf9:	45 2b c5             	sub    %r13d,%r8d
18004bafc:	44 8b 8f 80 00 00 00 	mov    0x80(%rdi),%r9d
18004bb03:	33 d2                	xor    %edx,%edx
18004bb05:	4c 8b 55 e0          	mov    -0x20(%rbp),%r10
18004bb09:	41 8b c9             	mov    %r9d,%ecx
18004bb0c:	41 0f af c8          	imul   %r8d,%ecx
18004bb10:	41 8b c2             	mov    %r10d,%eax
18004bb13:	41 f7 f1             	div    %r9d
18004bb16:	2b ca                	sub    %edx,%ecx
18004bb18:	41 8b d6             	mov    %r14d,%edx
18004bb1b:	41 3b ce             	cmp    %r14d,%ecx
18004bb1e:	0f 46 d1             	cmovbe %ecx,%edx
18004bb21:	45 84 db             	test   %r11b,%r11b
18004bb24:	74 69                	je     0x18004bb8f
18004bb26:	48 8b 47 48          	mov    0x48(%rdi),%rax
18004bb2a:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
18004bb2e:	44 8b 04 88          	mov    (%rax,%rcx,4),%r8d
18004bb32:	8b 47 60             	mov    0x60(%rdi),%eax
18004bb35:	8b 4f 54             	mov    0x54(%rdi),%ecx
18004bb38:	4d 0f af c1          	imul   %r9,%r8
18004bb3c:	4c 03 c0             	add    %rax,%r8
18004bb3f:	41 8b c2             	mov    %r10d,%eax
18004bb42:	49 03 c8             	add    %r8,%rcx
18004bb45:	4c 03 c0             	add    %rax,%r8
18004bb48:	8b c2                	mov    %edx,%eax
18004bb4a:	49 03 c0             	add    %r8,%rax
18004bb4d:	4c 3b c0             	cmp    %rax,%r8
18004bb50:	0f 83 dc 00 00 00    	jae    0x18004bc32
18004bb56:	4c 3b c1             	cmp    %rcx,%r8
18004bb59:	0f 83 d3 00 00 00    	jae    0x18004bc32
18004bb5f:	48 3b c1             	cmp    %rcx,%rax
18004bb62:	45 8b cc             	mov    %r12d,%r9d
18004bb65:	0f 46 c8             	cmovbe %eax,%ecx
18004bb68:	4c 03 4d 58          	add    0x58(%rbp),%r9
18004bb6c:	48 8d 45 48          	lea    0x48(%rbp),%rax
18004bb70:	41 2b c8             	sub    %r8d,%ecx
18004bb73:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
18004bb78:	33 d2                	xor    %edx,%edx
18004bb7a:	8b 45 68             	mov    0x68(%rbp),%eax
18004bb7d:	89 44 24 28          	mov    %eax,0x28(%rsp)
18004bb81:	89 4c 24 20          	mov    %ecx,0x20(%rsp)
18004bb85:	48 8b cf             	mov    %rdi,%rcx
18004bb88:	e8 8f 05 00 00       	call   0x18004c11c
18004bb8d:	eb 31                	jmp    0x18004bbc0
18004bb8f:	48 8b 07             	mov    (%rdi),%rax
18004bb92:	83 78 64 04          	cmpl   $0x4,0x64(%rax)
18004bb96:	74 2f                	je     0x18004bbc7
18004bb98:	48 8d 4d 48          	lea    0x48(%rbp),%rcx
18004bb9c:	45 8b cc             	mov    %r12d,%r9d
18004bb9f:	4c 03 4d 58          	add    0x58(%rbp),%r9
18004bba3:	4c 8b c3             	mov    %rbx,%r8
18004bba6:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
18004bbab:	8b 4d 68             	mov    0x68(%rbp),%ecx
18004bbae:	89 4c 24 28          	mov    %ecx,0x28(%rsp)
18004bbb2:	48 8b c8             	mov    %rax,%rcx
18004bbb5:	89 54 24 20          	mov    %edx,0x20(%rsp)
18004bbb9:	33 d2                	xor    %edx,%edx
18004bbbb:	e8 38 02 00 00       	call   0x18004bdf8
18004bbc0:	8b d8                	mov    %eax,%ebx
18004bbc2:	8b 45 48             	mov    0x48(%rbp),%eax
18004bbc5:	eb 28                	jmp    0x18004bbef
18004bbc7:	41 3b d6             	cmp    %r14d,%edx
18004bbca:	73 16                	jae    0x18004bbe2
18004bbcc:	41 83 67 04 00       	andl   $0x0,0x4(%r15)
18004bbd1:	44 2b f2             	sub    %edx,%r14d
18004bbd4:	45 89 37             	mov    %r14d,(%r15)
18004bbd7:	49 89 7f 08          	mov    %rdi,0x8(%r15)
18004bbdb:	49 83 c7 10          	add    $0x10,%r15
18004bbdf:	48 8b 07             	mov    (%rdi),%rax
18004bbe2:	48 8b f8             	mov    %rax,%rdi
18004bbe5:	44 8b f2             	mov    %edx,%r14d
18004bbe8:	33 c0                	xor    %eax,%eax
18004bbea:	89 45 48             	mov    %eax,0x48(%rbp)
18004bbed:	33 db                	xor    %ebx,%ebx
18004bbef:	85 db                	test   %ebx,%ebx
18004bbf1:	78 4f                	js     0x18004bc42
18004bbf3:	4c 8b 6d 50          	mov    0x50(%rbp),%r13
18004bbf7:	44 03 e0             	add    %eax,%r12d
18004bbfa:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
18004bbfe:	44 2b f0             	sub    %eax,%r14d
18004bc01:	48 85 f6             	test   %rsi,%rsi
18004bc04:	0f 84 4f fd ff ff    	je     0x18004b959
18004bc0a:	48 8b ce             	mov    %rsi,%rcx
18004bc0d:	e8 ea e3 04 00       	call   0x180099ffc
18004bc12:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
18004bc16:	0f 57 c0             	xorps  %xmm0,%xmm0
18004bc19:	0f 11 45 f0          	movups %xmm0,-0x10(%rbp)
18004bc1d:	e9 33 fd ff ff       	jmp    0x18004b955
18004bc22:	48 8b 45 70          	mov    0x70(%rbp),%rax
18004bc26:	48 85 c0             	test   %rax,%rax
18004bc29:	74 03                	je     0x18004bc2e
18004bc2b:	44 89 20             	mov    %r12d,(%rax)
18004bc2e:	33 db                	xor    %ebx,%ebx
18004bc30:	eb 10                	jmp    0x18004bc42
18004bc32:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
18004bc37:	eb 09                	jmp    0x18004bc42
18004bc39:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
18004bc3e:	48 8b 75 f8          	mov    -0x8(%rbp),%rsi
18004bc42:	48 85 f6             	test   %rsi,%rsi
18004bc45:	74 08                	je     0x18004bc4f
18004bc47:	48 8b ce             	mov    %rsi,%rcx
18004bc4a:	e8 ad e3 04 00       	call   0x180099ffc
18004bc4f:	8b c3                	mov    %ebx,%eax
18004bc51:	48 8b 9c 24 b0 00 00 	mov    0xb0(%rsp),%rbx
18004bc58:	00
18004bc59:	48 83 c4 70          	add    $0x70,%rsp
18004bc5d:	41 5f                	pop    %r15
18004bc5f:	41 5e                	pop    %r14
18004bc61:	41 5d                	pop    %r13
18004bc63:	41 5c                	pop    %r12
18004bc65:	5f                   	pop    %rdi
18004bc66:	5e                   	pop    %rsi
18004bc67:	5d                   	pop    %rbp
18004bc68:	c3                   	ret
18004bc69:	cc                   	int3
18004bc6a:	cc                   	int3
18004bc6b:	cc                   	int3
18004bc6c:	48 8b c4             	mov    %rsp,%rax
18004bc6f:	48 89 58 10          	mov    %rbx,0x10(%rax)
18004bc73:	48 89 68 18          	mov    %rbp,0x18(%rax)
18004bc77:	48 89 70 20          	mov    %rsi,0x20(%rax)
18004bc7b:	57                   	push   %rdi
18004bc7c:	41 54                	push   %r12
18004bc7e:	41 55                	push   %r13
18004bc80:	41 56                	push   %r14
18004bc82:	41 57                	push   %r15
18004bc84:	48 83 ec 40          	sub    $0x40,%rsp
18004bc88:	83 60 08 00          	andl   $0x0,0x8(%rax)
18004bc8c:	44 8a fa             	mov    %dl,%r15b
18004bc8f:	44 8b 51 54          	mov    0x54(%rcx),%r10d
18004bc93:	48 8b f1             	mov    %rcx,%rsi
18004bc96:	8b bc 24 90 00 00 00 	mov    0x90(%rsp),%edi
18004bc9d:	4d 8b f1             	mov    %r9,%r14
18004bca0:	49 8b e8             	mov    %r8,%rbp
18004bca3:	8b df                	mov    %edi,%ebx
18004bca5:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
18004bca9:	49 03 c0             	add    %r8,%rax
18004bcac:	48 99                	cqto
18004bcae:	49 f7 fa             	idiv   %r10
18004bcb1:	48 8b c8             	mov    %rax,%rcx
18004bcb4:	49 8b c0             	mov    %r8,%rax
18004bcb7:	48 99                	cqto
18004bcb9:	49 f7 fa             	idiv   %r10
18004bcbc:	3b c1                	cmp    %ecx,%eax
18004bcbe:	0f 87 fa 00 00 00    	ja     0x18004bdbe
18004bcc4:	3b 4e 58             	cmp    0x58(%rsi),%ecx
18004bcc7:	0f 83 f1 00 00 00    	jae    0x18004bdbe
18004bccd:	4c 8b 66 48          	mov    0x48(%rsi),%r12
18004bcd1:	33 c9                	xor    %ecx,%ecx
18004bcd3:	85 ff                	test   %edi,%edi
18004bcd5:	0f 84 e8 00 00 00    	je     0x18004bdc3
18004bcdb:	44 8b ac 24 98 00 00 	mov    0x98(%rsp),%r13d
18004bce2:	00
18004bce3:	44 8b 46 54          	mov    0x54(%rsi),%r8d
18004bce7:	48 8b c5             	mov    %rbp,%rax
18004bcea:	48 99                	cqto
18004bcec:	49 f7 f8             	idiv   %r8
18004bcef:	8b c8                	mov    %eax,%ecx
18004bcf1:	4c 8b ca             	mov    %rdx,%r9
18004bcf4:	41 8b 04 8c          	mov    (%r12,%rcx,4),%eax
18004bcf8:	83 f8 ff             	cmp    $0xffffffff,%eax
18004bcfb:	75 2d                	jne    0x18004bd2a
18004bcfd:	45 84 ff             	test   %r15b,%r15b
18004bd00:	0f 85 b1 00 00 00    	jne    0x18004bdb7
18004bd06:	89 5c 24 70          	mov    %ebx,0x70(%rsp)
18004bd0a:	8b c3                	mov    %ebx,%eax
18004bd0c:	41 3b d8             	cmp    %r8d,%ebx
18004bd0f:	76 08                	jbe    0x18004bd19
18004bd11:	44 89 44 24 70       	mov    %r8d,0x70(%rsp)
18004bd16:	41 8b c0             	mov    %r8d,%eax
18004bd19:	44 8b c0             	mov    %eax,%r8d
18004bd1c:	33 d2                	xor    %edx,%edx
18004bd1e:	49 8b ce             	mov    %r14,%rcx
18004bd21:	e8 5a 9f 0e 00       	call   0x180135c80
18004bd26:	33 c9                	xor    %ecx,%ecx