18004fc3a:	41 0f b7 c6          	movzwl %r14w,%eax
18004fc3e:	48 03 f8             	add    %rax,%rdi
18004fc41:	2b da                	sub    %edx,%ebx
18004fc43:	48 89 7d 58          	mov    %rdi,0x58(%rbp)
18004fc47:	89 5d 60             	mov    %ebx,0x60(%rbp)
18004fc4a:	e9 50 01 00 00       	jmp    0x18004fd9f
18004fc4f:	8a 0f                	mov    (%rdi),%cl
18004fc51:	ff cb                	dec    %ebx
18004fc53:	49 03 fa             	add    %r10,%rdi
18004fc56:	89 5d 60             	mov    %ebx,0x60(%rbp)
18004fc59:	41 8b c2             	mov    %r10d,%eax
18004fc5c:	48 89 7d 58          	mov    %rdi,0x58(%rbp)
18004fc60:	d3 e0                	shl    %cl,%eax
18004fc62:	80 f9 ff             	cmp    $0xff,%cl
18004fc65:	0f 44 c6             	cmove  %esi,%eax
18004fc68:	41 89 04 24          	mov    %eax,(%r12)
18004fc6c:	e9 2e 01 00 00       	jmp    0x18004fd9f
18004fc71:	48 8d 57 03          	lea    0x3(%rdi),%rdx
18004fc75:	83 c3 f8             	add    $0xfffffff8,%ebx
18004fc78:	8a 02                	mov    (%rdx),%al
18004fc7a:	b9 08 00 00 00       	mov    $0x8,%ecx
18004fc7f:	41 88 04 24          	mov    %al,(%r12)
18004fc83:	49 2b d2             	sub    %r10,%rdx
18004fc86:	8a 02                	mov    (%rdx),%al
18004fc88:	49 2b d2             	sub    %r10,%rdx
18004fc8b:	41 88 44 24 01       	mov    %al,0x1(%r12)
18004fc90:	8a 02                	mov    (%rdx),%al
18004fc92:	43 88 44 14 01       	mov    %al,0x1(%r12,%r10,1)
18004fc97:	8a 42 ff             	mov    -0x1(%rdx),%al
18004fc9a:	43 88 44 14 02       	mov    %al,0x2(%r12,%r10,1)
18004fc9f:	8a 47 05             	mov    0x5(%rdi),%al
18004fca2:	41 88 44 24 04       	mov    %al,0x4(%r12)
18004fca7:	8a 47 04             	mov    0x4(%rdi),%al
18004fcaa:	41 88 44 24 05       	mov    %al,0x5(%r12)
18004fcaf:	8a 47 07             	mov    0x7(%rdi),%al
18004fcb2:	41 88 44 24 06       	mov    %al,0x6(%r12)
18004fcb7:	8a 47 06             	mov    0x6(%rdi),%al
18004fcba:	48 83 c7 08          	add    $0x8,%rdi
18004fcbe:	41 88 44 24 07       	mov    %al,0x7(%r12)
18004fcc3:	49 83 c4 08          	add    $0x8,%r12
18004fcc7:	8a 07                	mov    (%rdi),%al
18004fcc9:	ff cb                	dec    %ebx
18004fccb:	41 88 04 24          	mov    %al,(%r12)
18004fccf:	49 03 fa             	add    %r10,%rdi
18004fcd2:	4d 03 e2             	add    %r10,%r12
18004fcd5:	49 2b ca             	sub    %r10,%rcx
18004fcd8:	75 ed                	jne    0x18004fcc7
18004fcda:	89 5d 60             	mov    %ebx,0x60(%rbp)
18004fcdd:	48 89 7d 58          	mov    %rdi,0x58(%rbp)
18004fce1:	e9 b9 00 00 00       	jmp    0x18004fd9f
18004fce6:	8a 47 01             	mov    0x1(%rdi),%al
18004fce9:	83 c3 fe             	add    $0xfffffffe,%ebx
18004fcec:	88 45 e0             	mov    %al,-0x20(%rbp)
18004fcef:	8a 07                	mov    (%rdi),%al
18004fcf1:	48 83 c7 02          	add    $0x2,%rdi
18004fcf5:	88 45 e1             	mov    %al,-0x1f(%rbp)
18004fcf8:	0f b7 45 e0          	movzwl -0x20(%rbp),%eax
18004fcfc:	48 89 7d 58          	mov    %rdi,0x58(%rbp)
18004fd00:	89 5d 60             	mov    %ebx,0x60(%rbp)
18004fd03:	4d 85 ed             	test   %r13,%r13
18004fd06:	74 05                	je     0x18004fd0d
18004fd08:	66 41 89 45 00       	mov    %ax,0x0(%r13)
18004fd0d:	49 89 34 24          	mov    %rsi,(%r12)
18004fd11:	66 85 c0             	test   %ax,%ax
18004fd14:	0f 84 85 00 00 00    	je     0x18004fd9f
18004fd1a:	41 0f b7 ce          	movzwl %r14w,%ecx
18004fd1e:	44 8b f0             	mov    %eax,%r14d
18004fd21:	44 0f af f1          	imul   %ecx,%r14d
18004fd25:	89 4d e4             	mov    %ecx,-0x1c(%rbp)
18004fd28:	41 3b de             	cmp    %r14d,%ebx
18004fd2b:	0f 82 97 00 00 00    	jb     0x18004fdc8
18004fd31:	41 8b ce             	mov    %r14d,%ecx
18004fd34:	e8 db 6b ff ff       	call   0x180046914
18004fd39:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
18004fd3d:	48 85 c0             	test   %rax,%rax
18004fd40:	74 78                	je     0x18004fdba
18004fd42:	44 8b ee             	mov    %esi,%r13d
18004fd45:	45 85 f6             	test   %r14d,%r14d
18004fd48:	74 2e                	je     0x18004fd78
18004fd4a:	8b 55 e4             	mov    -0x1c(%rbp),%edx
18004fd4d:	48 8b f0             	mov    %rax,%rsi
18004fd50:	41 8b cd             	mov    %r13d,%ecx
18004fd53:	4c 8d 4d 60          	lea    0x60(%rbp),%r9
18004fd57:	48 03 ce             	add    %rsi,%rcx
18004fd5a:	4c 8d 45 58          	lea    0x58(%rbp),%r8
18004fd5e:	e8 19 fd ff ff       	call   0x18004fa7c
18004fd63:	44 03 ea             	add    %edx,%r13d
18004fd66:	45 3b ee             	cmp    %r14d,%r13d
18004fd69:	72 e5                	jb     0x18004fd50
18004fd6b:	8b 5d 60             	mov    0x60(%rbp),%ebx
18004fd6e:	33 f6                	xor    %esi,%esi
18004fd70:	48 8b 7d 58          	mov    0x58(%rbp),%rdi
18004fd74:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
18004fd78:	49 89 04 24          	mov    %rax,(%r12)
18004fd7c:	eb 17                	jmp    0x18004fd95
18004fd7e:	4c 8d 4d 60          	lea    0x60(%rbp),%r9
18004fd82:	49 8b cc             	mov    %r12,%rcx
18004fd85:	4c 8d 45 58          	lea    0x58(%rbp),%r8
18004fd89:	e8 ee fc ff ff       	call   0x18004fa7c
18004fd8e:	8b 5d 60             	mov    0x60(%rbp),%ebx
18004fd91:	48 8b 7d 58          	mov    0x58(%rbp),%rdi
18004fd95:	44 8b 45 48          	mov    0x48(%rbp),%r8d
18004fd99:	41 ba 01 00 00 00    	mov    $0x1,%r10d
18004fd9f:	8b 55 e8             	mov    -0x18(%rbp),%edx
18004fda2:	41 03 d2             	add    %r10d,%edx
18004fda5:	49 83 c7 0c          	add    $0xc,%r15
18004fda9:	89 55 e8             	mov    %edx,-0x18(%rbp)
18004fdac:	41 3b d0             	cmp    %r8d,%edx
18004fdaf:	73 1e                	jae    0x18004fdcf
18004fdb1:	4c 8b 4d 50          	mov    0x50(%rbp),%r9
18004fdb5:	e9 a3 fd ff ff       	jmp    0x18004fb5d
18004fdba:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
18004fdbf:	eb 18                	jmp    0x18004fdd9
18004fdc1:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18004fdc6:	eb 11                	jmp    0x18004fdd9
18004fdc8:	b8 05 00 00 80       	mov    $0x80000005,%eax
18004fdcd:	eb 0a                	jmp    0x18004fdd9
18004fdcf:	8b 45 ec             	mov    -0x14(%rbp),%eax
18004fdd2:	2b c3                	sub    %ebx,%eax
18004fdd4:	89 45 ec             	mov    %eax,-0x14(%rbp)
18004fdd7:	8b c6                	mov    %esi,%eax
18004fdd9:	48 8b 9c 24 80 00 00 	mov    0x80(%rsp),%rbx
18004fde0:	00
18004fde1:	85 c0                	test   %eax,%eax
18004fde3:	0f 49 75 ec          	cmovns -0x14(%rbp),%esi
18004fde7:	8b c6                	mov    %esi,%eax
18004fde9:	48 83 c4 40          	add    $0x40,%rsp
18004fded:	41 5f                	pop    %r15
18004fdef:	41 5e                	pop    %r14
18004fdf1:	41 5d                	pop    %r13
18004fdf3:	41 5c                	pop    %r12
18004fdf5:	5f                   	pop    %rdi
18004fdf6:	5e                   	pop    %rsi
18004fdf7:	5d                   	pop    %rbp
18004fdf8:	c3                   	ret
18004fdf9:	cc                   	int3
18004fdfa:	cc                   	int3
18004fdfb:	cc                   	int3
18004fdfc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18004fe01:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18004fe06:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
18004fe0b:	57                   	push   %rdi
18004fe0c:	41 57                	push   %r15
18004fe0e:	8b c2                	mov    %edx,%eax
18004fe10:	33 f6                	xor    %esi,%esi
18004fe12:	49 8b f8             	mov    %r8,%rdi
18004fe15:	48 8d 14 40          	lea    (%rax,%rax,2),%rdx
18004fe19:	48 8d 1c 91          	lea    (%rcx,%rdx,4),%rbx
18004fe1d:	48 3b cb             	cmp    %rbx,%rcx
18004fe20:	0f 83 91 02 00 00    	jae    0x1800500b7
18004fe26:	4c 8d 59 04          	lea    0x4(%rcx),%r11
18004fe2a:	41 bf ff ff 00 00    	mov    $0xffff,%r15d
18004fe30:	8d 6e 01             	lea    0x1(%rsi),%ebp
18004fe33:	41 0f b7 53 04       	movzwl 0x4(%r11),%edx
18004fe38:	41 8b 4b fc          	mov    -0x4(%r11),%ecx
18004fe3c:	48 03 d7             	add    %rdi,%rdx
18004fe3f:	83 f9 07             	cmp    $0x7,%ecx
18004fe42:	0f 8f 77 01 00 00    	jg     0x18004ffbf
18004fe48:	0f 84 29 01 00 00    	je     0x18004ff77
18004fe4e:	2b cd                	sub    %ebp,%ecx
18004fe50:	0f 84 14 01 00 00    	je     0x18004ff6a
18004fe56:	2b cd                	sub    %ebp,%ecx
18004fe58:	0f 84 f7 00 00 00    	je     0x18004ff55
18004fe5e:	2b cd                	sub    %ebp,%ecx
18004fe60:	0f 84 cc 00 00 00    	je     0x18004ff32
18004fe66:	2b cd                	sub    %ebp,%ecx
18004fe68:	0f 84 83 00 00 00    	je     0x18004fef1
18004fe6e:	2b cd                	sub    %ebp,%ecx
18004fe70:	74 40                	je     0x18004feb2
18004fe72:	3b cd                	cmp    %ebp,%ecx
18004fe74:	0f 85 2c 02 00 00    	jne    0x1800500a6
18004fe7a:	4c 8b 02             	mov    (%rdx),%r8
18004fe7d:	4d 8b d1             	mov    %r9,%r10
18004fe80:	4c 03 cd             	add    %rbp,%r9
18004fe83:	b9 38 00 00 00       	mov    $0x38,%ecx
18004fe88:	49 8b c0             	mov    %r8,%rax
18004fe8b:	48 d3 e8             	shr    %cl,%rax
18004fe8e:	84 c0                	test   %al,%al
18004fe90:	75 05                	jne    0x18004fe97
18004fe92:	83 e9 08             	sub    $0x8,%ecx
18004fe95:	79 f1                	jns    0x18004fe88
18004fe97:	85 c9                	test   %ecx,%ecx
18004fe99:	0f 88 82 00 00 00    	js     0x18004ff21
18004fe9f:	49 8b c0             	mov    %r8,%rax
18004fea2:	48 d3 e8             	shr    %cl,%rax
18004fea5:	41 88 01             	mov    %al,(%r9)
18004fea8:	4c 03 cd             	add    %rbp,%r9
18004feab:	83 e9 08             	sub    $0x8,%ecx
18004feae:	79 ef                	jns    0x18004fe9f
18004feb0:	eb 6f                	jmp    0x18004ff21
18004feb2:	8a 42 07             	mov    0x7(%rdx),%al
18004feb5:	41 88 01             	mov    %al,(%r9)
18004feb8:	8a 42 06             	mov    0x6(%rdx),%al
18004febb:	41 88 41 01          	mov    %al,0x1(%r9)
18004febf:	8a 42 05             	mov    0x5(%rdx),%al
18004fec2:	41 88 41 02          	mov    %al,0x2(%r9)
18004fec6:	8a 42 04             	mov    0x4(%rdx),%al
18004fec9:	41 88 41 03          	mov    %al,0x3(%r9)
18004fecd:	8a 42 03             	mov    0x3(%rdx),%al
18004fed0:	41 88 41 04          	mov    %al,0x4(%r9)
18004fed4:	8a 42 02             	mov    0x2(%rdx),%al
18004fed7:	41 88 41 05          	mov    %al,0x5(%r9)
18004fedb:	8a 42 01             	mov    0x1(%rdx),%al
18004fede:	41 88 41 06          	mov    %al,0x6(%r9)
18004fee2:	8a 02                	mov    (%rdx),%al
18004fee4:	41 88 41 07          	mov    %al,0x7(%r9)
18004fee8:	49 83 c1 08          	add    $0x8,%r9
18004feec:	e9 b5 01 00 00       	jmp    0x1800500a6
18004fef1:	44 8b 02             	mov    (%rdx),%r8d
18004fef4:	4d 8b d1             	mov    %r9,%r10
18004fef7:	4c 03 cd             	add    %rbp,%r9
18004fefa:	b9 18 00 00 00       	mov    $0x18,%ecx
18004feff:	41 8b c0             	mov    %r8d,%eax
18004ff02:	d3 e8                	shr    %cl,%eax
18004ff04:	84 c0                	test   %al,%al
18004ff06:	75 05                	jne    0x18004ff0d
18004ff08:	83 e9 08             	sub    $0x8,%ecx
18004ff0b:	79 f2                	jns    0x18004feff
18004ff0d:	85 c9                	test   %ecx,%ecx
18004ff0f:	78 10                	js     0x18004ff21
18004ff11:	41 8b c0             	mov    %r8d,%eax
18004ff14:	d3 e8                	shr    %cl,%eax
18004ff16:	41 88 01             	mov    %al,(%r9)
18004ff19:	4c 03 cd             	add    %rbp,%r9
18004ff1c:	83 e9 08             	sub    $0x8,%ecx
18004ff1f:	79 f0                	jns    0x18004ff11
18004ff21:	41 8a c1             	mov    %r9b,%al
18004ff24:	41 2a c2             	sub    %r10b,%al
18004ff27:	40 2a c5             	sub    %bpl,%al
18004ff2a:	41 88 02             	mov    %al,(%r10)
18004ff2d:	e9 74 01 00 00       	jmp    0x1800500a6
18004ff32:	8a 42 03             	mov    0x3(%rdx),%al
18004ff35:	41 88 01             	mov    %al,(%r9)
18004ff38:	8a 42 02             	mov    0x2(%rdx),%al
18004ff3b:	41 88 41 01          	mov    %al,0x1(%r9)
18004ff3f:	8a 42 01             	mov    0x1(%rdx),%al
18004ff42:	41 88 41 02          	mov    %al,0x2(%r9)
18004ff46:	8a 02                	mov    (%rdx),%al
18004ff48:	41 88 41 03          	mov    %al,0x3(%r9)
18004ff4c:	49 83 c1 04          	add    $0x4,%r9
18004ff50:	e9 51 01 00 00       	jmp    0x1800500a6
18004ff55:	8a 42 01             	mov    0x1(%rdx),%al
18004ff58:	41 88 01             	mov    %al,(%r9)
18004ff5b:	8a 02                	mov    (%rdx),%al
18004ff5d:	41 88 41 01          	mov    %al,0x1(%r9)
18004ff61:	49 83 c1 02          	add    $0x2,%r9
18004ff65:	e9 3c 01 00 00       	jmp    0x1800500a6
18004ff6a:	8a 02                	mov    (%rdx),%al
18004ff6c:	41 88 01             	mov    %al,(%r9)
18004ff6f:	4c 03 cd             	add    %rbp,%r9
18004ff72:	e9 2f 01 00 00       	jmp    0x1800500a6
18004ff77:	41 0f b7 03          	movzwl (%r11),%eax
18004ff7b:	4c 8b 02             	mov    (%rdx),%r8
18004ff7e:	0f b7 0c 38          	movzwl (%rax,%rdi,1),%ecx
18004ff82:	4d 85 c0             	test   %r8,%r8
18004ff85:	75 06                	jne    0x18004ff8d
18004ff87:	66 41 89 31          	mov    %si,(%r9)
18004ff8b:	eb d4                	jmp    0x18004ff61
18004ff8d:	0f b7 c1             	movzwl %cx,%eax
18004ff90:	41 88 49 01          	mov    %cl,0x1(%r9)
18004ff94:	66 c1 e8 08          	shr    $0x8,%ax
18004ff98:	41 88 01             	mov    %al,(%r9)
18004ff9b:	49 83 c1 02          	add    $0x2,%r9
18004ff9f:	66 85 c9             	test   %cx,%cx
18004ffa2:	0f 84 fe 00 00 00    	je     0x1800500a6
18004ffa8:	41 8a 00             	mov    (%r8),%al
18004ffab:	4c 03 c5             	add    %rbp,%r8
18004ffae:	41 88 01             	mov    %al,(%r9)
18004ffb1:	4c 03 cd             	add    %rbp,%r9
18004ffb4:	66 41 03 cf          	add    %r15w,%cx
18004ffb8:	75 ee                	jne    0x18004ffa8
18004ffba:	e9 e7 00 00 00       	jmp    0x1800500a6
18004ffbf:	83 e9 08             	sub    $0x8,%ecx
18004ffc2:	0f 84 8e 00 00 00    	je     0x180050056
18004ffc8:	2b cd                	sub    %ebp,%ecx
18004ffca:	74 35                	je     0x180050001
18004ffcc:	2b cd                	sub    %ebp,%ecx
18004ffce:	74 19                	je     0x18004ffe9
18004ffd0:	2b cd                	sub    %ebp,%ecx
18004ffd2:	74 96                	je     0x18004ff6a
18004ffd4:	3b cd                	cmp    %ebp,%ecx
18004ffd6:	0f 85 ca 00 00 00    	jne    0x1800500a6
18004ffdc:	41 0f b7 43 02       	movzwl 0x2(%r11),%eax
18004ffe1:	4c 03 c8             	add    %rax,%r9
18004ffe4:	e9 bd 00 00 00       	jmp    0x1800500a6
18004ffe9:	8b 02                	mov    (%rdx),%eax
18004ffeb:	85 c0                	test   %eax,%eax
18004ffed:	75 0a                	jne    0x18004fff9
18004ffef:	b8 ff 00 00 00       	mov    $0xff,%eax
18004fff4:	e9 73 ff ff ff       	jmp    0x18004ff6c
18004fff9:	0f bd c0             	bsr    %eax,%eax
18004fffc:	e9 6b ff ff ff       	jmp    0x18004ff6c
180050001:	8a 42 03             	mov    0x3(%rdx),%al
180050004:	b9 08 00 00 00       	mov    $0x8,%ecx
180050009:	41 88 01             	mov    %al,(%r9)
18005000c:	8a 42 02             	mov    0x2(%rdx),%al
18005000f:	41 88 41 01          	mov    %al,0x1(%r9)
180050013:	8a 42 01             	mov    0x1(%rdx),%al
180050016:	41 88 41 02          	mov    %al,0x2(%r9)
18005001a:	8a 02                	mov    (%rdx),%al
18005001c:	41 88 41 03          	mov    %al,0x3(%r9)
180050020:	8a 42 05             	mov    0x5(%rdx),%al
180050023:	41 88 41 04          	mov    %al,0x4(%r9)
180050027:	8a 42 04             	mov    0x4(%rdx),%al
18005002a:	41 88 41 05          	mov    %al,0x5(%r9)
18005002e:	8a 42 07             	mov    0x7(%rdx),%al
180050031:	41 88 41 06          	mov    %al,0x6(%r9)
180050035:	8a 42 06             	mov    0x6(%rdx),%al
180050038:	41 88 41 07          	mov    %al,0x7(%r9)
18005003c:	49 83 c1 08          	add    $0x8,%r9
180050040:	48 83 c2 08          	add    $0x8,%rdx
180050044:	8a 02                	mov    (%rdx),%al
180050046:	48 03 d5             	add    %rbp,%rdx
180050049:	41 88 01             	mov    %al,(%r9)
18005004c:	4c 03 cd             	add    %rbp,%r9
18005004f:	48 2b cd             	sub    %rbp,%rcx
180050052:	75 f0                	jne    0x180050044
180050054:	eb 50                	jmp    0x1800500a6
180050056:	4c 8b 02             	mov    (%rdx),%r8
180050059:	4d 85 c0             	test   %r8,%r8
18005005c:	0f 84 25 ff ff ff    	je     0x18004ff87
180050062:	48 83 c9 ff          	or     $0xffffffffffffffff,%rcx
180050066:	48 ff c1             	inc    %rcx
180050069:	66 41 39 34 48       	cmp    %si,(%r8,%rcx,2)
18005006e:	75 f6                	jne    0x180050066
180050070:	66 03 cd             	add    %bp,%cx
180050073:	0f b7 c1             	movzwl %cx,%eax
180050076:	41 88 49 01          	mov    %cl,0x1(%r9)
18005007a:	66 c1 e8 08          	shr    $0x8,%ax
18005007e:	41 88 01             	mov    %al,(%r9)
180050081:	49 83 c1 02          	add    $0x2,%r9
180050085:	66 85 c9             	test   %cx,%cx
180050088:	74 1c                	je     0x1800500a6
18005008a:	41 8a 40 01          	mov    0x1(%r8),%al
18005008e:	41 88 01             	mov    %al,(%r9)
180050091:	41 8a 00             	mov    (%r8),%al
180050094:	4d 8d 40 02          	lea    0x2(%r8),%r8
180050098:	41 88 41 01          	mov    %al,0x1(%r9)
18005009c:	49 83 c1 02          	add    $0x2,%r9
1800500a0:	66 41 03 cf          	add    %r15w,%cx
1800500a4:	75 e4                	jne    0x18005008a
1800500a6:	49 83 c3 0c          	add    $0xc,%r11
1800500aa:	49 8d 4b fc          	lea    -0x4(%r11),%rcx
1800500ae:	48 3b cb             	cmp    %rbx,%rcx
1800500b1:	0f 82 7c fd ff ff    	jb     0x18004fe33
1800500b7:	48 8b 5c 24 18       	mov    0x18(%rsp),%rbx
1800500bc:	49 8b c1             	mov    %r9,%rax
1800500bf:	48 8b 6c 24 28       	mov    0x28(%rsp),%rbp
1800500c4:	48 8b 74 24 30       	mov    0x30(%rsp),%rsi
1800500c9:	41 5f                	pop    %r15