180007f08:	0f 82 15 02 00 00    	jb     0x180008123
180007f0e:	48 8b 47 08          	mov    0x8(%rdi),%rax
180007f12:	45 03 f4             	add    %r12d,%r14d
180007f15:	45 0f b7 fd          	movzwl %r13w,%r15d
180007f19:	49 d1 ef             	shr    $1,%r15
180007f1c:	4c 89 45 b7          	mov    %r8,-0x49(%rbp)
180007f20:	66 46 89 04 78       	mov    %r8w,(%rax,%r15,2)
180007f25:	66 44 89 2f          	mov    %r13w,(%rdi)
180007f29:	45 3b f4             	cmp    %r12d,%r14d
180007f2c:	0f 82 f1 01 00 00    	jb     0x180008123
180007f32:	42 8d 0c 32          	lea    (%rdx,%r14,1),%ecx
180007f36:	41 3b ce             	cmp    %r14d,%ecx
180007f39:	0f 82 e4 01 00 00    	jb     0x180008123
180007f3f:	8d 81 ff 0f 00 00    	lea    0xfff(%rcx),%eax
180007f45:	25 00 f0 ff ff       	and    $0xfffff000,%eax
180007f4a:	3b c1                	cmp    %ecx,%eax
180007f4c:	0f 82 d1 01 00 00    	jb     0x180008123
180007f52:	44 89 44 24 30       	mov    %r8d,0x30(%rsp)
180007f57:	48 8d 4d b7          	lea    -0x49(%rbp),%rcx
180007f5b:	4c 89 44 24 28       	mov    %r8,0x28(%rsp)
180007f60:	41 b9 00 00 02 00    	mov    $0x20000,%r9d
180007f66:	8b d0                	mov    %eax,%edx
180007f68:	44 89 44 24 20       	mov    %r8d,0x20(%rsp)
180007f6d:	41 b8 15 00 00 e0    	mov    $0xe0000015,%r8d
180007f73:	48 c1 ea 0c          	shr    $0xc,%rdx
180007f77:	44 8b e8             	mov    %eax,%r13d
180007f7a:	e8 75 f8 08 00       	call   0x1800977f4
180007f7f:	45 33 c0             	xor    %r8d,%r8d
180007f82:	8b d8                	mov    %eax,%ebx
180007f84:	85 c0                	test   %eax,%eax
180007f86:	0f 88 9c 01 00 00    	js     0x180008128
180007f8c:	48 8b 5d b7          	mov    -0x49(%rbp),%rbx
180007f90:	45 8b c5             	mov    %r13d,%r8d
180007f93:	48 8b cb             	mov    %rbx,%rcx
180007f96:	33 d2                	xor    %edx,%edx
180007f98:	e8 e3 dc 12 00       	call   0x180135c80
180007f9d:	33 d2                	xor    %edx,%edx
180007f9f:	4c 8d 6e 08          	lea    0x8(%rsi),%r13
180007fa3:	39 55 a7             	cmp    %edx,-0x59(%rbp)
180007fa6:	74 14                	je     0x180007fbc
180007fa8:	44 8b 65 77          	mov    0x77(%rbp),%r12d
180007fac:	48 89 16             	mov    %rdx,(%rsi)
180007faf:	49 89 55 00          	mov    %rdx,0x0(%r13)
180007fb3:	48 89 5e 10          	mov    %rbx,0x10(%rsi)
180007fb7:	e9 0a 01 00 00       	jmp    0x1800080c6
180007fbc:	41 8b c6             	mov    %r14d,%eax
180007fbf:	48 03 c3             	add    %rbx,%rax
180007fc2:	48 89 1e             	mov    %rbx,(%rsi)
180007fc5:	48 89 46 10          	mov    %rax,0x10(%rsi)
180007fc9:	38 55 9b             	cmp    %dl,-0x65(%rbp)
180007fcc:	75 08                	jne    0x180007fd6
180007fce:	41 8b c4             	mov    %r12d,%eax
180007fd1:	48 03 c3             	add    %rbx,%rax
180007fd4:	eb 03                	jmp    0x180007fd9
180007fd6:	48 8b c3             	mov    %rbx,%rax
180007fd9:	49 89 45 00          	mov    %rax,0x0(%r13)
180007fdd:	48 8b cf             	mov    %rdi,%rcx
180007fe0:	48 8b 55 d7          	mov    -0x29(%rbp),%rdx
180007fe4:	e8 fb 5f 07 00       	call   0x18007dfe4
180007fe9:	45 33 c0             	xor    %r8d,%r8d
180007fec:	84 c0                	test   %al,%al
180007fee:	0f 84 77 fd ff ff    	je     0x180007d6b
180007ff4:	44 8b 65 77          	mov    0x77(%rbp),%r12d
180007ff8:	48 8d 45 ab          	lea    -0x55(%rbp),%rax
180007ffc:	4c 89 44 24 50       	mov    %r8,0x50(%rsp)
180008001:	4c 8b ce             	mov    %rsi,%r9
180008004:	4c 89 44 24 48       	mov    %r8,0x48(%rsp)
180008009:	ba 15 00 00 e0       	mov    $0xe0000015,%edx
18000800e:	44 88 44 24 40       	mov    %r8b,0x40(%rsp)
180008013:	41 8b cc             	mov    %r12d,%ecx
180008016:	c7 44 24 38 04 00 00 	movl   $0x4,0x38(%rsp)
18000801d:	00
18000801e:	44 89 44 24 30       	mov    %r8d,0x30(%rsp)
180008023:	44 89 44 24 28       	mov    %r8d,0x28(%rsp)
180008028:	4c 8b 47 08          	mov    0x8(%rdi),%r8
18000802c:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180008031:	e8 a2 74 07 00       	call   0x18007f4d8
180008036:	45 33 c0             	xor    %r8d,%r8d
180008039:	8b d8                	mov    %eax,%ebx
18000803b:	85 c0                	test   %eax,%eax
18000803d:	0f 88 e5 00 00 00    	js     0x180008128
180008043:	48 8b 47 08          	mov    0x8(%rdi),%rax
180008047:	44 0f b7 75 6f       	movzwl 0x6f(%rbp),%r14d
18000804c:	66 46 89 04 78       	mov    %r8w,(%rax,%r15,2)
180008051:	66 44 89 37          	mov    %r14w,(%rdi)
180008055:	44 38 45 9b          	cmp    %r8b,-0x65(%rbp)
180008059:	75 6b                	jne    0x1800080c6
18000805b:	48 8b 55 bf          	mov    -0x41(%rbp),%rdx
18000805f:	48 8b cf             	mov    %rdi,%rcx
180008062:	e8 7d 5f 07 00       	call   0x18007dfe4
180008067:	45 33 c0             	xor    %r8d,%r8d
18000806a:	84 c0                	test   %al,%al
18000806c:	0f 84 f9 fc ff ff    	je     0x180007d6b
180008072:	4c 89 44 24 50       	mov    %r8,0x50(%rsp)
180008077:	48 8d 45 a3          	lea    -0x5d(%rbp),%rax
18000807b:	4c 89 44 24 48       	mov    %r8,0x48(%rsp)
180008080:	4d 8b cd             	mov    %r13,%r9
180008083:	44 88 44 24 40       	mov    %r8b,0x40(%rsp)
180008088:	ba 15 00 00 e0       	mov    $0xe0000015,%edx
18000808d:	c7 44 24 38 04 00 00 	movl   $0x4,0x38(%rsp)
180008094:	00
180008095:	41 8b cc             	mov    %r12d,%ecx
180008098:	44 89 44 24 30       	mov    %r8d,0x30(%rsp)
18000809d:	44 89 44 24 28       	mov    %r8d,0x28(%rsp)
1800080a2:	4c 8b 47 08          	mov    0x8(%rdi),%r8
1800080a6:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1800080ab:	e8 28 74 07 00       	call   0x18007f4d8
1800080b0:	45 33 c0             	xor    %r8d,%r8d
1800080b3:	8b d8                	mov    %eax,%ebx
1800080b5:	85 c0                	test   %eax,%eax
1800080b7:	78 6f                	js     0x180008128
1800080b9:	48 8b 47 08          	mov    0x8(%rdi),%rax
1800080bd:	66 46 89 04 78       	mov    %r8w,(%rax,%r15,2)
1800080c2:	66 44 89 37          	mov    %r14w,(%rdi)
1800080c6:	48 8b 55 c7          	mov    -0x39(%rbp),%rdx
1800080ca:	48 8b cf             	mov    %rdi,%rcx
1800080cd:	e8 12 5f 07 00       	call   0x18007dfe4
1800080d2:	45 33 c0             	xor    %r8d,%r8d
1800080d5:	84 c0                	test   %al,%al
1800080d7:	0f 84 8e fc ff ff    	je     0x180007d6b
1800080dd:	4c 89 44 24 50       	mov    %r8,0x50(%rsp)
1800080e2:	48 8d 45 af          	lea    -0x51(%rbp),%rax
1800080e6:	4c 89 44 24 48       	mov    %r8,0x48(%rsp)
1800080eb:	4c 8d 4e 10          	lea    0x10(%rsi),%r9
1800080ef:	44 88 44 24 40       	mov    %r8b,0x40(%rsp)
1800080f4:	ba 15 00 00 e0       	mov    $0xe0000015,%edx
1800080f9:	c7 44 24 38 04 00 00 	movl   $0x4,0x38(%rsp)
180008100:	00
180008101:	41 8b cc             	mov    %r12d,%ecx
180008104:	44 89 44 24 30       	mov    %r8d,0x30(%rsp)
180008109:	44 89 44 24 28       	mov    %r8d,0x28(%rsp)
18000810e:	4c 8b 47 08          	mov    0x8(%rdi),%r8
180008112:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180008117:	e8 bc 73 07 00       	call   0x18007f4d8
18000811c:	8b d8                	mov    %eax,%ebx
18000811e:	45 33 c0             	xor    %r8d,%r8d
180008121:	eb 05                	jmp    0x180008128
180008123:	bb 95 00 00 c0       	mov    $0xc0000095,%ebx
180008128:	4c 8b 7d 67          	mov    0x67(%rbp),%r15
18000812c:	0f b7 55 9f          	movzwl -0x61(%rbp),%edx
180008130:	48 8b 47 08          	mov    0x8(%rdi),%rax
180008134:	8b ca                	mov    %edx,%ecx
180008136:	48 d1 e9             	shr    $1,%rcx
180008139:	66 44 89 04 48       	mov    %r8w,(%rax,%rcx,2)
18000813e:	66 89 17             	mov    %dx,(%rdi)
180008141:	85 db                	test   %ebx,%ebx
180008143:	79 2c                	jns    0x180008171
180008145:	48 85 f6             	test   %rsi,%rsi
180008148:	74 27                	je     0x180008171
18000814a:	48 8b 0e             	mov    (%rsi),%rcx
18000814d:	48 85 c9             	test   %rcx,%rcx
180008150:	75 09                	jne    0x18000815b
180008152:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
180008156:	48 85 c9             	test   %rcx,%rcx
180008159:	74 05                	je     0x180008160
18000815b:	e8 d0 f9 08 00       	call   0x180097b30
180008160:	48 8b ce             	mov    %rsi,%rcx
180008163:	e8 94 1e 09 00       	call   0x180099ffc
180008168:	33 d2                	xor    %edx,%edx
18000816a:	49 89 97 e0 00 00 00 	mov    %rdx,0xe0(%r15)
180008171:	8b c3                	mov    %ebx,%eax
180008173:	48 8b 9c 24 48 01 00 	mov    0x148(%rsp),%rbx
18000817a:	00
18000817b:	48 81 c4 f0 00 00 00 	add    $0xf0,%rsp
180008182:	41 5f                	pop    %r15
180008184:	41 5e                	pop    %r14
180008186:	41 5d                	pop    %r13
180008188:	41 5c                	pop    %r12
18000818a:	5f                   	pop    %rdi
18000818b:	5e                   	pop    %rsi
18000818c:	5d                   	pop    %rbp
18000818d:	c3                   	ret
18000818e:	cc                   	int3
18000818f:	cc                   	int3
180008190:	48 8b c4             	mov    %rsp,%rax
180008193:	48 89 58 10          	mov    %rbx,0x10(%rax)
180008197:	89 48 08             	mov    %ecx,0x8(%rax)
18000819a:	55                   	push   %rbp
18000819b:	56                   	push   %rsi
18000819c:	57                   	push   %rdi
18000819d:	41 56                	push   %r14
18000819f:	41 57                	push   %r15
1800081a1:	48 83 ec 40          	sub    $0x40,%rsp
1800081a5:	8b 35 29 43 16 00    	mov    0x164329(%rip),%esi        # 0x18016c4d4
1800081ab:	41 be 00 10 00 00    	mov    $0x1000,%r14d
1800081b1:	48 83 60 20 00       	andq   $0x0,0x20(%rax)
1800081b6:	41 8b ce             	mov    %r14d,%ecx
1800081b9:	83 60 08 00          	andl   $0x0,0x8(%rax)
1800081bd:	4c 8b fa             	mov    %rdx,%r15
1800081c0:	33 db                	xor    %ebx,%ebx
1800081c2:	e8 89 1c 09 00       	call   0x180099e50
1800081c7:	48 8b f8             	mov    %rax,%rdi
1800081ca:	48 85 c0             	test   %rax,%rax
1800081cd:	0f 84 55 01 00 00    	je     0x180008328
1800081d3:	45 8b c6             	mov    %r14d,%r8d
1800081d6:	33 d2                	xor    %edx,%edx
1800081d8:	48 8b c8             	mov    %rax,%rcx
1800081db:	e8 a0 da 12 00       	call   0x180135c80
1800081e0:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
1800081e5:	8b ce                	mov    %esi,%ecx
1800081e7:	48 8d 15 52 d7 13 00 	lea    0x13d752(%rip),%rdx        # 0x180145940
1800081ee:	e8 e9 c6 ff ff       	call   0x1800048dc
1800081f3:	85 c0                	test   %eax,%eax
1800081f5:	0f 88 2d 01 00 00    	js     0x180008328
1800081fb:	48 8b 6c 24 30       	mov    0x30(%rsp),%rbp
180008200:	4c 8d 8c 24 80 00 00 	lea    0x80(%rsp),%r9
180008207:	00
180008208:	48 8b d5             	mov    %rbp,%rdx
18000820b:	4c 8d 05 46 c9 13 00 	lea    0x13c946(%rip),%r8        # 0x180144b58
180008212:	8b ce                	mov    %esi,%ecx
180008214:	e8 47 c7 ff ff       	call   0x180004960
180008219:	85 c0                	test   %eax,%eax
18000821b:	78 0c                	js     0x180008229
18000821d:	39 9c 24 80 00 00 00 	cmp    %ebx,0x80(%rsp)
180008224:	0f 95 c0             	setne  %al
180008227:	eb 02                	jmp    0x18000822b
180008229:	b0 01                	mov    $0x1,%al
18000822b:	88 07                	mov    %al,(%rdi)
18000822d:	4c 8d 8c 24 88 00 00 	lea    0x88(%rsp),%r9
180008234:	00
180008235:	48 8d 44 24 70       	lea    0x70(%rsp),%rax
18000823a:	48 8b d5             	mov    %rbp,%rdx
18000823d:	4c 8d 05 2c d7 13 00 	lea    0x13d72c(%rip),%r8        # 0x180145970
180008244:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180008249:	8b ce                	mov    %esi,%ecx
18000824b:	e8 d0 be ff ff       	call   0x180004120
180008250:	48 8b ac 24 88 00 00 	mov    0x88(%rsp),%rbp
180008257:	00
180008258:	85 c0                	test   %eax,%eax
18000825a:	0f 88 99 00 00 00    	js     0x1800082f9
180008260:	48 85 ed             	test   %rbp,%rbp
180008263:	0f 84 90 00 00 00    	je     0x1800082f9
180008269:	8b 44 24 70          	mov    0x70(%rsp),%eax
18000826d:	85 c0                	test   %eax,%eax
18000826f:	0f 84 84 00 00 00    	je     0x1800082f9
180008275:	44 8b c0             	mov    %eax,%r8d
180008278:	49 b9 ab aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaab,%r9
18000827f:	aa aa aa
180008282:	49 8b c1             	mov    %r9,%rax
180008285:	49 f7 e0             	mul    %r8
180008288:	48 c1 ea 03          	shr    $0x3,%rdx
18000828c:	48 8d 0c 52          	lea    (%rdx,%rdx,2),%rcx
180008290:	48 c1 e1 02          	shl    $0x2,%rcx
180008294:	4c 3b c1             	cmp    %rcx,%r8
180008297:	75 60                	jne    0x1800082f9
180008299:	49 8b c1             	mov    %r9,%rax
18000829c:	49 f7 e0             	mul    %r8
18000829f:	48 8b f2             	mov    %rdx,%rsi
1800082a2:	48 c1 ee 03          	shr    $0x3,%rsi
1800082a6:	8d 04 f5 08 00 00 00 	lea    0x8(,%rsi,8),%eax
1800082ad:	41 3b c6             	cmp    %r14d,%eax
1800082b0:	77 5c                	ja     0x18000830e
1800082b2:	8b c8                	mov    %eax,%ecx
1800082b4:	44 8b f0             	mov    %eax,%r14d
1800082b7:	e8 94 1b 09 00       	call   0x180099e50
1800082bc:	48 8b d8             	mov    %rax,%rbx
1800082bf:	48 85 c0             	test   %rax,%rax
1800082c2:	74 4a                	je     0x18000830e
1800082c4:	45 8b c6             	mov    %r14d,%r8d
1800082c7:	33 d2                	xor    %edx,%edx
1800082c9:	48 8b c8             	mov    %rax,%rcx
1800082cc:	e8 af d9 12 00       	call   0x180135c80
1800082d1:	4c 8b cb             	mov    %rbx,%r9
1800082d4:	8b d6                	mov    %esi,%edx
1800082d6:	48 8b cd             	mov    %rbp,%rcx
1800082d9:	e8 22 8d 02 00       	call   0x180031000
1800082de:	85 c0                	test   %eax,%eax
1800082e0:	75 17                	jne    0x1800082f9
1800082e2:	44 8b c6             	mov    %esi,%r8d
1800082e5:	48 8d 53 08          	lea    0x8(%rbx),%rdx
1800082e9:	49 c1 e0 03          	shl    $0x3,%r8
1800082ed:	48 8d 4f 08          	lea    0x8(%rdi),%rcx
1800082f1:	e8 ca d6 12 00       	call   0x1801359c0
1800082f6:	89 77 04             	mov    %esi,0x4(%rdi)
1800082f9:	49 8b 87 f0 00 00 00 	mov    0xf0(%r15),%rax
180008300:	48 89 3d 81 b4 19 00 	mov    %rdi,0x19b481(%rip)        # 0x1801a3788
180008307:	48 89 b8 80 0b 00 00 	mov    %rdi,0xb80(%rax)
18000830e:	48 85 ed             	test   %rbp,%rbp
180008311:	74 08                	je     0x18000831b
180008313:	48 8b cd             	mov    %rbp,%rcx
180008316:	e8 e1 1c 09 00       	call   0x180099ffc
18000831b:	48 85 db             	test   %rbx,%rbx
18000831e:	74 08                	je     0x180008328
180008320:	48 8b cb             	mov    %rbx,%rcx
180008323:	e8 d4 1c 09 00       	call   0x180099ffc
180008328:	48 8b 5c 24 78       	mov    0x78(%rsp),%rbx
18000832d:	48 83 c4 40          	add    $0x40,%rsp
180008331:	41 5f                	pop    %r15
180008333:	41 5e                	pop    %r14
180008335:	5f                   	pop    %rdi
180008336:	5e                   	pop    %rsi
180008337:	5d                   	pop    %rbp
180008338:	c3                   	ret
180008339:	cc                   	int3
18000833a:	cc                   	int3
18000833b:	cc                   	int3
18000833c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180008341:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180008346:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18000834b:	57                   	push   %rdi
18000834c:	48 83 ec 20          	sub    $0x20,%rsp
180008350:	48 8b f2             	mov    %rdx,%rsi
180008353:	48 8b d9             	mov    %rcx,%rbx
180008356:	48 8b c1             	mov    %rcx,%rax
180008359:	33 ed                	xor    %ebp,%ebp
18000835b:	48 8b d6             	mov    %rsi,%rdx
18000835e:	48 8b c8             	mov    %rax,%rcx
180008361:	e8 8e 35 12 00       	call   0x18012b8f4
180008366:	4c 8b c0             	mov    %rax,%r8
180008369:	48 85 c0             	test   %rax,%rax
18000836c:	74 3f                	je     0x1800083ad
18000836e:	48 83 ca ff          	or     $0xffffffffffffffff,%rdx
180008372:	48 ff c2             	inc    %rdx
180008375:	66 39 2c 56          	cmp    %bp,(%rsi,%rdx,2)
180008379:	75 f7                	jne    0x180008372
18000837b:	48 3b c3             	cmp    %rbx,%rax
18000837e:	74 0e                	je     0x18000838e
180008380:	66 83 78 fe 2f       	cmpw   $0x2f,-0x2(%rax)
180008385:	75 07                	jne    0x18000838e
180008387:	4c 8d 40 fe          	lea    -0x2(%rax),%r8
18000838b:	48 ff c2             	inc    %rdx
18000838e:	48 85 d2             	test   %rdx,%rdx
180008391:	74 11                	je     0x1800083a4
180008393:	b8 20 00 00 00       	mov    $0x20,%eax
180008398:	49 8b f8             	mov    %r8,%rdi
18000839b:	0f b7 c0             	movzwl %ax,%eax
18000839e:	48 8b ca             	mov    %rdx,%rcx
1800083a1:	66 f3 ab             	rep stos %ax,%es:(%rdi)
1800083a4:	49 8d 04 50          	lea    (%r8,%rdx,2),%rax
1800083a8:	48 85 c0             	test   %rax,%rax
1800083ab:	75 ae                	jne    0x18000835b
1800083ad:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800083b2:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1800083b7:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1800083bc:	48 83 c4 20          	add    $0x20,%rsp
1800083c0:	5f                   	pop    %rdi
1800083c1:	c3                   	ret
1800083c2:	cc                   	int3
1800083c3:	cc                   	int3
1800083c4:	40 55                	rex push %rbp
1800083c6:	48 8b ec             	mov    %rsp,%rbp
1800083c9:	48 83 ec 40          	sub    $0x40,%rsp
1800083cd:	8b 0d d5 40 16 00    	mov    0x1640d5(%rip),%ecx        # 0x18016c4a8
1800083d3:	83 f9 ff             	cmp    $0xffffffff,%ecx
1800083d6:	0f 84 01 01 00 00    	je     0x1800084dd
1800083dc:	c7 45 10 04 00 00 00 	movl   $0x4,0x10(%rbp)
1800083e3:	e8 08 ba ff ff       	call   0x180003df0
1800083e8:	48 8d 4d 20          	lea    0x20(%rbp),%rcx
1800083ec:	48 8b d0             	mov    %rax,%rdx
1800083ef:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)