180044191:	48 83 65 e0 00       	andq   $0x0,-0x20(%rbp)
180044196:	83 65 e8 00          	andl   $0x0,-0x18(%rbp)
18004419a:	83 65 ec 00          	andl   $0x0,-0x14(%rbp)
18004419e:	48 83 65 f0 00       	andq   $0x0,-0x10(%rbp)
1800441a3:	e8 30 fd ff ff       	call   0x180043ed8
1800441a8:	4c 8b 75 f0          	mov    -0x10(%rbp),%r14
1800441ac:	44 8b e0             	mov    %eax,%r12d
1800441af:	85 c0                	test   %eax,%eax
1800441b1:	0f 88 42 01 00 00    	js     0x1800442f9
1800441b7:	8b 4b 08             	mov    0x8(%rbx),%ecx
1800441ba:	33 d2                	xor    %edx,%edx
1800441bc:	85 c9                	test   %ecx,%ecx
1800441be:	74 1c                	je     0x1800441dc
1800441c0:	44 8b 45 ec          	mov    -0x14(%rbp),%r8d
1800441c4:	41 8d 40 01          	lea    0x1(%r8),%eax
1800441c8:	0f af c2             	imul   %edx,%eax
1800441cb:	ff c2                	inc    %edx
1800441cd:	41 c7 04 86 01 00 00 	movl   $0x1,(%r14,%rax,4)
1800441d4:	00
1800441d5:	8b 4b 08             	mov    0x8(%rbx),%ecx
1800441d8:	3b d1                	cmp    %ecx,%edx
1800441da:	72 e8                	jb     0x1800441c4
1800441dc:	33 ff                	xor    %edi,%edi
1800441de:	85 c9                	test   %ecx,%ecx
1800441e0:	0f 84 c6 00 00 00    	je     0x1800442ac
1800441e6:	8b 53 0c             	mov    0xc(%rbx),%edx
1800441e9:	4c 8b 43 10          	mov    0x10(%rbx),%r8
1800441ed:	8d 42 01             	lea    0x1(%rdx),%eax
1800441f0:	0f af c7             	imul   %edi,%eax
1800441f3:	45 8b 3c 80          	mov    (%r8,%rax,4),%r15d
1800441f7:	45 85 ff             	test   %r15d,%r15d
1800441fa:	75 3b                	jne    0x180044237
1800441fc:	8d 77 01             	lea    0x1(%rdi),%esi
1800441ff:	3b f1                	cmp    %ecx,%esi
180044201:	0f 83 aa 00 00 00    	jae    0x1800442b1
180044207:	8b c2                	mov    %edx,%eax
180044209:	0f af c6             	imul   %esi,%eax
18004420c:	03 c7                	add    %edi,%eax
18004420e:	45 8b 3c 80          	mov    (%r8,%rax,4),%r15d
180044212:	45 85 ff             	test   %r15d,%r15d
180044215:	75 07                	jne    0x18004421e
180044217:	ff c6                	inc    %esi
180044219:	3b 73 08             	cmp    0x8(%rbx),%esi
18004421c:	eb e3                	jmp    0x180044201
18004421e:	44 8b c6             	mov    %esi,%r8d
180044221:	8b d7                	mov    %edi,%edx
180044223:	48 8b cb             	mov    %rbx,%rcx
180044226:	e8 e9 fc ff ff       	call   0x180043f14
18004422b:	44 8b c6             	mov    %esi,%r8d
18004422e:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
180044232:	e8 dd fc ff ff       	call   0x180043f14
180044237:	45 8b c7             	mov    %r15d,%r8d
18004423a:	8b d7                	mov    %edi,%edx
18004423c:	48 8b cb             	mov    %rbx,%rcx
18004423f:	e8 b8 fd ff ff       	call   0x180043ffc
180044244:	45 8b c7             	mov    %r15d,%r8d
180044247:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
18004424b:	8b d7                	mov    %edi,%edx
18004424d:	e8 aa fd ff ff       	call   0x180043ffc
180044252:	8b 4b 08             	mov    0x8(%rbx),%ecx
180044255:	44 8d 6f 01          	lea    0x1(%rdi),%r13d
180044259:	41 8b f5             	mov    %r13d,%esi
18004425c:	44 3b e9             	cmp    %ecx,%r13d
18004425f:	73 3f                	jae    0x1800442a0
180044261:	48 8b 43 10          	mov    0x10(%rbx),%rax
180044265:	8b ce                	mov    %esi,%ecx
180044267:	0f af 4b 0c          	imul   0xc(%rbx),%ecx
18004426b:	03 cf                	add    %edi,%ecx
18004426d:	44 8b 3c 88          	mov    (%rax,%rcx,4),%r15d
180044271:	45 85 ff             	test   %r15d,%r15d
180044274:	74 21                	je     0x180044297
180044276:	45 8b cf             	mov    %r15d,%r9d
180044279:	44 8b c7             	mov    %edi,%r8d
18004427c:	8b d6                	mov    %esi,%edx
18004427e:	48 8b cb             	mov    %rbx,%rcx
180044281:	e8 fe fc ff ff       	call   0x180043f84
180044286:	45 8b cf             	mov    %r15d,%r9d
180044289:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
18004428d:	44 8b c7             	mov    %edi,%r8d
180044290:	8b d6                	mov    %esi,%edx
180044292:	e8 ed fc ff ff       	call   0x180043f84
180044297:	8b 4b 08             	mov    0x8(%rbx),%ecx
18004429a:	ff c6                	inc    %esi
18004429c:	3b f1                	cmp    %ecx,%esi
18004429e:	72 c1                	jb     0x180044261
1800442a0:	41 8b fd             	mov    %r13d,%edi
1800442a3:	44 3b e9             	cmp    %ecx,%r13d
1800442a6:	0f 82 3a ff ff ff    	jb     0x1800441e6
1800442ac:	8d 79 ff             	lea    -0x1(%rcx),%edi
1800442af:	eb 39                	jmp    0x1800442ea
1800442b1:	41 bc 01 00 00 c0    	mov    $0xc0000001,%r12d
1800442b7:	eb 40                	jmp    0x1800442f9
1800442b9:	33 f6                	xor    %esi,%esi
1800442bb:	85 ff                	test   %edi,%edi
1800442bd:	74 29                	je     0x1800442e8
1800442bf:	48 8b 43 10          	mov    0x10(%rbx),%rax
1800442c3:	8b ce                	mov    %esi,%ecx
1800442c5:	0f af 4b 0c          	imul   0xc(%rbx),%ecx
1800442c9:	03 cf                	add    %edi,%ecx
1800442cb:	44 8b 0c 88          	mov    (%rax,%rcx,4),%r9d
1800442cf:	45 85 c9             	test   %r9d,%r9d
1800442d2:	74 0e                	je     0x1800442e2
1800442d4:	44 8b c7             	mov    %edi,%r8d
1800442d7:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
1800442db:	8b d6                	mov    %esi,%edx
1800442dd:	e8 a2 fc ff ff       	call   0x180043f84
1800442e2:	ff c6                	inc    %esi
1800442e4:	3b f7                	cmp    %edi,%esi
1800442e6:	72 d7                	jb     0x1800442bf
1800442e8:	ff cf                	dec    %edi
1800442ea:	85 ff                	test   %edi,%edi
1800442ec:	7f cb                	jg     0x1800442b9
1800442ee:	48 8b 43 10          	mov    0x10(%rbx),%rax
1800442f2:	4c 89 73 10          	mov    %r14,0x10(%rbx)
1800442f6:	4c 8b f0             	mov    %rax,%r14
1800442f9:	4d 85 f6             	test   %r14,%r14
1800442fc:	74 08                	je     0x180044306
1800442fe:	49 8b ce             	mov    %r14,%rcx
180044301:	e8 56 26 00 00       	call   0x18004695c
180044306:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
18004430b:	41 8b c4             	mov    %r12d,%eax
18004430e:	49 8b 5b 30          	mov    0x30(%r11),%rbx
180044312:	49 8b 73 38          	mov    0x38(%r11),%rsi
180044316:	49 8b 7b 40          	mov    0x40(%r11),%rdi
18004431a:	49 8b e3             	mov    %r11,%rsp
18004431d:	41 5f                	pop    %r15
18004431f:	41 5e                	pop    %r14
180044321:	41 5d                	pop    %r13
180044323:	41 5c                	pop    %r12
180044325:	5d                   	pop    %rbp
180044326:	c3                   	ret
180044327:	cc                   	int3
180044328:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18004432d:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
180044332:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
180044337:	57                   	push   %rdi
180044338:	41 54                	push   %r12
18004433a:	41 55                	push   %r13
18004433c:	41 56                	push   %r14
18004433e:	41 57                	push   %r15
180044340:	48 83 ec 20          	sub    $0x20,%rsp
180044344:	8b 41 0c             	mov    0xc(%rcx),%eax
180044347:	44 8b f2             	mov    %edx,%r14d
18004434a:	33 d2                	xor    %edx,%edx
18004434c:	45 33 c0             	xor    %r8d,%r8d
18004434f:	41 f7 f6             	div    %r14d
180044352:	33 db                	xor    %ebx,%ebx
180044354:	48 8b f9             	mov    %rcx,%rdi
180044357:	44 8b d8             	mov    %eax,%r11d
18004435a:	45 8d 60 01          	lea    0x1(%r8),%r12d
18004435e:	44 8b d2             	mov    %edx,%r10d
180044361:	45 85 f6             	test   %r14d,%r14d
180044364:	74 42                	je     0x1800443a8
180044366:	45 85 db             	test   %r11d,%r11d
180044369:	74 1c                	je     0x180044387
18004436b:	49 8b d3             	mov    %r11,%rdx
18004436e:	48 8b 47 10          	mov    0x10(%rdi),%rax
180044372:	8b cb                	mov    %ebx,%ecx
180044374:	0f af 4f 0c          	imul   0xc(%rdi),%ecx
180044378:	41 03 c8             	add    %r8d,%ecx
18004437b:	45 03 c4             	add    %r12d,%r8d
18004437e:	44 89 24 88          	mov    %r12d,(%rax,%rcx,4)
180044382:	49 2b d4             	sub    %r12,%rdx
180044385:	75 e7                	jne    0x18004436e
180044387:	44 3b d3             	cmp    %ebx,%r10d
18004438a:	76 14                	jbe    0x1800443a0
18004438c:	48 8b 47 10          	mov    0x10(%rdi),%rax
180044390:	8b cb                	mov    %ebx,%ecx
180044392:	0f af 4f 0c          	imul   0xc(%rdi),%ecx
180044396:	41 03 c8             	add    %r8d,%ecx
180044399:	45 03 c4             	add    %r12d,%r8d
18004439c:	44 89 24 88          	mov    %r12d,(%rax,%rcx,4)
1800443a0:	41 03 dc             	add    %r12d,%ebx
1800443a3:	41 3b de             	cmp    %r14d,%ebx
1800443a6:	72 be                	jb     0x180044366
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