18004fa20:	8b 89 58 0e 00 00    	mov    0xe58(%rcx),%ecx
18004fa26:	44 2b d2             	sub    %edx,%r10d
18004fa29:	41 2b 91 4c 0e 00 00 	sub    0xe4c(%r9),%edx
18004fa30:	41 2b cb             	sub    %r11d,%ecx
18004fa33:	8b c2                	mov    %edx,%eax
18004fa35:	48 03 c8             	add    %rax,%rcx
18004fa38:	eb 19                	jmp    0x18004fa53
18004fa3a:	8b 49 18             	mov    0x18(%rcx),%ecx
18004fa3d:	44 8b d0             	mov    %eax,%r10d
18004fa40:	41 8b c3             	mov    %r11d,%eax
18004fa43:	44 2b d1             	sub    %ecx,%r10d
18004fa46:	41 2b 81 4c 0e 00 00 	sub    0xe4c(%r9),%eax
18004fa4d:	4c 03 d0             	add    %rax,%r10
18004fa50:	41 2b cb             	sub    %r11d,%ecx
18004fa53:	49 03 ca             	add    %r10,%rcx
18004fa56:	74 1d                	je     0x18004fa75
18004fa58:	49 6b c2 64          	imul   $0x64,%r10,%rax
18004fa5c:	33 d2                	xor    %edx,%edx
18004fa5e:	48 f7 f1             	div    %rcx
18004fa61:	4c 8b c0             	mov    %rax,%r8
18004fa64:	4d 85 d2             	test   %r10,%r10
18004fa67:	74 0c                	je     0x18004fa75
18004fa69:	45 85 c0             	test   %r8d,%r8d
18004fa6c:	b8 01 00 00 00       	mov    $0x1,%eax
18004fa71:	44 0f 44 c0          	cmove  %eax,%r8d
18004fa75:	41 8b c0             	mov    %r8d,%eax
18004fa78:	c3                   	ret
18004fa79:	cc                   	int3
18004fa7a:	cc                   	int3
18004fa7b:	cc                   	int3
18004fa7c:	44 8b da             	mov    %edx,%r11d
18004fa7f:	8b c2                	mov    %edx,%eax
18004fa81:	4d 8d 53 ff          	lea    -0x1(%r11),%r10
18004fa85:	4d 03 10             	add    (%r8),%r10
18004fa88:	83 e8 01             	sub    $0x1,%eax
18004fa8b:	74 70                	je     0x18004fafd
18004fa8d:	83 e8 01             	sub    $0x1,%eax
18004fa90:	74 60                	je     0x18004faf2
18004fa92:	83 e8 01             	sub    $0x1,%eax
18004fa95:	74 50                	je     0x18004fae7
18004fa97:	83 e8 01             	sub    $0x1,%eax
18004fa9a:	74 40                	je     0x18004fadc
18004fa9c:	83 e8 01             	sub    $0x1,%eax
18004fa9f:	74 30                	je     0x18004fad1
18004faa1:	83 e8 01             	sub    $0x1,%eax
18004faa4:	74 20                	je     0x18004fac6
18004faa6:	83 e8 01             	sub    $0x1,%eax
18004faa9:	74 10                	je     0x18004fabb
18004faab:	83 f8 01             	cmp    $0x1,%eax
18004faae:	75 52                	jne    0x18004fb02
18004fab0:	41 8a 02             	mov    (%r10),%al
18004fab3:	88 01                	mov    %al,(%rcx)
18004fab5:	48 ff c1             	inc    %rcx
18004fab8:	49 ff ca             	dec    %r10
18004fabb:	41 8a 02             	mov    (%r10),%al
18004fabe:	88 01                	mov    %al,(%rcx)
18004fac0:	48 ff c1             	inc    %rcx
18004fac3:	49 ff ca             	dec    %r10
18004fac6:	41 8a 02             	mov    (%r10),%al
18004fac9:	88 01                	mov    %al,(%rcx)
18004facb:	48 ff c1             	inc    %rcx
18004face:	49 ff ca             	dec    %r10
18004fad1:	41 8a 02             	mov    (%r10),%al
18004fad4:	88 01                	mov    %al,(%rcx)
18004fad6:	48 ff c1             	inc    %rcx
18004fad9:	49 ff ca             	dec    %r10
18004fadc:	41 8a 02             	mov    (%r10),%al
18004fadf:	88 01                	mov    %al,(%rcx)
18004fae1:	48 ff c1             	inc    %rcx
18004fae4:	49 ff ca             	dec    %r10
18004fae7:	41 8a 02             	mov    (%r10),%al
18004faea:	88 01                	mov    %al,(%rcx)
18004faec:	48 ff c1             	inc    %rcx
18004faef:	49 ff ca             	dec    %r10
18004faf2:	41 8a 02             	mov    (%r10),%al
18004faf5:	88 01                	mov    %al,(%rcx)
18004faf7:	48 ff c1             	inc    %rcx
18004fafa:	49 ff ca             	dec    %r10
18004fafd:	41 8a 02             	mov    (%r10),%al
18004fb00:	88 01                	mov    %al,(%rcx)
18004fb02:	4d 01 18             	add    %r11,(%r8)
18004fb05:	41 29 11             	sub    %edx,(%r9)
18004fb08:	c3                   	ret
18004fb09:	cc                   	int3
18004fb0a:	cc                   	int3
18004fb0b:	cc                   	int3
18004fb0c:	48 8b c4             	mov    %rsp,%rax
18004fb0f:	48 89 58 08          	mov    %rbx,0x8(%rax)
18004fb13:	4c 89 48 20          	mov    %r9,0x20(%rax)
18004fb17:	4c 89 40 18          	mov    %r8,0x18(%rax)
18004fb1b:	89 50 10             	mov    %edx,0x10(%rax)
18004fb1e:	55                   	push   %rbp
18004fb1f:	56                   	push   %rsi
18004fb20:	57                   	push   %rdi
18004fb21:	41 54                	push   %r12
18004fb23:	41 55                	push   %r13
18004fb25:	41 56                	push   %r14
18004fb27:	41 57                	push   %r15
18004fb29:	48 8b ec             	mov    %rsp,%rbp
18004fb2c:	48 83 ec 40          	sub    $0x40,%rsp
18004fb30:	8b 5d 60             	mov    0x60(%rbp),%ebx
18004fb33:	33 f6                	xor    %esi,%esi
18004fb35:	49 8b f9             	mov    %r9,%rdi
18004fb38:	89 5d ec             	mov    %ebx,-0x14(%rbp)
18004fb3b:	4d 8b c8             	mov    %r8,%r9
18004fb3e:	66 89 75 e0          	mov    %si,-0x20(%rbp)
18004fb42:	44 8b c2             	mov    %edx,%r8d
18004fb45:	8b c3                	mov    %ebx,%eax
18004fb47:	8b d6                	mov    %esi,%edx
18004fb49:	89 55 e8             	mov    %edx,-0x18(%rbp)
18004fb4c:	45 85 c0             	test   %r8d,%r8d
18004fb4f:	0f 84 7d 02 00 00    	je     0x18004fdd2
18004fb55:	4c 8d 79 04          	lea    0x4(%rcx),%r15
18004fb59:	44 8d 56 01          	lea    0x1(%rsi),%r10d
18004fb5d:	45 0f b7 67 04       	movzwl 0x4(%r15),%r12d
18004fb62:	4c 8b ee             	mov    %rsi,%r13
18004fb65:	41 8b 4f fc          	mov    -0x4(%r15),%ecx
18004fb69:	4d 03 e1             	add    %r9,%r12
18004fb6c:	45 0f b7 77 02       	movzwl 0x2(%r15),%r14d
18004fb71:	66 44 89 75 e4       	mov    %r14w,-0x1c(%rbp)
18004fb76:	83 e9 04             	sub    $0x4,%ecx
18004fb79:	74 2b                	je     0x18004fba6
18004fb7b:	83 e9 02             	sub    $0x2,%ecx
18004fb7e:	74 26                	je     0x18004fba6
18004fb80:	83 e9 01             	sub    $0x1,%ecx
18004fb83:	74 14                	je     0x18004fb99
18004fb85:	83 e9 01             	sub    $0x1,%ecx
18004fb88:	74 07                	je     0x18004fb91
18004fb8a:	83 f9 03             	cmp    $0x3,%ecx
18004fb8d:	74 40                	je     0x18004fbcf
18004fb8f:	eb 59                	jmp    0x18004fbea
18004fb91:	41 be 02 00 00 00    	mov    $0x2,%r14d
18004fb97:	eb 5b                	jmp    0x18004fbf4
18004fb99:	45 0f b7 2f          	movzwl (%r15),%r13d
18004fb9d:	45 0f b7 f2          	movzwl %r10w,%r14d
18004fba1:	4d 03 e9             	add    %r9,%r13
18004fba4:	eb 4e                	jmp    0x18004fbf4
18004fba6:	41 3b da             	cmp    %r10d,%ebx
18004fba9:	0f 82 19 02 00 00    	jb     0x18004fdc8
18004fbaf:	8a 07                	mov    (%rdi),%al
18004fbb1:	ff cb                	dec    %ebx
18004fbb3:	49 03 fa             	add    %r10,%rdi
18004fbb6:	88 45 e4             	mov    %al,-0x1c(%rbp)
18004fbb9:	44 0f b7 75 e4       	movzwl -0x1c(%rbp),%r14d
18004fbbe:	48 89 7d 58          	mov    %rdi,0x58(%rbp)
18004fbc2:	89 5d 60             	mov    %ebx,0x60(%rbp)
18004fbc5:	66 45 3b 37          	cmp    (%r15),%r14w
18004fbc9:	0f 87 f9 01 00 00    	ja     0x18004fdc8
18004fbcf:	45 0f b7 07          	movzwl (%r15),%r8d
18004fbd3:	33 d2                	xor    %edx,%edx
18004fbd5:	49 8b cc             	mov    %r12,%rcx
18004fbd8:	e8 a3 60 0e 00       	call   0x180135c80
18004fbdd:	8b 55 e8             	mov    -0x18(%rbp),%edx
18004fbe0:	41 ba 01 00 00 00    	mov    $0x1,%r10d
18004fbe6:	44 8b 45 48          	mov    0x48(%rbp),%r8d
18004fbea:	66 45 85 f6          	test   %r14w,%r14w
18004fbee:	0f 84 ae 01 00 00    	je     0x18004fda2
18004fbf4:	41 0f b7 d6          	movzwl %r14w,%edx
18004fbf8:	3b da                	cmp    %edx,%ebx
18004fbfa:	0f 82 c8 01 00 00    	jb     0x18004fdc8
18004fc00:	41 8b 47 fc          	mov    -0x4(%r15),%eax
18004fc04:	85 c0                	test   %eax,%eax
18004fc06:	0f 8e b5 01 00 00    	jle    0x18004fdc1
18004fc0c:	83 f8 06             	cmp    $0x6,%eax
18004fc0f:	0f 8e 69 01 00 00    	jle    0x18004fd7e
18004fc15:	83 f8 08             	cmp    $0x8,%eax
18004fc18:	0f 8e c8 00 00 00    	jle    0x18004fce6
18004fc1e:	83 f8 09             	cmp    $0x9,%eax
18004fc21:	74 4e                	je     0x18004fc71
18004fc23:	83 f8 0a             	cmp    $0xa,%eax
18004fc26:	74 27                	je     0x18004fc4f
18004fc28:	83 f8 0b             	cmp    $0xb,%eax
18004fc2b:	0f 84 4d 01 00 00    	je     0x18004fd7e
18004fc31:	83 f8 0c             	cmp    $0xc,%eax
18004fc34:	0f 85 87 01 00 00    	jne    0x18004fdc1
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