578459:	83 c4 04             	add    $0x4,%esp
57845c:	85 c0                	test   %eax,%eax
57845e:	74 32                	je     0x578492
578460:	56                   	push   %esi
578461:	e8 7a 5f ff ff       	call   0x56e3e0
578466:	83 c4 04             	add    $0x4,%esp
578469:	85 c0                	test   %eax,%eax
57846b:	74 25                	je     0x578492
57846d:	56                   	push   %esi
57846e:	e8 2d 7f ff ff       	call   0x5703a0
578473:	83 c4 04             	add    $0x4,%esp
578476:	85 c0                	test   %eax,%eax
578478:	74 18                	je     0x578492
57847a:	8b 4e 10             	mov    0x10(%esi),%ecx
57847d:	f6 41 14 80          	testb  $0x80,0x14(%ecx)
578481:	74 be                	je     0x578441
578483:	8b 46 38             	mov    0x38(%esi),%eax
578486:	56                   	push   %esi
578487:	ff d0                	call   *%eax
578489:	83 c4 04             	add    $0x4,%esp
57848c:	5f                   	pop    %edi
57848d:	5e                   	pop    %esi
57848e:	5d                   	pop    %ebp
57848f:	5b                   	pop    %ebx
578490:	59                   	pop    %ecx
578491:	c3                   	ret
578492:	5f                   	pop    %edi
578493:	5e                   	pop    %esi
578494:	5d                   	pop    %ebp
578495:	33 c0                	xor    %eax,%eax
578497:	5b                   	pop    %ebx
578498:	59                   	pop    %ecx
578499:	c3                   	ret
57849a:	cc                   	int3
57849b:	cc                   	int3
57849c:	cc                   	int3
57849d:	cc                   	int3
57849e:	cc                   	int3
57849f:	cc                   	int3
5784a0:	53                   	push   %ebx
5784a1:	55                   	push   %ebp
5784a2:	56                   	push   %esi
5784a3:	8b 74 24 10          	mov    0x10(%esp),%esi
5784a7:	57                   	push   %edi
5784a8:	8b 4e 10             	mov    0x10(%esi),%ecx
5784ab:	8b 41 14             	mov    0x14(%ecx),%eax
5784ae:	a8 02                	test   $0x2,%al
5784b0:	74 05                	je     0x5784b7
5784b2:	8d 69 08             	lea    0x8(%ecx),%ebp
5784b5:	eb 0d                	jmp    0x5784c4
5784b7:	a9 00 00 20 00       	test   $0x200000,%eax
5784bc:	0f 85 0a 01 00 00    	jne    0x5785cc
5784c2:	33 ed                	xor    %ebp,%ebp
5784c4:	8b 7c 24 18          	mov    0x18(%esp),%edi
5784c8:	55                   	push   %ebp
5784c9:	57                   	push   %edi
5784ca:	e8 f1 b7 f6 ff       	call   0x4e3cc0
5784cf:	83 c4 04             	add    $0x4,%esp
5784d2:	50                   	push   %eax
5784d3:	e8 98 cd ff ff       	call   0x575270
5784d8:	8b 5c 24 24          	mov    0x24(%esp),%ebx
5784dc:	83 c4 08             	add    $0x8,%esp
5784df:	85 c0                	test   %eax,%eax
5784e1:	78 0a                	js     0x5784ed
5784e3:	85 db                	test   %ebx,%ebx
5784e5:	0f 88 da 00 00 00    	js     0x5785c5
5784eb:	85 c0                	test   %eax,%eax
5784ed:	75 35                	jne    0x578524
5784ef:	89 5e 5c             	mov    %ebx,0x5c(%esi)
5784f2:	85 ff                	test   %edi,%edi
5784f4:	74 04                	je     0x5784fa
5784f6:	8b c7                	mov    %edi,%eax
5784f8:	eb 0c                	jmp    0x578506
5784fa:	53                   	push   %ebx
5784fb:	ff 76 50             	push   0x50(%esi)
5784fe:	e8 7d cd f6 ff       	call   0x4e5280
578503:	83 c4 08             	add    $0x8,%esp
578506:	89 46 64             	mov    %eax,0x64(%esi)
578509:	8b 46 1c             	mov    0x1c(%esi),%eax
57850c:	56                   	push   %esi
57850d:	6a 00                	push   $0x0
57850f:	c7 46 60 0d 00 00 00 	movl   $0xd,0x60(%esi)
578516:	ff d0                	call   *%eax
578518:	83 c4 08             	add    $0x8,%esp
57851b:	85 c0                	test   %eax,%eax
57851d:	75 39                	jne    0x578558
57851f:	5f                   	pop    %edi
578520:	5e                   	pop    %esi
578521:	5d                   	pop    %ebp
578522:	5b                   	pop    %ebx
578523:	c3                   	ret
578524:	85 c0                	test   %eax,%eax
578526:	7e 30                	jle    0x578558
578528:	89 5e 5c             	mov    %ebx,0x5c(%esi)
57852b:	85 ff                	test   %edi,%edi
57852d:	74 04                	je     0x578533
57852f:	8b c7                	mov    %edi,%eax
578531:	eb 0c                	jmp    0x57853f
578533:	53                   	push   %ebx
578534:	ff 76 50             	push   0x50(%esi)
578537:	e8 44 cd f6 ff       	call   0x4e5280
57853c:	83 c4 08             	add    $0x8,%esp
57853f:	89 46 64             	mov    %eax,0x64(%esi)
578542:	8b 46 1c             	mov    0x1c(%esi),%eax
578545:	56                   	push   %esi
578546:	6a 00                	push   $0x0
578548:	c7 46 60 09 00 00 00 	movl   $0x9,0x60(%esi)
57854f:	ff d0                	call   *%eax
578551:	83 c4 08             	add    $0x8,%esp
578554:	85 c0                	test   %eax,%eax
578556:	74 6d                	je     0x5785c5
578558:	55                   	push   %ebp
578559:	57                   	push   %edi
57855a:	e8 41 82 f7 ff       	call   0x4f07a0
57855f:	83 c4 04             	add    $0x4,%esp
578562:	50                   	push   %eax
578563:	e8 08 cd ff ff       	call   0x575270
578568:	83 c4 08             	add    $0x8,%esp
57856b:	85 c0                	test   %eax,%eax
57856d:	7f 26                	jg     0x578595
57856f:	85 db                	test   %ebx,%ebx
578571:	78 52                	js     0x5785c5
578573:	85 c0                	test   %eax,%eax
578575:	75 1e                	jne    0x578595
578577:	89 5e 5c             	mov    %ebx,0x5c(%esi)
57857a:	85 ff                	test   %edi,%edi
57857c:	75 0e                	jne    0x57858c
57857e:	53                   	push   %ebx
57857f:	ff 76 50             	push   0x50(%esi)
578582:	e8 f9 cc f6 ff       	call   0x4e5280
578587:	83 c4 08             	add    $0x8,%esp
57858a:	8b f8                	mov    %eax,%edi
57858c:	c7 46 60 0e 00 00 00 	movl   $0xe,0x60(%esi)
578593:	eb 1e                	jmp    0x5785b3
578595:	79 35                	jns    0x5785cc
578597:	89 5e 5c             	mov    %ebx,0x5c(%esi)
57859a:	85 ff                	test   %edi,%edi
57859c:	75 0e                	jne    0x5785ac
57859e:	53                   	push   %ebx
57859f:	ff 76 50             	push   0x50(%esi)
5785a2:	e8 d9 cc f6 ff       	call   0x4e5280
5785a7:	83 c4 08             	add    $0x8,%esp
5785aa:	8b f8                	mov    %eax,%edi
5785ac:	c7 46 60 0a 00 00 00 	movl   $0xa,0x60(%esi)
5785b3:	8b 46 1c             	mov    0x1c(%esi),%eax
5785b6:	56                   	push   %esi
5785b7:	6a 00                	push   $0x0
5785b9:	89 7e 64             	mov    %edi,0x64(%esi)
5785bc:	ff d0                	call   *%eax
5785be:	83 c4 08             	add    $0x8,%esp
5785c1:	85 c0                	test   %eax,%eax
5785c3:	75 07                	jne    0x5785cc
5785c5:	5f                   	pop    %edi
5785c6:	5e                   	pop    %esi
5785c7:	5d                   	pop    %ebp
5785c8:	33 c0                	xor    %eax,%eax
5785ca:	5b                   	pop    %ebx
5785cb:	c3                   	ret
5785cc:	5f                   	pop    %edi
5785cd:	5e                   	pop    %esi
5785ce:	5d                   	pop    %ebp
5785cf:	b8 01 00 00 00       	mov    $0x1,%eax
5785d4:	5b                   	pop    %ebx
5785d5:	c3                   	ret
5785d6:	cc                   	int3
5785d7:	cc                   	int3
5785d8:	cc                   	int3
5785d9:	cc                   	int3
5785da:	cc                   	int3
5785db:	cc                   	int3
5785dc:	cc                   	int3
5785dd:	cc                   	int3
5785de:	cc                   	int3
5785df:	cc                   	int3
5785e0:	b8 10 00 00 00       	mov    $0x10,%eax
5785e5:	e8 c6 91 05 00       	call   0x5d17b0
5785ea:	53                   	push   %ebx
5785eb:	55                   	push   %ebp
5785ec:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
5785f0:	56                   	push   %esi
5785f1:	57                   	push   %edi
5785f2:	ff 75 0c             	push   0xc(%ebp)
5785f5:	e8 46 4d fe ff       	call   0x55d340
5785fa:	ff 75 18             	push   0x18(%ebp)
5785fd:	33 c9                	xor    %ecx,%ecx
5785ff:	85 c0                	test   %eax,%eax
578601:	0f 9f c1             	setg   %cl
578604:	89 4c 24 20          	mov    %ecx,0x20(%esp)
578608:	e8 33 4d fe ff       	call   0x55d340
57860d:	33 c9                	xor    %ecx,%ecx
57860f:	83 c4 08             	add    $0x8,%esp
578612:	85 c0                	test   %eax,%eax
578614:	be 70 a7 65 00       	mov    $0x65a770,%esi
578619:	0f 9f c1             	setg   %cl
57861c:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
578620:	8b 46 fc             	mov    -0x4(%esi),%eax
578623:	8b 7d 0c             	mov    0xc(%ebp),%edi
578626:	8b 1e                	mov    (%esi),%ebx
578628:	6a ff                	push   $0xffffffff
57862a:	50                   	push   %eax
57862b:	57                   	push   %edi
57862c:	89 44 24 1c          	mov    %eax,0x1c(%esp)
578630:	e8 8b 4c fe ff       	call   0x55d2c0
578635:	8b e8                	mov    %eax,%ebp
578637:	83 c4 0c             	add    $0xc,%esp
57863a:	85 ed                	test   %ebp,%ebp
57863c:	0f 88 86 00 00 00    	js     0x5786c8
578642:	55                   	push   %ebp
578643:	57                   	push   %edi
578644:	e8 47 4c fe ff       	call   0x55d290
578649:	83 c4 08             	add    $0x8,%esp
57864c:	85 c0                	test   %eax,%eax
57864e:	74 78                	je     0x5786c8
578650:	50                   	push   %eax
578651:	e8 1a 49 fe ff       	call   0x55cf70
578656:	83 c4 04             	add    $0x4,%esp
578659:	89 44 24 14          	mov    %eax,0x14(%esp)
57865d:	f6 c3 01             	test   $0x1,%bl
578660:	74 3e                	je     0x5786a0
578662:	f6 c3 20             	test   $0x20,%bl
578665:	74 27                	je     0x57868e
578667:	55                   	push   %ebp
578668:	8b 6c 24 14          	mov    0x14(%esp),%ebp
57866c:	55                   	push   %ebp
57866d:	57                   	push   %edi
57866e:	e8 4d 4c fe ff       	call   0x55d2c0
578673:	83 c4 0c             	add    $0xc,%esp
578676:	85 c0                	test   %eax,%eax
578678:	78 0e                	js     0x578688
57867a:	50                   	push   %eax
57867b:	57                   	push   %edi
57867c:	e8 0f 4c fe ff       	call   0x55d290
578681:	83 c4 08             	add    $0x8,%esp
578684:	85 c0                	test   %eax,%eax
578686:	75 18                	jne    0x5786a0
578688:	8b 44 24 14          	mov    0x14(%esp),%eax
57868c:	eb 04                	jmp    0x578692
57868e:	8b 6c 24 10          	mov    0x10(%esp),%ebp
578692:	f6 c3 40             	test   $0x40,%bl
578695:	74 05                	je     0x57869c
578697:	83 f8 01             	cmp    $0x1,%eax
57869a:	75 04                	jne    0x5786a0
57869c:	85 c0                	test   %eax,%eax
57869e:	75 3c                	jne    0x5786dc
5786a0:	68 17 01 00 00       	push   $0x117
5786a5:	68 a4 a7 65 00       	push   $0x65a7a4
5786aa:	68 a1 00 00 00       	push   $0xa1
5786af:	68 b7 00 00 00       	push   $0xb7
5786b4:	6a 2e                	push   $0x2e
5786b6:	e8 c5 08 f6 ff       	call   0x4d8f80
5786bb:	83 c4 14             	add    $0x14,%esp
5786be:	33 c0                	xor    %eax,%eax
5786c0:	5f                   	pop    %edi
5786c1:	5e                   	pop    %esi
5786c2:	5d                   	pop    %ebp
5786c3:	5b                   	pop    %ebx
5786c4:	83 c4 10             	add    $0x10,%esp
5786c7:	c3                   	ret
5786c8:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
5786cd:	74 09                	je     0x5786d8
5786cf:	8b c3                	mov    %ebx,%eax
5786d1:	83 e0 11             	and    $0x11,%eax
5786d4:	3c 11                	cmp    $0x11,%al
5786d6:	74 c8                	je     0x5786a0
5786d8:	8b 6c 24 10          	mov    0x10(%esp),%ebp
5786dc:	ff 74 24 1c          	push   0x1c(%esp)
5786e0:	8b 44 24 28          	mov    0x28(%esp),%eax
5786e4:	ff 70 18             	push   0x18(%eax)
5786e7:	6a 02                	push   $0x2
5786e9:	53                   	push   %ebx
5786ea:	55                   	push   %ebp
5786eb:	e8 d0 00 00 00       	call   0x5787c0
5786f0:	83 c4 14             	add    $0x14,%esp
5786f3:	85 c0                	test   %eax,%eax
5786f5:	74 a9                	je     0x5786a0
5786f7:	8b 6c 24 24          	mov    0x24(%esp),%ebp
5786fb:	83 c6 08             	add    $0x8,%esi
5786fe:	81 fe a8 a7 65 00    	cmp    $0x65a7a8,%esi
578704:	0f 8c 16 ff ff ff    	jl     0x578620
57870a:	5f                   	pop    %edi
57870b:	5e                   	pop    %esi
57870c:	5d                   	pop    %ebp
57870d:	b8 01 00 00 00       	mov    $0x1,%eax
578712:	5b                   	pop    %ebx
578713:	83 c4 10             	add    $0x10,%esp
578716:	c3                   	ret
578717:	cc                   	int3
578718:	cc                   	int3
578719:	cc                   	int3
57871a:	cc                   	int3
57871b:	cc                   	int3
57871c:	cc                   	int3
57871d:	cc                   	int3
57871e:	cc                   	int3
57871f:	cc                   	int3
578720:	ff 74 24 14          	push   0x14(%esp)
578724:	8b 44 24 08          	mov    0x8(%esp),%eax
578728:	ff 74 24 14          	push   0x14(%esp)
57872c:	83 c0 0c             	add    $0xc,%eax
57872f:	ff 74 24 14          	push   0x14(%esp)
578733:	ff 74 24 14          	push   0x14(%esp)
578737:	50                   	push   %eax
578738:	e8 d3 4a fe ff       	call   0x55d210
57873d:	83 c4 14             	add    $0x14,%esp
578740:	f7 d8                	neg    %eax
578742:	1b c0                	sbb    %eax,%eax
578744:	f7 d8                	neg    %eax
578746:	c3                   	ret
578747:	cc                   	int3
578748:	cc                   	int3
578749:	cc                   	int3
57874a:	cc                   	int3
57874b:	cc                   	int3
57874c:	cc                   	int3
57874d:	cc                   	int3
57874e:	cc                   	int3
57874f:	cc                   	int3
578750:	ff 74 24 0c          	push   0xc(%esp)
578754:	8b 44 24 08          	mov    0x8(%esp),%eax
578758:	ff 74 24 0c          	push   0xc(%esp)
57875c:	ff 70 0c             	push   0xc(%eax)
57875f:	e8 5c 4b fe ff       	call   0x55d2c0
578764:	83 c4 0c             	add    $0xc,%esp
578767:	c3                   	ret
578768:	cc                   	int3
578769:	cc                   	int3
57876a:	cc                   	int3
57876b:	cc                   	int3
57876c:	cc                   	int3
57876d:	cc                   	int3
57876e:	cc                   	int3
57876f:	cc                   	int3
578770:	8b 44 24 04          	mov    0x4(%esp),%eax
578774:	ff 70 0c             	push   0xc(%eax)
578777:	e8 c4 4b fe ff       	call   0x55d340
57877c:	83 c4 04             	add    $0x4,%esp
57877f:	c3                   	ret
578780:	56                   	push   %esi
578781:	57                   	push   %edi
578782:	8b 7c 24 14          	mov    0x14(%esp),%edi
578786:	ff 37                	push   (%edi)
578788:	ff 74 24 10          	push   0x10(%esp)
57878c:	ff 74 24 18          	push   0x18(%esp)
578790:	e8 2b 4b fe ff       	call   0x55d2c0
578795:	8b f0                	mov    %eax,%esi
578797:	83 c4 0c             	add    $0xc,%esp
57879a:	85 f6                	test   %esi,%esi
57879c:	79 05                	jns    0x5787a3
57879e:	5f                   	pop    %edi
57879f:	33 c0                	xor    %eax,%eax