18010a172:	85 db                	test   %ebx,%ebx
18010a174:	74 60                	je     0x18010a1d6
18010a176:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
18010a17b:	85 ed                	test   %ebp,%ebp
18010a17d:	74 47                	je     0x18010a1c6
18010a17f:	44 8b c7             	mov    %edi,%r8d
18010a182:	41 8b c5             	mov    %r13d,%eax
18010a185:	44 0f af c3          	imul   %ebx,%r8d
18010a189:	4c 8b dd             	mov    %rbp,%r11
18010a18c:	0f af c5             	imul   %ebp,%eax
18010a18f:	45 03 c1             	add    %r9d,%r8d
18010a192:	45 0f af 47 04       	imul   0x4(%r15),%r8d
18010a197:	44 03 c0             	add    %eax,%r8d
18010a19a:	41 8b c0             	mov    %r8d,%eax
18010a19d:	ba 80 00 00 00       	mov    $0x80,%edx
18010a1a2:	48 c1 e8 03          	shr    $0x3,%rax
18010a1a6:	41 0f b6 c8          	movzbl %r8b,%ecx
18010a1aa:	83 e1 07             	and    $0x7,%ecx
18010a1ad:	d3 fa                	sar    %cl,%edx
18010a1af:	84 14 30             	test   %dl,(%rax,%rsi,1)
18010a1b2:	41 8d 42 01          	lea    0x1(%r10),%eax
18010a1b6:	41 0f 44 c2          	cmove  %r10d,%eax
18010a1ba:	41 ff c0             	inc    %r8d
18010a1bd:	44 8b d0             	mov    %eax,%r10d
18010a1c0:	49 83 eb 01          	sub    $0x1,%r11
18010a1c4:	75 d4                	jne    0x18010a19a
18010a1c6:	41 ff c1             	inc    %r9d
18010a1c9:	44 3b cb             	cmp    %ebx,%r9d
18010a1cc:	72 ad                	jb     0x18010a17b
18010a1ce:	48 8b b4 24 80 00 00 	mov    0x80(%rsp),%rsi
18010a1d5:	00
18010a1d6:	8b 0e                	mov    (%rsi),%ecx
18010a1d8:	33 d2                	xor    %edx,%edx
18010a1da:	41 69 c2 ff 00 00 00 	imul   $0xff,%r10d,%eax
18010a1e1:	41 f7 f4             	div    %r12d
18010a1e4:	8b 56 04             	mov    0x4(%rsi),%edx
18010a1e7:	44 8b c0             	mov    %eax,%r8d
18010a1ea:	e8 69 d1 ff ff       	call   0x180107358
18010a1ef:	8b c8                	mov    %eax,%ecx
18010a1f1:	41 88 06             	mov    %al,(%r14)
18010a1f4:	c1 e9 10             	shr    $0x10,%ecx
18010a1f7:	33 d2                	xor    %edx,%edx
18010a1f9:	41 88 4e 02          	mov    %cl,0x2(%r14)
18010a1fd:	41 ff c5             	inc    %r13d
18010a200:	8b c8                	mov    %eax,%ecx
18010a202:	41 c6 46 03 ff       	movb   $0xff,0x3(%r14)
18010a207:	c1 e9 08             	shr    $0x8,%ecx
18010a20a:	41 88 4e 01          	mov    %cl,0x1(%r14)
18010a20e:	49 83 c6 04          	add    $0x4,%r14
18010a212:	41 8b 47 04          	mov    0x4(%r15),%eax
18010a216:	f7 f3                	div    %ebx
18010a218:	44 3b e8             	cmp    %eax,%r13d
18010a21b:	0f 82 4b ff ff ff    	jb     0x18010a16c
18010a221:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
18010a226:	ff c7                	inc    %edi
18010a228:	3b 3e                	cmp    (%rsi),%edi
18010a22a:	0f 82 19 ff ff ff    	jb     0x18010a149
18010a230:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
18010a235:	48 83 c4 20          	add    $0x20,%rsp
18010a239:	41 5f                	pop    %r15
18010a23b:	41 5e                	pop    %r14
18010a23d:	41 5d                	pop    %r13
18010a23f:	41 5c                	pop    %r12
18010a241:	5f                   	pop    %rdi
18010a242:	5e                   	pop    %rsi
18010a243:	5d                   	pop    %rbp
18010a244:	c3                   	ret
18010a245:	cc                   	int3
18010a246:	cc                   	int3
18010a247:	cc                   	int3
18010a248:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18010a24d:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18010a252:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18010a257:	57                   	push   %rdi
18010a258:	48 83 ec 20          	sub    $0x20,%rsp
18010a25c:	0f b7 41 18          	movzwl 0x18(%rcx),%eax
18010a260:	48 8b f9             	mov    %rcx,%rdi
18010a263:	48 8b f2             	mov    %rdx,%rsi
18010a266:	49 8b d0             	mov    %r8,%rdx
18010a269:	48 6b c8 11          	imul   $0x11,%rax,%rcx
18010a26d:	e8 9e 23 00 00       	call   0x18010c610
18010a272:	33 ed                	xor    %ebp,%ebp
18010a274:	48 8b d8             	mov    %rax,%rbx
18010a277:	48 85 c0             	test   %rax,%rax
18010a27a:	75 07                	jne    0x18010a283
18010a27c:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
18010a281:	eb 5f                	jmp    0x18010a2e2
18010a283:	0f b7 47 18          	movzwl 0x18(%rdi),%eax
18010a287:	33 d2                	xor    %edx,%edx
18010a289:	4c 6b c0 11          	imul   $0x11,%rax,%r8
18010a28d:	48 8b cb             	mov    %rbx,%rcx
18010a290:	e8 eb b9 02 00       	call   0x180135c80
18010a295:	8b d5                	mov    %ebp,%edx
18010a297:	66 3b 6f 18          	cmp    0x18(%rdi),%bp
18010a29b:	73 40                	jae    0x18010a2dd
18010a29d:	48 8b 47 32          	mov    0x32(%rdi),%rax
18010a2a1:	44 8b c2             	mov    %edx,%r8d
18010a2a4:	4d 6b c8 11          	imul   $0x11,%r8,%r9
18010a2a8:	42 8b 0c 80          	mov    (%rax,%r8,4),%ecx
18010a2ac:	41 89 0c 19          	mov    %ecx,(%r9,%rbx,1)
18010a2b0:	48 8b 47 3a          	mov    0x3a(%rdi),%rax
18010a2b4:	42 8b 0c 80          	mov    (%rax,%r8,4),%ecx
18010a2b8:	41 89 4c 19 04       	mov    %ecx,0x4(%r9,%rbx,1)
18010a2bd:	48 8b 47 2a          	mov    0x2a(%rdi),%rax
18010a2c1:	48 85 c0             	test   %rax,%rax
18010a2c4:	74 0d                	je     0x18010a2d3
18010a2c6:	42 f6 04 00 01       	testb  $0x1,(%rax,%r8,1)
18010a2cb:	74 06                	je     0x18010a2d3
18010a2cd:	41 c6 44 19 10 01    	movb   $0x1,0x10(%r9,%rbx,1)
18010a2d3:	0f b7 47 18          	movzwl 0x18(%rdi),%eax
18010a2d7:	ff c2                	inc    %edx
18010a2d9:	3b d0                	cmp    %eax,%edx
18010a2db:	72 c0                	jb     0x18010a29d
18010a2dd:	48 89 1e             	mov    %rbx,(%rsi)
18010a2e0:	33 c0                	xor    %eax,%eax
18010a2e2:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18010a2e7:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
18010a2ec:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18010a2f1:	48 83 c4 20          	add    $0x20,%rsp
18010a2f5:	5f                   	pop    %rdi
18010a2f6:	c3                   	ret
18010a2f7:	cc                   	int3
18010a2f8:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
18010a2fd:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
18010a302:	53                   	push   %rbx
18010a303:	55                   	push   %rbp
18010a304:	56                   	push   %rsi
18010a305:	57                   	push   %rdi
18010a306:	41 54                	push   %r12
18010a308:	41 55                	push   %r13
18010a30a:	41 56                	push   %r14
18010a30c:	41 57                	push   %r15
18010a30e:	48 83 ec 38          	sub    $0x38,%rsp
18010a312:	48 8b b4 24 a0 00 00 	mov    0xa0(%rsp),%rsi
18010a319:	00
18010a31a:	41 8d 68 fe          	lea    -0x2(%r8),%ebp
18010a31e:	4c 8b 61 1a          	mov    0x1a(%rcx),%r12
18010a322:	33 db                	xor    %ebx,%ebx
18010a324:	89 ac 24 80 00 00 00 	mov    %ebp,0x80(%rsp)
18010a32b:	4d 8b f1             	mov    %r9,%r14
18010a32e:	48 8b fa             	mov    %rdx,%rdi
18010a331:	44 8b d3             	mov    %ebx,%r10d
18010a334:	44 8b eb             	mov    %ebx,%r13d
18010a337:	44 8b c3             	mov    %ebx,%r8d
18010a33a:	85 ed                	test   %ebp,%ebp
18010a33c:	0f 84 be 02 00 00    	je     0x18010a600
18010a342:	4c 8d 4a 10          	lea    0x10(%rdx),%r9
18010a346:	41 8b c2             	mov    %r10d,%eax
18010a349:	45 8d 58 01          	lea    0x1(%r8),%r11d
18010a34d:	41 8b d3             	mov    %r11d,%edx
18010a350:	41 0f b7 0c 44       	movzwl (%r12,%rax,2),%ecx
18010a355:	44 3b c1             	cmp    %ecx,%r8d
18010a358:	75 17                	jne    0x18010a371
18010a35a:	45 85 d2             	test   %r10d,%r10d
18010a35d:	75 04                	jne    0x18010a363
18010a35f:	8b d3                	mov    %ebx,%edx
18010a361:	eb 0b                	jmp    0x18010a36e
18010a363:	41 8d 42 ff          	lea    -0x1(%r10),%eax
18010a367:	41 0f b7 14 44       	movzwl (%r12,%rax,2),%edx
18010a36c:	ff c2                	inc    %edx
18010a36e:	41 ff c2             	inc    %r10d
18010a371:	41 f6 01 01          	testb  $0x1,(%r9)
18010a375:	75 0d                	jne    0x18010a384
18010a377:	8b c2                	mov    %edx,%eax
18010a379:	48 6b c8 11          	imul   $0x11,%rax,%rcx
18010a37d:	f6 44 39 10 01       	testb  $0x1,0x10(%rcx,%rdi,1)
18010a382:	75 03                	jne    0x18010a387
18010a384:	41 ff c5             	inc    %r13d
18010a387:	49 83 c1 11          	add    $0x11,%r9
18010a38b:	45 8b c3             	mov    %r11d,%r8d
18010a38e:	44 3b dd             	cmp    %ebp,%r11d
18010a391:	72 b3                	jb     0x18010a346
18010a393:	45 85 ed             	test   %r13d,%r13d
18010a396:	0f 84 64 02 00 00    	je     0x18010a600
18010a39c:	48 8b 94 24 a8 00 00 	mov    0xa8(%rsp),%rdx
18010a3a3:	00
18010a3a4:	41 8b c5             	mov    %r13d,%eax
18010a3a7:	48 6b f8 19          	imul   $0x19,%rax,%rdi
18010a3ab:	48 8b cf             	mov    %rdi,%rcx
18010a3ae:	e8 5d 22 00 00       	call   0x18010c610
18010a3b3:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18010a3b8:	4c 8b f0             	mov    %rax,%r14
18010a3bb:	48 85 c0             	test   %rax,%rax
18010a3be:	75 0a                	jne    0x18010a3ca
18010a3c0:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
18010a3c5:	e9 3b 02 00 00       	jmp    0x18010a605
18010a3ca:	4c 8b c7             	mov    %rdi,%r8
18010a3cd:	33 d2                	xor    %edx,%edx
18010a3cf:	49 8b ce             	mov    %r14,%rcx
18010a3d2:	e8 a9 b8 02 00       	call   0x180135c80
18010a3d7:	8b eb                	mov    %ebx,%ebp
18010a3d9:	49 8d 7e 10          	lea    0x10(%r14),%rdi
18010a3dd:	8b f3                	mov    %ebx,%esi
18010a3df:	44 8d 56 01          	lea    0x1(%rsi),%r10d
18010a3e3:	44 89 94 24 90 00 00 	mov    %r10d,0x90(%rsp)
18010a3ea:	00
18010a3eb:	45 8b fa             	mov    %r10d,%r15d
18010a3ee:	44 8d 4e ff          	lea    -0x1(%rsi),%r9d
18010a3f2:	8d 56 02             	lea    0x2(%rsi),%edx
18010a3f5:	85 f6                	test   %esi,%esi
18010a3f7:	75 07                	jne    0x18010a400
18010a3f9:	45 0f b7 0c 24       	movzwl (%r12),%r9d
18010a3fe:	eb 19                	jmp    0x18010a419
18010a400:	85 ed                	test   %ebp,%ebp
18010a402:	74 15                	je     0x18010a419
18010a404:	8d 45 ff             	lea    -0x1(%rbp),%eax
18010a407:	41 0f b7 04 44       	movzwl (%r12,%rax,2),%eax
18010a40c:	ff c0                	inc    %eax
18010a40e:	3b f0                	cmp    %eax,%esi
18010a410:	75 07                	jne    0x18010a419
18010a412:	8b c5                	mov    %ebp,%eax
18010a414:	45 0f b7 0c 44       	movzwl (%r12,%rax,2),%r9d
18010a419:	8b c5                	mov    %ebp,%eax
18010a41b:	45 0f b7 04 44       	movzwl (%r12,%rax,2),%r8d
18010a420:	41 8d 40 ff          	lea    -0x1(%r8),%eax
18010a424:	3b f0                	cmp    %eax,%esi
18010a426:	75 12                	jne    0x18010a43a
18010a428:	85 ed                	test   %ebp,%ebp
18010a42a:	75 04                	jne    0x18010a430
18010a42c:	8b d3                	mov    %ebx,%edx
18010a42e:	eb 0a                	jmp    0x18010a43a
18010a430:	8d 45 ff             	lea    -0x1(%rbp),%eax
18010a433:	41 0f b7 14 44       	movzwl (%r12,%rax,2),%edx
18010a438:	ff c2                	inc    %edx
18010a43a:	41 3b f0             	cmp    %r8d,%esi
18010a43d:	75 1d                	jne    0x18010a45c
18010a43f:	85 ed                	test   %ebp,%ebp
18010a441:	75 08                	jne    0x18010a44b
18010a443:	44 8b fb             	mov    %ebx,%r15d
18010a446:	8d 55 01             	lea    0x1(%rbp),%edx
18010a449:	eb 0f                	jmp    0x18010a45a
18010a44b:	8d 45 ff             	lea    -0x1(%rbp),%eax
18010a44e:	41 0f b7 04 44       	movzwl (%r12,%rax,2),%eax
18010a453:	44 8d 78 01          	lea    0x1(%rax),%r15d
18010a457:	8d 50 02             	lea    0x2(%rax),%edx
18010a45a:	ff c5                	inc    %ebp
18010a45c:	4c 8b 84 24 88 00 00 	mov    0x88(%rsp),%r8
18010a463:	00
18010a464:	8b c6                	mov    %esi,%eax
18010a466:	4c 6b f0 11          	imul   $0x11,%rax,%r14
18010a46a:	4d 03 f0             	add    %r8,%r14
18010a46d:	41 f6 46 10 01       	testb  $0x1,0x10(%r14)
18010a472:	0f 84 90 00 00 00    	je     0x18010a508
18010a478:	41 8b c7             	mov    %r15d,%eax
18010a47b:	4c 6b c8 11          	imul   $0x11,%rax,%r9
18010a47f:	4d 03 c8             	add    %r8,%r9
18010a482:	41 f6 41 10 01       	testb  $0x1,0x10(%r9)
18010a487:	74 14                	je     0x18010a49d
18010a489:	4c 89 77 f0          	mov    %r14,-0x10(%rdi)
18010a48d:	4c 89 4f f8          	mov    %r9,-0x8(%rdi)
18010a491:	4c 89 0f             	mov    %r9,(%rdi)
18010a494:	c6 47 08 01          	movb   $0x1,0x8(%rdi)
18010a498:	e9 0f 01 00 00       	jmp    0x18010a5ac
18010a49d:	8b c2                	mov    %edx,%eax
18010a49f:	48 6b d0 11          	imul   $0x11,%rax,%rdx
18010a4a3:	49 03 d0             	add    %r8,%rdx
18010a4a6:	8a 42 10             	mov    0x10(%rdx),%al
18010a4a9:	4c 89 77 f0          	mov    %r14,-0x10(%rdi)
18010a4ad:	4c 89 4f f8          	mov    %r9,-0x8(%rdi)
18010a4b1:	24 01                	and    $0x1,%al
18010a4b3:	74 07                	je     0x18010a4bc
18010a4b5:	48 89 17             	mov    %rdx,(%rdi)
18010a4b8:	b0 02                	mov    $0x2,%al
18010a4ba:	eb 26                	jmp    0x18010a4e2
18010a4bc:	4c 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%r8
18010a4c3:	00
18010a4c4:	49 8b c9             	mov    %r9,%rcx
18010a4c7:	e8 64 0d 00 00       	call   0x18010b230
18010a4cc:	48 89 07             	mov    %rax,(%rdi)
18010a4cf:	48 85 c0             	test   %rax,%rax
18010a4d2:	0f 84 ee 00 00 00    	je     0x18010a5c6
18010a4d8:	44 8b 94 24 90 00 00 	mov    0x90(%rsp),%r10d
18010a4df:	00
18010a4e0:	b0 04                	mov    $0x4,%al
18010a4e2:	88 47 08             	mov    %al,0x8(%rdi)
18010a4e5:	44 3b fe             	cmp    %esi,%r15d
18010a4e8:	0f 86 be 00 00 00    	jbe    0x18010a5ac
18010a4ee:	8b c5                	mov    %ebp,%eax
18010a4f0:	41 8b f2             	mov    %r10d,%esi
18010a4f3:	41 0f b7 0c 44       	movzwl (%r12,%rax,2),%ecx
18010a4f8:	44 3b d1             	cmp    %ecx,%r10d
18010a4fb:	0f 85 ab 00 00 00    	jne    0x18010a5ac
18010a501:	ff c5                	inc    %ebp
18010a503:	e9 a4 00 00 00       	jmp    0x18010a5ac
18010a508:	41 8b d1             	mov    %r9d,%edx
18010a50b:	85 f6                	test   %esi,%esi
18010a50d:	75 10                	jne    0x18010a51f
18010a50f:	48 6b c2 11          	imul   $0x11,%rdx,%rax
18010a513:	42 f6 44 00 10 01    	testb  $0x1,0x10(%rax,%r8,1)
18010a519:	0f 85 91 00 00 00    	jne    0x18010a5b0
18010a51f:	85 ed                	test   %ebp,%ebp
18010a521:	74 1a                	je     0x18010a53d
18010a523:	8d 45 ff             	lea    -0x1(%rbp),%eax
18010a526:	41 0f b7 04 44       	movzwl (%r12,%rax,2),%eax
18010a52b:	ff c0                	inc    %eax
18010a52d:	3b f0                	cmp    %eax,%esi
18010a52f:	75 0c                	jne    0x18010a53d
18010a531:	48 6b c2 11          	imul   $0x11,%rdx,%rax
18010a535:	42 f6 44 00 10 01    	testb  $0x1,0x10(%rax,%r8,1)
18010a53b:	75 73                	jne    0x18010a5b0
18010a53d:	48 6b ca 11          	imul   $0x11,%rdx,%rcx
18010a541:	41 8b c7             	mov    %r15d,%eax
18010a544:	49 8b d6             	mov    %r14,%rdx
18010a547:	4c 6b f8 11          	imul   $0x11,%rax,%r15
18010a54b:	49 03 c8             	add    %r8,%rcx
18010a54e:	4d 03 f8             	add    %r8,%r15
18010a551:	4c 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%r8
18010a558:	00
18010a559:	41 f6 47 10 01       	testb  $0x1,0x10(%r15)
18010a55e:	74 1b                	je     0x18010a57b
18010a560:	e8 cb 0c 00 00       	call   0x18010b230
18010a565:	48 89 47 f0          	mov    %rax,-0x10(%rdi)
18010a569:	48 85 c0             	test   %rax,%rax
18010a56c:	74 58                	je     0x18010a5c6
18010a56e:	4c 89 77 f8          	mov    %r14,-0x8(%rdi)
18010a572:	4c 89 3f             	mov    %r15,(%rdi)
18010a575:	c6 47 08 03          	movb   $0x3,0x8(%rdi)
18010a579:	eb 31                	jmp    0x18010a5ac
18010a57b:	e8 b0 0c 00 00       	call   0x18010b230
18010a580:	48 89 47 f0          	mov    %rax,-0x10(%rdi)
18010a584:	48 85 c0             	test   %rax,%rax
18010a587:	74 3d                	je     0x18010a5c6
18010a589:	4c 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%r8
18010a590:	00
18010a591:	49 8b d7             	mov    %r15,%rdx
18010a594:	49 8b ce             	mov    %r14,%rcx
18010a597:	4c 89 77 f8          	mov    %r14,-0x8(%rdi)
18010a59b:	e8 90 0c 00 00       	call   0x18010b230
18010a5a0:	48 89 07             	mov    %rax,(%rdi)
18010a5a3:	48 85 c0             	test   %rax,%rax
18010a5a6:	74 1e                	je     0x18010a5c6
18010a5a8:	c6 47 08 05          	movb   $0x5,0x8(%rdi)
18010a5ac:	48 83 c7 19          	add    $0x19,%rdi
18010a5b0:	ff c6                	inc    %esi
18010a5b2:	3b b4 24 80 00 00 00 	cmp    0x80(%rsp),%esi
18010a5b9:	0f 82 20 fe ff ff    	jb     0x18010a3df
18010a5bf:	48 8b 44 24 20       	mov    0x20(%rsp),%rax
18010a5c4:	eb 20                	jmp    0x18010a5e6
18010a5c6:	4c 8b 84 24 a8 00 00 	mov    0xa8(%rsp),%r8
18010a5cd:	00
18010a5ce:	41 8b d5             	mov    %r13d,%edx
18010a5d1:	48 8b 4c 24 20       	mov    0x20(%rsp),%rcx
18010a5d6:	e8 41 00 00 00       	call   0x18010a61c
18010a5db:	48 8b c3             	mov    %rbx,%rax
18010a5de:	44 8b eb             	mov    %ebx,%r13d
18010a5e1:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
18010a5e6:	48 8b 8c 24 a0 00 00 	mov    0xa0(%rsp),%rcx
18010a5ed:	00
18010a5ee:	44 89 29             	mov    %r13d,(%rcx)
18010a5f1:	48 8b 8c 24 98 00 00 	mov    0x98(%rsp),%rcx