1800353d6:	4c 0f af c0          	imul   %rax,%r8
1800353da:	41 0f af c3          	imul   %r11d,%eax
1800353de:	44 8b c8             	mov    %eax,%r9d
1800353e1:	e8 22 03 00 00       	call   0x180035708
1800353e6:	33 c9                	xor    %ecx,%ecx
1800353e8:	85 c0                	test   %eax,%eax
1800353ea:	0f 48 c8             	cmovs  %eax,%ecx
1800353ed:	8b c1                	mov    %ecx,%eax
1800353ef:	48 83 c4 30          	add    $0x30,%rsp
1800353f3:	5b                   	pop    %rbx
1800353f4:	c3                   	ret
1800353f5:	cc                   	int3
1800353f6:	cc                   	int3
1800353f7:	cc                   	int3
1800353f8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800353fd:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180035402:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180035407:	57                   	push   %rdi
180035408:	41 54                	push   %r12
18003540a:	41 55                	push   %r13
18003540c:	41 56                	push   %r14
18003540e:	41 57                	push   %r15
180035410:	48 83 ec 20          	sub    $0x20,%rsp
180035414:	4c 8b b1 80 00 00 00 	mov    0x80(%rcx),%r14
18003541b:	48 8b f2             	mov    %rdx,%rsi
18003541e:	4d 8b e1             	mov    %r9,%r12
180035421:	41 8b d8             	mov    %r8d,%ebx
180035424:	4c 8b e9             	mov    %rcx,%r13
180035427:	33 ff                	xor    %edi,%edi
180035429:	41 8b 56 30          	mov    0x30(%r14),%edx
18003542d:	49 0f af 56 40       	imul   0x40(%r14),%rdx
180035432:	41 8b 46 48          	mov    0x48(%r14),%eax
180035436:	48 03 d0             	add    %rax,%rdx
180035439:	e8 d2 11 00 00       	call   0x180036610
18003543e:	41 39 7e 48          	cmp    %edi,0x48(%r14)
180035442:	74 2e                	je     0x180035472
180035444:	41 8b 46 30          	mov    0x30(%r14),%eax
180035448:	44 8d 4f 01          	lea    0x1(%rdi),%r9d
18003544c:	41 2b 46 48          	sub    0x48(%r14),%eax
180035450:	8b eb                	mov    %ebx,%ebp
180035452:	3b c3                	cmp    %ebx,%eax
180035454:	48 8b d6             	mov    %rsi,%rdx
180035457:	49 8b cd             	mov    %r13,%rcx
18003545a:	0f 42 e8             	cmovb  %eax,%ebp
18003545d:	44 8b c5             	mov    %ebp,%r8d
180035460:	e8 f3 fa ff ff       	call   0x180034f58
180035465:	85 c0                	test   %eax,%eax
180035467:	78 63                	js     0x1800354cc
180035469:	2b dd                	sub    %ebp,%ebx
18003546b:	8b c5                	mov    %ebp,%eax
18003546d:	48 03 f0             	add    %rax,%rsi
180035470:	8b fd                	mov    %ebp,%edi
180035472:	41 8b 6e 30          	mov    0x30(%r14),%ebp
180035476:	33 d2                	xor    %edx,%edx
180035478:	8b c3                	mov    %ebx,%eax
18003547a:	f7 f5                	div    %ebp
18003547c:	44 8b f8             	mov    %eax,%r15d
18003547f:	85 c0                	test   %eax,%eax
180035481:	74 29                	je     0x1800354ac
180035483:	41 b9 01 00 00 00    	mov    $0x1,%r9d
180035489:	41 0f af ef          	imul   %r15d,%ebp
18003548d:	45 8b c7             	mov    %r15d,%r8d
180035490:	48 8b d6             	mov    %rsi,%rdx
180035493:	49 8b cd             	mov    %r13,%rcx
180035496:	e8 01 ff ff ff       	call   0x18003539c
18003549b:	85 c0                	test   %eax,%eax
18003549d:	78 36                	js     0x1800354d5
18003549f:	4d 01 7e 40          	add    %r15,0x40(%r14)
1800354a3:	03 fd                	add    %ebp,%edi
1800354a5:	2b dd                	sub    %ebp,%ebx
1800354a7:	8b c5                	mov    %ebp,%eax
1800354a9:	48 03 f0             	add    %rax,%rsi
1800354ac:	85 db                	test   %ebx,%ebx
1800354ae:	74 1a                	je     0x1800354ca
1800354b0:	41 b9 01 00 00 00    	mov    $0x1,%r9d
1800354b6:	44 8b c3             	mov    %ebx,%r8d
1800354b9:	48 8b d6             	mov    %rsi,%rdx
1800354bc:	49 8b cd             	mov    %r13,%rcx
1800354bf:	e8 94 fa ff ff       	call   0x180034f58
1800354c4:	85 c0                	test   %eax,%eax
1800354c6:	78 04                	js     0x1800354cc
1800354c8:	03 fb                	add    %ebx,%edi
1800354ca:	33 c0                	xor    %eax,%eax
1800354cc:	4d 85 e4             	test   %r12,%r12
1800354cf:	74 04                	je     0x1800354d5
1800354d1:	41 89 3c 24          	mov    %edi,(%r12)
1800354d5:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1800354da:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
1800354df:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
1800354e4:	48 83 c4 20          	add    $0x20,%rsp
1800354e8:	41 5f                	pop    %r15
1800354ea:	41 5e                	pop    %r14
1800354ec:	41 5d                	pop    %r13
1800354ee:	41 5c                	pop    %r12
1800354f0:	5f                   	pop    %rdi
1800354f1:	c3                   	ret
1800354f2:	cc                   	int3
1800354f3:	cc                   	int3
1800354f4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800354f9:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1800354fe:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180035503:	57                   	push   %rdi
180035504:	41 56                	push   %r14
180035506:	41 57                	push   %r15
180035508:	48 81 ec 40 01 00 00 	sub    $0x140,%rsp
18003550f:	48 8b 99 80 00 00 00 	mov    0x80(%rcx),%rbx
180035516:	45 8b f9             	mov    %r9d,%r15d
180035519:	41 8b e8             	mov    %r8d,%ebp
18003551c:	4c 8b f2             	mov    %rdx,%r14
18003551f:	8b 43 30             	mov    0x30(%rbx),%eax
180035522:	48 8b 33             	mov    (%rbx),%rsi
180035525:	48 03 73 40          	add    0x40(%rbx),%rsi
180035529:	48 8b 7b 08          	mov    0x8(%rbx),%rdi
18003552d:	48 0f af f0          	imul   %rax,%rsi
180035531:	8b 43 48             	mov    0x48(%rbx),%eax
180035534:	48 03 f0             	add    %rax,%rsi
180035537:	48 85 ff             	test   %rdi,%rdi
18003553a:	75 0b                	jne    0x180035547
18003553c:	41 b8 10 00 00 c0    	mov    $0xc0000010,%r8d
180035542:	e9 a0 00 00 00       	jmp    0x1800355e7
180035547:	48 8b 47 58          	mov    0x58(%rdi),%rax
18003554b:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180035550:	48 8b cf             	mov    %rdi,%rcx
180035553:	ff d0                	call   *%rax
180035555:	0f 1f 00             	nopl   (%rax)
180035558:	44 8b c0             	mov    %eax,%r8d
18003555b:	85 c0                	test   %eax,%eax
18003555d:	0f 88 84 00 00 00    	js     0x1800355e7
180035563:	8b 4c 24 38          	mov    0x38(%rsp),%ecx
180035567:	33 d2                	xor    %edx,%edx
180035569:	48 8b c6             	mov    %rsi,%rax
18003556c:	48 f7 f1             	div    %rcx
18003556f:	48 8b cf             	mov    %rdi,%rcx
180035572:	89 54 24 50          	mov    %edx,0x50(%rsp)
180035576:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
18003557b:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
180035580:	48 8b 47 60          	mov    0x60(%rdi),%rax
180035584:	ff d0                	call   *%rax
180035586:	0f 1f 00             	nopl   (%rax)
180035589:	44 8b c0             	mov    %eax,%r8d
18003558c:	85 c0                	test   %eax,%eax
18003558e:	78 57                	js     0x1800355e7
180035590:	4c 8b 8c 24 80 01 00 	mov    0x180(%rsp),%r9
180035597:	00
180035598:	44 8b c5             	mov    %ebp,%r8d
18003559b:	49 8b d6             	mov    %r14,%rdx
18003559e:	48 8b cf             	mov    %rdi,%rcx
1800355a1:	45 85 ff             	test   %r15d,%r15d
1800355a4:	75 06                	jne    0x1800355ac
1800355a6:	48 8b 47 48          	mov    0x48(%rdi),%rax
1800355aa:	eb 04                	jmp    0x1800355b0
1800355ac:	48 8b 47 50          	mov    0x50(%rdi),%rax
1800355b0:	ff d0                	call   *%rax
1800355b2:	0f 1f 00             	nopl   (%rax)
1800355b5:	44 8b c0             	mov    %eax,%r8d
1800355b8:	85 c0                	test   %eax,%eax
1800355ba:	78 2b                	js     0x1800355e7
1800355bc:	33 d2                	xor    %edx,%edx
1800355be:	8b c5                	mov    %ebp,%eax
1800355c0:	f7 73 30             	divl   0x30(%rbx)
1800355c3:	01 53 48             	add    %edx,0x48(%rbx)
1800355c6:	8b c8                	mov    %eax,%ecx
1800355c8:	48 03 4b 40          	add    0x40(%rbx),%rcx
1800355cc:	8b 43 48             	mov    0x48(%rbx),%eax
1800355cf:	48 89 4b 40          	mov    %rcx,0x40(%rbx)
1800355d3:	3b 43 30             	cmp    0x30(%rbx),%eax
1800355d6:	72 0f                	jb     0x1800355e7
1800355d8:	48 ff c1             	inc    %rcx
1800355db:	33 d2                	xor    %edx,%edx
1800355dd:	f7 73 30             	divl   0x30(%rbx)
1800355e0:	48 89 4b 40          	mov    %rcx,0x40(%rbx)
1800355e4:	89 53 48             	mov    %edx,0x48(%rbx)
1800355e7:	4c 8d 9c 24 40 01 00 	lea    0x140(%rsp),%r11
1800355ee:	00
1800355ef:	41 8b c0             	mov    %r8d,%eax
1800355f2:	49 8b 5b 20          	mov    0x20(%r11),%rbx
1800355f6:	49 8b 6b 28          	mov    0x28(%r11),%rbp
1800355fa:	49 8b 73 30          	mov    0x30(%r11),%rsi
1800355fe:	49 8b e3             	mov    %r11,%rsp
180035601:	41 5f                	pop    %r15
180035603:	41 5e                	pop    %r14
180035605:	5f                   	pop    %rdi
180035606:	c3                   	ret
180035607:	cc                   	int3
180035608:	48 8b c4             	mov    %rsp,%rax
18003560b:	48 89 58 18          	mov    %rbx,0x18(%rax)
18003560f:	48 89 70 20          	mov    %rsi,0x20(%rax)
180035613:	48 89 50 10          	mov    %rdx,0x10(%rax)
180035617:	48 89 48 08          	mov    %rcx,0x8(%rax)
18003561b:	57                   	push   %rdi
18003561c:	41 54                	push   %r12
18003561e:	41 55                	push   %r13
180035620:	41 56                	push   %r14
180035622:	41 57                	push   %r15
180035624:	48 83 ec 40          	sub    $0x40,%rsp
180035628:	48 8b 99 80 00 00 00 	mov    0x80(%rcx),%rbx
18003562f:	4d 8b f1             	mov    %r9,%r14
180035632:	4d 8b f8             	mov    %r8,%r15
180035635:	f6 43 24 08          	testb  $0x8,0x24(%rbx)
180035639:	8b 83 88 00 00 00    	mov    0x88(%rbx),%eax
18003563f:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
180035644:	74 10                	je     0x180035656
180035646:	4c 8b a3 38 01 00 00 	mov    0x138(%rbx),%r12
18003564d:	4c 8b ab 40 01 00 00 	mov    0x140(%rbx),%r13
180035654:	eb 0e                	jmp    0x180035664
180035656:	4c 8d 25 63 56 00 00 	lea    0x5663(%rip),%r12        # 0x18003acc0
18003565d:	4c 8d 2d 7c 56 00 00 	lea    0x567c(%rip),%r13        # 0x18003ace0
180035664:	33 ff                	xor    %edi,%edi
180035666:	89 7c 24 30          	mov    %edi,0x30(%rsp)
18003566a:	83 bc 24 90 00 00 00 	cmpl   $0x1,0x90(%rsp)
180035671:	01
180035672:	4d 8b ce             	mov    %r14,%r9
180035675:	4d 8b c7             	mov    %r15,%r8
180035678:	48 8b cb             	mov    %rbx,%rcx
18003567b:	49 8b c5             	mov    %r13,%rax
18003567e:	74 03                	je     0x180035683
180035680:	49 8b c4             	mov    %r12,%rax
180035683:	ff d0                	call   *%rax
180035685:	0f 1f 00             	nopl   (%rax)
180035688:	48 8b 54 24 38       	mov    0x38(%rsp),%rdx
18003568d:	8b f0                	mov    %eax,%esi
18003568f:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
180035694:	4d 8b ce             	mov    %r14,%r9
180035697:	4d 8b c7             	mov    %r15,%r8
18003569a:	48 8b 88 88 00 00 00 	mov    0x88(%rax),%rcx
1800356a1:	85 f6                	test   %esi,%esi
1800356a3:	79 2f                	jns    0x1800356d4
1800356a5:	8b 84 24 90 00 00 00 	mov    0x90(%rsp),%eax
1800356ac:	ff c8                	dec    %eax
1800356ae:	f7 d8                	neg    %eax
1800356b0:	1b c0                	sbb    %eax,%eax
1800356b2:	83 c0 03             	add    $0x3,%eax
1800356b5:	89 44 24 20          	mov    %eax,0x20(%rsp)
1800356b9:	e8 ae 96 00 00       	call   0x18003ed6c
1800356be:	8b 44 24 30          	mov    0x30(%rsp),%eax
1800356c2:	ff c0                	inc    %eax
1800356c4:	89 44 24 30          	mov    %eax,0x30(%rsp)
1800356c8:	83 f8 03             	cmp    $0x3,%eax
1800356cb:	73 1c                	jae    0x1800356e9
1800356cd:	48 8b 54 24 78       	mov    0x78(%rsp),%rdx
1800356d2:	eb 96                	jmp    0x18003566a
1800356d4:	83 bc 24 90 00 00 00 	cmpl   $0x1,0x90(%rsp)
1800356db:	01
1800356dc:	40 0f 94 c7          	sete   %dil
1800356e0:	89 7c 24 20          	mov    %edi,0x20(%rsp)
1800356e4:	e8 83 96 00 00       	call   0x18003ed6c
1800356e9:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
1800356ee:	8b c6                	mov    %esi,%eax
1800356f0:	49 8b 5b 40          	mov    0x40(%r11),%rbx
1800356f4:	49 8b 73 48          	mov    0x48(%r11),%rsi
1800356f8:	49 8b e3             	mov    %r11,%rsp
1800356fb:	41 5f                	pop    %r15
1800356fd:	41 5e                	pop    %r14
1800356ff:	41 5d                	pop    %r13
180035701:	41 5c                	pop    %r12
180035703:	5f                   	pop    %rdi
180035704:	c3                   	ret
180035705:	cc                   	int3
180035706:	cc                   	int3
180035707:	cc                   	int3
180035708:	48 8b c4             	mov    %rsp,%rax
18003570b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18003570f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180035713:	48 89 70 18          	mov    %rsi,0x18(%rax)
180035717:	48 89 78 20          	mov    %rdi,0x20(%rax)
18003571b:	41 54                	push   %r12
18003571d:	41 56                	push   %r14
18003571f:	41 57                	push   %r15
180035721:	48 83 ec 30          	sub    $0x30,%rsp
180035725:	4c 8b 99 80 00 00 00 	mov    0x80(%rcx),%r11
18003572c:	48 8b da             	mov    %rdx,%rbx
18003572f:	8b 74 24 70          	mov    0x70(%rsp),%esi
180035733:	33 d2                	xor    %edx,%edx
180035735:	49 8b c0             	mov    %r8,%rax
180035738:	41 8b e9             	mov    %r9d,%ebp
18003573b:	4c 8b f1             	mov    %rcx,%r14
18003573e:	48 8b fb             	mov    %rbx,%rdi
180035741:	45 8b 53 30          	mov    0x30(%r11),%r10d
180035745:	49 f7 f2             	div    %r10
180035748:	33 d2                	xor    %edx,%edx
18003574a:	4c 8b f8             	mov    %rax,%r15
18003574d:	41 8b c1             	mov    %r9d,%eax
180035750:	45 8b 4b 34          	mov    0x34(%r11),%r9d
180035754:	41 f7 f2             	div    %r10d
180035757:	44 8b e0             	mov    %eax,%r12d
18003575a:	45 85 c9             	test   %r9d,%r9d
18003575d:	74 44                	je     0x1800357a3
18003575f:	41 8d 51 ff          	lea    -0x1(%r9),%edx
180035763:	48 85 d3             	test   %rdx,%rbx
180035766:	74 3b                	je     0x1800357a3
180035768:	44 8b c5             	mov    %ebp,%r8d
18003576b:	48 8d 15 3a f5 16 00 	lea    0x16f53a(%rip),%rdx        # 0x1801a4cac
180035772:	48 8d 0d 5f f5 16 00 	lea    0x16f55f(%rip),%rcx        # 0x1801a4cd8
180035779:	e8 7e 00 00 00       	call   0x1800357fc
18003577e:	85 c0                	test   %eax,%eax
180035780:	79 07                	jns    0x180035789
180035782:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
180035787:	eb 50                	jmp    0x1800357d9
180035789:	48 8b 3d 48 f5 16 00 	mov    0x16f548(%rip),%rdi        # 0x1801a4cd8
180035790:	83 fe 01             	cmp    $0x1,%esi
180035793:	75 0e                	jne    0x1800357a3
180035795:	4c 8b c5             	mov    %rbp,%r8
180035798:	48 8b d3             	mov    %rbx,%rdx
18003579b:	48 8b cf             	mov    %rdi,%rcx
18003579e:	e8 1d 02 10 00       	call   0x1801359c0
1800357a3:	4d 8b cc             	mov    %r12,%r9
1800357a6:	89 74 24 20          	mov    %esi,0x20(%rsp)
1800357aa:	4d 8b c7             	mov    %r15,%r8
1800357ad:	48 8b d7             	mov    %rdi,%rdx
1800357b0:	49 8b ce             	mov    %r14,%rcx
1800357b3:	e8 50 fe ff ff       	call   0x180035608
1800357b8:	85 c0                	test   %eax,%eax
1800357ba:	78 1d                	js     0x1800357d9
1800357bc:	48 3b fb             	cmp    %rbx,%rdi
1800357bf:	74 16                	je     0x1800357d7
1800357c1:	85 f6                	test   %esi,%esi
1800357c3:	75 12                	jne    0x1800357d7
1800357c5:	48 8b 15 0c f5 16 00 	mov    0x16f50c(%rip),%rdx        # 0x1801a4cd8
1800357cc:	4c 8b c5             	mov    %rbp,%r8
1800357cf:	48 8b cb             	mov    %rbx,%rcx
1800357d2:	e8 e9 01 10 00       	call   0x1801359c0
1800357d7:	33 c0                	xor    %eax,%eax
1800357d9:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1800357de:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
1800357e3:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
1800357e8:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
1800357ed:	48 83 c4 30          	add    $0x30,%rsp
1800357f1:	41 5f                	pop    %r15
1800357f3:	41 5e                	pop    %r14
1800357f5:	41 5c                	pop    %r12
1800357f7:	c3                   	ret
1800357f8:	cc                   	int3
1800357f9:	cc                   	int3
1800357fa:	cc                   	int3
1800357fb:	cc                   	int3
1800357fc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180035801:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180035806:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18003580b:	57                   	push   %rdi
18003580c:	48 83 ec 40          	sub    $0x40,%rsp
180035810:	45 85 c9             	test   %r9d,%r9d
180035813:	bf 01 00 00 00       	mov    $0x1,%edi
180035818:	41 8b e8             	mov    %r8d,%ebp
18003581b:	48 8b f2             	mov    %rdx,%rsi
18003581e:	41 0f 45 f9          	cmovne %r9d,%edi
180035822:	48 8b d9             	mov    %rcx,%rbx
180035825:	44 3b 02             	cmp    (%rdx),%r8d
180035828:	77 09                	ja     0x180035833
18003582a:	44 8d 47 ff          	lea    -0x1(%rdi),%r8d
18003582e:	4c 85 01             	test   %r8,(%rcx)