140058388:	48 8b 0f             	mov    (%rdi),%rcx
14005838b:	48 3b c8             	cmp    %rax,%rcx
14005838e:	74 04                	je     0x140058394
140058390:	48 89 4f 08          	mov    %rcx,0x8(%rdi)
140058394:	48 8b 4f 20          	mov    0x20(%rdi),%rcx
140058398:	e8 43 d5 ff ff       	call   0x1400558e0
14005839d:	48 83 67 18 00       	andq   $0x0,0x18(%rdi)
1400583a2:	83 67 2c 00          	andl   $0x0,0x2c(%rdi)
1400583a6:	48 83 67 20 00       	andq   $0x0,0x20(%rdi)
1400583ab:	83 67 28 00          	andl   $0x0,0x28(%rdi)
1400583af:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400583b4:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1400583b9:	48 83 c4 20          	add    $0x20,%rsp
1400583bd:	5f                   	pop    %rdi
1400583be:	c3                   	ret
1400583bf:	90                   	nop
1400583c0:	8b 41 2c             	mov    0x2c(%rcx),%eax
1400583c3:	c3                   	ret
1400583c4:	40 53                	rex push %rbx
1400583c6:	48 83 ec 20          	sub    $0x20,%rsp
1400583ca:	8b 41 2c             	mov    0x2c(%rcx),%eax
1400583cd:	48 8b d9             	mov    %rcx,%rbx
1400583d0:	85 c0                	test   %eax,%eax
1400583d2:	75 11                	jne    0x1400583e5
1400583d4:	e8 4b 01 00 00       	call   0x140058524
1400583d9:	84 c0                	test   %al,%al
1400583db:	b8 02 00 00 00       	mov    $0x2,%eax
1400583e0:	74 03                	je     0x1400583e5
1400583e2:	8b 43 2c             	mov    0x2c(%rbx),%eax
1400583e5:	48 83 c4 20          	add    $0x20,%rsp
1400583e9:	5b                   	pop    %rbx
1400583ea:	c3                   	ret
1400583eb:	90                   	nop
1400583ec:	40 53                	rex push %rbx
1400583ee:	48 83 ec 20          	sub    $0x20,%rsp
1400583f2:	48 8b d9             	mov    %rcx,%rbx
1400583f5:	89 54 24 38          	mov    %edx,0x38(%rsp)
1400583f9:	48 8b 49 18          	mov    0x18(%rcx),%rcx
1400583fd:	48 85 c9             	test   %rcx,%rcx
140058400:	74 29                	je     0x14005842b
140058402:	e8 b9 23 fc ff       	call   0x14001a7c0
140058407:	3c 01                	cmp    $0x1,%al
140058409:	75 19                	jne    0x140058424
14005840b:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
14005840f:	48 8d 54 24 38       	lea    0x38(%rsp),%rdx
140058414:	e8 2f 2a fc ff       	call   0x14001ae48
140058419:	83 f8 01             	cmp    $0x1,%eax
14005841c:	75 06                	jne    0x140058424
14005841e:	83 63 2c 00          	andl   $0x0,0x2c(%rbx)
140058422:	eb 07                	jmp    0x14005842b
140058424:	c7 43 2c 02 00 00 00 	movl   $0x2,0x2c(%rbx)
14005842b:	8b 44 24 38          	mov    0x38(%rsp),%eax
14005842f:	48 83 c4 20          	add    $0x20,%rsp
140058433:	5b                   	pop    %rbx
140058434:	c3                   	ret
140058435:	90                   	nop
140058436:	90                   	nop
140058437:	90                   	nop
140058438:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14005843d:	57                   	push   %rdi
14005843e:	48 83 ec 20          	sub    $0x20,%rsp
140058442:	48 8b d9             	mov    %rcx,%rbx
140058445:	48 8b 49 18          	mov    0x18(%rcx),%rcx
140058449:	48 85 c9             	test   %rcx,%rcx
14005844c:	74 57                	je     0x1400584a5
14005844e:	e8 6d 23 fc ff       	call   0x14001a7c0
140058453:	3c 01                	cmp    $0x1,%al
140058455:	75 47                	jne    0x14005849e
140058457:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
14005845b:	e8 50 23 fc ff       	call   0x14001a7b0
140058460:	8b f8                	mov    %eax,%edi
140058462:	03 ff                	add    %edi,%edi
140058464:	74 38                	je     0x14005849e
140058466:	8b d7                	mov    %edi,%edx
140058468:	48 8b cb             	mov    %rbx,%rcx
14005846b:	e8 5c 00 00 00       	call   0x1400584cc
140058470:	83 7b 2c 00          	cmpl   $0x0,0x2c(%rbx)
140058474:	75 2f                	jne    0x1400584a5
140058476:	48 8b 53 20          	mov    0x20(%rbx),%rdx
14005847a:	83 ff 02             	cmp    $0x2,%edi
14005847d:	75 0d                	jne    0x14005848c
14005847f:	c6 42 01 00          	movb   $0x0,0x1(%rdx)
140058483:	48 8b 43 20          	mov    0x20(%rbx),%rax
140058487:	c6 00 00             	movb   $0x0,(%rax)
14005848a:	eb 19                	jmp    0x1400584a5
14005848c:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
140058490:	d1 ef                	shr    $1,%edi
140058492:	44 8b c7             	mov    %edi,%r8d
140058495:	e8 da 29 fc ff       	call   0x14001ae74
14005849a:	85 c0                	test   %eax,%eax
14005849c:	75 07                	jne    0x1400584a5
14005849e:	c7 43 2c 02 00 00 00 	movl   $0x2,0x2c(%rbx)
1400584a5:	48 83 7b 18 00       	cmpq   $0x0,0x18(%rbx)
1400584aa:	74 0c                	je     0x1400584b8
1400584ac:	83 7b 2c 00          	cmpl   $0x0,0x2c(%rbx)
1400584b0:	75 06                	jne    0x1400584b8
1400584b2:	48 8b 43 20          	mov    0x20(%rbx),%rax
1400584b6:	eb 07                	jmp    0x1400584bf
1400584b8:	48 8d 05 f5 33 02 00 	lea    0x233f5(%rip),%rax        # 0x14007b8b4
1400584bf:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400584c4:	48 83 c4 20          	add    $0x20,%rsp
1400584c8:	5f                   	pop    %rdi
1400584c9:	c3                   	ret
1400584ca:	90                   	nop
1400584cb:	90                   	nop
1400584cc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400584d1:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1400584d6:	57                   	push   %rdi
1400584d7:	48 83 ec 20          	sub    $0x20,%rsp
1400584db:	48 8b d9             	mov    %rcx,%rbx
1400584de:	8b fa                	mov    %edx,%edi
1400584e0:	3b 51 28             	cmp    0x28(%rcx),%edx
1400584e3:	76 2f                	jbe    0x140058514
1400584e5:	8b cf                	mov    %edi,%ecx
1400584e7:	48 8d 15 c2 48 02 00 	lea    0x248c2(%rip),%rdx        # 0x14007cdb0
1400584ee:	e8 e9 d3 ff ff       	call   0x1400558dc
1400584f3:	48 8b f0             	mov    %rax,%rsi
1400584f6:	48 85 c0             	test   %rax,%rax
1400584f9:	74 12                	je     0x14005850d
1400584fb:	48 8b 4b 20          	mov    0x20(%rbx),%rcx
1400584ff:	e8 dc d3 ff ff       	call   0x1400558e0
140058504:	48 89 73 20          	mov    %rsi,0x20(%rbx)
140058508:	89 7b 28             	mov    %edi,0x28(%rbx)
14005850b:	eb 07                	jmp    0x140058514
14005850d:	c7 43 2c 08 00 00 00 	movl   $0x8,0x2c(%rbx)
140058514:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140058519:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
14005851e:	48 83 c4 20          	add    $0x20,%rsp
140058522:	5f                   	pop    %rdi
140058523:	c3                   	ret
140058524:	48 83 ec 28          	sub    $0x28,%rsp
140058528:	48 8b 49 18          	mov    0x18(%rcx),%rcx
14005852c:	48 85 c9             	test   %rcx,%rcx
14005852f:	74 0b                	je     0x14005853c
140058531:	e8 8a 22 fc ff       	call   0x14001a7c0
140058536:	b1 01                	mov    $0x1,%cl
140058538:	3a c1                	cmp    %cl,%al
14005853a:	74 02                	je     0x14005853e
14005853c:	32 c9                	xor    %cl,%cl
14005853e:	8a c1                	mov    %cl,%al
140058540:	48 83 c4 28          	add    $0x28,%rsp
140058544:	c3                   	ret
140058545:	90                   	nop
140058546:	90                   	nop
140058547:	90                   	nop
140058548:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
14005854d:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140058552:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140058557:	57                   	push   %rdi
140058558:	48 83 ec 20          	sub    $0x20,%rsp
14005855c:	49 8b f0             	mov    %r8,%rsi
14005855f:	48 8b d9             	mov    %rcx,%rbx
140058562:	48 89 11             	mov    %rdx,(%rcx)
140058565:	48 83 61 08 00       	andq   $0x0,0x8(%rcx)
14005856a:	48 83 61 08 00       	andq   $0x0,0x8(%rcx)
14005856f:	b9 50 00 00 00       	mov    $0x50,%ecx
140058574:	ff 15 1e 70 01 00    	call   *0x1701e(%rip)        # 0x14006f598
14005857a:	48 8b f8             	mov    %rax,%rdi
14005857d:	48 85 c0             	test   %rax,%rax
140058580:	0f 84 9b 00 00 00    	je     0x140058621
140058586:	48 89 43 08          	mov    %rax,0x8(%rbx)
14005858a:	48 8b 44 24 50       	mov    0x50(%rsp),%rax
14005858f:	48 8b 00             	mov    (%rax),%rax
140058592:	8b 08                	mov    (%rax),%ecx
140058594:	89 4f 20             	mov    %ecx,0x20(%rdi)
140058597:	48 83 c7 28          	add    $0x28,%rdi
14005859b:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
1400585a0:	48 83 27 00          	andq   $0x0,(%rdi)
1400585a4:	48 83 67 08 00       	andq   $0x0,0x8(%rdi)
1400585a9:	c6 47 10 00          	movb   $0x0,0x10(%rdi)
1400585ad:	e8 1e 66 fc ff       	call   0x14001ebd0
1400585b2:	48 8b c8             	mov    %rax,%rcx
1400585b5:	48 85 c0             	test   %rax,%rax
1400585b8:	74 58                	je     0x140058612
1400585ba:	48 8b 00             	mov    (%rax),%rax
1400585bd:	48 8b 40 18          	mov    0x18(%rax),%rax
1400585c1:	ff 15 c1 70 01 00    	call   *0x170c1(%rip)        # 0x14006f688
1400585c7:	48 83 c0 18          	add    $0x18,%rax
1400585cb:	48 89 47 18          	mov    %rax,0x18(%rdi)
1400585cf:	48 83 67 20 00       	andq   $0x0,0x20(%rdi)
1400585d4:	48 8b 43 08          	mov    0x8(%rbx),%rax
1400585d8:	48 89 30             	mov    %rsi,(%rax)
1400585db:	48 8b 43 08          	mov    0x8(%rbx),%rax
1400585df:	48 89 70 08          	mov    %rsi,0x8(%rax)
1400585e3:	48 8b 43 08          	mov    0x8(%rbx),%rax
1400585e7:	48 89 70 10          	mov    %rsi,0x10(%rax)
1400585eb:	33 c9                	xor    %ecx,%ecx
1400585ed:	48 8b 43 08          	mov    0x8(%rbx),%rax
1400585f1:	c6 44 08 18 00       	movb   $0x0,0x18(%rax,%rcx,1)
1400585f6:	48 ff c1             	inc    %rcx
1400585f9:	48 83 f9 02          	cmp    $0x2,%rcx
1400585fd:	7c ee                	jl     0x1400585ed
1400585ff:	48 8b c3             	mov    %rbx,%rax
140058602:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140058607:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14005860c:	48 83 c4 20          	add    $0x20,%rsp
140058610:	5f                   	pop    %rdi
140058611:	c3                   	ret
140058612:	b9 05 40 00 80       	mov    $0x80004005,%ecx
140058617:	e8 b4 5f fc ff       	call   0x14001e5d0
14005861c:	90                   	nop
14005861d:	eb 01                	jmp    0x140058620
14005861f:	90                   	nop
140058620:	90                   	nop
140058621:	e8 37 1d 01 00       	call   0x14006a35d
140058626:	cc                   	int3
140058627:	90                   	nop
140058628:	48 8b c4             	mov    %rsp,%rax
14005862b:	48 89 58 08          	mov    %rbx,0x8(%rax)
14005862f:	48 89 70 10          	mov    %rsi,0x10(%rax)
140058633:	57                   	push   %rdi
140058634:	48 83 ec 30          	sub    $0x30,%rsp
140058638:	49 8b f0             	mov    %r8,%rsi
14005863b:	48 8b fa             	mov    %rdx,%rdi
14005863e:	48 89 48 e8          	mov    %rcx,-0x18(%rax)
140058642:	48 83 60 f0 00       	andq   $0x0,-0x10(%rax)
140058647:	b9 50 00 00 00       	mov    $0x50,%ecx
14005864c:	ff 15 46 6f 01 00    	call   *0x16f46(%rip)        # 0x14006f598
140058652:	48 8b d8             	mov    %rax,%rbx
140058655:	48 85 c0             	test   %rax,%rax
140058658:	74 3a                	je     0x140058694
14005865a:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14005865f:	8b 06                	mov    (%rsi),%eax
140058661:	89 43 20             	mov    %eax,0x20(%rbx)
140058664:	48 8d 4b 28          	lea    0x28(%rbx),%rcx
140058668:	48 8d 56 08          	lea    0x8(%rsi),%rdx
14005866c:	e8 ff 03 00 00       	call   0x140058a70
140058671:	48 89 3b             	mov    %rdi,(%rbx)
140058674:	48 89 7b 08          	mov    %rdi,0x8(%rbx)
140058678:	48 89 7b 10          	mov    %rdi,0x10(%rbx)
14005867c:	66 83 63 18 00       	andw   $0x0,0x18(%rbx)
140058681:	48 8b c3             	mov    %rbx,%rax
140058684:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140058689:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
14005868e:	48 83 c4 30          	add    $0x30,%rsp
140058692:	5f                   	pop    %rdi
140058693:	c3                   	ret
140058694:	e8 c4 1c 01 00       	call   0x14006a35d
140058699:	90                   	nop
14005869a:	90                   	nop
14005869b:	90                   	nop
14005869c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400586a1:	57                   	push   %rdi
1400586a2:	48 83 ec 20          	sub    $0x20,%rsp
1400586a6:	4c 8b 01             	mov    (%rcx),%r8
1400586a9:	48 8b da             	mov    %rdx,%rbx
1400586ac:	48 8b 12             	mov    (%rdx),%rdx
1400586af:	48 8b f9             	mov    %rcx,%rdi
1400586b2:	48 8b 52 08          	mov    0x8(%rdx),%rdx
1400586b6:	e8 71 00 00 00       	call   0x14005872c
1400586bb:	4c 8b 07             	mov    (%rdi),%r8
1400586be:	45 33 c9             	xor    %r9d,%r9d
1400586c1:	49 89 40 08          	mov    %rax,0x8(%r8)
1400586c5:	48 8b 17             	mov    (%rdi),%rdx
1400586c8:	48 8b 43 08          	mov    0x8(%rbx),%rax
1400586cc:	48 89 47 08          	mov    %rax,0x8(%rdi)
1400586d0:	4c 8b 42 08          	mov    0x8(%rdx),%r8
1400586d4:	45 38 48 19          	cmp    %r9b,0x19(%r8)
1400586d8:	75 3b                	jne    0x140058715
1400586da:	49 8b 08             	mov    (%r8),%rcx
1400586dd:	44 38 49 19          	cmp    %r9b,0x19(%rcx)
1400586e1:	75 0f                	jne    0x1400586f2
1400586e3:	48 8b 01             	mov    (%rcx),%rax
1400586e6:	4c 8b c1             	mov    %rcx,%r8
1400586e9:	48 8b c8             	mov    %rax,%rcx
1400586ec:	44 38 48 19          	cmp    %r9b,0x19(%rax)
1400586f0:	74 f1                	je     0x1400586e3
1400586f2:	4c 89 02             	mov    %r8,(%rdx)
1400586f5:	48 8b 17             	mov    (%rdi),%rdx
1400586f8:	48 8b 42 08          	mov    0x8(%rdx),%rax
1400586fc:	48 8b 48 10          	mov    0x10(%rax),%rcx
140058700:	eb 07                	jmp    0x140058709
140058702:	48 8b c1             	mov    %rcx,%rax
140058705:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140058709:	44 38 49 19          	cmp    %r9b,0x19(%rcx)
14005870d:	74 f3                	je     0x140058702
14005870f:	48 89 42 10          	mov    %rax,0x10(%rdx)
140058713:	eb 0a                	jmp    0x14005871f
140058715:	48 89 12             	mov    %rdx,(%rdx)
140058718:	48 8b 07             	mov    (%rdi),%rax
14005871b:	48 89 40 10          	mov    %rax,0x10(%rax)
14005871f:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140058724:	48 83 c4 20          	add    $0x20,%rsp
140058728:	5f                   	pop    %rdi
140058729:	c3                   	ret
14005872a:	90                   	nop
14005872b:	90                   	nop
14005872c:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140058731:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140058736:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
14005873b:	57                   	push   %rdi
14005873c:	41 56                	push   %r14
14005873e:	41 57                	push   %r15
140058740:	48 83 ec 20          	sub    $0x20,%rsp
140058744:	4d 8b f8             	mov    %r8,%r15
140058747:	4c 8b f2             	mov    %rdx,%r14
14005874a:	48 8b f9             	mov    %rcx,%rdi
14005874d:	48 8b 31             	mov    (%rcx),%rsi
140058750:	80 7a 19 00          	cmpb   $0x0,0x19(%rdx)
140058754:	75 4b                	jne    0x1400587a1
140058756:	4c 8d 42 20          	lea    0x20(%rdx),%r8
14005875a:	48 8b d6             	mov    %rsi,%rdx
14005875d:	e8 c6 fe ff ff       	call   0x140058628
140058762:	48 8b d8             	mov    %rax,%rbx
140058765:	4c 89 78 08          	mov    %r15,0x8(%rax)
140058769:	41 8a 46 18          	mov    0x18(%r14),%al
14005876d:	88 43 18             	mov    %al,0x18(%rbx)
140058770:	80 7e 19 00          	cmpb   $0x0,0x19(%rsi)
140058774:	48 0f 45 f3          	cmovne %rbx,%rsi
140058778:	48 89 74 24 48       	mov    %rsi,0x48(%rsp)
14005877d:	4c 8b c3             	mov    %rbx,%r8
140058780:	49 8b 16             	mov    (%r14),%rdx
140058783:	48 8b cf             	mov    %rdi,%rcx
140058786:	e8 a1 ff ff ff       	call   0x14005872c
14005878b:	48 89 03             	mov    %rax,(%rbx)
14005878e:	4c 8b c3             	mov    %rbx,%r8
140058791:	49 8b 56 10          	mov    0x10(%r14),%rdx
140058795:	48 8b cf             	mov    %rdi,%rcx
140058798:	e8 8f ff ff ff       	call   0x14005872c
14005879d:	48 89 43 10          	mov    %rax,0x10(%rbx)
1400587a1:	48 8b c6             	mov    %rsi,%rax
1400587a4:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1400587a9:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
1400587ae:	48 83 c4 20          	add    $0x20,%rsp
1400587b2:	41 5f                	pop    %r15
1400587b4:	41 5e                	pop    %r14
1400587b6:	5f                   	pop    %rdi
1400587b7:	c3                   	ret
1400587b8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400587bd:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1400587c2:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1400587c7:	57                   	push   %rdi
1400587c8:	48 83 ec 20          	sub    $0x20,%rsp
1400587cc:	49 8b d8             	mov    %r8,%rbx
1400587cf:	48 8b f2             	mov    %rdx,%rsi
1400587d2:	48 8b e9             	mov    %rcx,%rbp
1400587d5:	41 80 78 19 00       	cmpb   $0x0,0x19(%r8)
1400587da:	75 65                	jne    0x140058841
1400587dc:	4c 8b 43 10          	mov    0x10(%rbx),%r8
1400587e0:	48 8b d6             	mov    %rsi,%rdx
1400587e3:	48 8b cd             	mov    %rbp,%rcx
1400587e6:	e8 cd ff ff ff       	call   0x1400587b8
1400587eb:	48 8b fb             	mov    %rbx,%rdi
1400587ee:	48 8b 1b             	mov    (%rbx),%rbx
1400587f1:	48 8b 57 40          	mov    0x40(%rdi),%rdx
1400587f5:	48 83 ea 18          	sub    $0x18,%rdx
1400587f9:	83 c8 ff             	or     $0xffffffff,%eax
1400587fc:	f0 0f c1 42 10       	lock xadd %eax,0x10(%rdx)
140058801:	83 e8 01             	sub    $0x1,%eax
140058804:	7f 11                	jg     0x140058817