180021c0e:	85 c0                	test   %eax,%eax
180021c10:	78 60                	js     0x180021c72
180021c12:	80 7d d0 00          	cmpb   $0x0,-0x30(%rbp)
180021c16:	74 5a                	je     0x180021c72
180021c18:	83 7d d8 02          	cmpl   $0x2,-0x28(%rbp)
180021c1c:	75 54                	jne    0x180021c72
180021c1e:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
180021c22:	b9 64 86 00 00       	mov    $0x8664,%ecx
180021c27:	66 39 08             	cmp    %cx,(%rax)
180021c2a:	75 46                	jne    0x180021c72
180021c2c:	8b 45 e8             	mov    -0x18(%rbp),%eax
180021c2f:	85 c0                	test   %eax,%eax
180021c31:	74 38                	je     0x180021c6b
180021c33:	4c 8d 4d d8          	lea    -0x28(%rbp),%r9
180021c37:	89 44 24 20          	mov    %eax,0x20(%rsp)
180021c3b:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
180021c3f:	48 8d 55 e8          	lea    -0x18(%rbp),%rdx
180021c43:	48 8d 0d e6 80 12 00 	lea    0x1280e6(%rip),%rcx        # 0x180149d30
180021c4a:	e8 95 e5 ff ff       	call   0x1800201e4
180021c4f:	85 c0                	test   %eax,%eax
180021c51:	78 18                	js     0x180021c6b
180021c53:	80 7d d0 00          	cmpb   $0x0,-0x30(%rbp)
180021c57:	74 12                	je     0x180021c6b
180021c59:	83 7d d8 04          	cmpl   $0x4,-0x28(%rbp)
180021c5d:	75 0c                	jne    0x180021c6b
180021c5f:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
180021c63:	39 18                	cmp    %ebx,(%rax)
180021c65:	75 04                	jne    0x180021c6b
180021c67:	33 c0                	xor    %eax,%eax
180021c69:	eb 0c                	jmp    0x180021c77
180021c6b:	b8 24 00 00 c0       	mov    $0xc0000024,%eax
180021c70:	eb 05                	jmp    0x180021c77
180021c72:	b8 59 00 00 c0       	mov    $0xc0000059,%eax
180021c77:	48 8b 9c 24 80 00 00 	mov    0x80(%rsp),%rbx
180021c7e:	00
180021c7f:	48 83 c4 60          	add    $0x60,%rsp
180021c83:	5d                   	pop    %rbp
180021c84:	c3                   	ret
180021c85:	cc                   	int3
180021c86:	cc                   	int3
180021c87:	cc                   	int3
180021c88:	48 83 ec 28          	sub    $0x28,%rsp
180021c8c:	49 8b c0             	mov    %r8,%rax
180021c8f:	4c 8b ca             	mov    %rdx,%r9
180021c92:	4c 8b c1             	mov    %rcx,%r8
180021c95:	48 8b d0             	mov    %rax,%rdx
180021c98:	49 8b c9             	mov    %r9,%rcx
180021c9b:	e8 e0 94 10 00       	call   0x18012b180
180021ca0:	48 83 c4 28          	add    $0x28,%rsp
180021ca4:	c3                   	ret
180021ca5:	cc                   	int3
180021ca6:	cc                   	int3
180021ca7:	cc                   	int3
180021ca8:	48 83 ec 28          	sub    $0x28,%rsp
180021cac:	44 8b 01             	mov    (%rcx),%r8d
180021caf:	44 8b 0a             	mov    (%rdx),%r9d
180021cb2:	45 3b c1             	cmp    %r9d,%r8d
180021cb5:	75 0f                	jne    0x180021cc6
180021cb7:	48 8b 52 08          	mov    0x8(%rdx),%rdx
180021cbb:	48 8b 49 08          	mov    0x8(%rcx),%rcx
180021cbf:	e8 bc 94 10 00       	call   0x18012b180
180021cc4:	eb 0f                	jmp    0x180021cd5
180021cc6:	33 c9                	xor    %ecx,%ecx
180021cc8:	45 3b c1             	cmp    %r9d,%r8d
180021ccb:	8b c1                	mov    %ecx,%eax
180021ccd:	0f 97 c0             	seta   %al
180021cd0:	0f 92 c1             	setb   %cl
180021cd3:	2b c1                	sub    %ecx,%eax
180021cd5:	48 83 c4 28          	add    $0x28,%rsp
180021cd9:	c3                   	ret
180021cda:	cc                   	int3
180021cdb:	cc                   	int3
180021cdc:	48 83 ec 28          	sub    $0x28,%rsp
180021ce0:	48 8b ca             	mov    %rdx,%rcx
180021ce3:	49 8b d0             	mov    %r8,%rdx
180021ce6:	e8 bd ff ff ff       	call   0x180021ca8
180021ceb:	48 83 c4 28          	add    $0x28,%rsp
180021cef:	c3                   	ret
180021cf0:	cc                   	int3
180021cf1:	cc                   	int3
180021cf2:	cc                   	int3
180021cf3:	cc                   	int3
180021cf4:	48 83 ec 38          	sub    $0x38,%rsp
180021cf8:	4c 8b d2             	mov    %rdx,%r10
180021cfb:	41 83 f8 10          	cmp    $0x10,%r8d
180021cff:	0f 82 96 00 00 00    	jb     0x180021d9b
180021d05:	81 e9 03 80 00 00    	sub    $0x8003,%ecx
180021d0b:	74 30                	je     0x180021d3d
180021d0d:	83 e9 01             	sub    $0x1,%ecx
180021d10:	74 24                	je     0x180021d36
180021d12:	83 e9 08             	sub    $0x8,%ecx
180021d15:	74 18                	je     0x180021d2f
180021d17:	83 e9 01             	sub    $0x1,%ecx
180021d1a:	74 0c                	je     0x180021d28
180021d1c:	83 f9 01             	cmp    $0x1,%ecx
180021d1f:	75 7a                	jne    0x180021d9b
180021d21:	b9 04 00 00 00       	mov    $0x4,%ecx
180021d26:	eb 17                	jmp    0x180021d3f
180021d28:	b9 03 00 00 00       	mov    $0x3,%ecx
180021d2d:	eb 10                	jmp    0x180021d3f
180021d2f:	b9 02 00 00 00       	mov    $0x2,%ecx
180021d34:	eb 09                	jmp    0x180021d3f
180021d36:	b9 01 00 00 00       	mov    $0x1,%ecx
180021d3b:	eb 02                	jmp    0x180021d3f
180021d3d:	33 c9                	xor    %ecx,%ecx
180021d3f:	41 8a c1             	mov    %r9b,%al
180021d42:	4c 8d 1d 17 35 17 00 	lea    0x173517(%rip),%r11        # 0x180195260
180021d49:	f6 d8                	neg    %al
180021d4b:	8d 41 05             	lea    0x5(%rcx),%eax
180021d4e:	45 1b c0             	sbb    %r8d,%r8d
180021d51:	41 83 e0 04          	and    $0x4,%r8d
180021d55:	41 83 c0 10          	add    $0x10,%r8d
180021d59:	45 84 c9             	test   %r9b,%r9b
180021d5c:	0f 44 c1             	cmove  %ecx,%eax
180021d5f:	8b c8                	mov    %eax,%ecx
180021d61:	48 03 c9             	add    %rcx,%rcx
180021d64:	41 8b 04 cb          	mov    (%r11,%rcx,8),%eax
180021d68:	85 c0                	test   %eax,%eax
180021d6a:	74 2f                	je     0x180021d9b
180021d6c:	33 d2                	xor    %edx,%edx
180021d6e:	45 8b c8             	mov    %r8d,%r9d
180021d71:	41 f7 f0             	div    %r8d
180021d74:	49 8b 54 cb 08       	mov    0x8(%r11,%rcx,8),%rdx
180021d79:	49 8b ca             	mov    %r10,%rcx
180021d7c:	44 8b c0             	mov    %eax,%r8d
180021d7f:	48 8d 05 02 ff ff ff 	lea    -0xfe(%rip),%rax        # 0x180021c88
180021d86:	48 c7 44 24 28 10 00 	movq   $0x10,0x28(%rsp)
180021d8d:	00 00
180021d8f:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180021d94:	e8 8f 9d 10 00       	call   0x18012bb28
180021d99:	eb 02                	jmp    0x180021d9d
180021d9b:	33 c0                	xor    %eax,%eax
180021d9d:	48 83 c4 38          	add    $0x38,%rsp
180021da1:	c3                   	ret
180021da2:	cc                   	int3
180021da3:	cc                   	int3
180021da4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180021da9:	57                   	push   %rdi
180021daa:	48 83 ec 30          	sub    $0x30,%rsp
180021dae:	49 8b f9             	mov    %r9,%rdi
180021db1:	4c 8b da             	mov    %rdx,%r11
180021db4:	81 e9 03 80 00 00    	sub    $0x8003,%ecx
180021dba:	74 54                	je     0x180021e10
180021dbc:	83 e9 01             	sub    $0x1,%ecx
180021dbf:	74 40                	je     0x180021e01
180021dc1:	83 e9 08             	sub    $0x8,%ecx
180021dc4:	74 2c                	je     0x180021df2
180021dc6:	83 e9 01             	sub    $0x1,%ecx
180021dc9:	74 18                	je     0x180021de3
180021dcb:	83 f9 01             	cmp    $0x1,%ecx
180021dce:	0f 85 b6 00 00 00    	jne    0x180021e8a
180021dd4:	8b 05 66 35 17 00    	mov    0x173566(%rip),%eax        # 0x180195340
180021dda:	4c 8d 15 67 35 17 00 	lea    0x173567(%rip),%r10        # 0x180195348
180021de1:	eb 3a                	jmp    0x180021e1d
180021de3:	8b 05 47 35 17 00    	mov    0x173547(%rip),%eax        # 0x180195330
180021de9:	4c 8d 15 48 35 17 00 	lea    0x173548(%rip),%r10        # 0x180195338
180021df0:	eb 2b                	jmp    0x180021e1d
180021df2:	8b 05 28 35 17 00    	mov    0x173528(%rip),%eax        # 0x180195320
180021df8:	4c 8d 15 29 35 17 00 	lea    0x173529(%rip),%r10        # 0x180195328
180021dff:	eb 1c                	jmp    0x180021e1d
180021e01:	8b 05 09 35 17 00    	mov    0x173509(%rip),%eax        # 0x180195310
180021e07:	4c 8d 15 0a 35 17 00 	lea    0x17350a(%rip),%r10        # 0x180195318
180021e0e:	eb 0d                	jmp    0x180021e1d
180021e10:	8b 05 ea 34 17 00    	mov    0x1734ea(%rip),%eax        # 0x180195300
180021e16:	4c 8d 15 eb 34 17 00 	lea    0x1734eb(%rip),%r10        # 0x180195308
180021e1d:	85 c0                	test   %eax,%eax
180021e1f:	74 69                	je     0x180021e8a
180021e21:	41 8d 48 0c          	lea    0xc(%r8),%ecx
180021e25:	41 8b d8             	mov    %r8d,%ebx
180021e28:	33 d2                	xor    %edx,%edx
180021e2a:	44 8b c9             	mov    %ecx,%r9d
180021e2d:	f7 f1                	div    %ecx
180021e2f:	49 8b 12             	mov    (%r10),%rdx
180021e32:	49 8b cb             	mov    %r11,%rcx
180021e35:	44 8b c0             	mov    %eax,%r8d
180021e38:	48 8d 05 49 fe ff ff 	lea    -0x1b7(%rip),%rax        # 0x180021c88
180021e3f:	48 89 5c 24 28       	mov    %rbx,0x28(%rsp)
180021e44:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180021e49:	e8 da 9c 10 00       	call   0x18012bb28
180021e4e:	48 85 c0             	test   %rax,%rax
180021e51:	74 37                	je     0x180021e8a
180021e53:	8b 4c 03 08          	mov    0x8(%rbx,%rax,1),%ecx
180021e57:	48 85 ff             	test   %rdi,%rdi
180021e5a:	74 07                	je     0x180021e63
180021e5c:	48 8b 04 03          	mov    (%rbx,%rax,1),%rax
180021e60:	48 89 07             	mov    %rax,(%rdi)
180021e63:	48 8b 54 24 60       	mov    0x60(%rsp),%rdx
180021e68:	48 85 d2             	test   %rdx,%rdx
180021e6b:	74 07                	je     0x180021e74
180021e6d:	8b c1                	mov    %ecx,%eax
180021e6f:	c1 e8 1f             	shr    $0x1f,%eax
180021e72:	88 02                	mov    %al,(%rdx)
180021e74:	48 8b 44 24 68       	mov    0x68(%rsp),%rax
180021e79:	48 85 c0             	test   %rax,%rax
180021e7c:	74 08                	je     0x180021e86
180021e7e:	81 e1 ff ff ff 0f    	and    $0xfffffff,%ecx
180021e84:	89 08                	mov    %ecx,(%rax)
180021e86:	b0 01                	mov    $0x1,%al
180021e88:	eb 02                	jmp    0x180021e8c
180021e8a:	32 c0                	xor    %al,%al
180021e8c:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180021e91:	48 83 c4 30          	add    $0x30,%rsp
180021e95:	5f                   	pop    %rdi
180021e96:	c3                   	ret
180021e97:	cc                   	int3
180021e98:	48 83 ec 48          	sub    $0x48,%rsp
180021e9c:	83 64 24 34 00       	andl   $0x0,0x34(%rsp)
180021ea1:	8b 05 b1 33 17 00    	mov    0x1733b1(%rip),%eax        # 0x180195258
180021ea7:	85 c0                	test   %eax,%eax
180021ea9:	74 3a                	je     0x180021ee5
180021eab:	4c 8b c0             	mov    %rax,%r8
180021eae:	48 89 4c 24 38       	mov    %rcx,0x38(%rsp)
180021eb3:	41 b9 10 00 00 00    	mov    $0x10,%r9d
180021eb9:	89 54 24 30          	mov    %edx,0x30(%rsp)
180021ebd:	48 8b 15 ac 34 17 00 	mov    0x1734ac(%rip),%rdx        # 0x180195370
180021ec4:	48 8d 05 11 fe ff ff 	lea    -0x1ef(%rip),%rax        # 0x180021cdc
180021ecb:	4c 89 4c 24 28       	mov    %r9,0x28(%rsp)
180021ed0:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
180021ed5:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180021eda:	e8 49 9c 10 00       	call   0x18012bb28
180021edf:	48 85 c0             	test   %rax,%rax
180021ee2:	0f 95 c0             	setne  %al
180021ee5:	48 83 c4 48          	add    $0x48,%rsp
180021ee9:	c3                   	ret
180021eea:	cc                   	int3
180021eeb:	cc                   	int3
180021eec:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180021ef1:	57                   	push   %rdi
180021ef2:	48 83 ec 20          	sub    $0x20,%rsp
180021ef6:	45 33 c9             	xor    %r9d,%r9d
180021ef9:	41 8b d8             	mov    %r8d,%ebx
180021efc:	48 8b fa             	mov    %rdx,%rdi
180021eff:	e8 f0 fd ff ff       	call   0x180021cf4
180021f04:	48 85 c0             	test   %rax,%rax
180021f07:	75 12                	jne    0x180021f1b
180021f09:	8b d3                	mov    %ebx,%edx
180021f0b:	48 8b cf             	mov    %rdi,%rcx
180021f0e:	e8 85 ff ff ff       	call   0x180021e98
180021f13:	84 c0                	test   %al,%al
180021f15:	75 04                	jne    0x180021f1b
180021f17:	33 c0                	xor    %eax,%eax
180021f19:	eb 05                	jmp    0x180021f20
180021f1b:	b8 03 06 00 c0       	mov    $0xc0000603,%eax
180021f20:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180021f25:	48 83 c4 20          	add    $0x20,%rsp
180021f29:	5f                   	pop    %rdi
180021f2a:	c3                   	ret
180021f2b:	cc                   	int3
180021f2c:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180021f31:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
180021f36:	56                   	push   %rsi
180021f37:	57                   	push   %rdi
180021f38:	41 55                	push   %r13
180021f3a:	41 56                	push   %r14
180021f3c:	41 57                	push   %r15
180021f3e:	48 83 ec 20          	sub    $0x20,%rsp
180021f42:	4c 8b fa             	mov    %rdx,%r15
180021f45:	85 c9                	test   %ecx,%ecx
180021f47:	74 7d                	je     0x180021fc6
180021f49:	83 3d 00 34 17 00 00 	cmpl   $0x0,0x173400(%rip)        # 0x180195350
180021f50:	74 74                	je     0x180021fc6
180021f52:	8b 6a 30             	mov    0x30(%rdx),%ebp
180021f55:	33 ff                	xor    %edi,%edi
180021f57:	8b d9                	mov    %ecx,%ebx
180021f59:	48 03 1d f8 33 17 00 	add    0x1733f8(%rip),%rbx        # 0x180195358
180021f60:	44 8b 33             	mov    (%rbx),%r14d
180021f63:	85 ed                	test   %ebp,%ebp
180021f65:	74 5f                	je     0x180021fc6
180021f67:	33 f6                	xor    %esi,%esi
180021f69:	45 85 f6             	test   %r14d,%r14d
180021f6c:	74 52                	je     0x180021fc0
180021f6e:	49 8b 57 28          	mov    0x28(%r15),%rdx
180021f72:	8b c7                	mov    %edi,%eax
180021f74:	4c 6b e8 78          	imul   $0x78,%rax,%r13
180021f78:	48 89 54 24 60       	mov    %rdx,0x60(%rsp)
180021f7d:	46 8b 04 2a          	mov    (%rdx,%r13,1),%r8d
180021f81:	44 89 44 24 50       	mov    %r8d,0x50(%rsp)
180021f86:	8b 4c b3 04          	mov    0x4(%rbx,%rsi,4),%ecx
180021f8a:	48 03 0d c7 33 17 00 	add    0x1733c7(%rip),%rcx        # 0x180195358
180021f91:	44 39 01             	cmp    %r8d,(%rcx)
180021f94:	75 23                	jne    0x180021fb9
180021f96:	46 8b 44 2a 04       	mov    0x4(%rdx,%r13,1),%r8d
180021f9b:	48 83 c1 04          	add    $0x4,%rcx
180021f9f:	48 83 c2 08          	add    $0x8,%rdx
180021fa3:	49 03 d5             	add    %r13,%rdx
180021fa6:	e8 d5 91 10 00       	call   0x18012b180
180021fab:	85 c0                	test   %eax,%eax
180021fad:	74 31                	je     0x180021fe0
180021faf:	48 8b 54 24 60       	mov    0x60(%rsp),%rdx
180021fb4:	44 8b 44 24 50       	mov    0x50(%rsp),%r8d
180021fb9:	ff c6                	inc    %esi
180021fbb:	41 3b f6             	cmp    %r14d,%esi
180021fbe:	72 c6                	jb     0x180021f86
180021fc0:	ff c7                	inc    %edi
180021fc2:	3b fd                	cmp    %ebp,%edi
180021fc4:	72 a1                	jb     0x180021f67
180021fc6:	32 c0                	xor    %al,%al
180021fc8:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
180021fcd:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
180021fd2:	48 83 c4 20          	add    $0x20,%rsp
180021fd6:	41 5f                	pop    %r15
180021fd8:	41 5e                	pop    %r14
180021fda:	41 5d                	pop    %r13
180021fdc:	5f                   	pop    %rdi
180021fdd:	5e                   	pop    %rsi
180021fde:	c3                   	ret
180021fdf:	cc                   	int3
180021fe0:	b0 01                	mov    $0x1,%al
180021fe2:	eb e4                	jmp    0x180021fc8
180021fe4:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
180021fe9:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
180021fee:	55                   	push   %rbp
180021fef:	53                   	push   %rbx
180021ff0:	57                   	push   %rdi
180021ff1:	41 54                	push   %r12
180021ff3:	41 55                	push   %r13
180021ff5:	41 56                	push   %r14
180021ff7:	41 57                	push   %r15
180021ff9:	48 8b ec             	mov    %rsp,%rbp
180021ffc:	48 83 ec 40          	sub    $0x40,%rsp
180022000:	49 8b c0             	mov    %r8,%rax
180022003:	41 b9 03 06 00 c0    	mov    $0xc0000603,%r9d
180022009:	45 33 c0             	xor    %r8d,%r8d
18002200c:	48 8b d9             	mov    %rcx,%rbx
18002200f:	44 39 05 3a 33 17 00 	cmp    %r8d,0x17333a(%rip)        # 0x180195350
180022016:	40 b7 01             	mov    $0x1,%dil
180022019:	45 8b f0             	mov    %r8d,%r14d
18002201c:	4c 89 45 f8          	mov    %r8,-0x8(%rbp)
180022020:	44 88 45 58          	mov    %r8b,0x58(%rbp)
180022024:	45 8b f9             	mov    %r9d,%r15d
180022027:	44 89 45 f0          	mov    %r8d,-0x10(%rbp)
18002202b:	75 33                	jne    0x180022060
18002202d:	8b 40 08             	mov    0x8(%rax),%eax
180022030:	8b 49 08             	mov    0x8(%rcx),%ecx
180022033:	33 c1                	xor    %ecx,%eax
180022035:	0f b7 c0             	movzwl %ax,%eax
180022038:	85 c0                	test   %eax,%eax
18002203a:	75 15                	jne    0x180022051
18002203c:	48 8b 02             	mov    (%rdx),%rax
18002203f:	48 85 c0             	test   %rax,%rax
180022042:	74 0d                	je     0x180022051
180022044:	48 3b 43 18          	cmp    0x18(%rbx),%rax
180022048:	7d 07                	jge    0x180022051
18002204a:	33 c0                	xor    %eax,%eax
18002204c:	e9 db 00 00 00       	jmp    0x18002212c
180022051:	0f ba e9 19          	bts    $0x19,%ecx
180022055:	41 8b c1             	mov    %r9d,%eax
180022058:	89 4b 08             	mov    %ecx,0x8(%rbx)
18002205b:	e9 cc 00 00 00       	jmp    0x18002212c
180022060:	48 8b 51 10          	mov    0x10(%rcx),%rdx