180051a67:	48 8b d0             	mov    %rax,%rdx
180051a6a:	e8 6d 1e ff ff       	call   0x1800438dc
180051a6f:	48 8b f0             	mov    %rax,%rsi
180051a72:	48 85 c0             	test   %rax,%rax
180051a75:	74 53                	je     0x180051aca
180051a77:	48 8b ce             	mov    %rsi,%rcx
180051a7a:	e8 f1 ce 0e 00       	call   0x18013e970
180051a7f:	44 8b 48 48          	mov    0x48(%rax),%r9d
180051a83:	41 83 f9 ff          	cmp    $0xffffffff,%r9d
180051a87:	74 1e                	je     0x180051aa7
180051a89:	44 8b 40 40          	mov    0x40(%rax),%r8d
180051a8d:	48 8b 57 10          	mov    0x10(%rdi),%rdx
180051a91:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
180051a95:	e8 a6 81 fe ff       	call   0x180039c40
180051a9a:	48 8b c8             	mov    %rax,%rcx
180051a9d:	e8 ce ce 0e 00       	call   0x18013e970
180051aa2:	66 83 48 4e 02       	orw    $0x2,0x4e(%rax)
180051aa7:	48 8b ce             	mov    %rsi,%rcx
180051aaa:	e8 c1 ce 0e 00       	call   0x18013e970
180051aaf:	48 8b 70 50          	mov    0x50(%rax),%rsi
180051ab3:	48 85 f6             	test   %rsi,%rsi
180051ab6:	75 bf                	jne    0x180051a77
180051ab8:	4d 8b b5 e8 00 00 00 	mov    0xe8(%r13),%r14
180051abf:	4d 8b bd c0 00 00 00 	mov    0xc0(%r13),%r15
180051ac6:	48 8b 5f 08          	mov    0x8(%rdi),%rbx
180051aca:	33 d2                	xor    %edx,%edx
180051acc:	49 8b c4             	mov    %r12,%rax
180051acf:	49 f7 f6             	div    %r14
180051ad2:	49 8b cf             	mov    %r15,%rcx
180051ad5:	83 cd ff             	or     $0xffffffff,%ebp
180051ad8:	48 8b d0             	mov    %rax,%rdx
180051adb:	e8 fc 1d ff ff       	call   0x1800438dc
180051ae0:	33 f6                	xor    %esi,%esi
180051ae2:	4c 8b e0             	mov    %rax,%r12
180051ae5:	44 8d 7e 10          	lea    0x10(%rsi),%r15d
180051ae9:	48 85 c0             	test   %rax,%rax
180051aec:	0f 84 0e 02 00 00    	je     0x180051d00
180051af2:	4c 8b ac 24 b8 00 00 	mov    0xb8(%rsp),%r13
180051af9:	00
180051afa:	49 8b cc             	mov    %r12,%rcx
180051afd:	e8 6e ce 0e 00       	call   0x18013e970
180051b02:	48 8b d8             	mov    %rax,%rbx
180051b05:	8b 48 40             	mov    0x40(%rax),%ecx
180051b08:	3b cd                	cmp    %ebp,%ecx
180051b0a:	74 2e                	je     0x180051b3a
180051b0c:	48 8b 47 20          	mov    0x20(%rdi),%rax
180051b10:	8b e9                	mov    %ecx,%ebp
180051b12:	8b ce                	mov    %esi,%ecx
180051b14:	89 8c 24 a8 00 00 00 	mov    %ecx,0xa8(%rsp)
180051b1b:	48 85 c0             	test   %rax,%rax
180051b1e:	74 06                	je     0x180051b26
180051b20:	48 83 c0 58          	add    $0x58,%rax
180051b24:	eb 08                	jmp    0x180051b2e
180051b26:	48 8b 47 08          	mov    0x8(%rdi),%rax
180051b2a:	48 83 c0 50          	add    $0x50,%rax
180051b2e:	8b 50 08             	mov    0x8(%rax),%edx
180051b31:	89 94 24 a0 00 00 00 	mov    %edx,0xa0(%rsp)
180051b38:	eb 0e                	jmp    0x180051b48
180051b3a:	8b 8c 24 a8 00 00 00 	mov    0xa8(%rsp),%ecx
180051b41:	8b 94 24 a0 00 00 00 	mov    0xa0(%rsp),%edx
180051b48:	0f b7 43 4e          	movzwl 0x4e(%rbx),%eax
180051b4c:	a8 02                	test   $0x2,%al
180051b4e:	74 33                	je     0x180051b83
180051b50:	8b f2                	mov    %edx,%esi
180051b52:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
180051b57:	66 23 c1             	and    %cx,%ax
180051b5a:	ff c2                	inc    %edx
180051b5c:	89 94 24 a0 00 00 00 	mov    %edx,0xa0(%rsp)
180051b63:	44 8b c6             	mov    %esi,%r8d
180051b66:	8b d5                	mov    %ebp,%edx
180051b68:	66 89 43 4e          	mov    %ax,0x4e(%rbx)
180051b6c:	48 8b cf             	mov    %rdi,%rcx
180051b6f:	e8 dc f7 ff ff       	call   0x180051350
180051b74:	48 8b c8             	mov    %rax,%rcx
180051b77:	0f b7 00             	movzwl (%rax),%eax
180051b7a:	66 83 c8 04          	or     $0x4,%ax
180051b7e:	66 89 01             	mov    %ax,(%rcx)
180051b81:	eb 0b                	jmp    0x180051b8e
180051b83:	8b f1                	mov    %ecx,%esi
180051b85:	ff c1                	inc    %ecx
180051b87:	89 8c 24 a8 00 00 00 	mov    %ecx,0xa8(%rsp)
180051b8e:	44 8b c6             	mov    %esi,%r8d
180051b91:	8b d5                	mov    %ebp,%edx
180051b93:	48 8b cf             	mov    %rdi,%rcx
180051b96:	e8 b5 f7 ff ff       	call   0x180051350
180051b9b:	48 8b c8             	mov    %rax,%rcx
180051b9e:	8b 43 44             	mov    0x44(%rbx),%eax
180051ba1:	89 41 10             	mov    %eax,0x10(%rcx)
180051ba4:	48 8b cf             	mov    %rdi,%rcx
180051ba7:	e8 a4 f7 ff ff       	call   0x180051350
180051bac:	48 8b c8             	mov    %rax,%rcx
180051baf:	8b 43 48             	mov    0x48(%rbx),%eax
180051bb2:	89 41 14             	mov    %eax,0x14(%rcx)
180051bb5:	0f b7 43 4c          	movzwl 0x4c(%rbx),%eax
180051bb9:	a8 02                	test   $0x2,%al
180051bbb:	74 19                	je     0x180051bd6
180051bbd:	48 8b cf             	mov    %rdi,%rcx
180051bc0:	e8 8b f7 ff ff       	call   0x180051350
180051bc5:	48 8b c8             	mov    %rax,%rcx
180051bc8:	0f b7 00             	movzwl (%rax),%eax
180051bcb:	66 41 0b c7          	or     %r15w,%ax
180051bcf:	66 89 01             	mov    %ax,(%rcx)
180051bd2:	0f b7 43 4c          	movzwl 0x4c(%rbx),%eax
180051bd6:	a8 08                	test   $0x8,%al
180051bd8:	74 1a                	je     0x180051bf4
180051bda:	44 8b c6             	mov    %esi,%r8d
180051bdd:	8b d5                	mov    %ebp,%edx
180051bdf:	48 8b cf             	mov    %rdi,%rcx
180051be2:	e8 69 f7 ff ff       	call   0x180051350
180051be7:	48 8b c8             	mov    %rax,%rcx
180051bea:	0f b7 00             	movzwl (%rax),%eax
180051bed:	66 83 c8 20          	or     $0x20,%ax
180051bf1:	66 89 01             	mov    %ax,(%rcx)
180051bf4:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
180051bf8:	b2 02                	mov    $0x2,%dl
180051bfa:	44 8b 43 3c          	mov    0x3c(%rbx),%r8d
180051bfe:	48 8b 49 10          	mov    0x10(%rcx),%rcx
180051c02:	e8 5d b3 0e 00       	call   0x18013cf64
180051c07:	48 8b c8             	mov    %rax,%rcx
180051c0a:	e8 61 cd 0e 00       	call   0x18013e970
180051c0f:	4c 8b f8             	mov    %rax,%r15
180051c12:	83 78 44 05          	cmpl   $0x5,0x44(%rax)
180051c16:	4c 8b b0 c8 00 00 00 	mov    0xc8(%rax),%r14
180051c1d:	75 15                	jne    0x180051c34
180051c1f:	83 7b 48 ff          	cmpl   $0xffffffff,0x48(%rbx)
180051c23:	75 0f                	jne    0x180051c34
180051c25:	48 8b 84 24 c0 00 00 	mov    0xc0(%rsp),%rax
180051c2c:	00
180051c2d:	48 ff 80 60 01 00 00 	incq   0x160(%rax)
180051c34:	41 8b 4f 6c          	mov    0x6c(%r15),%ecx
180051c38:	e8 cf e7 ff ff       	call   0x18005040c
180051c3d:	8b 8c 24 b0 00 00 00 	mov    0xb0(%rsp),%ecx
180051c44:	44 8b c6             	mov    %esi,%r8d
180051c47:	4d 8b 4f 10          	mov    0x10(%r15),%r9
180051c4b:	3b c8                	cmp    %eax,%ecx
180051c4d:	8b d5                	mov    %ebp,%edx
180051c4f:	0f 43 c8             	cmovae %eax,%ecx
180051c52:	89 8c 24 b0 00 00 00 	mov    %ecx,0xb0(%rsp)
180051c59:	48 8b cf             	mov    %rdi,%rcx
180051c5c:	e8 ef f6 ff ff       	call   0x180051350
180051c61:	48 8b c8             	mov    %rax,%rcx
180051c64:	41 8b 41 18          	mov    0x18(%r9),%eax
180051c68:	89 41 04             	mov    %eax,0x4(%rcx)
180051c6b:	b9 01 00 00 00       	mov    $0x1,%ecx
180051c70:	84 4b 4c             	test   %cl,0x4c(%rbx)
180051c73:	74 07                	je     0x180051c7c
180051c75:	41 b1 03             	mov    $0x3,%r9b
180051c78:	b0 07                	mov    $0x7,%al
180051c7a:	eb 11                	jmp    0x180051c8d
180051c7c:	4d 85 f6             	test   %r14,%r14
180051c7f:	75 07                	jne    0x180051c88
180051c81:	41 b1 02             	mov    $0x2,%r9b
180051c84:	8a c1                	mov    %cl,%al
180051c86:	eb 05                	jmp    0x180051c8d
180051c88:	44 8a c9             	mov    %cl,%r9b
180051c8b:	32 c0                	xor    %al,%al
180051c8d:	48 8b cf             	mov    %rdi,%rcx
180051c90:	88 44 24 20          	mov    %al,0x20(%rsp)
180051c94:	e8 6f 3c 00 00       	call   0x180055908
180051c99:	44 8b c6             	mov    %esi,%r8d
180051c9c:	8b d5                	mov    %ebp,%edx
180051c9e:	48 8b cf             	mov    %rdi,%rcx
180051ca1:	e8 aa f6 ff ff       	call   0x180051350
180051ca6:	48 8b c8             	mov    %rax,%rcx
180051ca9:	33 f6                	xor    %esi,%esi
180051cab:	48 8b 43 30          	mov    0x30(%rbx),%rax
180051caf:	48 89 41 08          	mov    %rax,0x8(%rcx)
180051cb3:	4d 85 f6             	test   %r14,%r14
180051cb6:	74 29                	je     0x180051ce1
180051cb8:	49 8b 47 10          	mov    0x10(%r15),%rax
180051cbc:	49 8b 95 d8 00 00 00 	mov    0xd8(%r13),%rdx
180051cc3:	8b 48 18             	mov    0x18(%rax),%ecx
180051cc6:	0f ab 0a             	bts    %ecx,(%rdx)
180051cc9:	8b 44 24 30          	mov    0x30(%rsp),%eax
180051ccd:	8d 4e 01             	lea    0x1(%rsi),%ecx
180051cd0:	41 38 b6 62 01 00 00 	cmp    %sil,0x162(%r14)
180051cd7:	0f b6 c0             	movzbl %al,%eax
180051cda:	0f 45 c1             	cmovne %ecx,%eax
180051cdd:	89 44 24 30          	mov    %eax,0x30(%rsp)
180051ce1:	49 8b cc             	mov    %r12,%rcx
180051ce4:	e8 87 cc 0e 00       	call   0x18013e970
180051ce9:	41 bf 10 00 00 00    	mov    $0x10,%r15d
180051cef:	4c 8b 60 50          	mov    0x50(%rax),%r12
180051cf3:	4d 85 e4             	test   %r12,%r12
180051cf6:	0f 85 fe fd ff ff    	jne    0x180051afa
180051cfc:	48 8b 5f 08          	mov    0x8(%rdi),%rbx
180051d00:	48 8b 83 50 01 00 00 	mov    0x150(%rbx),%rax
180051d07:	bd 01 00 00 00       	mov    $0x1,%ebp
180051d0c:	48 85 c0             	test   %rax,%rax
180051d0f:	74 35                	je     0x180051d46
180051d11:	48 8b 48 10          	mov    0x10(%rax),%rcx
180051d15:	48 85 c9             	test   %rcx,%rcx
180051d18:	74 2c                	je     0x180051d46
180051d1a:	44 0f b7 47 28       	movzwl 0x28(%rdi),%r8d
180051d1f:	44 84 c5             	test   %r8b,%bpl
180051d22:	75 22                	jne    0x180051d46
180051d24:	8b 49 40             	mov    0x40(%rcx),%ecx
180051d27:	e8 e0 e6 ff ff       	call   0x18005040c
180051d2c:	39 84 24 b0 00 00 00 	cmp    %eax,0xb0(%rsp)
180051d33:	73 07                	jae    0x180051d3c
180051d35:	40 38 74 24 30       	cmp    %sil,0x30(%rsp)
180051d3a:	74 0a                	je     0x180051d46
180051d3c:	66 41 83 c8 08       	or     $0x8,%r8w
180051d41:	66 44 89 47 28       	mov    %r8w,0x28(%rdi)
180051d46:	8b d6                	mov    %esi,%edx
180051d48:	48 8b 47 20          	mov    0x20(%rdi),%rax
180051d4c:	48 85 c0             	test   %rax,%rax
180051d4f:	74 06                	je     0x180051d57
180051d51:	48 83 c0 58          	add    $0x58,%rax
180051d55:	eb 08                	jmp    0x180051d5f
180051d57:	48 8b 47 08          	mov    0x8(%rdi),%rax
180051d5b:	48 83 c0 50          	add    $0x50,%rax
180051d5f:	3b 50 10             	cmp    0x10(%rax),%edx
180051d62:	73 56                	jae    0x180051dba
180051d64:	8b de                	mov    %esi,%ebx
180051d66:	40 38 77 2b          	cmp    %sil,0x2b(%rdi)
180051d6a:	76 4a                	jbe    0x180051db6
180051d6c:	44 8b c3             	mov    %ebx,%r8d
180051d6f:	48 8b cf             	mov    %rdi,%rcx
180051d72:	e8 d9 f5 ff ff       	call   0x180051350
180051d77:	48 8b f0             	mov    %rax,%rsi
180051d7a:	44 8b 40 14          	mov    0x14(%rax),%r8d
180051d7e:	41 83 f8 ff          	cmp    $0xffffffff,%r8d
180051d82:	74 26                	je     0x180051daa
180051d84:	e8 f3 f5 ff ff       	call   0x18005137c
180051d89:	89 46 14             	mov    %eax,0x14(%rsi)
180051d8c:	0f b7 06             	movzwl (%rsi),%eax
180051d8f:	41 84 c7             	test   %al,%r15b
180051d92:	74 16                	je     0x180051daa
180051d94:	44 8b 46 14          	mov    0x14(%rsi),%r8d
180051d98:	e8 b3 f5 ff ff       	call   0x180051350
180051d9d:	48 8b c8             	mov    %rax,%rcx
180051da0:	0f b7 00             	movzwl (%rax),%eax
180051da3:	66 41 0b c7          	or     %r15w,%ax
180051da7:	66 89 01             	mov    %ax,(%rcx)
180051daa:	0f b6 47 2b          	movzbl 0x2b(%rdi),%eax
180051dae:	03 dd                	add    %ebp,%ebx
180051db0:	3b d8                	cmp    %eax,%ebx
180051db2:	72 b8                	jb     0x180051d6c
180051db4:	33 f6                	xor    %esi,%esi
180051db6:	03 d5                	add    %ebp,%edx
180051db8:	eb 8e                	jmp    0x180051d48
180051dba:	f6 47 28 02          	testb  $0x2,0x28(%rdi)
180051dbe:	74 44                	je     0x180051e04
180051dc0:	b9 08 18 00 00       	mov    $0x1808,%ecx
180051dc5:	e8 4a 4b ff ff       	call   0x180046914
180051dca:	48 85 c0             	test   %rax,%rax
180051dcd:	74 25                	je     0x180051df4
180051dcf:	ba 00 01 00 00       	mov    $0x100,%edx
180051dd4:	48 8d 48 08          	lea    0x8(%rax),%rcx
180051dd8:	48 89 10             	mov    %rdx,(%rax)
180051ddb:	48 8b c1             	mov    %rcx,%rax
180051dde:	48 89 70 10          	mov    %rsi,0x10(%rax)
180051de2:	48 89 40 08          	mov    %rax,0x8(%rax)
180051de6:	48 89 00             	mov    %rax,(%rax)
180051de9:	48 83 c0 18          	add    $0x18,%rax
180051ded:	48 2b d5             	sub    %rbp,%rdx
180051df0:	75 ec                	jne    0x180051dde
180051df2:	eb 03                	jmp    0x180051df7
180051df4:	48 8b ce             	mov    %rsi,%rcx
180051df7:	48 89 4f 38          	mov    %rcx,0x38(%rdi)
180051dfb:	48 85 c9             	test   %rcx,%rcx
180051dfe:	0f 84 da fb ff ff    	je     0x1800519de
180051e04:	48 8b 47 08          	mov    0x8(%rdi),%rax
180051e08:	48 8b 88 90 00 00 00 	mov    0x90(%rax),%rcx
180051e0f:	48 85 c9             	test   %rcx,%rcx
180051e12:	74 1c                	je     0x180051e30
180051e14:	48 8b 89 60 01 00 00 	mov    0x160(%rcx),%rcx
180051e1b:	48 8b 57 10          	mov    0x10(%rdi),%rdx
180051e1f:	48 8b 01             	mov    (%rcx),%rax
180051e22:	48 8b 40 68          	mov    0x68(%rax),%rax
180051e26:	ff d0                	call   *%rax
180051e28:	0f 1f 00             	nopl   (%rax)
180051e2b:	48 8b c8             	mov    %rax,%rcx
180051e2e:	eb 05                	jmp    0x180051e35
180051e30:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
180051e35:	8b c6                	mov    %esi,%eax
180051e37:	40 38 74 24 34       	cmp    %sil,0x34(%rsp)
180051e3c:	0f 84 c3 01 00 00    	je     0x180052005
180051e42:	48 85 c9             	test   %rcx,%rcx
180051e45:	74 0a                	je     0x180051e51
180051e47:	48 39 71 40          	cmp    %rsi,0x40(%rcx)
180051e4b:	0f 85 b4 01 00 00    	jne    0x180052005
180051e51:	b9 18 01 00 00       	mov    $0x118,%ecx
180051e56:	e8 b9 4a ff ff       	call   0x180046914
180051e5b:	48 8b d8             	mov    %rax,%rbx
180051e5e:	41 be 40 00 00 00    	mov    $0x40,%r14d
180051e64:	48 85 c0             	test   %rax,%rax
180051e67:	0f 84 a1 00 00 00    	je     0x180051f0e
180051e6d:	48 8d 48 18          	lea    0x18(%rax),%rcx
180051e71:	48 89 70 10          	mov    %rsi,0x10(%rax)
180051e75:	48 89 70 28          	mov    %rsi,0x28(%rax)
180051e79:	89 68 30             	mov    %ebp,0x30(%rax)
180051e7c:	44 89 70 34          	mov    %r14d,0x34(%rax)
180051e80:	41 8d 46 c6          	lea    -0x3a(%r14),%eax
180051e84:	89 43 38             	mov    %eax,0x38(%rbx)
180051e87:	89 43 48             	mov    %eax,0x48(%rbx)
180051e8a:	48 8d 43 68          	lea    0x68(%rbx),%rax
180051e8e:	48 89 40 08          	mov    %rax,0x8(%rax)
180051e92:	48 89 00             	mov    %rax,(%rax)
180051e95:	48 8d 43 78          	lea    0x78(%rbx),%rax
180051e99:	48 89 40 08          	mov    %rax,0x8(%rax)
180051e9d:	48 89 00             	mov    %rax,(%rax)
180051ea0:	48 8d 83 a0 00 00 00 	lea    0xa0(%rbx),%rax
180051ea7:	48 89 40 08          	mov    %rax,0x8(%rax)
180051eab:	48 89 00             	mov    %rax,(%rax)
180051eae:	48 8d 83 b0 00 00 00 	lea    0xb0(%rbx),%rax
180051eb5:	48 89 40 08          	mov    %rax,0x8(%rax)
180051eb9:	48 89 00             	mov    %rax,(%rax)
180051ebc:	48 8d 05 1d 19 0f 00 	lea    0xf191d(%rip),%rax        # 0x1801437e0
180051ec3:	48 89 03             	mov    %rax,(%rbx)
180051ec6:	48 8d 83 d8 00 00 00 	lea    0xd8(%rbx),%rax
180051ecd:	48 89 40 08          	mov    %rax,0x8(%rax)
180051ed1:	48 89 00             	mov    %rax,(%rax)
180051ed4:	48 8d 83 e8 00 00 00 	lea    0xe8(%rbx),%rax
180051edb:	48 89 40 08          	mov    %rax,0x8(%rax)
180051edf:	48 89 00             	mov    %rax,(%rax)
180051ee2:	48 8d 83 f8 00 00 00 	lea    0xf8(%rbx),%rax
180051ee9:	48 89 40 08          	mov    %rax,0x8(%rax)
180051eed:	48 89 00             	mov    %rax,(%rax)
180051ef0:	48 8d 83 08 01 00 00 	lea    0x108(%rbx),%rax
180051ef7:	48 89 40 08          	mov    %rax,0x8(%rax)
180051efb:	48 89 00             	mov    %rax,(%rax)
180051efe:	48 89 49 08          	mov    %rcx,0x8(%rcx)
180051f02:	48 89 09             	mov    %rcx,(%rcx)
180051f05:	4c 89 73 40          	mov    %r14,0x40(%rbx)
180051f09:	89 73 08             	mov    %esi,0x8(%rbx)
180051f0c:	eb 03                	jmp    0x180051f11
180051f0e:	48 8b de             	mov    %rsi,%rbx
180051f11:	48 89 5f 40          	mov    %rbx,0x40(%rdi)
180051f15:	48 85 db             	test   %rbx,%rbx
180051f18:	0f 84 c0 fa ff ff    	je     0x1800519de
180051f1e:	48 8b 47 20          	mov    0x20(%rdi),%rax
180051f22:	48 85 c0             	test   %rax,%rax
180051f25:	74 06                	je     0x180051f2d
180051f27:	4c 8d 40 58          	lea    0x58(%rax),%r8
180051f2b:	eb 08                	jmp    0x180051f35
180051f2d:	4c 8b 47 08          	mov    0x8(%rdi),%r8
180051f31:	49 83 c0 50          	add    $0x50,%r8
180051f35:	48 85 c0             	test   %rax,%rax
180051f38:	74 06                	je     0x180051f40
180051f3a:	48 8d 50 38          	lea    0x38(%rax),%rdx
180051f3e:	eb 08                	jmp    0x180051f48
180051f40:	48 8b 57 08          	mov    0x8(%rdi),%rdx
180051f44:	48 83 c2 30          	add    $0x30,%rdx
180051f48:	8a 4f 2a             	mov    0x2a(%rdi),%cl
180051f4b:	48 8b 52 08          	mov    0x8(%rdx),%rdx
180051f4f:	41 8b 40 10          	mov    0x10(%r8),%eax
180051f53:	48 d3 ea             	shr    %cl,%rdx
180051f56:	48 8d 4b 10          	lea    0x10(%rbx),%rcx