18010c177:	48 99                	cqto
18010c179:	49 f7 f8             	idiv   %r8
18010c17c:	48 03 c5             	add    %rbp,%rax
18010c17f:	48 99                	cqto
18010c181:	0f b7 d2             	movzwl %dx,%edx
18010c184:	48 03 c2             	add    %rdx,%rax
18010c187:	48 c1 f8 10          	sar    $0x10,%rax
18010c18b:	89 07                	mov    %eax,(%rdi)
18010c18d:	e9 d7 01 00 00       	jmp    0x18010c369
18010c192:	4c 3b ca             	cmp    %rdx,%r9
18010c195:	7e 11                	jle    0x18010c1a8
18010c197:	4c 3b f2             	cmp    %rdx,%r14
18010c19a:	7e 09                	jle    0x18010c1a5
18010c19c:	4c 3b c2             	cmp    %rdx,%r8
18010c19f:	0f 8f 85 00 00 00    	jg     0x18010c22a
18010c1a5:	4c 3b ca             	cmp    %rdx,%r9
18010c1a8:	7d 0a                	jge    0x18010c1b4
18010c1aa:	4c 3b f2             	cmp    %rdx,%r14
18010c1ad:	7d 05                	jge    0x18010c1b4
18010c1af:	4c 3b c2             	cmp    %rdx,%r8
18010c1b2:	7c 76                	jl     0x18010c22a
18010c1b4:	4b 8d 04 36          	lea    (%r14,%r14,1),%rax
18010c1b8:	49 8b c8             	mov    %r8,%rcx
18010c1bb:	48 2b c8             	sub    %rax,%rcx
18010c1be:	49 03 c9             	add    %r9,%rcx
18010c1c1:	75 33                	jne    0x18010c1f6
18010c1c3:	49 2b d1             	sub    %r9,%rdx
18010c1c6:	48 2b dd             	sub    %rbp,%rbx
18010c1c9:	48 0f af d3          	imul   %rbx,%rdx
18010c1cd:	4d 2b c1             	sub    %r9,%r8
18010c1d0:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18010c1d5:	48 8b c2             	mov    %rdx,%rax
18010c1d8:	48 99                	cqto
18010c1da:	49 f7 f8             	idiv   %r8
18010c1dd:	48 03 c5             	add    %rbp,%rax
18010c1e0:	48 99                	cqto
18010c1e2:	0f b7 d2             	movzwl %dx,%edx
18010c1e5:	48 03 c2             	add    %rdx,%rax
18010c1e8:	48 c1 f8 10          	sar    $0x10,%rax
18010c1ec:	89 07                	mov    %eax,(%rdi)
18010c1ee:	41 89 0b             	mov    %ecx,(%r11)
18010c1f1:	e9 73 01 00 00       	jmp    0x18010c369
18010c1f6:	41 8b 45 08          	mov    0x8(%r13),%eax
18010c1fa:	41 03 45 00          	add    0x0(%r13),%eax
18010c1fe:	48 63 e8             	movslq %eax,%rbp
18010c201:	48 8d 04 36          	lea    (%rsi,%rsi,1),%rax
18010c205:	49 2b f2             	sub    %r10,%rsi
18010c208:	4c 2b e0             	sub    %rax,%r12
18010c20b:	4d 03 e2             	add    %r10,%r12
18010c20e:	48 03 f6             	add    %rsi,%rsi
18010c211:	4c 2b 54 24 40       	sub    0x40(%rsp),%r10
18010c216:	48 8b c6             	mov    %rsi,%rax
18010c219:	4d 0f af d4          	imul   %r12,%r10
18010c21d:	48 0f af c6          	imul   %rsi,%rax
18010c221:	49 c1 e2 02          	shl    $0x2,%r10
18010c225:	49 2b c2             	sub    %r10,%rax
18010c228:	79 09                	jns    0x18010c233
18010c22a:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18010c22f:	89 0f                	mov    %ecx,(%rdi)
18010c231:	eb bb                	jmp    0x18010c1ee
18010c233:	45 33 c0             	xor    %r8d,%r8d
18010c236:	48 85 c0             	test   %rax,%rax
18010c239:	7e 48                	jle    0x18010c283
18010c23b:	4c 8b c8             	mov    %rax,%r9
18010c23e:	49 c1 e1 20          	shl    $0x20,%r9
18010c242:	48 ff c0             	inc    %rax
18010c245:	48 d1 f8             	sar    $1,%rax
18010c248:	48 85 c0             	test   %rax,%rax
18010c24b:	7e 0b                	jle    0x18010c258
18010c24d:	49 2b c0             	sub    %r8,%rax
18010c250:	49 ff c0             	inc    %r8
18010c253:	49 3b c0             	cmp    %r8,%rax
18010c256:	7f f5                	jg     0x18010c24d
18010c258:	49 c1 e0 10          	shl    $0x10,%r8
18010c25c:	4d 85 c0             	test   %r8,%r8
18010c25f:	74 22                	je     0x18010c283
18010c261:	41 ba 07 00 00 00    	mov    $0x7,%r10d
18010c267:	49 8b c0             	mov    %r8,%rax
18010c26a:	4b 8d 0c 00          	lea    (%r8,%r8,1),%rcx
18010c26e:	49 0f af c0          	imul   %r8,%rax
18010c272:	49 03 c1             	add    %r9,%rax
18010c275:	48 99                	cqto
18010c277:	48 f7 f9             	idiv   %rcx
18010c27a:	4c 8b c0             	mov    %rax,%r8
18010c27d:	49 83 ea 01          	sub    $0x1,%r10
18010c281:	75 e4                	jne    0x18010c267
18010c283:	4b 8d 0c 24          	lea    (%r12,%r12,1),%rcx
18010c287:	48 f7 de             	neg    %rsi
18010c28a:	48 c1 e6 10          	shl    $0x10,%rsi
18010c28e:	41 bc 00 00 01 00    	mov    $0x10000,%r12d
18010c294:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
18010c29a:	4a 8d 04 06          	lea    (%rsi,%r8,1),%rax
18010c29e:	49 2b f0             	sub    %r8,%rsi
18010c2a1:	48 99                	cqto
18010c2a3:	45 8b c4             	mov    %r12d,%r8d
18010c2a6:	48 f7 f9             	idiv   %rcx
18010c2a9:	48 8b d8             	mov    %rax,%rbx
18010c2ac:	48 8b c6             	mov    %rsi,%rax
18010c2af:	48 99                	cqto
18010c2b1:	4c 2b c3             	sub    %rbx,%r8
18010c2b4:	48 f7 f9             	idiv   %rcx
18010c2b7:	49 8b d0             	mov    %r8,%rdx
18010c2ba:	48 8b cb             	mov    %rbx,%rcx
18010c2bd:	48 0f af 14 24       	imul   (%rsp),%rdx
18010c2c2:	48 0f af cd          	imul   %rbp,%rcx
18010c2c6:	4c 8b d0             	mov    %rax,%r10
18010c2c9:	48 8d 04 4a          	lea    (%rdx,%rcx,2),%rax
18010c2cd:	48 8b cb             	mov    %rbx,%rcx
18010c2d0:	49 0f af c0          	imul   %r8,%rax
18010c2d4:	48 0f af cb          	imul   %rbx,%rcx
18010c2d8:	45 8b c4             	mov    %r12d,%r8d
18010c2db:	4d 2b c2             	sub    %r10,%r8
18010c2de:	48 0f af 4c 24 08    	imul   0x8(%rsp),%rcx
18010c2e4:	48 03 c1             	add    %rcx,%rax
18010c2e7:	49 8b ca             	mov    %r10,%rcx
18010c2ea:	48 99                	cqto
18010c2ec:	49 23 d7             	and    %r15,%rdx
18010c2ef:	48 03 c2             	add    %rdx,%rax
18010c2f2:	49 8b d0             	mov    %r8,%rdx
18010c2f5:	48 0f af 14 24       	imul   (%rsp),%rdx
18010c2fa:	48 0f af cd          	imul   %rbp,%rcx
18010c2fe:	48 c1 f8 20          	sar    $0x20,%rax
18010c302:	4c 8b c8             	mov    %rax,%r9
18010c305:	89 07                	mov    %eax,(%rdi)
18010c307:	48 8d 04 4a          	lea    (%rdx,%rcx,2),%rax
18010c30b:	49 8b ca             	mov    %r10,%rcx
18010c30e:	49 0f af c0          	imul   %r8,%rax
18010c312:	49 0f af ca          	imul   %r10,%rcx
18010c316:	48 0f af 4c 24 08    	imul   0x8(%rsp),%rcx
18010c31c:	48 03 c1             	add    %rcx,%rax
18010c31f:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18010c324:	48 99                	cqto
18010c326:	49 23 d7             	and    %r15,%rdx
18010c329:	48 03 c2             	add    %rdx,%rax
18010c32c:	48 c1 f8 20          	sar    $0x20,%rax
18010c330:	41 89 03             	mov    %eax,(%r11)
18010c333:	48 8b d0             	mov    %rax,%rdx
18010c336:	48 85 db             	test   %rbx,%rbx
18010c339:	78 05                	js     0x18010c340
18010c33b:	49 3b dc             	cmp    %r12,%rbx
18010c33e:	7e 05                	jle    0x18010c345
18010c340:	89 0f                	mov    %ecx,(%rdi)
18010c342:	44 8b c9             	mov    %ecx,%r9d
18010c345:	4d 85 d2             	test   %r10,%r10
18010c348:	78 05                	js     0x18010c34f
18010c34a:	4d 3b d4             	cmp    %r12,%r10
18010c34d:	7e 05                	jle    0x18010c354
18010c34f:	41 89 0b             	mov    %ecx,(%r11)
18010c352:	8b d1                	mov    %ecx,%edx
18010c354:	44 3b ca             	cmp    %edx,%r9d
18010c357:	7e 07                	jle    0x18010c360
18010c359:	89 17                	mov    %edx,(%rdi)
18010c35b:	45 89 0b             	mov    %r9d,(%r11)
18010c35e:	eb 09                	jmp    0x18010c369
18010c360:	41 8b 03             	mov    (%r11),%eax
18010c363:	0f 44 c1             	cmove  %ecx,%eax
18010c366:	41 89 03             	mov    %eax,(%r11)
18010c369:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
18010c36e:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
18010c373:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
18010c378:	48 83 c4 10          	add    $0x10,%rsp
18010c37c:	41 5f                	pop    %r15
18010c37e:	41 5e                	pop    %r14
18010c380:	41 5d                	pop    %r13
18010c382:	41 5c                	pop    %r12
18010c384:	5f                   	pop    %rdi
18010c385:	c3                   	ret
18010c386:	cc                   	int3
18010c387:	cc                   	int3
18010c388:	40 53                	rex push %rbx
18010c38a:	48 83 ec 20          	sub    $0x20,%rsp
18010c38e:	48 8b 01             	mov    (%rcx),%rax
18010c391:	48 39 48 08          	cmp    %rcx,0x8(%rax)
18010c395:	75 59                	jne    0x18010c3f0
18010c397:	48 89 02             	mov    %rax,(%rdx)
18010c39a:	48 89 4a 08          	mov    %rcx,0x8(%rdx)
18010c39e:	48 89 50 08          	mov    %rdx,0x8(%rax)
18010c3a2:	48 89 11             	mov    %rdx,(%rcx)
18010c3a5:	83 79 30 00          	cmpl   $0x0,0x30(%rcx)
18010c3a9:	74 32                	je     0x18010c3dd
18010c3ab:	8b 41 34             	mov    0x34(%rcx),%eax
18010c3ae:	3b 41 30             	cmp    0x30(%rcx),%eax
18010c3b1:	75 31                	jne    0x18010c3e4
18010c3b3:	48 8b 59 08          	mov    0x8(%rcx),%rbx
18010c3b7:	48 39 0b             	cmp    %rcx,(%rbx)
18010c3ba:	75 34                	jne    0x18010c3f0
18010c3bc:	48 8b 43 08          	mov    0x8(%rbx),%rax
18010c3c0:	48 39 18             	cmp    %rbx,(%rax)
18010c3c3:	75 2b                	jne    0x18010c3f0
18010c3c5:	48 89 41 08          	mov    %rax,0x8(%rcx)
18010c3c9:	48 89 08             	mov    %rcx,(%rax)
18010c3cc:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
18010c3d0:	e8 27 dc f8 ff       	call   0x180099ffc
18010c3d5:	48 8b cb             	mov    %rbx,%rcx
18010c3d8:	e8 1f dc f8 ff       	call   0x180099ffc
18010c3dd:	48 83 c4 20          	add    $0x20,%rsp
18010c3e1:	5b                   	pop    %rbx
18010c3e2:	c3                   	ret
18010c3e3:	cc                   	int3
18010c3e4:	ff c0                	inc    %eax
18010c3e6:	89 41 34             	mov    %eax,0x34(%rcx)
18010c3e9:	48 83 c4 20          	add    $0x20,%rsp
18010c3ed:	5b                   	pop    %rbx
18010c3ee:	c3                   	ret
18010c3ef:	cc                   	int3
18010c3f0:	b9 03 00 00 00       	mov    $0x3,%ecx
18010c3f5:	cd 29                	int    $0x29
18010c3f7:	cc                   	int3
18010c3f8:	48 8b 01             	mov    (%rcx),%rax
18010c3fb:	45 33 d2             	xor    %r10d,%r10d
18010c3fe:	48 3b c1             	cmp    %rcx,%rax
18010c401:	74 25                	je     0x18010c428
18010c403:	4c 8b 5c 24 28       	mov    0x28(%rsp),%r11
18010c408:	66 39 50 3c          	cmp    %dx,0x3c(%rax)
18010c40c:	75 12                	jne    0x18010c420
18010c40e:	44 39 40 28          	cmp    %r8d,0x28(%rax)
18010c412:	75 0c                	jne    0x18010c420
18010c414:	44 39 48 24          	cmp    %r9d,0x24(%rax)
18010c418:	75 06                	jne    0x18010c420
18010c41a:	4c 39 58 18          	cmp    %r11,0x18(%rax)
18010c41e:	74 12                	je     0x18010c432
18010c420:	48 8b 00             	mov    (%rax),%rax
18010c423:	48 3b c1             	cmp    %rcx,%rax
18010c426:	75 e0                	jne    0x18010c408
18010c428:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
18010c42d:	4c 89 10             	mov    %r10,(%rax)
18010c430:	c3                   	ret
18010c431:	cc                   	int3
18010c432:	48 8b 10             	mov    (%rax),%rdx
18010c435:	4c 8b d0             	mov    %rax,%r10
18010c438:	48 39 42 08          	cmp    %rax,0x8(%rdx)
18010c43c:	75 29                	jne    0x18010c467
18010c43e:	4c 8b 40 08          	mov    0x8(%rax),%r8
18010c442:	49 39 00             	cmp    %rax,(%r8)
18010c445:	75 20                	jne    0x18010c467
18010c447:	49 89 10             	mov    %rdx,(%r8)
18010c44a:	4c 89 42 08          	mov    %r8,0x8(%rdx)
18010c44e:	48 8b 11             	mov    (%rcx),%rdx
18010c451:	48 39 4a 08          	cmp    %rcx,0x8(%rdx)
18010c455:	75 10                	jne    0x18010c467
18010c457:	48 89 10             	mov    %rdx,(%rax)
18010c45a:	48 89 48 08          	mov    %rcx,0x8(%rax)
18010c45e:	48 89 42 08          	mov    %rax,0x8(%rdx)
18010c462:	48 89 01             	mov    %rax,(%rcx)
18010c465:	eb c1                	jmp    0x18010c428
18010c467:	b9 03 00 00 00       	mov    $0x3,%ecx
18010c46c:	cd 29                	int    $0x29
18010c46e:	cc                   	int3
18010c46f:	cc                   	int3
18010c470:	48 8b c4             	mov    %rsp,%rax
18010c473:	48 89 58 10          	mov    %rbx,0x10(%rax)
18010c477:	4c 89 48 20          	mov    %r9,0x20(%rax)
18010c47b:	4c 89 40 18          	mov    %r8,0x18(%rax)
18010c47f:	55                   	push   %rbp
18010c480:	56                   	push   %rsi
18010c481:	57                   	push   %rdi
18010c482:	41 54                	push   %r12
18010c484:	41 55                	push   %r13
18010c486:	41 56                	push   %r14
18010c488:	41 57                	push   %r15
18010c48a:	48 8d 68 b1          	lea    -0x4f(%rax),%rbp
18010c48e:	48 81 ec c0 00 00 00 	sub    $0xc0,%rsp
18010c495:	4c 8b 75 7f          	mov    0x7f(%rbp),%r14
18010c499:	33 f6                	xor    %esi,%esi
18010c49b:	48 21 75 a7          	and    %rsi,-0x59(%rbp)
18010c49f:	33 ff                	xor    %edi,%edi
18010c4a1:	45 33 c9             	xor    %r9d,%r9d
18010c4a4:	48 89 7d 6f          	mov    %rdi,0x6f(%rbp)
18010c4a8:	33 c0                	xor    %eax,%eax
18010c4aa:	44 89 4d 77          	mov    %r9d,0x77(%rbp)
18010c4ae:	4d 8b 3e             	mov    (%r14),%r15
18010c4b1:	0f 57 c0             	xorps  %xmm0,%xmm0
18010c4b4:	48 89 45 bf          	mov    %rax,-0x41(%rbp)
18010c4b8:	4c 8b ea             	mov    %rdx,%r13
18010c4bb:	44 0f b7 e1          	movzwl %cx,%r12d
18010c4bf:	0f 11 45 af          	movups %xmm0,-0x51(%rbp)
18010c4c3:	66 83 f9 20          	cmp    $0x20,%cx
18010c4c7:	0f 82 ff 00 00 00    	jb     0x18010c5cc
18010c4cd:	48 8b 42 08          	mov    0x8(%rdx),%rax
18010c4d1:	48 8d 4d a7          	lea    -0x59(%rbp),%rcx
18010c4d5:	44 8b 42 10          	mov    0x10(%rdx),%r8d
18010c4d9:	41 0f b7 d4          	movzwl %r12w,%edx
18010c4dd:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
18010c4e2:	48 8d 0d 57 94 08 00 	lea    0x89457(%rip),%rcx        # 0x180195940
18010c4e9:	48 89 45 7f          	mov    %rax,0x7f(%rbp)
18010c4ed:	44 8b 48 28          	mov    0x28(%rax),%r9d
18010c4f1:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18010c4f6:	e8 fd fe ff ff       	call   0x18010c3f8
18010c4fb:	48 8b 5d a7          	mov    -0x59(%rbp),%rbx
18010c4ff:	48 85 db             	test   %rbx,%rbx
18010c502:	0f 85 b8 00 00 00    	jne    0x18010c5c0
18010c508:	4c 89 74 24 40       	mov    %r14,0x40(%rsp)
18010c50d:	48 8d 45 57          	lea    0x57(%rbp),%rax
18010c511:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
18010c516:	41 0f b7 d4          	movzwl %r12w,%edx
18010c51a:	48 8d 45 77          	lea    0x77(%rbp),%rax
18010c51e:	49 8b cd             	mov    %r13,%rcx
18010c521:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
18010c526:	48 8d 45 6f          	lea    0x6f(%rbp),%rax
18010c52a:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18010c52f:	21 74 24 20          	and    %esi,0x20(%rsp)
18010c533:	e8 20 f5 ff ff       	call   0x18010ba58
18010c538:	8b f0                	mov    %eax,%esi
18010c53a:	85 c0                	test   %eax,%eax
18010c53c:	78 1e                	js     0x18010c55c
18010c53e:	4d 85 ff             	test   %r15,%r15
18010c541:	75 23                	jne    0x18010c566
18010c543:	48 8d 55 af          	lea    -0x51(%rbp),%rdx
18010c547:	8d 4f 46             	lea    0x46(%rdi),%ecx
18010c54a:	e8 c1 00 00 00       	call   0x18010c610
18010c54f:	48 8b d8             	mov    %rax,%rbx
18010c552:	48 85 c0             	test   %rax,%rax
18010c555:	75 13                	jne    0x18010c56a
18010c557:	be 17 00 00 c0       	mov    $0xc0000017,%esi
18010c55c:	48 8b 7d 6f          	mov    0x6f(%rbp),%rdi
18010c560:	44 8b 4d 77          	mov    0x77(%rbp),%r9d
18010c564:	eb 66                	jmp    0x18010c5cc
18010c566:	48 8d 5d c7          	lea    -0x39(%rbp),%rbx
18010c56a:	41 8b 45 10          	mov    0x10(%r13),%eax
18010c56e:	49 8b 56 10          	mov    0x10(%r14),%rdx
18010c572:	4c 8b 45 7f          	mov    0x7f(%rbp),%r8
18010c576:	48 8b 7d 6f          	mov    0x6f(%rbp),%rdi
18010c57a:	41 8b 48 28          	mov    0x28(%r8),%ecx
18010c57e:	89 43 28             	mov    %eax,0x28(%rbx)
18010c581:	8b 45 77             	mov    0x77(%rbp),%eax
18010c584:	89 43 2c             	mov    %eax,0x2c(%rbx)
18010c587:	8b 45 57             	mov    0x57(%rbp),%eax
18010c58a:	89 43 30             	mov    %eax,0x30(%rbx)
18010c58d:	b8 04 00 00 00       	mov    $0x4,%eax
18010c592:	89 43 34             	mov    %eax,0x34(%rbx)
18010c595:	89 43 38             	mov    %eax,0x38(%rbx)
18010c598:	66 44 89 63 3c       	mov    %r12w,0x3c(%rbx)
18010c59d:	89 4b 24             	mov    %ecx,0x24(%rbx)
18010c5a0:	4c 89 43 18          	mov    %r8,0x18(%rbx)
18010c5a4:	48 89 7b 10          	mov    %rdi,0x10(%rbx)
18010c5a8:	48 89 53 3e          	mov    %rdx,0x3e(%rbx)
18010c5ac:	4d 85 ff             	test   %r15,%r15
18010c5af:	75 0f                	jne    0x18010c5c0
18010c5b1:	48 8b d3             	mov    %rbx,%rdx
18010c5b4:	48 8d 0d 85 93 08 00 	lea    0x89385(%rip),%rcx        # 0x180195940
18010c5bb:	e8 c8 fd ff ff       	call   0x18010c388
18010c5c0:	48 8b 43 3e          	mov    0x3e(%rbx),%rax
18010c5c4:	44 8b 4b 2c          	mov    0x2c(%rbx),%r9d
18010c5c8:	49 89 46 10          	mov    %rax,0x10(%r14)
18010c5cc:	48 8b 45 67          	mov    0x67(%rbp),%rax
18010c5d0:	44 89 08             	mov    %r9d,(%rax)
18010c5d3:	4d 85 ff             	test   %r15,%r15
18010c5d6:	75 04                	jne    0x18010c5dc
18010c5d8:	85 f6                	test   %esi,%esi
18010c5da:	79 13                	jns    0x18010c5ef