1800443a8:	8b 4f 08             	mov    0x8(%rdi),%ecx
1800443ab:	3b d9                	cmp    %ecx,%ebx
1800443ad:	0f 84 a1 01 00 00    	je     0x180044554
1800443b3:	44 8b 47 0c          	mov    0xc(%rdi),%r8d
1800443b7:	8d 41 ff             	lea    -0x1(%rcx),%eax
1800443ba:	3b d8                	cmp    %eax,%ebx
1800443bc:	75 40                	jne    0x1800443fe
1800443be:	45 33 c9             	xor    %r9d,%r9d
1800443c1:	41 8b d4             	mov    %r12d,%edx
1800443c4:	45 85 c0             	test   %r8d,%r8d
1800443c7:	0f 84 a4 00 00 00    	je     0x180044471
1800443cd:	48 8b 47 10          	mov    0x10(%rdi),%rax
1800443d1:	44 0f af c3          	imul   %ebx,%r8d
1800443d5:	45 03 c1             	add    %r9d,%r8d
1800443d8:	42 89 14 80          	mov    %edx,(%rax,%r8,4)
1800443dc:	41 3b d3             	cmp    %r11d,%edx
1800443df:	72 0c                	jb     0x1800443ed
1800443e1:	77 05                	ja     0x1800443e8
1800443e3:	45 85 d2             	test   %r10d,%r10d
1800443e6:	7f 05                	jg     0x1800443ed
1800443e8:	45 2b d4             	sub    %r12d,%r10d
1800443eb:	33 d2                	xor    %edx,%edx
1800443ed:	44 8b 47 0c          	mov    0xc(%rdi),%r8d
1800443f1:	41 03 d4             	add    %r12d,%edx
1800443f4:	45 03 cc             	add    %r12d,%r9d
1800443f7:	45 3b c8             	cmp    %r8d,%r9d
1800443fa:	72 d1                	jb     0x1800443cd
1800443fc:	eb 73                	jmp    0x180044471
1800443fe:	33 c0                	xor    %eax,%eax
180044400:	41 8b f0             	mov    %r8d,%esi
180044403:	45 85 c0             	test   %r8d,%r8d
180044406:	74 23                	je     0x18004442b
180044408:	44 0f af c3          	imul   %ebx,%r8d
18004440c:	8d 50 01             	lea    0x1(%rax),%edx
18004440f:	44 03 c0             	add    %eax,%r8d
180044412:	48 8b 47 10          	mov    0x10(%rdi),%rax
180044416:	42 89 14 80          	mov    %edx,(%rax,%r8,4)
18004441a:	8b c2                	mov    %edx,%eax
18004441c:	44 8b 47 0c          	mov    0xc(%rdi),%r8d
180044420:	41 8b f0             	mov    %r8d,%esi
180044423:	41 3b d0             	cmp    %r8d,%edx
180044426:	72 e0                	jb     0x180044408
180044428:	8b 4f 08             	mov    0x8(%rdi),%ecx
18004442b:	41 03 dc             	add    %r12d,%ebx
18004442e:	3b d9                	cmp    %ecx,%ebx
180044430:	73 3f                	jae    0x180044471
180044432:	33 ed                	xor    %ebp,%ebp
180044434:	85 f6                	test   %esi,%esi
180044436:	74 2e                	je     0x180044466
180044438:	4c 8b 5f 10          	mov    0x10(%rdi),%r11
18004443c:	8d 43 ff             	lea    -0x1(%rbx),%eax
18004443f:	48 8b 0f             	mov    (%rdi),%rcx
180044442:	0f af c6             	imul   %esi,%eax
180044445:	03 c5                	add    %ebp,%eax
180044447:	41 8b 14 83          	mov    (%r11,%rax,4),%edx
18004444b:	44 8b c2             	mov    %edx,%r8d
18004444e:	e8 0d fa ff ff       	call   0x180043e60
180044453:	0f af f3             	imul   %ebx,%esi
180044456:	03 f5                	add    %ebp,%esi
180044458:	41 03 ec             	add    %r12d,%ebp
18004445b:	41 89 04 b3          	mov    %eax,(%r11,%rsi,4)
18004445f:	8b 77 0c             	mov    0xc(%rdi),%esi
180044462:	3b ee                	cmp    %esi,%ebp
180044464:	72 d2                	jb     0x180044438
180044466:	41 03 dc             	add    %r12d,%ebx
180044469:	44 8b c6             	mov    %esi,%r8d
18004446c:	3b 5f 08             	cmp    0x8(%rdi),%ebx
18004446f:	72 c1                	jb     0x180044432
180044471:	45 3b f4             	cmp    %r12d,%r14d
180044474:	0f 85 da 00 00 00    	jne    0x180044554
18004447a:	33 f6                	xor    %esi,%esi
18004447c:	45 85 c0             	test   %r8d,%r8d
18004447f:	74 4d                	je     0x1800444ce
180044481:	48 8b 47 10          	mov    0x10(%rdi),%rax
180044485:	44 8b 34 b0          	mov    (%rax,%rsi,4),%r14d
180044489:	41 8b c0             	mov    %r8d,%eax
18004448c:	45 3b f4             	cmp    %r12d,%r14d
18004448f:	76 33                	jbe    0x1800444c4
180044491:	33 ed                	xor    %ebp,%ebp
180044493:	39 6f 08             	cmp    %ebp,0x8(%rdi)
180044496:	76 2c                	jbe    0x1800444c4
180044498:	4c 8b 5f 10          	mov    0x10(%rdi),%r11
18004449c:	8b c5                	mov    %ebp,%eax
18004449e:	0f af 47 0c          	imul   0xc(%rdi),%eax
1800444a2:	45 8b c6             	mov    %r14d,%r8d
1800444a5:	48 8b 0f             	mov    (%rdi),%rcx
1800444a8:	03 c6                	add    %esi,%eax
1800444aa:	8b d8                	mov    %eax,%ebx
1800444ac:	41 8b 14 83          	mov    (%r11,%rax,4),%edx
1800444b0:	e8 e7 f9 ff ff       	call   0x180043e9c
1800444b5:	41 03 ec             	add    %r12d,%ebp
1800444b8:	41 89 04 9b          	mov    %eax,(%r11,%rbx,4)
1800444bc:	3b 6f 08             	cmp    0x8(%rdi),%ebp
1800444bf:	72 d7                	jb     0x180044498
1800444c1:	8b 47 0c             	mov    0xc(%rdi),%eax
1800444c4:	41 03 f4             	add    %r12d,%esi
1800444c7:	44 8b c0             	mov    %eax,%r8d
1800444ca:	3b f0                	cmp    %eax,%esi
1800444cc:	72 b3                	jb     0x180044481
1800444ce:	41 8b f4             	mov    %r12d,%esi
1800444d1:	44 39 67 08          	cmp    %r12d,0x8(%rdi)
1800444d5:	76 7d                	jbe    0x180044554
1800444d7:	45 8b c4             	mov    %r12d,%r8d
1800444da:	8b d6                	mov    %esi,%edx
1800444dc:	48 8b cf             	mov    %rdi,%rcx
1800444df:	41 8b ec             	mov    %r12d,%ebp
1800444e2:	e8 85 fb ff ff       	call   0x18004406c
1800444e7:	44 8b 7f 0c          	mov    0xc(%rdi),%r15d
1800444eb:	45 33 ed             	xor    %r13d,%r13d
1800444ee:	44 8b e0             	mov    %eax,%r12d
1800444f1:	45 85 ff             	test   %r15d,%r15d
1800444f4:	74 43                	je     0x180044539
1800444f6:	48 8b 57 10          	mov    0x10(%rdi),%rdx
1800444fa:	45 8b f7             	mov    %r15d,%r14d
1800444fd:	48 89 54 24 50       	mov    %rdx,0x50(%rsp)
180044502:	44 0f af f6          	imul   %esi,%r14d
180044506:	43 8d 0c 2e          	lea    (%r14,%r13,1),%ecx
18004450a:	8b 1c 8a             	mov    (%rdx,%rcx,4),%ebx
18004450d:	44 8b c3             	mov    %ebx,%r8d
180044510:	8b d6                	mov    %esi,%edx
180044512:	48 8b cf             	mov    %rdi,%rcx
180044515:	e8 52 fb ff ff       	call   0x18004406c
18004451a:	48 8b 54 24 50       	mov    0x50(%rsp),%rdx
18004451f:	41 3b c4             	cmp    %r12d,%eax
180044522:	0f 43 dd             	cmovae %ebp,%ebx
180044525:	41 ff c5             	inc    %r13d
180044528:	41 3b c4             	cmp    %r12d,%eax
18004452b:	8b eb                	mov    %ebx,%ebp
18004452d:	41 0f 43 c4          	cmovae %r12d,%eax
180044531:	44 8b e0             	mov    %eax,%r12d
180044534:	45 3b ef             	cmp    %r15d,%r13d
180044537:	72 cd                	jb     0x180044506
180044539:	44 8b c5             	mov    %ebp,%r8d
18004453c:	8b d6                	mov    %esi,%edx
18004453e:	48 8b cf             	mov    %rdi,%rcx
180044541:	e8 b6 fa ff ff       	call   0x180043ffc
180044546:	41 bc 01 00 00 00    	mov    $0x1,%r12d
18004454c:	41 03 f4             	add    %r12d,%esi
18004454f:	3b 77 08             	cmp    0x8(%rdi),%esi
180044552:	72 83                	jb     0x1800444d7
180044554:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
180044559:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
18004455e:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
180044563:	48 83 c4 20          	add    $0x20,%rsp
180044567:	41 5f                	pop    %r15
180044569:	41 5e                	pop    %r14
18004456b:	41 5d                	pop    %r13
18004456d:	41 5c                	pop    %r12
18004456f:	5f                   	pop    %rdi
180044570:	c3                   	ret
180044571:	cc                   	int3
180044572:	cc                   	int3
180044573:	cc                   	int3
180044574:	48 8b c4             	mov    %rsp,%rax
180044577:	4c 89 48 20          	mov    %r9,0x20(%rax)
18004457b:	44 89 40 18          	mov    %r8d,0x18(%rax)
18004457f:	89 50 10             	mov    %edx,0x10(%rax)
180044582:	55                   	push   %rbp
180044583:	53                   	push   %rbx
180044584:	56                   	push   %rsi
180044585:	57                   	push   %rdi
180044586:	41 54                	push   %r12
180044588:	41 55                	push   %r13
18004458a:	41 56                	push   %r14
18004458c:	41 57                	push   %r15
18004458e:	48 8d 68 a1          	lea    -0x5f(%rax),%rbp
180044592:	48 81 ec 88 00 00 00 	sub    $0x88,%rsp
180044599:	45 33 ed             	xor    %r13d,%r13d
18004459c:	8b c2                	mov    %edx,%eax
18004459e:	41 0b c0             	or     %r8d,%eax
1800445a1:	4d 89 29             	mov    %r13,(%r9)
1800445a4:	44 8b fa             	mov    %edx,%r15d
1800445a7:	41 8b f8             	mov    %r8d,%edi
1800445aa:	48 8b d9             	mov    %rcx,%rbx
1800445ad:	45 8b f5             	mov    %r13d,%r14d
1800445b0:	45 8d 65 01          	lea    0x1(%r13),%r12d
1800445b4:	44 89 6d b7          	mov    %r13d,-0x49(%rbp)
1800445b8:	41 8b d5             	mov    %r13d,%edx
1800445bb:	44 89 6d 67          	mov    %r13d,0x67(%rbp)
1800445bf:	4c 89 6d bf          	mov    %r13,-0x41(%rbp)
1800445c3:	4c 89 6d c7          	mov    %r13,-0x39(%rbp)
1800445c7:	4c 89 6d cf          	mov    %r13,-0x31(%rbp)
1800445cb:	89 45 d7             	mov    %eax,-0x29(%rbp)
1800445ce:	44 39 69 08          	cmp    %r13d,0x8(%rcx)
1800445d2:	76 29                	jbe    0x1800445fd
1800445d4:	8b 4b 0c             	mov    0xc(%rbx),%ecx
1800445d7:	48 8d 45 d7          	lea    -0x29(%rbp),%rax
1800445db:	03 ca                	add    %edx,%ecx
1800445dd:	0f a3 08             	bt     %ecx,(%rax)
1800445e0:	73 0f                	jae    0x1800445f1
1800445e2:	48 8b cb             	mov    %rbx,%rcx
1800445e5:	e8 26 fb ff ff       	call   0x180044110
1800445ea:	44 0b f0             	or     %eax,%r14d
1800445ed:	44 89 75 67          	mov    %r14d,0x67(%rbp)
1800445f1:	41 03 d4             	add    %r12d,%edx
1800445f4:	3b 53 08             	cmp    0x8(%rbx),%edx
1800445f7:	72 db                	jb     0x1800445d4
1800445f9:	44 89 75 b7          	mov    %r14d,-0x49(%rbp)
1800445fd:	8b cf                	mov    %edi,%ecx
1800445ff:	45 8b c5             	mov    %r13d,%r8d
180044602:	85 ff                	test   %edi,%edi
180044604:	74 0a                	je     0x180044610
180044606:	8d 41 ff             	lea    -0x1(%rcx),%eax
180044609:	45 03 c4             	add    %r12d,%r8d
18004460c:	23 c8                	and    %eax,%ecx
18004460e:	75 f6                	jne    0x180044606
180044610:	41 8b ce             	mov    %r14d,%ecx
180044613:	41 8b d5             	mov    %r13d,%edx
180044616:	45 85 f6             	test   %r14d,%r14d
180044619:	74 0a                	je     0x180044625
18004461b:	8d 41 ff             	lea    -0x1(%rcx),%eax
18004461e:	41 03 d4             	add    %r12d,%edx
180044621:	23 c8                	and    %eax,%ecx
180044623:	75 f6                	jne    0x18004461b
180044625:	41 3b d0             	cmp    %r8d,%edx
180044628:	74 0a                	je     0x180044634
18004462a:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
18004462f:	e9 82 03 00 00       	jmp    0x1800449b6
180044634:	48 8b 13             	mov    (%rbx),%rdx
180044637:	48 8d 4d bf          	lea    -0x41(%rbp),%rcx
18004463b:	45 8b c8             	mov    %r8d,%r9d
18004463e:	e8 95 f8 ff ff       	call   0x180043ed8
180044643:	8b f8                	mov    %eax,%edi
180044645:	85 c0                	test   %eax,%eax
180044647:	0f 88 58 03 00 00    	js     0x1800449a5
18004464d:	8b 4b 0c             	mov    0xc(%rbx),%ecx
180044650:	45 8b cd             	mov    %r13d,%r9d
180044653:	48 8b 75 cf          	mov    -0x31(%rbp),%rsi
180044657:	45 8b c5             	mov    %r13d,%r8d
18004465a:	41 8b d5             	mov    %r13d,%edx
18004465d:	85 c9                	test   %ecx,%ecx
18004465f:	74 38                	je     0x180044699
180044661:	48 8d 45 67          	lea    0x67(%rbp),%rax
180044665:	0f a3 10             	bt     %edx,(%rax)
180044668:	73 1d                	jae    0x180044687
18004466a:	48 8d 45 77          	lea    0x77(%rbp),%rax
18004466e:	0f a3 10             	bt     %edx,(%rax)
180044671:	73 11                	jae    0x180044684
180044673:	8b 45 cb             	mov    -0x35(%rbp),%eax
180044676:	41 0f af c1          	imul   %r9d,%eax
18004467a:	41 03 c0             	add    %r8d,%eax
18004467d:	45 03 cc             	add    %r12d,%r9d
180044680:	44 89 24 86          	mov    %r12d,(%rsi,%rax,4)
180044684:	45 03 c4             	add    %r12d,%r8d
180044687:	8b 4b 0c             	mov    0xc(%rbx),%ecx
18004468a:	41 03 d4             	add    %r12d,%edx
18004468d:	3b d1                	cmp    %ecx,%edx
18004468f:	72 d0                	jb     0x180044661
180044691:	44 8b 75 67          	mov    0x67(%rbp),%r14d
180044695:	44 89 75 b7          	mov    %r14d,-0x49(%rbp)
180044699:	45 8b d5             	mov    %r13d,%r10d
18004469c:	44 39 6b 08          	cmp    %r13d,0x8(%rbx)
1800446a0:	76 65                	jbe    0x180044707
1800446a2:	42 8d 04 11          	lea    (%rcx,%r10,1),%eax
1800446a6:	48 8d 55 77          	lea    0x77(%rbp),%rdx
1800446aa:	0f a3 02             	bt     %eax,(%rdx)
1800446ad:	73 47                	jae    0x1800446f6
1800446af:	41 8b fd             	mov    %r13d,%edi
1800446b2:	45 8b dd             	mov    %r13d,%r11d
1800446b5:	85 c9                	test   %ecx,%ecx
1800446b7:	74 3a                	je     0x1800446f3
1800446b9:	8b c1                	mov    %ecx,%eax
1800446bb:	4c 8d 45 67          	lea    0x67(%rbp),%r8
1800446bf:	8b d0                	mov    %eax,%edx
1800446c1:	45 0f a3 18          	bt     %r11d,(%r8)
1800446c5:	73 22                	jae    0x1800446e9
1800446c7:	48 8b 53 10          	mov    0x10(%rbx),%rdx
1800446cb:	8b 4d cb             	mov    -0x35(%rbp),%ecx
1800446ce:	41 0f af c9          	imul   %r9d,%ecx
1800446d2:	41 0f af c2          	imul   %r10d,%eax
1800446d6:	03 cf                	add    %edi,%ecx
1800446d8:	41 03 c3             	add    %r11d,%eax
1800446db:	41 03 fc             	add    %r12d,%edi
1800446de:	8b 04 82             	mov    (%rdx,%rax,4),%eax
1800446e1:	89 04 8e             	mov    %eax,(%rsi,%rcx,4)
1800446e4:	8b 4b 0c             	mov    0xc(%rbx),%ecx
1800446e7:	8b d1                	mov    %ecx,%edx
1800446e9:	45 03 dc             	add    %r12d,%r11d
1800446ec:	8b c2                	mov    %edx,%eax
1800446ee:	44 3b da             	cmp    %edx,%r11d
1800446f1:	72 c8                	jb     0x1800446bb
1800446f3:	45 03 cc             	add    %r12d,%r9d
1800446f6:	45 03 d4             	add    %r12d,%r10d
1800446f9:	44 3b 53 08          	cmp    0x8(%rbx),%r10d
1800446fd:	72 a3                	jb     0x1800446a2
1800446ff:	44 8b 75 67          	mov    0x67(%rbp),%r14d
180044703:	44 89 75 b7          	mov    %r14d,-0x49(%rbp)
180044707:	48 8d 4d bf          	lea    -0x41(%rbp),%rcx
18004470b:	e8 50 fa ff ff       	call   0x180044160
180044710:	8b f8                	mov    %eax,%edi
180044712:	85 c0                	test   %eax,%eax
180044714:	0f 88 8b 02 00 00    	js     0x1800449a5
18004471a:	8b 4b 0c             	mov    0xc(%rbx),%ecx
18004471d:	41 8b c7             	mov    %r15d,%eax
180044720:	44 8b 7d cb          	mov    -0x35(%rbp),%r15d
180044724:	44 8b 65 c7          	mov    -0x39(%rbp),%r12d
180044728:	d3 e8                	shr    %cl,%eax
18004472a:	85 c0                	test   %eax,%eax
18004472c:	0f 84 6e 01 00 00    	je     0x1800448a0
180044732:	44 8b 43 08          	mov    0x8(%rbx),%r8d
180044736:	48 8d 4d e7          	lea    -0x19(%rbp),%rcx
18004473a:	48 8b 55 bf          	mov    -0x41(%rbp),%rdx
18004473e:	45 03 c4             	add    %r12d,%r8d
180044741:	45 8b cf             	mov    %r15d,%r9d
180044744:	44 89 75 ff          	mov    %r14d,-0x1(%rbp)
180044748:	4c 89 6d e7          	mov    %r13,-0x19(%rbp)
18004474c:	4c 89 6d ef          	mov    %r13,-0x11(%rbp)
180044750:	4c 89 6d f7          	mov    %r13,-0x9(%rbp)
180044754:	e8 7f f7 ff ff       	call   0x180043ed8
180044759:	89 45 df             	mov    %eax,-0x21(%rbp)
18004475c:	8b f8                	mov    %eax,%edi
18004475e:	85 c0                	test   %eax,%eax
180044760:	0f 88 05 01 00 00    	js     0x18004486b
180044766:	48 8b 75 f7          	mov    -0x9(%rbp),%rsi
18004476a:	45 8b c5             	mov    %r13d,%r8d
18004476d:	4c 8b 6d cf          	mov    -0x31(%rbp),%r13
180044771:	4c 89 6d 0f          	mov    %r13,0xf(%rbp)
180044775:	45 85 e4             	test   %r12d,%r12d
180044778:	74 39                	je     0x1800447b3
18004477a:	45 85 ff             	test   %r15d,%r15d
18004477d:	74 2c                	je     0x1800447ab
18004477f:	44 8b 4d f3          	mov    -0xd(%rbp),%r9d
180044783:	45 8b d7             	mov    %r15d,%r10d
180044786:	44 2b 55 f3          	sub    -0xd(%rbp),%r10d
18004478a:	4d 8b df             	mov    %r15,%r11
18004478d:	45 0f af c8          	imul   %r8d,%r9d
180044791:	45 0f af d0          	imul   %r8d,%r10d
180044795:	43 8d 04 0a          	lea    (%r10,%r9,1),%eax
180044799:	41 8b 44 85 00       	mov    0x0(%r13,%rax,4),%eax
18004479e:	42 89 04 8e          	mov    %eax,(%rsi,%r9,4)
1800447a2:	41 ff c1             	inc    %r9d
1800447a5:	49 83 eb 01          	sub    $0x1,%r11
1800447a9:	75 ea                	jne    0x180044795
1800447ab:	41 ff c0             	inc    %r8d
1800447ae:	45 3b c4             	cmp    %r12d,%r8d
1800447b1:	72 c7                	jb     0x18004477a
1800447b3:	45 33 db             	xor    %r11d,%r11d
1800447b6:	44 39 5b 08          	cmp    %r11d,0x8(%rbx)
1800447ba:	0f 86 9d 00 00 00    	jbe    0x18004485d
1800447c0:	45 33 e4             	xor    %r12d,%r12d
1800447c3:	45 85 ff             	test   %r15d,%r15d
1800447c6:	74 7d                	je     0x180044845
1800447c8:	43 8d 3c 1f          	lea    (%r15,%r11,1),%edi
1800447cc:	0f af 7d f3          	imul   -0xd(%rbp),%edi
1800447d0:	89 7d 07             	mov    %edi,0x7(%rbp)
1800447d3:	8b 43 0c             	mov    0xc(%rbx),%eax
1800447d6:	33 d2                	xor    %edx,%edx
1800447d8:	45 33 f6             	xor    %r14d,%r14d
1800447db:	89 55 67             	mov    %edx,0x67(%rbp)
1800447de:	45 33 ed             	xor    %r13d,%r13d