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
180051f5a:	89 43 08             	mov    %eax,0x8(%rbx)
180051f5d:	e8 06 18 ff ff       	call   0x180043768
180051f62:	41 b9 00 00 01 00    	mov    $0x10000,%r9d
180051f68:	85 c0                	test   %eax,%eax
180051f6a:	0f 88 95 00 00 00    	js     0x180052005
180051f70:	44 89 4b 58          	mov    %r9d,0x58(%rbx)
180051f74:	33 d2                	xor    %edx,%edx
180051f76:	c7 43 50 50 00 00 00 	movl   $0x50,0x50(%rbx)
180051f7d:	44 89 7b 5c          	mov    %r15d,0x5c(%rbx)
180051f81:	c7 43 60 32 00 00 00 	movl   $0x32,0x60(%rbx)
180051f88:	c7 43 54 20 03 00 00 	movl   $0x320,0x54(%rbx)
180051f8f:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
180051f93:	66 c1 e0 04          	shl    $0x4,%ax
180051f97:	44 0f b7 c0          	movzwl %ax,%r8d
180051f9b:	44 89 8b 90 00 00 00 	mov    %r9d,0x90(%rbx)
180051fa2:	44 89 83 88 00 00 00 	mov    %r8d,0x88(%rbx)
180051fa9:	44 89 bb 94 00 00 00 	mov    %r15d,0x94(%rbx)
180051fb0:	41 8d 48 27          	lea    0x27(%r8),%ecx
180051fb4:	8b c1                	mov    %ecx,%eax
180051fb6:	41 f7 f0             	div    %r8d
180051fb9:	8b c2                	mov    %edx,%eax
180051fbb:	33 d2                	xor    %edx,%edx
180051fbd:	2b c1                	sub    %ecx,%eax
180051fbf:	05 00 10 00 00       	add    $0x1000,%eax
180051fc4:	41 f7 f0             	div    %r8d
180051fc7:	89 83 98 00 00 00    	mov    %eax,0x98(%rbx)
180051fcd:	c1 e0 04             	shl    $0x4,%eax
180051fd0:	89 83 8c 00 00 00    	mov    %eax,0x8c(%rbx)
180051fd6:	8b c6                	mov    %esi,%eax
180051fd8:	85 c0                	test   %eax,%eax
180051fda:	78 29                	js     0x180052005
180051fdc:	44 89 8b c8 00 00 00 	mov    %r9d,0xc8(%rbx)
180051fe3:	44 89 b3 c0 00 00 00 	mov    %r14d,0xc0(%rbx)
180051fea:	44 89 bb cc 00 00 00 	mov    %r15d,0xcc(%rbx)
180051ff1:	c7 83 d0 00 00 00 3f 	movl   $0x3f,0xd0(%rbx)
180051ff8:	00 00 00
180051ffb:	c7 83 c4 00 00 00 f0 	movl   $0x3f0,0xc4(%rbx)
180052002:	03 00 00
180052005:	48 83 c4 58          	add    $0x58,%rsp
180052009:	41 5f                	pop    %r15
18005200b:	41 5e                	pop    %r14
18005200d:	41 5d                	pop    %r13
18005200f:	41 5c                	pop    %r12
180052011:	5f                   	pop    %rdi
180052012:	5e                   	pop    %rsi
180052013:	5d                   	pop    %rbp
180052014:	5b                   	pop    %rbx
180052015:	c3                   	ret
180052016:	cc                   	int3
180052017:	cc                   	int3
180052018:	48 8b 41 08          	mov    0x8(%rcx),%rax
18005201c:	48 8b 40 70          	mov    0x70(%rax),%rax
180052020:	c3                   	ret
180052021:	cc                   	int3
180052022:	cc                   	int3
180052023:	cc                   	int3
180052024:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180052029:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
18005202e:	44 89 44 24 18       	mov    %r8d,0x18(%rsp)
180052033:	55                   	push   %rbp
180052034:	56                   	push   %rsi
180052035:	57                   	push   %rdi
180052036:	41 54                	push   %r12
180052038:	41 55                	push   %r13
18005203a:	41 56                	push   %r14
18005203c:	41 57                	push   %r15
18005203e:	48 83 ec 40          	sub    $0x40,%rsp
180052042:	33 c0                	xor    %eax,%eax
180052044:	44 8b e2             	mov    %edx,%r12d
180052047:	89 44 24 20          	mov    %eax,0x20(%rsp)
18005204b:	45 33 d2             	xor    %r10d,%r10d
18005204e:	48 8b f9             	mov    %rcx,%rdi
180052051:	85 c0                	test   %eax,%eax
180052053:	75 6c                	jne    0x1800520c1
180052055:	45 33 c0             	xor    %r8d,%r8d
180052058:	44 38 47 2b          	cmp    %r8b,0x2b(%rdi)
18005205c:	76 4e                	jbe    0x1800520ac
18005205e:	48 8d 84 24 90 00 00 	lea    0x90(%rsp),%rax
180052065:	00
180052066:	44 0f a3 00          	bt     %r8d,(%rax)
18005206a:	73 30                	jae    0x18005209c
18005206c:	41 8b d4             	mov    %r12d,%edx
18005206f:	48 8b cf             	mov    %rdi,%rcx
180052072:	e8 6d f4 ff ff       	call   0x1800514e4
180052077:	84 c0                	test   %al,%al
180052079:	74 21                	je     0x18005209c
18005207b:	45 85 d2             	test   %r10d,%r10d
18005207e:	75 13                	jne    0x180052093
180052080:	41 8b d4             	mov    %r12d,%edx
180052083:	48 8b cf             	mov    %rdi,%rcx
180052086:	e8 c5 f2 ff ff       	call   0x180051350
18005208b:	0f b7 08             	movzwl (%rax),%ecx
18005208e:	f6 c1 01             	test   $0x1,%cl
180052091:	75 09                	jne    0x18005209c
180052093:	48 8d 44 24 20       	lea    0x20(%rsp),%rax
180052098:	44 0f ab 00          	bts    %r8d,(%rax)
18005209c:	0f b6 47 2b          	movzbl 0x2b(%rdi),%eax
1800520a0:	41 ff c0             	inc    %r8d
1800520a3:	44 3b c0             	cmp    %eax,%r8d
1800520a6:	72 b6                	jb     0x18005205e
1800520a8:	8b 44 24 20          	mov    0x20(%rsp),%eax
1800520ac:	41 ff c2             	inc    %r10d
1800520af:	41 83 fa 02          	cmp    $0x2,%r10d
1800520b3:	72 9c                	jb     0x180052051
1800520b5:	85 c0                	test   %eax,%eax
1800520b7:	75 08                	jne    0x1800520c1
1800520b9:	83 cb ff             	or     $0xffffffff,%ebx
1800520bc:	e9 32 01 00 00       	jmp    0x1800521f3
1800520c1:	83 cb ff             	or     $0xffffffff,%ebx
1800520c4:	89 44 24 28          	mov    %eax,0x28(%rsp)
1800520c8:	45 33 ed             	xor    %r13d,%r13d
1800520cb:	48 c7 44 24 20 00 00 	movq   $0x800000,0x20(%rsp)
1800520d2:	80 00
1800520d4:	45 33 db             	xor    %r11d,%r11d
1800520d7:	33 ed                	xor    %ebp,%ebp
1800520d9:	49 be ff ff ff ff ff 	movabs $0x7fffffffffffffff,%r14
1800520e0:	ff ff 7f
1800520e3:	8b f3                	mov    %ebx,%esi
1800520e5:	44 8b fb             	mov    %ebx,%r15d
1800520e8:	40 38 6f 2b          	cmp    %bpl,0x2b(%rdi)
1800520ec:	0f 86 be 00 00 00    	jbe    0x1800521b0
1800520f2:	48 8b 5c 24 20       	mov    0x20(%rsp),%rbx
1800520f7:	48 8d 44 24 28       	lea    0x28(%rsp),%rax
1800520fc:	0f a3 28             	bt     %ebp,(%rax)
1800520ff:	0f 83 9a 00 00 00    	jae    0x18005219f
180052105:	44 8b c5             	mov    %ebp,%r8d
180052108:	41 8b d4             	mov    %r12d,%edx
18005210b:	48 8b cf             	mov    %rdi,%rcx
18005210e:	e8 3d f2 ff ff       	call   0x180051350
180052113:	48 8b d0             	mov    %rax,%rdx
180052116:	e8 a1 f2 ff ff       	call   0x1800513bc
18005211b:	48 8b c8             	mov    %rax,%rcx
18005211e:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
180052123:	48 8b 00             	mov    (%rax),%rax
180052126:	48 8b 40 58          	mov    0x58(%rax),%rax
18005212a:	ff d0                	call   *%rax
18005212c:	0f 1f 00             	nopl   (%rax)
18005212f:	4c 8b d8             	mov    %rax,%r11
180052132:	48 85 c0             	test   %rax,%rax
180052135:	74 04                	je     0x18005213b
180052137:	4c 8b 68 08          	mov    0x8(%rax),%r13
18005213b:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
180052140:	4d 3b ee             	cmp    %r14,%r13
180052143:	44 8b cd             	mov    %ebp,%r9d
180052146:	49 8b cd             	mov    %r13,%rcx
180052149:	49 0f 4d ce          	cmovge %r14,%rcx
18005214d:	44 0f 4d ce          	cmovge %esi,%r9d
180052151:	4c 8b f1             	mov    %rcx,%r14
180052154:	4c 8b d1             	mov    %rcx,%r10
180052157:	8b 80 8c 01 00 00    	mov    0x18c(%rax),%eax
18005215d:	41 8b f1             	mov    %r9d,%esi
180052160:	83 f8 02             	cmp    $0x2,%eax
180052163:	74 3a                	je     0x18005219f
180052165:	83 f8 04             	cmp    $0x4,%eax
180052168:	74 35                	je     0x18005219f
18005216a:	44 8b c5             	mov    %ebp,%r8d
18005216d:	41 8b d4             	mov    %r12d,%edx
180052170:	48 8b cf             	mov    %rdi,%rcx
180052173:	e8 d8 f1 ff ff       	call   0x180051350
180052178:	48 8b 48 18          	mov    0x18(%rax),%rcx
18005217c:	48 8b 84 24 98 00 00 	mov    0x98(%rsp),%rax
180052183:	00
180052184:	48 3b c8             	cmp    %rax,%rcx
180052187:	76 05                	jbe    0x18005218e
180052189:	48 2b c8             	sub    %rax,%rcx
18005218c:	eb 06                	jmp    0x180052194
18005218e:	48 2b c1             	sub    %rcx,%rax
180052191:	48 8b c8             	mov    %rax,%rcx
180052194:	48 3b cb             	cmp    %rbx,%rcx
180052197:	7d 06                	jge    0x18005219f
180052199:	48 8b d9             	mov    %rcx,%rbx
18005219c:	44 8b fd             	mov    %ebp,%r15d
18005219f:	0f b6 47 2b          	movzbl 0x2b(%rdi),%eax
1800521a3:	ff c5                	inc    %ebp
1800521a5:	3b e8                	cmp    %eax,%ebp