18005636c:	48 8b cf             	mov    %rdi,%rcx
18005636f:	e8 a0 b1 ff ff       	call   0x180051514
180056374:	84 c0                	test   %al,%al
180056376:	0f 84 33 ff ff ff    	je     0x1800562af
18005637c:	45 8b 8f a0 00 00 00 	mov    0xa0(%r15),%r9d
180056383:	8b d5                	mov    %ebp,%edx
180056385:	48 8b cf             	mov    %rdi,%rcx
180056388:	e8 b3 f4 ff ff       	call   0x180055840
18005638d:	41 8b 56 10          	mov    0x10(%r14),%edx
180056391:	8b c8                	mov    %eax,%ecx
180056393:	44 8b d8             	mov    %eax,%r11d
180056396:	e8 e5 9b fe ff       	call   0x18003ff80
18005639b:	84 c0                	test   %al,%al
18005639d:	74 04                	je     0x1800563a3
18005639f:	45 89 5e 10          	mov    %r11d,0x10(%r14)
1800563a3:	44 8b c6             	mov    %esi,%r8d
1800563a6:	8b d5                	mov    %ebp,%edx
1800563a8:	48 8b cf             	mov    %rdi,%rcx
1800563ab:	e8 2c f4 ff ff       	call   0x1800557dc
1800563b0:	e9 fa fe ff ff       	jmp    0x1800562af
1800563b5:	41 8b 87 a0 00 00 00 	mov    0xa0(%r15),%eax
1800563bc:	89 42 10             	mov    %eax,0x10(%rdx)
1800563bf:	e9 eb fe ff ff       	jmp    0x1800562af
1800563c4:	48 8b 07             	mov    (%rdi),%rax
1800563c7:	48 8b cf             	mov    %rdi,%rcx
1800563ca:	48 8b 80 b8 00 00 00 	mov    0xb8(%rax),%rax
1800563d1:	ff d0                	call   *%rax
1800563d3:	0f 1f 00             	nopl   (%rax)
1800563d6:	44 8a f8             	mov    %al,%r15b
1800563d9:	8b eb                	mov    %ebx,%ebp
1800563db:	48 8b 4f 20          	mov    0x20(%rdi),%rcx
1800563df:	48 85 c9             	test   %rcx,%rcx
1800563e2:	74 06                	je     0x1800563ea
1800563e4:	48 83 c1 58          	add    $0x58,%rcx
1800563e8:	eb 08                	jmp    0x1800563f2
1800563ea:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
1800563ee:	48 83 c1 50          	add    $0x50,%rcx
1800563f2:	3b 69 10             	cmp    0x10(%rcx),%ebp
1800563f5:	0f 83 b4 fe ff ff    	jae    0x1800562af
1800563fb:	8b f3                	mov    %ebx,%esi
1800563fd:	38 5f 2b             	cmp    %bl,0x2b(%rdi)
180056400:	76 5f                	jbe    0x180056461
180056402:	45 84 ff             	test   %r15b,%r15b
180056405:	74 50                	je     0x180056457
180056407:	44 8b c6             	mov    %esi,%r8d
18005640a:	8b d5                	mov    %ebp,%edx
18005640c:	48 8b cf             	mov    %rdi,%rcx
18005640f:	e8 3c af ff ff       	call   0x180051350
180056414:	8a 48 02             	mov    0x2(%rax),%cl
180056417:	80 e1 0f             	and    $0xf,%cl
18005641a:	80 f9 02             	cmp    $0x2,%cl
18005641d:	75 1d                	jne    0x18005643c
18005641f:	41 b1 03             	mov    $0x3,%r9b
180056422:	c6 44 24 20 01       	movb   $0x1,0x20(%rsp)
180056427:	48 8b cf             	mov    %rdi,%rcx
18005642a:	e8 dd f6 ff ff       	call   0x180055b0c
18005642f:	44 8b c6             	mov    %esi,%r8d
180056432:	8b d5                	mov    %ebp,%edx
180056434:	48 8b cf             	mov    %rdi,%rcx
180056437:	e8 a0 f3 ff ff       	call   0x1800557dc
18005643c:	44 8b c6             	mov    %esi,%r8d
18005643f:	8b d5                	mov    %ebp,%edx
180056441:	48 8b cf             	mov    %rdi,%rcx
180056444:	e8 07 af ff ff       	call   0x180051350
180056449:	f6 40 03 0f          	testb  $0xf,0x3(%rax)
18005644d:	74 08                	je     0x180056457
18005644f:	41 c7 46 10 13 00 e7 	movl   $0xc0e70013,0x10(%r14)
180056456:	c0
180056457:	0f b6 47 2b          	movzbl 0x2b(%rdi),%eax
18005645b:	ff c6                	inc    %esi
18005645d:	3b f0                	cmp    %eax,%esi
18005645f:	72 a1                	jb     0x180056402
180056461:	ff c5                	inc    %ebp
180056463:	e9 73 ff ff ff       	jmp    0x1800563db
180056468:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18005646d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180056472:	57                   	push   %rdi
180056473:	48 83 ec 20          	sub    $0x20,%rsp
180056477:	48 8b 02             	mov    (%rdx),%rax
18005647a:	48 8b d9             	mov    %rcx,%rbx
18005647d:	48 8b ca             	mov    %rdx,%rcx
180056480:	41 8b f8             	mov    %r8d,%edi
180056483:	48 8b 40 58          	mov    0x58(%rax),%rax
180056487:	ff d0                	call   *%rax
180056489:	0f 1f 00             	nopl   (%rax)
18005648c:	48 8b f0             	mov    %rax,%rsi
18005648f:	8b d7                	mov    %edi,%edx
180056491:	48 8b 03             	mov    (%rbx),%rax
180056494:	48 8b cb             	mov    %rbx,%rcx
180056497:	48 8b 80 c0 00 00 00 	mov    0xc0(%rax),%rax
18005649e:	ff d0                	call   *%rax
1800564a0:	0f 1f 00             	nopl   (%rax)
1800564a3:	39 06                	cmp    %eax,(%rsi)
1800564a5:	7f 06                	jg     0x1800564ad
1800564a7:	89 06                	mov    %eax,(%rsi)
1800564a9:	b0 01                	mov    $0x1,%al
1800564ab:	eb 02                	jmp    0x1800564af
1800564ad:	32 c0                	xor    %al,%al
1800564af:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800564b4:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1800564b9:	48 83 c4 20          	add    $0x20,%rsp
1800564bd:	5f                   	pop    %rdi
1800564be:	c3                   	ret
1800564bf:	cc                   	int3
1800564c0:	48 8b c4             	mov    %rsp,%rax
1800564c3:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800564c7:	48 89 68 10          	mov    %rbp,0x10(%rax)
1800564cb:	48 89 70 18          	mov    %rsi,0x18(%rax)
1800564cf:	48 89 78 20          	mov    %rdi,0x20(%rax)
1800564d3:	41 56                	push   %r14
1800564d5:	48 83 ec 20          	sub    $0x20,%rsp
1800564d9:	49 8b d9             	mov    %r9,%rbx
1800564dc:	48 8b f9             	mov    %rcx,%rdi
1800564df:	40 32 ed             	xor    %bpl,%bpl
1800564e2:	e8 69 ae ff ff       	call   0x180051350
1800564e7:	48 8b f0             	mov    %rax,%rsi
1800564ea:	0f b7 00             	movzwl (%rax),%eax
1800564ed:	a8 10                	test   $0x10,%al
1800564ef:	0f 85 a1 00 00 00    	jne    0x180056596
1800564f5:	4c 8b 71 08          	mov    0x8(%rcx),%r14
1800564f9:	44 8b c2             	mov    %edx,%r8d
1800564fc:	48 8b 51 10          	mov    0x10(%rcx),%rdx
180056500:	49 8b ce             	mov    %r14,%rcx
180056503:	44 8b 4e 10          	mov    0x10(%rsi),%r9d
180056507:	e8 34 37 fe ff       	call   0x180039c40
18005650c:	48 85 c0             	test   %rax,%rax
18005650f:	74 29                	je     0x18005653a
180056511:	48 8b c8             	mov    %rax,%rcx
180056514:	e8 57 84 0e 00       	call   0x18013e970
180056519:	b2 02                	mov    $0x2,%dl
18005651b:	48 8b 48 10          	mov    0x10(%rax),%rcx
18005651f:	44 8b 40 3c          	mov    0x3c(%rax),%r8d
180056523:	48 8b 49 10          	mov    0x10(%rcx),%rcx
180056527:	e8 38 6a 0e 00       	call   0x18013cf64
18005652c:	48 8b c8             	mov    %rax,%rcx
18005652f:	e8 3c 84 0e 00       	call   0x18013e970
180056534:	83 78 44 05          	cmpl   $0x5,0x44(%rax)
180056538:	74 12                	je     0x18005654c
18005653a:	8a 4e 02             	mov    0x2(%rsi),%cl
18005653d:	80 e1 0f             	and    $0xf,%cl
180056540:	8d 41 ff             	lea    -0x1(%rcx),%eax
180056543:	3c 01                	cmp    $0x1,%al
180056545:	76 4f                	jbe    0x180056596
180056547:	80 f9 07             	cmp    $0x7,%cl
18005654a:	74 4a                	je     0x180056596
18005654c:	40 b5 01             	mov    $0x1,%bpl
18005654f:	48 85 db             	test   %rbx,%rbx
180056552:	74 42                	je     0x180056596
180056554:	8a 46 02             	mov    0x2(%rsi),%al
180056557:	24 0f                	and    $0xf,%al
180056559:	3c 08                	cmp    $0x8,%al
18005655b:	75 1a                	jne    0x180056577
18005655d:	48 8b 57 20          	mov    0x20(%rdi),%rdx
180056561:	49 8d 46 30          	lea    0x30(%r14),%rax
180056565:	48 85 d2             	test   %rdx,%rdx
180056568:	48 8d 4a 38          	lea    0x38(%rdx),%rcx
18005656c:	48 0f 44 c8          	cmove  %rax,%rcx
180056570:	48 8b 41 08          	mov    0x8(%rcx),%rax
180056574:	48 01 03             	add    %rax,(%rbx)
180056577:	48 8b 4f 20          	mov    0x20(%rdi),%rcx
18005657b:	48 85 c9             	test   %rcx,%rcx
18005657e:	74 06                	je     0x180056586
180056580:	48 83 c1 38          	add    $0x38,%rcx
180056584:	eb 08                	jmp    0x18005658e
180056586:	48 8b 4f 08          	mov    0x8(%rdi),%rcx
18005658a:	48 83 c1 30          	add    $0x30,%rcx
18005658e:	48 8b 49 08          	mov    0x8(%rcx),%rcx
180056592:	48 01 4b 08          	add    %rcx,0x8(%rbx)
180056596:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18005659b:	40 8a c5             	mov    %bpl,%al
18005659e:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1800565a3:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1800565a8:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
1800565ad:	48 83 c4 20          	add    $0x20,%rsp
1800565b1:	41 5e                	pop    %r14
1800565b3:	c3                   	ret
1800565b4:	cc                   	int3
1800565b5:	cc                   	int3
1800565b6:	cc                   	int3
1800565b7:	cc                   	int3
1800565b8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800565bd:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1800565c2:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1800565c7:	57                   	push   %rdi
1800565c8:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
1800565cf:	4c 8b d9             	mov    %rcx,%r11
1800565d2:	49 8b e9             	mov    %r9,%rbp
1800565d5:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800565da:	4c 8b d2             	mov    %rdx,%r10
1800565dd:	e8 86 09 ff ff       	call   0x180046f68
1800565e2:	49 8b 71 38          	mov    0x38(%r9),%rsi
1800565e6:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800565eb:	49 8b 79 40          	mov    0x40(%r9),%rdi
1800565ef:	49 8b cb             	mov    %r11,%rcx
1800565f2:	83 4c 24 5c 04       	orl    $0x4,0x5c(%rsp)
1800565f7:	4d 89 41 38          	mov    %r8,0x38(%r9)
1800565fb:	41 b0 13             	mov    $0x13,%r8b
1800565fe:	4c 89 8c 24 90 00 00 	mov    %r9,0x90(%rsp)
180056605:	00
180056606:	c6 84 24 b9 00 00 00 	movb   $0x13,0xb9(%rsp)
18005660d:	13
18005660e:	4c 89 9c 24 f0 00 00 	mov    %r11,0xf0(%rsp)
180056615:	00
180056616:	4c 89 9c 24 f8 00 00 	mov    %r11,0xf8(%rsp)
18005661d:	00
18005661e:	4d 89 51 40          	mov    %r10,0x40(%r9)
180056622:	e8 e9 0e ff ff       	call   0x180047510
180056627:	8b 9c 24 c0 00 00 00 	mov    0xc0(%rsp),%ebx
18005662e:	b8 02 00 e7 00       	mov    $0xe70002,%eax
180056633:	85 db                	test   %ebx,%ebx
180056635:	0f 49 d8             	cmovns %eax,%ebx
180056638:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18005663d:	48 89 75 38          	mov    %rsi,0x38(%rbp)
180056641:	48 89 7d 40          	mov    %rdi,0x40(%rbp)
180056645:	e8 ee 09 ff ff       	call   0x180047038
18005664a:	4c 8d 9c 24 00 01 00 	lea    0x100(%rsp),%r11
180056651:	00
180056652:	8b c3                	mov    %ebx,%eax
180056654:	49 8b 5b 10          	mov    0x10(%r11),%rbx
180056658:	49 8b 6b 18          	mov    0x18(%r11),%rbp
18005665c:	49 8b 73 20          	mov    0x20(%r11),%rsi
180056660:	49 8b e3             	mov    %r11,%rsp
180056663:	5f                   	pop    %rdi
180056664:	c3                   	ret
180056665:	cc                   	int3
180056666:	cc                   	int3
180056667:	cc                   	int3
180056668:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18005666d:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
180056672:	55                   	push   %rbp
180056673:	56                   	push   %rsi
180056674:	57                   	push   %rdi
180056675:	41 54                	push   %r12
180056677:	41 55                	push   %r13
180056679:	41 56                	push   %r14
18005667b:	41 57                	push   %r15
18005667d:	48 83 ec 60          	sub    $0x60,%rsp
180056681:	45 33 ff             	xor    %r15d,%r15d
180056684:	48 8b f9             	mov    %rcx,%rdi
180056687:	4d 85 c0             	test   %r8,%r8
18005668a:	74 0b                	je     0x180056697
18005668c:	41 bf 02 00 00 c0    	mov    $0xc0000002,%r15d
180056692:	e9 52 03 00 00       	jmp    0x1800569e9
180056697:	4c 8b 6a 70          	mov    0x70(%rdx),%r13
18005669b:	49 8b cd             	mov    %r13,%rcx
18005669e:	4c 89 6c 24 30       	mov    %r13,0x30(%rsp)
1800566a3:	e8 70 06 ff ff       	call   0x180046d18
1800566a8:	49 8b 5d 40          	mov    0x40(%r13),%rbx
1800566ac:	8b f0                	mov    %eax,%esi
1800566ae:	49 8b 55 38          	mov    0x38(%r13),%rdx
1800566b2:	48 03 d3             	add    %rbx,%rdx
1800566b5:	89 84 24 b0 00 00 00 	mov    %eax,0xb0(%rsp)
1800566bc:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
1800566c1:	45 33 e4             	xor    %r12d,%r12d
1800566c4:	48 89 5c 24 58       	mov    %rbx,0x58(%rsp)
1800566c9:	48 8b 47 20          	mov    0x20(%rdi),%rax
1800566cd:	48 85 c0             	test   %rax,%rax
1800566d0:	74 06                	je     0x1800566d8
1800566d2:	48 83 c0 58          	add    $0x58,%rax
1800566d6:	eb 08                	jmp    0x1800566e0
1800566d8:	48 8b 47 08          	mov    0x8(%rdi),%rax
1800566dc:	48 83 c0 50          	add    $0x50,%rax
1800566e0:	44 3b 60 10          	cmp    0x10(%rax),%r12d
1800566e4:	0f 83 ff 02 00 00    	jae    0x1800569e9
1800566ea:	33 c9                	xor    %ecx,%ecx
1800566ec:	89 8c 24 b8 00 00 00 	mov    %ecx,0xb8(%rsp)
1800566f3:	38 4f 2b             	cmp    %cl,0x2b(%rdi)
1800566f6:	0f 86 c7 02 00 00    	jbe    0x1800569c3
1800566fc:	44 8b c1             	mov    %ecx,%r8d
1800566ff:	41 8b d4             	mov    %r12d,%edx
180056702:	48 8b cf             	mov    %rdi,%rcx
180056705:	e8 46 ac ff ff       	call   0x180051350
18005670a:	48 8b d0             	mov    %rax,%rdx
18005670d:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
180056712:	e8 ed ac ff ff       	call   0x180051404
180056717:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
18005671c:	48 85 c0             	test   %rax,%rax
18005671f:	0f 84 82 02 00 00    	je     0x1800569a7
180056725:	48 83 78 08 00       	cmpq   $0x0,0x8(%rax)
18005672a:	0f 84 77 02 00 00    	je     0x1800569a7
180056730:	48 8b 07             	mov    (%rdi),%rax
180056733:	45 33 c0             	xor    %r8d,%r8d
180056736:	48 8b d3             	mov    %rbx,%rdx
180056739:	48 8b cf             	mov    %rdi,%rcx
18005673c:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
180056743:	ff d0                	call   *%rax
180056745:	0f 1f 00             	nopl   (%rax)
180056748:	48 8b 54 24 28       	mov    0x28(%rsp),%rdx
18005674d:	4c 8b f0             	mov    %rax,%r14
180056750:	48 8b 07             	mov    (%rdi),%rax
180056753:	45 33 c0             	xor    %r8d,%r8d
180056756:	48 8b cf             	mov    %rdi,%rcx
180056759:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
180056760:	ff d0                	call   *%rax
180056762:	0f 1f 00             	nopl   (%rax)
180056765:	48 8b e8             	mov    %rax,%rbp
180056768:	4d 8b c6             	mov    %r14,%r8
18005676b:	48 8b 07             	mov    (%rdi),%rax
18005676e:	41 8b d4             	mov    %r12d,%edx
180056771:	48 8b cf             	mov    %rdi,%rcx
180056774:	48 8b 80 88 00 00 00 	mov    0x88(%rax),%rax
18005677b:	ff d0                	call   *%rax
18005677d:	0f 1f 00             	nopl   (%rax)
180056780:	48 3b c3             	cmp    %rbx,%rax
180056783:	73 15                	jae    0x18005679a
180056785:	8a 4f 2a             	mov    0x2a(%rdi),%cl
180056788:	b8 01 00 00 00       	mov    $0x1,%eax
18005678d:	48 d3 e0             	shl    %cl,%rax
180056790:	8b c8                	mov    %eax,%ecx
180056792:	4c 03 f1             	add    %rcx,%r14
180056795:	48 ff c9             	dec    %rcx
180056798:	eb 12                	jmp    0x1800567ac
18005679a:	76 16                	jbe    0x1800567b2
18005679c:	8a 4f 2a             	mov    0x2a(%rdi),%cl
18005679f:	b8 01 00 00 00       	mov    $0x1,%eax
1800567a4:	48 d3 e0             	shl    %cl,%rax
1800567a7:	8b c8                	mov    %eax,%ecx
1800567a9:	48 ff c9             	dec    %rcx
1800567ac:	48 f7 d1             	not    %rcx
1800567af:	4c 23 f1             	and    %rcx,%r14
1800567b2:	48 8b 07             	mov    (%rdi),%rax
1800567b5:	4c 8b c5             	mov    %rbp,%r8
1800567b8:	41 8b d4             	mov    %r12d,%edx
1800567bb:	48 8b cf             	mov    %rdi,%rcx
1800567be:	48 8b 80 88 00 00 00 	mov    0x88(%rax),%rax
1800567c5:	ff d0                	call   *%rax
1800567c7:	0f 1f 00             	nopl   (%rax)
1800567ca:	48 3b 44 24 28       	cmp    0x28(%rsp),%rax
1800567cf:	76 12                	jbe    0x1800567e3
1800567d1:	8a 4f 2a             	mov    0x2a(%rdi),%cl
1800567d4:	b8 01 00 00 00       	mov    $0x1,%eax
1800567d9:	48 d3 e0             	shl    %cl,%rax
1800567dc:	8b c8                	mov    %eax,%ecx
1800567de:	48 ff c9             	dec    %rcx
1800567e1:	eb 15                	jmp    0x1800567f8
1800567e3:	73 19                	jae    0x1800567fe
1800567e5:	8a 4f 2a             	mov    0x2a(%rdi),%cl
1800567e8:	b8 01 00 00 00       	mov    $0x1,%eax
1800567ed:	48 d3 e0             	shl    %cl,%rax
1800567f0:	8b c8                	mov    %eax,%ecx
1800567f2:	48 03 e9             	add    %rcx,%rbp
1800567f5:	48 ff c9             	dec    %rcx
1800567f8:	48 f7 d1             	not    %rcx
1800567fb:	48 23 e9             	and    %rcx,%rbp
1800567fe:	4c 3b f5             	cmp    %rbp,%r14
180056801:	0f 83 a0 01 00 00    	jae    0x1800569a7
180056807:	b9 e0 00 00 00       	mov    $0xe0,%ecx
18005680c:	e8 03 01 ff ff       	call   0x180046914
180056811:	48 85 c0             	test   %rax,%rax
180056814:	74 0d                	je     0x180056823