14018f1c1:	4c 8d 7f 04          	lea    0x4(%rdi),%r15
14018f1c5:	8b 44 24 70          	mov    0x70(%rsp),%eax
14018f1c9:	48 89 ac 24 80 00 00 	mov    %rbp,0x80(%rsp)
14018f1d0:	00
14018f1d1:	4a 8d 0c 12          	lea    (%rdx,%r10,1),%rcx
14018f1d5:	48 89 cd             	mov    %rcx,%rbp
14018f1d8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14018f1df:	00
14018f1e0:	49 8b 52 08          	mov    0x8(%r10),%rdx
14018f1e4:	b9 00 00 01 00       	mov    $0x10000,%ecx
14018f1e9:	44 8b 4a 38          	mov    0x38(%rdx),%r9d
14018f1ed:	45 85 c9             	test   %r9d,%r9d
14018f1f0:	79 1c                	jns    0x14018f20e
14018f1f2:	8b 5a 28             	mov    0x28(%rdx),%ebx
14018f1f5:	0f af d8             	imul   %eax,%ebx
14018f1f8:	48 63 cb             	movslq %ebx,%rcx
14018f1fb:	48 89 ca             	mov    %rcx,%rdx
14018f1fe:	48 69 c9 1f 85 eb 51 	imul   $0x51eb851f,%rcx,%rcx
14018f205:	c1 fa 1f             	sar    $0x1f,%edx
14018f208:	48 c1 f9 25          	sar    $0x25,%rcx
14018f20c:	29 d1                	sub    %edx,%ecx
14018f20e:	44 39 c6             	cmp    %r8d,%esi
14018f211:	7e 3b                	jle    0x14018f24e
14018f213:	4d 63 cb             	movslq %r11d,%r9
14018f216:	4b 8d 14 0e          	lea    (%r14,%r9,1),%rdx
14018f21a:	4d 01 e9             	add    %r13,%r9
14018f21d:	4f 8d 0c 8f          	lea    (%r15,%r9,4),%r9
14018f221:	48 8d 14 97          	lea    (%rdi,%rdx,4),%rdx
14018f225:	4c 89 cb             	mov    %r9,%rbx
14018f228:	48 29 d3             	sub    %rdx,%rbx
14018f22b:	83 e3 04             	and    $0x4,%ebx
14018f22e:	74 10                	je     0x14018f240
14018f230:	89 0a                	mov    %ecx,(%rdx)
14018f232:	48 83 c2 04          	add    $0x4,%rdx
14018f236:	4c 39 ca             	cmp    %r9,%rdx
14018f239:	74 13                	je     0x14018f24e
14018f23b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
14018f240:	89 0a                	mov    %ecx,(%rdx)
14018f242:	48 83 c2 08          	add    $0x8,%rdx
14018f246:	89 4a fc             	mov    %ecx,-0x4(%rdx)
14018f249:	4c 39 ca             	cmp    %r9,%rdx
14018f24c:	75 f2                	jne    0x14018f240
14018f24e:	49 83 c2 10          	add    $0x10,%r10
14018f252:	41 01 f3             	add    %esi,%r11d
14018f255:	4c 39 d5             	cmp    %r10,%rbp
14018f258:	75 86                	jne    0x14018f1e0
14018f25a:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
14018f25f:	4c 8b 4c 24 58       	mov    0x58(%rsp),%r9
14018f264:	48 8b ac 24 80 00 00 	mov    0x80(%rsp),%rbp
14018f26b:	00
14018f26c:	48 8b 84 24 88 00 00 	mov    0x88(%rsp),%rax
14018f273:	00
14018f274:	44 39 c6             	cmp    %r8d,%esi
14018f277:	7e 44                	jle    0x14018f2bd
14018f279:	89 c1                	mov    %eax,%ecx
14018f27b:	0f af c6             	imul   %esi,%eax
14018f27e:	49 63 d0             	movslq %r8d,%rdx
14018f281:	48 98                	cltq
14018f283:	48 01 d0             	add    %rdx,%rax
14018f286:	4c 8d 14 87          	lea    (%rdi,%rax,4),%r10
14018f28a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
14018f290:	4c 89 d2             	mov    %r10,%rdx
14018f293:	89 c8                	mov    %ecx,%eax
14018f295:	39 ce                	cmp    %ecx,%esi
14018f297:	7e 17                	jle    0x14018f2b0
14018f299:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
14018f2a0:	83 c0 01             	add    $0x1,%eax
14018f2a3:	c7 02 00 00 00 00    	movl   $0x0,(%rdx)
14018f2a9:	48 01 da             	add    %rbx,%rdx
14018f2ac:	39 c6                	cmp    %eax,%esi
14018f2ae:	75 f0                	jne    0x14018f2a0
14018f2b0:	41 83 c0 01          	add    $0x1,%r8d
14018f2b4:	49 83 c2 04          	add    $0x4,%r10
14018f2b8:	44 39 c6             	cmp    %r8d,%esi
14018f2bb:	75 d3                	jne    0x14018f290
14018f2bd:	48 8b 44 24 60       	mov    0x60(%rsp),%rax
14018f2c2:	89 f1                	mov    %esi,%ecx
14018f2c4:	49 89 f8             	mov    %rdi,%r8
14018f2c7:	89 f2                	mov    %esi,%edx
14018f2c9:	4c 89 4c 24 50       	mov    %r9,0x50(%rsp)
14018f2ce:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
14018f2d3:	e8 68 78 03 00       	call   0x1401c6b40
14018f2d8:	48 8b 8c 24 d8 00 00 	mov    0xd8(%rsp),%rcx
14018f2df:	00
14018f2e0:	4c 8b 4c 24 50       	mov    0x50(%rsp),%r9
14018f2e5:	48 85 c9             	test   %rcx,%rcx
14018f2e8:	74 5c                	je     0x14018f346
14018f2ea:	4c 8b 84 24 08 01 00 	mov    0x108(%rsp),%r8
14018f2f1:	00
14018f2f2:	48 8b b4 24 d0 00 00 	mov    0xd0(%rsp),%rsi
14018f2f9:	00
14018f2fa:	31 c0                	xor    %eax,%eax
14018f2fc:	48 8b 9c 24 00 01 00 	mov    0x100(%rsp),%rbx
14018f303:	00
14018f304:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
14018f30b:	00 00 00 00
14018f30f:	90                   	nop
14018f310:	41 8b 14 81          	mov    (%r9,%rax,4),%edx
14018f314:	85 d2                	test   %edx,%edx
14018f316:	78 25                	js     0x14018f33d
14018f318:	4c 63 d2             	movslq %edx,%r10
14018f31b:	4d 39 c2             	cmp    %r8,%r10
14018f31e:	73 1d                	jae    0x14018f33d
14018f320:	49 89 c3             	mov    %rax,%r11
14018f323:	49 c1 e2 04          	shl    $0x4,%r10
14018f327:	49 c1 e3 04          	shl    $0x4,%r11
14018f32b:	4e 8b 54 13 08       	mov    0x8(%rbx,%r10,1),%r10
14018f330:	4e 8b 5c 1e 08       	mov    0x8(%rsi,%r11,1),%r11
14018f335:	41 89 53 38          	mov    %edx,0x38(%r11)
14018f339:	41 89 42 38          	mov    %eax,0x38(%r10)
14018f33d:	48 83 c0 01          	add    $0x1,%rax
14018f341:	48 39 c1             	cmp    %rax,%rcx
14018f344:	75 ca                	jne    0x14018f310
14018f346:	48 89 f9             	mov    %rdi,%rcx
14018f349:	4c 89 4c 24 50       	mov    %r9,0x50(%rsp)
14018f34e:	e8 5d 9b f6 ff       	call   0x1400f8eb0
14018f353:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
14018f358:	e8 53 9b f6 ff       	call   0x1400f8eb0
14018f35d:	48 8b 4c 24 60       	mov    0x60(%rsp),%rcx
14018f362:	e8 49 9b f6 ff       	call   0x1400f8eb0
14018f367:	48 8b 84 24 08 01 00 	mov    0x108(%rsp),%rax
14018f36e:	00
14018f36f:	48 8b 94 24 d8 00 00 	mov    0xd8(%rsp),%rdx
14018f376:	00
14018f377:	48 c7 84 24 b0 00 00 	movq   $0x0,0xb0(%rsp)
14018f37e:	00 00 00 00 00
14018f383:	48 8b 1d 16 a0 0a 00 	mov    0xaa016(%rip),%rbx        # 0x1402393a0
14018f38a:	48 c7 84 24 b8 00 00 	movq   $0x0,0xb8(%rsp)
14018f391:	00 00 00 00 00
14018f396:	48 c7 84 24 30 01 00 	movq   $0x0,0x130(%rsp)
14018f39d:	00 00 00 00 00
14018f3a2:	48 39 d0             	cmp    %rdx,%rax
14018f3a5:	48 0f 42 c2          	cmovb  %rdx,%rax
14018f3a9:	48 89 9c 24 c0 00 00 	mov    %rbx,0xc0(%rsp)
14018f3b0:	00
14018f3b1:	48 c7 84 24 38 01 00 	movq   $0x0,0x138(%rsp)
14018f3b8:	00 00 00 00 00
14018f3bd:	48 8d 48 01          	lea    0x1(%rax),%rcx
14018f3c1:	48 89 9c 24 40 01 00 	mov    %rbx,0x140(%rsp)
14018f3c8:	00
14018f3c9:	e8 62 7d eb ff       	call   0x140047130
14018f3ce:	48 8b 75 08          	mov    0x8(%rbp),%rsi
14018f3d2:	48 c7 84 24 60 01 00 	movq   $0x0,0x160(%rsp)
14018f3d9:	00 00 00 00 00
14018f3de:	48 c7 84 24 68 01 00 	movq   $0x0,0x168(%rsp)
14018f3e5:	00 00 00 00 00
14018f3ea:	41 89 c6             	mov    %eax,%r14d
14018f3ed:	48 89 9c 24 70 01 00 	mov    %rbx,0x170(%rsp)
14018f3f4:	00
14018f3f5:	48 85 f6             	test   %rsi,%rsi
14018f3f8:	0f 84 fb 04 00 00    	je     0x14018f8f9
14018f3fe:	4c 8d ac 24 90 01 00 	lea    0x190(%rsp),%r13
14018f405:	00
14018f406:	b9 4a 00 00 00       	mov    $0x4a,%ecx
14018f40b:	4c 89 ef             	mov    %r13,%rdi
14018f40e:	f3 48 a5             	rep movsq %ds:(%rsi),%es:(%rdi)
14018f411:	8b 9c 24 a4 02 00 00 	mov    0x2a4(%rsp),%ebx
14018f418:	c7 84 24 d8 03 00 00 	movl   $0x1,0x3d8(%rsp)
14018f41f:	01 00 00 00
14018f423:	85 db                	test   %ebx,%ebx
14018f425:	75 0b                	jne    0x14018f432
14018f427:	c7 84 24 a4 02 00 00 	movl   $0x10,0x2a4(%rsp)
14018f42e:	10 00 00 00
14018f432:	0f b6 45 04          	movzbl 0x4(%rbp),%eax
14018f436:	41 b8 04 00 00 00    	mov    $0x4,%r8d
14018f43c:	4c 89 e1             	mov    %r12,%rcx
14018f43f:	31 db                	xor    %ebx,%ebx
14018f441:	48 8d 15 2b b4 09 00 	lea    0x9b42b(%rip),%rdx        # 0x14022a873
14018f448:	31 f6                	xor    %esi,%esi
14018f44a:	c7 84 24 70 02 00 00 	movl   $0x1,0x270(%rsp)
14018f451:	01 00 00 00
14018f455:	c7 84 24 78 02 00 00 	movl   $0x1,0x278(%rsp)
14018f45c:	01 00 00 00
14018f460:	83 e0 01             	and    $0x1,%eax
14018f463:	89 84 24 74 02 00 00 	mov    %eax,0x274(%rsp)
14018f46a:	48 8d 05 af e5 ff ff 	lea    -0x1a51(%rip),%rax        # 0x14018da20
14018f471:	48 89 84 24 a0 03 00 	mov    %rax,0x3a0(%rsp)
14018f478:	00
14018f479:	e8 32 c5 f0 ff       	call   0x14009b9b0
14018f47e:	48 8b 84 24 70 01 00 	mov    0x170(%rsp),%rax
14018f485:	00
14018f486:	4c 89 e9             	mov    %r13,%rcx
14018f489:	48 89 84 24 a8 03 00 	mov    %rax,0x3a8(%rsp)
14018f490:	00
14018f491:	e8 5a 9e fa ff       	call   0x1401392f0
14018f496:	4c 8b 84 24 d8 00 00 	mov    0xd8(%rsp),%r8
14018f49d:	00
14018f49e:	48 8b 84 24 08 01 00 	mov    0x108(%rsp),%rax
14018f4a5:	00
14018f4a6:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
14018f4ad:	00 00 00
14018f4b0:	48 89 da             	mov    %rbx,%rdx
14018f4b3:	48 89 f7             	mov    %rsi,%rdi
14018f4b6:	4c 39 c3             	cmp    %r8,%rbx
14018f4b9:	72 75                	jb     0x14018f530
14018f4bb:	48 39 c6             	cmp    %rax,%rsi
14018f4be:	0f 83 7e 03 00 00    	jae    0x14018f842
14018f4c4:	48 89 f2             	mov    %rsi,%rdx
14018f4c7:	48 c1 e2 04          	shl    $0x4,%rdx
14018f4cb:	48 03 94 24 00 01 00 	add    0x100(%rsp),%rdx
14018f4d2:	00
14018f4d3:	4c 8b 7a 08          	mov    0x8(%rdx),%r15
14018f4d7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14018f4de:	00 00
14018f4e0:	48 39 c6             	cmp    %rax,%rsi
14018f4e3:	73 cb                	jae    0x14018f4b0
14018f4e5:	41 8b 57 38          	mov    0x38(%r15),%edx
14018f4e9:	89 fe                	mov    %edi,%esi
14018f4eb:	85 d2                	test   %edx,%edx
14018f4ed:	0f 89 fe 00 00 00    	jns    0x14018f5f1
14018f4f3:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
14018f4fa:	00 00 00 00
14018f4fe:	66 90                	xchg   %ax,%ax
14018f500:	f6 45 04 02          	testb  $0x2,0x4(%rbp)
14018f504:	0f 84 66 01 00 00    	je     0x14018f670
14018f50a:	48 83 c7 01          	add    $0x1,%rdi
14018f50e:	48 39 c7             	cmp    %rax,%rdi
14018f511:	0f 82 b9 00 00 00    	jb     0x14018f5d0
14018f517:	83 c6 01             	add    $0x1,%esi
14018f51a:	4c 8b 84 24 d8 00 00 	mov    0xd8(%rsp),%r8
14018f521:	00
14018f522:	48 63 f6             	movslq %esi,%rsi
14018f525:	48 89 da             	mov    %rbx,%rdx
14018f528:	48 89 f7             	mov    %rsi,%rdi
14018f52b:	4c 39 c3             	cmp    %r8,%rbx
14018f52e:	73 8b                	jae    0x14018f4bb
14018f530:	4c 8b 94 24 d0 00 00 	mov    0xd0(%rsp),%r10
14018f537:	00
14018f538:	48 89 d1             	mov    %rdx,%rcx
14018f53b:	45 31 ff             	xor    %r15d,%r15d
14018f53e:	48 c1 e1 04          	shl    $0x4,%rcx
14018f542:	4d 8b 4c 0a 08       	mov    0x8(%r10,%rcx,1),%r9
14018f547:	48 39 c6             	cmp    %rax,%rsi
14018f54a:	0f 82 91 03 00 00    	jb     0x14018f8e1
14018f550:	45 8b 59 24          	mov    0x24(%r9),%r11d
14018f554:	89 d1                	mov    %edx,%ecx
14018f556:	45 85 db             	test   %r11d,%r11d
14018f559:	0f 84 41 01 00 00    	je     0x14018f6a0
14018f55f:	48 83 c2 01          	add    $0x1,%rdx
14018f563:	4c 39 c2             	cmp    %r8,%rdx
14018f566:	0f 82 64 03 00 00    	jb     0x14018f8d0
14018f56c:	8d 59 01             	lea    0x1(%rcx),%ebx
14018f56f:	48 63 db             	movslq %ebx,%rbx
14018f572:	e9 69 ff ff ff       	jmp    0x14018f4e0
14018f577:	48 89 d8             	mov    %rbx,%rax
14018f57a:	48 f7 e3             	mul    %rbx
14018f57d:	0f 80 6a 04 00 00    	jo     0x14018f9ed
14018f583:	48 ba 00 00 00 00 00 	movabs $0x4000000000000000,%rdx
14018f58a:	00 00 40
14018f58d:	48 39 d0             	cmp    %rdx,%rax
14018f590:	0f 84 69 04 00 00    	je     0x14018f9ff
14018f596:	48 8d 0c 85 00 00 00 	lea    0x0(,%rax,4),%rcx
14018f59d:	00
14018f59e:	e8 7d b4 f3 ff       	call   0x1400caa20
14018f5a3:	48 89 c7             	mov    %rax,%rdi
14018f5a6:	48 89 d8             	mov    %rbx,%rax
14018f5a9:	48 c1 e8 3e          	shr    $0x3e,%rax
14018f5ad:	0f 84 50 f9 ff ff    	je     0x14018ef03
14018f5b3:	49 89 d8             	mov    %rbx,%r8
14018f5b6:	ba 04 00 00 00       	mov    $0x4,%edx
14018f5bb:	48 8d 0d 96 b3 09 00 	lea    0x9b396(%rip),%rcx        # 0x14022a958
14018f5c2:	e8 c9 3d f3 ff       	call   0x1400c3390
14018f5c7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14018f5ce:	00 00
14018f5d0:	48 89 fa             	mov    %rdi,%rdx
14018f5d3:	89 fe                	mov    %edi,%esi
14018f5d5:	48 c1 e2 04          	shl    $0x4,%rdx
14018f5d9:	48 03 94 24 00 01 00 	add    0x100(%rsp),%rdx
14018f5e0:	00
14018f5e1:	4c 8b 7a 08          	mov    0x8(%rdx),%r15
14018f5e5:	41 8b 57 38          	mov    0x38(%r15),%edx
14018f5e9:	85 d2                	test   %edx,%edx
14018f5eb:	0f 88 0f ff ff ff    	js     0x14018f500
14018f5f1:	48 39 c7             	cmp    %rax,%rdi
14018f5f4:	0f 83 20 ff ff ff    	jae    0x14018f51a
14018f5fa:	49 63 47 38          	movslq 0x38(%r15),%rax
14018f5fe:	4c 8b 4c 24 40       	mov    0x40(%rsp),%r9
14018f603:	44 89 f2             	mov    %r14d,%edx
14018f606:	4c 89 e9             	mov    %r13,%rcx
14018f609:	4c 8b 44 24 48       	mov    0x48(%rsp),%r8
14018f60e:	48 c1 e0 04          	shl    $0x4,%rax
14018f612:	48 03 84 24 d0 00 00 	add    0xd0(%rsp),%rax
14018f619:	00
14018f61a:	4c 8b 50 08          	mov    0x8(%rax),%r10
14018f61e:	4c 89 7c 24 28       	mov    %r15,0x28(%rsp)
14018f623:	4c 89 54 24 20       	mov    %r10,0x20(%rsp)
14018f628:	4c 89 54 24 50       	mov    %r10,0x50(%rsp)
14018f62d:	e8 6e f1 ff ff       	call   0x14018e7a0
14018f632:	f6 84 24 a5 02 00 00 	testb  $0x8,0x2a5(%rsp)
14018f639:	08
14018f63a:	4c 8b 54 24 50       	mov    0x50(%rsp),%r10
14018f63f:	0f 84 fd 00 00 00    	je     0x14018f742
14018f645:	83 c6 01             	add    $0x1,%esi
14018f648:	41 c7 42 24 01 00 00 	movl   $0x1,0x24(%r10)
14018f64f:	00
14018f650:	4c 8b 84 24 d8 00 00 	mov    0xd8(%rsp),%r8
14018f657:	00
14018f658:	48 8b 84 24 08 01 00 	mov    0x108(%rsp),%rax
14018f65f:	00
14018f660:	48 63 f6             	movslq %esi,%rsi
14018f663:	e9 48 fe ff ff       	jmp    0x14018f4b0
14018f668:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14018f66f:	00
14018f670:	4c 89 7c 24 28       	mov    %r15,0x28(%rsp)
14018f675:	4c 8b 4c 24 40       	mov    0x40(%rsp),%r9
14018f67a:	44 89 f2             	mov    %r14d,%edx
14018f67d:	4c 89 e9             	mov    %r13,%rcx
14018f680:	48 c7 44 24 20 00 00 	movq   $0x0,0x20(%rsp)
14018f687:	00 00
14018f689:	4c 8b 44 24 48       	mov    0x48(%rsp),%r8
14018f68e:	e8 0d f1 ff ff       	call   0x14018e7a0
14018f693:	48 8b 84 24 08 01 00 	mov    0x108(%rsp),%rax
14018f69a:	00
14018f69b:	e9 6a fe ff ff       	jmp    0x14018f50a
14018f6a0:	89 d3                	mov    %edx,%ebx
14018f6a2:	4c 39 c2             	cmp    %r8,%rdx
14018f6a5:	73 09                	jae    0x14018f6b0
14018f6a7:	45 8b 51 38          	mov    0x38(%r9),%r10d
14018f6ab:	45 85 d2             	test   %r10d,%r10d
14018f6ae:	78 10                	js     0x14018f6c0
14018f6b0:	48 63 d9             	movslq %ecx,%rbx
14018f6b3:	e9 28 fe ff ff       	jmp    0x14018f4e0
14018f6b8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
14018f6bf:	00
14018f6c0:	f6 45 04 04          	testb  $0x4,0x4(%rbp)
14018f6c4:	74 12                	je     0x14018f6d8
14018f6c6:	83 c3 01             	add    $0x1,%ebx
14018f6c9:	48 63 db             	movslq %ebx,%rbx
14018f6cc:	e9 df fd ff ff       	jmp    0x14018f4b0
14018f6d1:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
14018f6d8:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
14018f6dd:	4c 8b 44 24 48       	mov    0x48(%rsp),%r8
14018f6e2:	44 89 f2             	mov    %r14d,%edx
14018f6e5:	4c 89 e9             	mov    %r13,%rcx
14018f6e8:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
14018f6ef:	00 00
14018f6f1:	4c 8b 4c 24 40       	mov    0x40(%rsp),%r9
14018f6f6:	e8 a5 f0 ff ff       	call   0x14018e7a0
14018f6fb:	4c 8b 84 24 d8 00 00 	mov    0xd8(%rsp),%r8
14018f702:	00
14018f703:	48 8b 84 24 08 01 00 	mov    0x108(%rsp),%rax
14018f70a:	00
14018f70b:	eb b9                	jmp    0x14018f6c6
14018f70d:	48 8b 05 cc 98 0a 00 	mov    0xa98cc(%rip),%rax        # 0x140238fe0
14018f714:	48 8d 0d e8 b1 09 00 	lea    0x9b1e8(%rip),%rcx        # 0x14022a903
14018f71b:	44 8b 18             	mov    (%rax),%r11d
14018f71e:	45 85 db             	test   %r11d,%r11d
14018f721:	74 08                	je     0x14018f72b
14018f723:	e8 40 3c 05 00       	call   0x1401e3368
14018f728:	48 89 c1             	mov    %rax,%rcx