180103d35:	48 85 c0             	test   %rax,%rax
180103d38:	0f 84 8c 01 00 00    	je     0x180103eca
180103d3e:	44 0f b7 48 02       	movzwl 0x2(%rax),%r9d
180103d43:	49 8b d5             	mov    %r13,%rdx
180103d46:	41 ff c9             	dec    %r9d
180103d49:	4c 89 64 24 28       	mov    %r12,0x28(%rsp)
180103d4e:	48 8b ce             	mov    %rsi,%rcx
180103d51:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180103d56:	e8 f9 02 00 00       	call   0x180104054
180103d5b:	83 f8 02             	cmp    $0x2,%eax
180103d5e:	0f 84 66 01 00 00    	je     0x180103eca
180103d64:	85 c0                	test   %eax,%eax
180103d66:	0f 84 66 01 00 00    	je     0x180103ed2
180103d6c:	79 2e                	jns    0x180103d9c
180103d6e:	4c 89 64 24 28       	mov    %r12,0x28(%rsp)
180103d73:	45 33 c9             	xor    %r9d,%r9d
180103d76:	49 8b d5             	mov    %r13,%rdx
180103d79:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
180103d7e:	48 8b ce             	mov    %rsi,%rcx
180103d81:	e8 ce 02 00 00       	call   0x180104054
180103d86:	83 f8 02             	cmp    $0x2,%eax
180103d89:	0f 84 3b 01 00 00    	je     0x180103eca
180103d8f:	85 c0                	test   %eax,%eax
180103d91:	0f 89 3b 01 00 00    	jns    0x180103ed2
180103d97:	44 8b fb             	mov    %ebx,%r15d
180103d9a:	eb 03                	jmp    0x180103d9f
180103d9c:	44 8b f3             	mov    %ebx,%r14d
180103d9f:	48 8b 46 10          	mov    0x10(%rsi),%rax
180103da3:	48 8d 94 24 88 00 00 	lea    0x88(%rsp),%rdx
180103daa:	00
180103dab:	41 8b df             	mov    %r15d,%ebx
180103dae:	48 8b ce             	mov    %rsi,%rcx
180103db1:	41 2b de             	sub    %r14d,%ebx
180103db4:	ff d0                	call   *%rax
180103db6:	0f 1f 00             	nopl   (%rax)
180103db9:	4c 8d 84 24 88 00 00 	lea    0x88(%rsp),%r8
180103dc0:	00
180103dc1:	83 fb 01             	cmp    $0x1,%ebx
180103dc4:	76 21                	jbe    0x180103de7
180103dc6:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx
180103dcb:	48 8b 46 08          	mov    0x8(%rsi),%rax
180103dcf:	d1 eb                	shr    $1,%ebx
180103dd1:	41 03 de             	add    %r14d,%ebx
180103dd4:	8b 7c 99 04          	mov    0x4(%rcx,%rbx,4),%edi
180103dd8:	8b d7                	mov    %edi,%edx
180103dda:	48 8b ce             	mov    %rsi,%rcx
180103ddd:	ff d0                	call   *%rax
180103ddf:	0f 1f 00             	nopl   (%rax)
180103de2:	e9 4b ff ff ff       	jmp    0x180103d32
180103de7:	48 8b 5c 24 78       	mov    0x78(%rsp),%rbx
180103dec:	48 8b ce             	mov    %rsi,%rcx
180103def:	41 8b c6             	mov    %r14d,%eax
180103df2:	8b 7c 83 04          	mov    0x4(%rbx,%rax,4),%edi
180103df6:	8b d7                	mov    %edi,%edx
180103df8:	48 8b 46 08          	mov    0x8(%rsi),%rax
180103dfc:	ff d0                	call   *%rax
180103dfe:	0f 1f 00             	nopl   (%rax)
180103e01:	48 8b e8             	mov    %rax,%rbp
180103e04:	48 85 c0             	test   %rax,%rax
180103e07:	0f 84 bd 00 00 00    	je     0x180103eca
180103e0d:	44 0f b7 48 02       	movzwl 0x2(%rax),%r9d
180103e12:	49 8b d5             	mov    %r13,%rdx
180103e15:	41 ff c9             	dec    %r9d
180103e18:	4c 89 64 24 28       	mov    %r12,0x28(%rsp)
180103e1d:	48 8b ce             	mov    %rsi,%rcx
180103e20:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180103e25:	e8 2a 02 00 00       	call   0x180104054
180103e2a:	83 f8 02             	cmp    $0x2,%eax
180103e2d:	0f 84 97 00 00 00    	je     0x180103eca
180103e33:	85 c0                	test   %eax,%eax
180103e35:	75 08                	jne    0x180103e3f
180103e37:	41 8b de             	mov    %r14d,%ebx
180103e3a:	e9 93 00 00 00       	jmp    0x180103ed2
180103e3f:	48 8b ce             	mov    %rsi,%rcx
180103e42:	79 23                	jns    0x180103e67
180103e44:	4c 89 64 24 28       	mov    %r12,0x28(%rsp)
180103e49:	45 33 c9             	xor    %r9d,%r9d
180103e4c:	49 8b d5             	mov    %r13,%rdx
180103e4f:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
180103e54:	e8 fb 01 00 00       	call   0x180104054
180103e59:	83 f8 02             	cmp    $0x2,%eax
180103e5c:	74 6c                	je     0x180103eca
180103e5e:	41 8b de             	mov    %r14d,%ebx
180103e61:	85 c0                	test   %eax,%eax
180103e63:	79 6d                	jns    0x180103ed2
180103e65:	eb 68                	jmp    0x180103ecf
180103e67:	48 8b 46 10          	mov    0x10(%rsi),%rax
180103e6b:	48 8d 94 24 88 00 00 	lea    0x88(%rsp),%rdx
180103e72:	00
180103e73:	ff d0                	call   *%rax
180103e75:	0f 1f 00             	nopl   (%rax)
180103e78:	41 8b c7             	mov    %r15d,%eax
180103e7b:	4c 8d 84 24 88 00 00 	lea    0x88(%rsp),%r8
180103e82:	00
180103e83:	48 8b ce             	mov    %rsi,%rcx
180103e86:	8b 7c 83 04          	mov    0x4(%rbx,%rax,4),%edi
180103e8a:	8b d7                	mov    %edi,%edx
180103e8c:	48 8b 46 08          	mov    0x8(%rsi),%rax
180103e90:	ff d0                	call   *%rax
180103e92:	0f 1f 00             	nopl   (%rax)
180103e95:	48 8b e8             	mov    %rax,%rbp
180103e98:	48 85 c0             	test   %rax,%rax
180103e9b:	74 2d                	je     0x180103eca
180103e9d:	44 0f b7 48 02       	movzwl 0x2(%rax),%r9d
180103ea2:	49 8b d5             	mov    %r13,%rdx
180103ea5:	41 ff c9             	dec    %r9d
180103ea8:	4c 89 64 24 28       	mov    %r12,0x28(%rsp)
180103ead:	48 8b ce             	mov    %rsi,%rcx
180103eb0:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180103eb5:	e8 9a 01 00 00       	call   0x180104054
180103eba:	83 f8 02             	cmp    $0x2,%eax
180103ebd:	74 0b                	je     0x180103eca
180103ebf:	41 8b df             	mov    %r15d,%ebx
180103ec2:	85 c0                	test   %eax,%eax
180103ec4:	74 0c                	je     0x180103ed2
180103ec6:	78 0a                	js     0x180103ed2
180103ec8:	eb 05                	jmp    0x180103ecf
180103eca:	bb 00 00 00 80       	mov    $0x80000000,%ebx
180103ecf:	83 cf ff             	or     $0xffffffff,%edi
180103ed2:	41 89 3c 24          	mov    %edi,(%r12)
180103ed6:	48 85 ed             	test   %rbp,%rbp
180103ed9:	74 14                	je     0x180103eef
180103edb:	48 8b 46 10          	mov    0x10(%rsi),%rax
180103edf:	48 8d 94 24 88 00 00 	lea    0x88(%rsp),%rdx
180103ee6:	00
180103ee7:	48 8b ce             	mov    %rsi,%rcx
180103eea:	ff d0                	call   *%rax
180103eec:	0f 1f 00             	nopl   (%rax)
180103eef:	8b c3                	mov    %ebx,%eax
180103ef1:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
180103ef6:	48 83 c4 30          	add    $0x30,%rsp
180103efa:	41 5f                	pop    %r15
180103efc:	41 5e                	pop    %r14
180103efe:	41 5d                	pop    %r13
180103f00:	41 5c                	pop    %r12
180103f02:	5f                   	pop    %rdi
180103f03:	5e                   	pop    %rsi
180103f04:	5d                   	pop    %rbp
180103f05:	c3                   	ret
180103f06:	cc                   	int3
180103f07:	cc                   	int3
180103f08:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180103f0d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180103f12:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180103f17:	57                   	push   %rdi
180103f18:	41 54                	push   %r12
180103f1a:	41 55                	push   %r13
180103f1c:	41 56                	push   %r14
180103f1e:	41 57                	push   %r15
180103f20:	48 83 ec 30          	sub    $0x30,%rsp
180103f24:	0f b7 42 02          	movzwl 0x2(%rdx),%eax
180103f28:	33 db                	xor    %ebx,%ebx
180103f2a:	4d 8b e0             	mov    %r8,%r12
180103f2d:	4c 8b fa             	mov    %rdx,%r15
180103f30:	4c 8b e9             	mov    %rcx,%r13
180103f33:	8b eb                	mov    %ebx,%ebp
180103f35:	8d 70 ff             	lea    -0x1(%rax),%esi
180103f38:	8b fe                	mov    %esi,%edi
180103f3a:	d1 ef                	shr    $1,%edi
180103f3c:	66 85 c0             	test   %ax,%ax
180103f3f:	75 1c                	jne    0x180103f5d
180103f41:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
180103f48:	00
180103f49:	83 08 ff             	orl    $0xffffffff,(%rax)
180103f4c:	48 8b 84 24 88 00 00 	mov    0x88(%rsp),%rax
180103f53:	00
180103f54:	89 18                	mov    %ebx,(%rax)
180103f56:	b8 34 00 00 c0       	mov    $0xc0000034,%eax
180103f5b:	eb 59                	jmp    0x180103fb6
180103f5d:	4c 8b b4 24 80 00 00 	mov    0x80(%rsp),%r14
180103f64:	00
180103f65:	eb 1e                	jmp    0x180103f85
180103f67:	85 c0                	test   %eax,%eax
180103f69:	0f 84 d1 00 00 00    	je     0x180104040
180103f6f:	0f 49 ef             	cmovns %edi,%ebp
180103f72:	49 8b cd             	mov    %r13,%rcx
180103f75:	0f 49 fe             	cmovns %esi,%edi
180103f78:	8b f7                	mov    %edi,%esi
180103f7a:	2b fd                	sub    %ebp,%edi
180103f7c:	83 ff 01             	cmp    $0x1,%edi
180103f7f:	76 53                	jbe    0x180103fd4
180103f81:	d1 ef                	shr    $1,%edi
180103f83:	03 fd                	add    %ebp,%edi
180103f85:	4c 89 74 24 28       	mov    %r14,0x28(%rsp)
180103f8a:	44 8b cf             	mov    %edi,%r9d
180103f8d:	49 8b d4             	mov    %r12,%rdx
180103f90:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
180103f95:	e8 ba 00 00 00       	call   0x180104054
180103f9a:	83 f8 02             	cmp    $0x2,%eax
180103f9d:	75 c8                	jne    0x180103f67
180103f9f:	48 8b 84 24 88 00 00 	mov    0x88(%rsp),%rax
180103fa6:	00
180103fa7:	41 83 0e ff          	orl    $0xffffffff,(%r14)
180103fab:	c7 00 00 00 00 80    	movl   $0x80000000,(%rax)
180103fb1:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
180103fb6:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
180103fbb:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
180103fc0:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
180103fc5:	48 83 c4 30          	add    $0x30,%rsp
180103fc9:	41 5f                	pop    %r15
180103fcb:	41 5e                	pop    %r14
180103fcd:	41 5d                	pop    %r13
180103fcf:	41 5c                	pop    %r12
180103fd1:	5f                   	pop    %rdi
180103fd2:	c3                   	ret
180103fd3:	cc                   	int3
180103fd4:	4c 89 74 24 28       	mov    %r14,0x28(%rsp)
180103fd9:	44 8b cd             	mov    %ebp,%r9d
180103fdc:	49 8b d4             	mov    %r12,%rdx
180103fdf:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
180103fe4:	e8 6b 00 00 00       	call   0x180104054
180103fe9:	83 f8 02             	cmp    $0x2,%eax
180103fec:	74 b1                	je     0x180103f9f
180103fee:	85 c0                	test   %eax,%eax
180103ff0:	74 07                	je     0x180103ff9
180103ff2:	79 13                	jns    0x180104007
180103ff4:	bb 34 00 00 c0       	mov    $0xc0000034,%ebx
180103ff9:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
180104000:	00
180104001:	8b c3                	mov    %ebx,%eax
180104003:	89 29                	mov    %ebp,(%rcx)
180104005:	eb af                	jmp    0x180103fb6
180104007:	4c 89 74 24 28       	mov    %r14,0x28(%rsp)
18010400c:	44 8b ce             	mov    %esi,%r9d
18010400f:	49 8b d4             	mov    %r12,%rdx
180104012:	4c 89 7c 24 20       	mov    %r15,0x20(%rsp)
180104017:	49 8b cd             	mov    %r13,%rcx
18010401a:	e8 35 00 00 00       	call   0x180104054
18010401f:	83 f8 02             	cmp    $0x2,%eax
180104022:	0f 84 77 ff ff ff    	je     0x180103f9f
180104028:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
18010402f:	00
180104030:	f7 d8                	neg    %eax
180104032:	1b c0                	sbb    %eax,%eax
180104034:	25 34 00 00 c0       	and    $0xc0000034,%eax
180104039:	89 31                	mov    %esi,(%rcx)
18010403b:	e9 76 ff ff ff       	jmp    0x180103fb6
180104040:	48 8b 84 24 88 00 00 	mov    0x88(%rsp),%rax
180104047:	00
180104048:	89 38                	mov    %edi,(%rax)
18010404a:	33 c0                	xor    %eax,%eax
18010404c:	e9 65 ff ff ff       	jmp    0x180103fb6
180104051:	cc                   	int3
180104052:	cc                   	int3
180104053:	cc                   	int3
180104054:	48 8b c4             	mov    %rsp,%rax
180104057:	48 89 58 08          	mov    %rbx,0x8(%rax)
18010405b:	48 89 68 10          	mov    %rbp,0x10(%rax)
18010405f:	48 89 70 18          	mov    %rsi,0x18(%rax)
180104063:	48 89 78 20          	mov    %rdi,0x20(%rax)
180104067:	41 54                	push   %r12
180104069:	41 56                	push   %r14
18010406b:	41 57                	push   %r15
18010406d:	48 83 ec 20          	sub    $0x20,%rsp
180104071:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
180104076:	4c 8b da             	mov    %rdx,%r11
180104079:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
18010407e:	ba 6c 66 00 00       	mov    $0x666c,%edx
180104083:	48 8b e9             	mov    %rcx,%rbp
180104086:	41 8b f9             	mov    %r9d,%edi
180104089:	b9 ff fd 00 00       	mov    $0xfdff,%ecx
18010408e:	44 0f b7 03          	movzwl (%rbx),%r8d
180104092:	83 0e ff             	orl    $0xffffffff,(%rsi)
180104095:	41 0f b7 c0          	movzwl %r8w,%eax
180104099:	66 2b c2             	sub    %dx,%ax
18010409c:	66 85 c1             	test   %ax,%cx
18010409f:	74 2e                	je     0x1801040cf
1801040a1:	44 8b 4c bb 04       	mov    0x4(%rbx,%rdi,4),%r9d
1801040a6:	49 8b d3             	mov    %r11,%rdx
1801040a9:	48 8b cd             	mov    %rbp,%rcx
1801040ac:	e8 f7 00 00 00       	call   0x1801041a8
1801040b1:	8b d0                	mov    %eax,%edx
1801040b3:	83 f8 02             	cmp    $0x2,%eax
1801040b6:	0f 84 ab 00 00 00    	je     0x180104167
1801040bc:	85 c0                	test   %eax,%eax
1801040be:	0f 85 bf 00 00 00    	jne    0x180104183
1801040c4:	8b 4c bb 04          	mov    0x4(%rbx,%rdi,4),%ecx
1801040c8:	89 0e                	mov    %ecx,(%rsi)
1801040ca:	e9 b4 00 00 00       	jmp    0x180104183
1801040cf:	66 44 3b c2          	cmp    %dx,%r8w
1801040d3:	75 7b                	jne    0x180104150
1801040d5:	b9 04 00 00 00       	mov    $0x4,%ecx
1801040da:	48 8d 53 08          	lea    0x8(%rbx),%rdx
1801040de:	33 c0                	xor    %eax,%eax
1801040e0:	48 8d 14 fa          	lea    (%rdx,%rdi,8),%rdx
1801040e4:	44 8d 61 fd          	lea    -0x3(%rcx),%r12d
1801040e8:	80 3a 00             	cmpb   $0x0,(%rdx)
1801040eb:	74 0c                	je     0x1801040f9
1801040ed:	41 03 c4             	add    %r12d,%eax
1801040f0:	49 03 d4             	add    %r12,%rdx
1801040f3:	3b c1                	cmp    %ecx,%eax
1801040f5:	72 f1                	jb     0x1801040e8
1801040f7:	eb 02                	jmp    0x1801040fb
1801040f9:	8b c8                	mov    %eax,%ecx
1801040fb:	41 0f b7 13          	movzwl (%r11),%edx
1801040ff:	d1 ea                	shr    $1,%edx
180104101:	3b d1                	cmp    %ecx,%edx
180104103:	0f 43 d1             	cmovae %ecx,%edx
180104106:	45 33 c9             	xor    %r9d,%r9d
180104109:	85 d2                	test   %edx,%edx
18010410b:	74 43                	je     0x180104150
18010410d:	4d 8b 73 08          	mov    0x8(%r11),%r14
180104111:	4c 8d 3c fb          	lea    (%rbx,%rdi,8),%r15
180104115:	47 0f b7 04 4e       	movzwl (%r14,%r9,2),%r8d
18010411a:	47 0f b6 54 0f 08    	movzbl 0x8(%r15,%r9,1),%r10d
180104120:	41 8b c8             	mov    %r8d,%ecx
180104123:	41 83 f8 61          	cmp    $0x61,%r8d
180104127:	72 09                	jb     0x180104132
180104129:	41 83 f8 7a          	cmp    $0x7a,%r8d
18010412d:	77 03                	ja     0x180104132
18010412f:	83 c1 e0             	add    $0xffffffe0,%ecx
180104132:	41 8b c2             	mov    %r10d,%eax
180104135:	41 80 fa 61          	cmp    $0x61,%r10b
180104139:	72 09                	jb     0x180104144
18010413b:	41 80 fa 7a          	cmp    $0x7a,%r10b
18010413f:	77 03                	ja     0x180104144
180104141:	83 c0 e0             	add    $0xffffffe0,%eax
180104144:	2b c8                	sub    %eax,%ecx
180104146:	75 26                	jne    0x18010416e
180104148:	45 03 cc             	add    %r12d,%r9d
18010414b:	44 3b ca             	cmp    %edx,%r9d
18010414e:	72 c5                	jb     0x180104115
180104150:	44 8b 4c fb 04       	mov    0x4(%rbx,%rdi,8),%r9d
180104155:	49 8b d3             	mov    %r11,%rdx
180104158:	48 8b cd             	mov    %rbp,%rcx
18010415b:	e8 48 00 00 00       	call   0x1801041a8
180104160:	8b d0                	mov    %eax,%edx
180104162:	83 f8 02             	cmp    $0x2,%eax
180104165:	75 12                	jne    0x180104179
180104167:	b8 02 00 00 00       	mov    $0x2,%eax
18010416c:	eb 17                	jmp    0x180104185
18010416e:	83 c8 ff             	or     $0xffffffff,%eax
180104171:	85 c9                	test   %ecx,%ecx
180104173:	41 0f 4f c4          	cmovg  %r12d,%eax
180104177:	eb 0c                	jmp    0x180104185
180104179:	85 c0                	test   %eax,%eax
18010417b:	75 06                	jne    0x180104183
18010417d:	8b 44 fb 04          	mov    0x4(%rbx,%rdi,8),%eax
180104181:	89 06                	mov    %eax,(%rsi)
180104183:	8b c2                	mov    %edx,%eax
180104185:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18010418a:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
18010418f:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180104194:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
180104199:	48 83 c4 20          	add    $0x20,%rsp
18010419d:	41 5f                	pop    %r15
18010419f:	41 5e                	pop    %r14
1801041a1:	41 5c                	pop    %r12
1801041a3:	c3                   	ret
1801041a4:	cc                   	int3