18010bcf8:	44 8b df             	mov    %edi,%r11d
18010bcfb:	44 2b d8             	sub    %eax,%r11d
18010bcfe:	41 ff c3             	inc    %r11d
18010bd01:	41 83 fb 01          	cmp    $0x1,%r11d
18010bd05:	75 2d                	jne    0x18010bd34
18010bd07:	41 8d 48 01          	lea    0x1(%r8),%ecx
18010bd0b:	48 6b c1 11          	imul   $0x11,%rcx,%rax
18010bd0f:	42 8b 54 30 04       	mov    0x4(%rax,%r14,1),%edx
18010bd14:	8b c2                	mov    %edx,%eax
18010bd16:	c1 f8 06             	sar    $0x6,%eax
18010bd19:	8b c8                	mov    %eax,%ecx
18010bd1b:	0b cb                	or     %ebx,%ecx
18010bd1d:	85 d2                	test   %edx,%edx
18010bd1f:	0f 49 c8             	cmovns %eax,%ecx
18010bd22:	f6 c2 20             	test   $0x20,%dl
18010bd25:	44 8d 59 01          	lea    0x1(%rcx),%r11d
18010bd29:	44 0f 44 d9          	cmove  %ecx,%r11d
18010bd2d:	41 8b fb             	mov    %r11d,%edi
18010bd30:	44 89 5d 58          	mov    %r11d,0x58(%rbp)
18010bd34:	41 8d 48 01          	lea    0x1(%r8),%ecx
18010bd38:	41 8b c0             	mov    %r8d,%eax
18010bd3b:	48 6b d1 11          	imul   $0x11,%rcx,%rdx
18010bd3f:	48 6b c8 11          	imul   $0x11,%rax,%rcx
18010bd43:	46 8b 44 32 08       	mov    0x8(%rdx,%r14,1),%r8d
18010bd48:	46 8b 0c 31          	mov    (%rcx,%r14,1),%r9d
18010bd4c:	45 2b c1             	sub    %r9d,%r8d
18010bd4f:	46 8b 54 31 08       	mov    0x8(%rcx,%r14,1),%r10d
18010bd54:	45 2b c2             	sub    %r10d,%r8d
18010bd57:	46 03 04 32          	add    (%rdx,%r14,1),%r8d
18010bd5b:	ba 01 00 00 00       	mov    $0x1,%edx
18010bd60:	41 8b c0             	mov    %r8d,%eax
18010bd63:	c1 f8 06             	sar    $0x6,%eax
18010bd66:	8b c8                	mov    %eax,%ecx
18010bd68:	0b cb                	or     %ebx,%ecx
18010bd6a:	45 85 c0             	test   %r8d,%r8d
18010bd6d:	0f 49 c8             	cmovns %eax,%ecx
18010bd70:	41 f6 c0 20          	test   $0x20,%r8b
18010bd74:	41 8b c3             	mov    %r11d,%eax
18010bd77:	44 8d 69 01          	lea    0x1(%rcx),%r13d
18010bd7b:	44 0f 44 e9          	cmove  %ecx,%r13d
18010bd7f:	c1 e0 02             	shl    $0x2,%eax
18010bd82:	41 c1 e5 02          	shl    $0x2,%r13d
18010bd86:	43 8d 0c 11          	lea    (%r9,%r10,1),%ecx
18010bd8a:	89 4d e0             	mov    %ecx,-0x20(%rbp)
18010bd8d:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
18010bd91:	44 89 6d 60          	mov    %r13d,0x60(%rbp)
18010bd95:	89 45 d0             	mov    %eax,-0x30(%rbp)
18010bd98:	89 45 f4             	mov    %eax,-0xc(%rbp)
18010bd9b:	44 89 6d f0          	mov    %r13d,-0x10(%rbp)
18010bd9f:	44 89 6d f8          	mov    %r13d,-0x8(%rbp)
18010bda3:	45 84 ff             	test   %r15b,%r15b
18010bda6:	75 14                	jne    0x18010bdbc
18010bda8:	4d 8b cc             	mov    %r12,%r9
18010bdab:	4c 8d 45 40          	lea    0x40(%rbp),%r8
18010bdaf:	e8 d0 08 00 00       	call   0x18010c684
18010bdb4:	4c 8b 75 40          	mov    0x40(%rbp),%r14
18010bdb8:	8b d8                	mov    %eax,%ebx
18010bdba:	eb 1f                	jmp    0x18010bddb
18010bdbc:	4c 8d 35 9d 85 08 00 	lea    0x8859d(%rip),%r14        # 0x180194360
18010bdc3:	41 b9 44 0c 00 00    	mov    $0xc44,%r9d
18010bdc9:	4d 8b c6             	mov    %r14,%r8
18010bdcc:	e8 17 bd ff ff       	call   0x180107ae8
18010bdd1:	8b d8                	mov    %eax,%ebx
18010bdd3:	85 c0                	test   %eax,%eax
18010bdd5:	0f 88 66 02 00 00    	js     0x18010c041
18010bddb:	85 db                	test   %ebx,%ebx
18010bddd:	0f 88 4a 02 00 00    	js     0x18010c02d
18010bde3:	45 8b 46 0c          	mov    0xc(%r14),%r8d
18010bde7:	33 d2                	xor    %edx,%edx
18010bde9:	49 8b 4e 18          	mov    0x18(%r14),%rcx
18010bded:	e8 8e 9e 02 00       	call   0x180135c80
18010bdf2:	48 83 7d e8 00       	cmpq   $0x0,-0x18(%rbp)
18010bdf7:	75 14                	jne    0x18010be0d
18010bdf9:	48 8b 45 68          	mov    0x68(%rbp),%rax
18010bdfd:	4c 89 30             	mov    %r14,(%rax)
18010be00:	48 8b 45 70          	mov    0x70(%rbp),%rax
18010be04:	89 38                	mov    %edi,(%rax)
18010be06:	33 c0                	xor    %eax,%eax
18010be08:	e9 4d 02 00 00       	jmp    0x18010c05a
18010be0d:	48 8d 05 9c 91 08 00 	lea    0x8919c(%rip),%rax        # 0x180194fb0
18010be14:	45 84 ff             	test   %r15b,%r15b
18010be17:	75 11                	jne    0x18010be2a
18010be19:	49 63 cd             	movslq %r13d,%rcx
18010be1c:	49 8b d4             	mov    %r12,%rdx
18010be1f:	48 c1 e1 02          	shl    $0x2,%rcx
18010be23:	e8 e8 07 00 00       	call   0x18010c610
18010be28:	eb 0a                	jmp    0x18010be34
18010be2a:	41 83 fd 68          	cmp    $0x68,%r13d
18010be2e:	0f 8f f4 01 00 00    	jg     0x18010c028
18010be34:	48 8b f0             	mov    %rax,%rsi
18010be37:	48 85 c0             	test   %rax,%rax
18010be3a:	0f 84 e8 01 00 00    	je     0x18010c028
18010be40:	83 65 50 00          	andl   $0x0,0x50(%rbp)
18010be44:	45 33 ff             	xor    %r15d,%r15d
18010be47:	4d 63 ed             	movslq %r13d,%r13
18010be4a:	44 89 7d 40          	mov    %r15d,0x40(%rbp)
18010be4e:	4c 89 6d f0          	mov    %r13,-0x10(%rbp)
18010be52:	44 39 7d d0          	cmp    %r15d,-0x30(%rbp)
18010be56:	0f 8e a6 01 00 00    	jle    0x18010c002
18010be5c:	44 8b 65 60          	mov    0x60(%rbp),%r12d
18010be60:	8b c7                	mov    %edi,%eax
18010be62:	8b 7d 50             	mov    0x50(%rbp),%edi
18010be65:	49 8b cd             	mov    %r13,%rcx
18010be68:	48 c1 e1 02          	shl    $0x2,%rcx
18010be6c:	c1 e0 06             	shl    $0x6,%eax
18010be6f:	89 45 d8             	mov    %eax,-0x28(%rbp)
18010be72:	4c 8b c1             	mov    %rcx,%r8
18010be75:	33 d2                	xor    %edx,%edx
18010be77:	48 8b ce             	mov    %rsi,%rcx
18010be7a:	e8 01 9e 02 00       	call   0x180135c80
18010be7f:	8b 4d d4             	mov    -0x2c(%rbp),%ecx
18010be82:	41 8b df             	mov    %r15d,%ebx
18010be85:	83 e3 03             	and    $0x3,%ebx
18010be88:	41 8b c7             	mov    %r15d,%eax
18010be8b:	f7 db                	neg    %ebx
18010be8d:	c1 e8 02             	shr    $0x2,%eax
18010be90:	c1 e3 04             	shl    $0x4,%ebx
18010be93:	c1 e0 06             	shl    $0x6,%eax
18010be96:	2b d8                	sub    %eax,%ebx
18010be98:	03 5d d8             	add    -0x28(%rbp),%ebx
18010be9b:	85 c9                	test   %ecx,%ecx
18010be9d:	0f 84 ec 00 00 00    	je     0x18010bf8f
18010bea3:	4c 8b 7d e8          	mov    -0x18(%rbp),%r15
18010bea7:	44 8b e1             	mov    %ecx,%r12d
18010beaa:	49 83 c7 18          	add    $0x18,%r15
18010beae:	4c 8d 4d 50          	lea    0x50(%rbp),%r9
18010beb2:	8b d3                	mov    %ebx,%edx
18010beb4:	4c 8d 45 dc          	lea    -0x24(%rbp),%r8
18010beb8:	49 8d 4f e8          	lea    -0x18(%r15),%rcx
18010bebc:	e8 b3 01 00 00       	call   0x18010c074
18010bec1:	44 8b 55 dc          	mov    -0x24(%rbp),%r10d
18010bec5:	41 81 fa ff ff ff 7f 	cmp    $0x7fffffff,%r10d
18010becc:	0f 84 a3 00 00 00    	je     0x18010bf75
18010bed2:	49 8b 47 f8          	mov    -0x8(%r15),%rax
18010bed6:	49 8b 4f e8          	mov    -0x18(%r15),%rcx
18010beda:	44 8b 48 04          	mov    0x4(%rax),%r9d
18010bede:	41 8b d1             	mov    %r9d,%edx
18010bee1:	2b 51 0c             	sub    0xc(%rcx),%edx
18010bee4:	2b 51 04             	sub    0x4(%rcx),%edx
18010bee7:	44 8b 40 0c          	mov    0xc(%rax),%r8d
18010beeb:	41 03 d0             	add    %r8d,%edx
18010beee:	75 16                	jne    0x18010bf06
18010bef0:	41 80 3f 01          	cmpb   $0x1,(%r15)
18010bef4:	74 24                	je     0x18010bf1a
18010bef6:	49 8b 47 f0          	mov    -0x10(%r15),%rax
18010befa:	41 8b d1             	mov    %r9d,%edx
18010befd:	2b 50 0c             	sub    0xc(%rax),%edx
18010bf00:	2b 50 04             	sub    0x4(%rax),%edx
18010bf03:	41 03 d0             	add    %r8d,%edx
18010bf06:	85 d2                	test   %edx,%edx
18010bf08:	7e 08                	jle    0x18010bf12
18010bf0a:	41 b8 01 00 00 00    	mov    $0x1,%r8d
18010bf10:	eb 0b                	jmp    0x18010bf1d
18010bf12:	79 06                	jns    0x18010bf1a
18010bf14:	41 83 c8 ff          	or     $0xffffffff,%r8d
18010bf18:	eb 03                	jmp    0x18010bf1d
18010bf1a:	45 33 c0             	xor    %r8d,%r8d
18010bf1d:	4c 8b 6d f0          	mov    -0x10(%rbp),%r13
18010bf21:	45 33 c9             	xor    %r9d,%r9d
18010bf24:	33 c9                	xor    %ecx,%ecx
18010bf26:	4d 85 ed             	test   %r13,%r13
18010bf29:	7e 4e                	jle    0x18010bf79
18010bf2b:	44 8b 5d e0          	mov    -0x20(%rbp),%r11d
18010bf2f:	41 8b c1             	mov    %r9d,%eax
18010bf32:	41 8b d1             	mov    %r9d,%edx
18010bf35:	c1 e0 04             	shl    $0x4,%eax
18010bf38:	83 e2 03             	and    $0x3,%edx
18010bf3b:	83 e0 c0             	and    $0xffffffc0,%eax
18010bf3e:	c1 e2 04             	shl    $0x4,%edx
18010bf41:	41 03 c3             	add    %r11d,%eax
18010bf44:	03 d0                	add    %eax,%edx
18010bf46:	41 80 3f 01          	cmpb   $0x1,(%r15)
18010bf4a:	75 05                	jne    0x18010bf51
18010bf4c:	41 3b d2             	cmp    %r10d,%edx
18010bf4f:	eb 11                	jmp    0x18010bf62
18010bf51:	81 7d 50 ff ff ff 7f 	cmpl   $0x7fffffff,0x50(%rbp)
18010bf58:	74 f2                	je     0x18010bf4c
18010bf5a:	41 3b d2             	cmp    %r10d,%edx
18010bf5d:	7c 09                	jl     0x18010bf68
18010bf5f:	3b 55 50             	cmp    0x50(%rbp),%edx
18010bf62:	7f 04                	jg     0x18010bf68
18010bf64:	44 01 04 8e          	add    %r8d,(%rsi,%rcx,4)
18010bf68:	41 ff c1             	inc    %r9d
18010bf6b:	48 ff c1             	inc    %rcx
18010bf6e:	49 3b cd             	cmp    %r13,%rcx
18010bf71:	7c bc                	jl     0x18010bf2f
18010bf73:	eb 04                	jmp    0x18010bf79
18010bf75:	4c 8b 6d f0          	mov    -0x10(%rbp),%r13
18010bf79:	49 83 c7 19          	add    $0x19,%r15
18010bf7d:	49 83 ec 01          	sub    $0x1,%r12
18010bf81:	0f 85 27 ff ff ff    	jne    0x18010beae
18010bf87:	44 8b 7d 40          	mov    0x40(%rbp),%r15d
18010bf8b:	44 8b 65 60          	mov    0x60(%rbp),%r12d
18010bf8f:	8b d7                	mov    %edi,%edx
18010bf91:	8b cf                	mov    %edi,%ecx
18010bf93:	48 c1 ea 03          	shr    $0x3,%rdx
18010bf97:	83 e1 07             	and    $0x7,%ecx
18010bf9a:	49 03 56 18          	add    0x18(%r14),%rdx
18010bf9e:	41 ba 80 00 00 00    	mov    $0x80,%r10d
18010bfa4:	45 8b c2             	mov    %r10d,%r8d
18010bfa7:	45 33 c9             	xor    %r9d,%r9d
18010bfaa:	41 d3 f8             	sar    %cl,%r8d
18010bfad:	4d 85 ed             	test   %r13,%r13
18010bfb0:	7e 2d                	jle    0x18010bfdf
18010bfb2:	42 83 3c 8e 00       	cmpl   $0x0,(%rsi,%r9,4)
18010bfb7:	74 03                	je     0x18010bfbc
18010bfb9:	44 08 02             	or     %r8b,(%rdx)
18010bfbc:	41 d0 e8             	shr    $1,%r8b
18010bfbf:	48 8d 42 01          	lea    0x1(%rdx),%rax
18010bfc3:	41 8a c8             	mov    %r8b,%cl
18010bfc6:	45 0f b6 c0          	movzbl %r8b,%r8d
18010bfca:	45 0f 44 c2          	cmove  %r10d,%r8d
18010bfce:	49 ff c1             	inc    %r9
18010bfd1:	84 c9                	test   %cl,%cl
18010bfd3:	48 0f 45 c2          	cmovne %rdx,%rax
18010bfd7:	48 8b d0             	mov    %rax,%rdx
18010bfda:	4d 3b cd             	cmp    %r13,%r9
18010bfdd:	7c d3                	jl     0x18010bfb2
18010bfdf:	41 ff c7             	inc    %r15d
18010bfe2:	4a 8d 0c ad 00 00 00 	lea    0x0(,%r13,4),%rcx
18010bfe9:	00
18010bfea:	41 03 fc             	add    %r12d,%edi
18010bfed:	44 89 7d 40          	mov    %r15d,0x40(%rbp)
18010bff1:	44 3b 7d d0          	cmp    -0x30(%rbp),%r15d
18010bff5:	0f 8c 77 fe ff ff    	jl     0x18010be72
18010bffb:	8b 7d 58             	mov    0x58(%rbp),%edi
18010bffe:	4c 8b 65 78          	mov    0x78(%rbp),%r12
18010c002:	48 8b 45 68          	mov    0x68(%rbp),%rax
18010c006:	33 db                	xor    %ebx,%ebx
18010c008:	4c 89 30             	mov    %r14,(%rax)
18010c00b:	48 8b 45 70          	mov    0x70(%rbp),%rax
18010c00f:	89 38                	mov    %edi,(%rax)
18010c011:	48 8d 05 98 8f 08 00 	lea    0x88f98(%rip),%rax        # 0x180194fb0
18010c018:	48 3b f0             	cmp    %rax,%rsi
18010c01b:	74 24                	je     0x18010c041
18010c01d:	49 39 1c 24          	cmp    %rbx,(%r12)
18010c021:	75 1e                	jne    0x18010c041
18010c023:	48 8b ce             	mov    %rsi,%rcx
18010c026:	eb 14                	jmp    0x18010c03c
18010c028:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
18010c02d:	4d 85 f6             	test   %r14,%r14
18010c030:	74 0f                	je     0x18010c041
18010c032:	49 83 3c 24 00       	cmpq   $0x0,(%r12)
18010c037:	75 08                	jne    0x18010c041
18010c039:	49 8b ce             	mov    %r14,%rcx
18010c03c:	e8 bb df f8 ff       	call   0x180099ffc
18010c041:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
18010c045:	48 85 c0             	test   %rax,%rax
18010c048:	74 0e                	je     0x18010c058
18010c04a:	8b 55 d4             	mov    -0x2c(%rbp),%edx
18010c04d:	4d 8b c4             	mov    %r12,%r8
18010c050:	48 8b c8             	mov    %rax,%rcx
18010c053:	e8 c4 e5 ff ff       	call   0x18010a61c
18010c058:	8b c3                	mov    %ebx,%eax
18010c05a:	48 8b 9c 24 a8 00 00 	mov    0xa8(%rsp),%rbx
18010c061:	00
18010c062:	48 83 c4 60          	add    $0x60,%rsp
18010c066:	41 5f                	pop    %r15
18010c068:	41 5e                	pop    %r14
18010c06a:	41 5d                	pop    %r13
18010c06c:	41 5c                	pop    %r12
18010c06e:	5f                   	pop    %rdi
18010c06f:	5e                   	pop    %rsi
18010c070:	5d                   	pop    %rbp
18010c071:	c3                   	ret
18010c072:	cc                   	int3
18010c073:	cc                   	int3
18010c074:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18010c079:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18010c07e:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
18010c083:	57                   	push   %rdi
18010c084:	41 54                	push   %r12
18010c086:	41 55                	push   %r13
18010c088:	41 56                	push   %r14
18010c08a:	41 57                	push   %r15
18010c08c:	48 83 ec 10          	sub    $0x10,%rsp
18010c090:	4c 8b 11             	mov    (%rcx),%r10
18010c093:	4d 8b d9             	mov    %r9,%r11
18010c096:	4c 8b 69 08          	mov    0x8(%rcx),%r13
18010c09a:	49 8b f8             	mov    %r8,%rdi
18010c09d:	4c 8b f9             	mov    %rcx,%r15
18010c0a0:	48 8b 49 10          	mov    0x10(%rcx),%rcx
18010c0a4:	41 8b 42 08          	mov    0x8(%r10),%eax
18010c0a8:	41 03 02             	add    (%r10),%eax
18010c0ab:	48 98                	cltq
18010c0ad:	48 8b e8             	mov    %rax,%rbp
18010c0b0:	48 89 04 24          	mov    %rax,(%rsp)
18010c0b4:	41 8b 42 0c          	mov    0xc(%r10),%eax
18010c0b8:	41 03 42 04          	add    0x4(%r10),%eax
18010c0bc:	4c 63 d0             	movslq %eax,%r10
18010c0bf:	41 8b 45 0c          	mov    0xc(%r13),%eax
18010c0c3:	4d 8b ca             	mov    %r10,%r9
18010c0c6:	41 03 45 04          	add    0x4(%r13),%eax
18010c0ca:	48 63 f0             	movslq %eax,%rsi
18010c0cd:	8b 41 08             	mov    0x8(%rcx),%eax
18010c0d0:	4c 8b f6             	mov    %rsi,%r14
18010c0d3:	03 01                	add    (%rcx),%eax
18010c0d5:	48 98                	cltq
18010c0d7:	48 8b d8             	mov    %rax,%rbx
18010c0da:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
18010c0df:	8b 41 0c             	mov    0xc(%rcx),%eax
18010c0e2:	03 41 04             	add    0x4(%rcx),%eax
18010c0e5:	4c 63 e0             	movslq %eax,%r12
18010c0e8:	48 63 c2             	movslq %edx,%rax
18010c0eb:	4d 8b c4             	mov    %r12,%r8
18010c0ee:	48 8b d0             	mov    %rax,%rdx
18010c0f1:	48 c1 e5 10          	shl    $0x10,%rbp
18010c0f5:	48 c1 e2 10          	shl    $0x10,%rdx
18010c0f9:	49 c1 e1 10          	shl    $0x10,%r9
18010c0fd:	49 c1 e6 10          	shl    $0x10,%r14
18010c101:	48 c1 e3 10          	shl    $0x10,%rbx
18010c105:	49 c1 e0 10          	shl    $0x10,%r8
18010c109:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
18010c10e:	4d 3b c8             	cmp    %r8,%r9
18010c111:	75 0a                	jne    0x18010c11d
18010c113:	4c 3b ca             	cmp    %rdx,%r9
18010c116:	75 0a                	jne    0x18010c122
18010c118:	e9 0d 01 00 00       	jmp    0x18010c22a
18010c11d:	4c 3b ca             	cmp    %rdx,%r9
18010c120:	74 17                	je     0x18010c139
18010c122:	4c 3b c2             	cmp    %rdx,%r8
18010c125:	74 12                	je     0x18010c139
18010c127:	41 8a 4f 18          	mov    0x18(%r15),%cl
18010c12b:	8a c1                	mov    %cl,%al
18010c12d:	80 f9 01             	cmp    $0x1,%cl
18010c130:	74 0e                	je     0x18010c140
18010c132:	4c 3b f2             	cmp    %rdx,%r14
18010c135:	75 09                	jne    0x18010c140
18010c137:	eb 04                	jmp    0x18010c13d
18010c139:	41 8a 47 18          	mov    0x18(%r15),%al
18010c13d:	48 ff c2             	inc    %rdx
18010c140:	3c 01                	cmp    $0x1,%al
18010c142:	75 4e                	jne    0x18010c192
18010c144:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18010c149:	41 89 0b             	mov    %ecx,(%r11)
18010c14c:	4c 3b ca             	cmp    %rdx,%r9
18010c14f:	7e 08                	jle    0x18010c159
18010c151:	4c 3b c2             	cmp    %rdx,%r8
18010c154:	7f 0a                	jg     0x18010c160
18010c156:	4c 3b ca             	cmp    %rdx,%r9
18010c159:	7d 0c                	jge    0x18010c167
18010c15b:	4c 3b c2             	cmp    %rdx,%r8
18010c15e:	7d 07                	jge    0x18010c167
18010c160:	89 0f                	mov    %ecx,(%rdi)
18010c162:	e9 02 02 00 00       	jmp    0x18010c369
18010c167:	49 2b d1             	sub    %r9,%rdx
18010c16a:	48 2b dd             	sub    %rbp,%rbx
18010c16d:	48 0f af d3          	imul   %rbx,%rdx
18010c171:	4d 2b c1             	sub    %r9,%r8
18010c174:	48 8b c2             	mov    %rdx,%rax