4575a2:	79 09                	jns    0x4575ad
4575a4:	8b cf                	mov    %edi,%ecx
4575a6:	e8 c1 ff ff ff       	call   0x45756c
4575ab:	eb 7b                	jmp    0x457628
4575ad:	8b 45 fc             	mov    -0x4(%ebp),%eax
4575b0:	8d 55 f8             	lea    -0x8(%ebp),%edx
4575b3:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4575b7:	52                   	push   %edx
4575b8:	50                   	push   %eax
4575b9:	8b 08                	mov    (%eax),%ecx
4575bb:	ff 51 0c             	call   *0xc(%ecx)
4575be:	8b 55 f8             	mov    -0x8(%ebp),%edx
4575c1:	85 c0                	test   %eax,%eax
4575c3:	78 48                	js     0x45760d
4575c5:	85 d2                	test   %edx,%edx
4575c7:	74 52                	je     0x45761b
4575c9:	8b 42 28             	mov    0x28(%edx),%eax
4575cc:	83 f8 06             	cmp    $0x6,%eax
4575cf:	74 04                	je     0x4575d5
4575d1:	85 c0                	test   %eax,%eax
4575d3:	75 38                	jne    0x45760d
4575d5:	0f b7 4a 40          	movzwl 0x40(%edx),%ecx
4575d9:	66 3b ce             	cmp    %si,%cx
4575dc:	75 13                	jne    0x4575f1
4575de:	8b 52 3c             	mov    0x3c(%edx),%edx
4575e1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4575e4:	e8 90 ff ff ff       	call   0x457579
4575e9:	8b 55 f8             	mov    -0x8(%ebp),%edx
4575ec:	0f b7 f0             	movzwl %ax,%esi
4575ef:	eb 1c                	jmp    0x45760d
4575f1:	83 e8 00             	sub    $0x0,%eax
4575f4:	74 14                	je     0x45760a
4575f6:	83 e8 03             	sub    $0x3,%eax
4575f9:	74 0b                	je     0x457606
4575fb:	48                   	dec    %eax
4575fc:	74 04                	je     0x457602
4575fe:	8b f1                	mov    %ecx,%esi
457600:	eb 0b                	jmp    0x45760d
457602:	6a 09                	push   $0x9
457604:	eb 06                	jmp    0x45760c
457606:	6a 0d                	push   $0xd
457608:	eb 02                	jmp    0x45760c
45760a:	6a 03                	push   $0x3
45760c:	5e                   	pop    %esi
45760d:	85 d2                	test   %edx,%edx
45760f:	74 0a                	je     0x45761b
457611:	8b 45 fc             	mov    -0x4(%ebp),%eax
457614:	52                   	push   %edx
457615:	50                   	push   %eax
457616:	8b 08                	mov    (%eax),%ecx
457618:	ff 51 4c             	call   *0x4c(%ecx)
45761b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45761e:	85 c9                	test   %ecx,%ecx
457620:	74 06                	je     0x457628
457622:	8b 11                	mov    (%ecx),%edx
457624:	51                   	push   %ecx
457625:	ff 52 08             	call   *0x8(%edx)
457628:	5f                   	pop    %edi
457629:	66 8b c6             	mov    %si,%ax
45762c:	5e                   	pop    %esi
45762d:	8b e5                	mov    %ebp,%esp
45762f:	5d                   	pop    %ebp
457630:	c3                   	ret
457631:	55                   	push   %ebp
457632:	8b ec                	mov    %esp,%ebp
457634:	33 c0                	xor    %eax,%eax
457636:	81 7d 08 0e 00 07 80 	cmpl   $0x8007000e,0x8(%ebp)
45763d:	6a 01                	push   $0x1
45763f:	0f 94 c0             	sete   %al
457642:	48                   	dec    %eax
457643:	83 e0 06             	and    $0x6,%eax
457646:	05 17 00 00 c0       	add    $0xc0000017,%eax
45764b:	50                   	push   %eax
45764c:	e8 bd 0a 00 00       	call   0x45810e
457651:	cc                   	int3
457652:	55                   	push   %ebp
457653:	8b ec                	mov    %esp,%ebp
457655:	51                   	push   %ecx
457656:	53                   	push   %ebx
457657:	56                   	push   %esi
457658:	8b 75 08             	mov    0x8(%ebp),%esi
45765b:	8b c2                	mov    %edx,%eax
45765d:	89 45 fc             	mov    %eax,-0x4(%ebp)
457660:	8b d9                	mov    %ecx,%ebx
457662:	57                   	push   %edi
457663:	85 f6                	test   %esi,%esi
457665:	74 06                	je     0x45766d
457667:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
45766d:	50                   	push   %eax
45766e:	53                   	push   %ebx
45766f:	ff 15 38 f8 48 00    	call   *0x48f838
457675:	8b f8                	mov    %eax,%edi
457677:	85 ff                	test   %edi,%edi
457679:	78 35                	js     0x4576b0
45767b:	85 f6                	test   %esi,%esi
45767d:	74 3d                	je     0x4576bc
45767f:	83 65 08 00          	andl   $0x0,0x8(%ebp)
457683:	8d 45 08             	lea    0x8(%ebp),%eax
457686:	50                   	push   %eax
457687:	ff 75 fc             	push   -0x4(%ebp)
45768a:	ff 15 34 f8 48 00    	call   *0x48f834
457690:	85 c0                	test   %eax,%eax
457692:	78 28                	js     0x4576bc
457694:	ff 75 08             	push   0x8(%ebp)
457697:	53                   	push   %ebx
457698:	ff 15 38 f3 48 00    	call   *0x48f338
45769e:	85 c0                	test   %eax,%eax
4576a0:	74 03                	je     0x4576a5
4576a2:	83 26 00             	andl   $0x0,(%esi)
4576a5:	ff 75 08             	push   0x8(%ebp)
4576a8:	ff 15 2c f8 48 00    	call   *0x48f82c
4576ae:	eb 0c                	jmp    0x4576bc
4576b0:	ff 75 fc             	push   -0x4(%ebp)
4576b3:	53                   	push   %ebx
4576b4:	ff 15 30 f8 48 00    	call   *0x48f830
4576ba:	8b f8                	mov    %eax,%edi
4576bc:	8b c7                	mov    %edi,%eax
4576be:	5f                   	pop    %edi
4576bf:	5e                   	pop    %esi
4576c0:	5b                   	pop    %ebx
4576c1:	8b e5                	mov    %ebp,%esp
4576c3:	5d                   	pop    %ebp
4576c4:	c3                   	ret
4576c5:	55                   	push   %ebp
4576c6:	8b ec                	mov    %esp,%ebp
4576c8:	83 ec 18             	sub    $0x18,%esp
4576cb:	8b 45 10             	mov    0x10(%ebp),%eax
4576ce:	53                   	push   %ebx
4576cf:	56                   	push   %esi
4576d0:	57                   	push   %edi
4576d1:	8b fa                	mov    %edx,%edi
4576d3:	33 db                	xor    %ebx,%ebx
4576d5:	33 d2                	xor    %edx,%edx
4576d7:	89 18                	mov    %ebx,(%eax)
4576d9:	89 50 0c             	mov    %edx,0xc(%eax)
4576dc:	8d 55 fc             	lea    -0x4(%ebp),%edx
4576df:	8b 01                	mov    (%ecx),%eax
4576e1:	52                   	push   %edx
4576e2:	68 00 08 00 00       	push   $0x800
4576e7:	53                   	push   %ebx
4576e8:	51                   	push   %ecx
4576e9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4576ec:	ff 50 10             	call   *0x10(%eax)
4576ef:	8b f0                	mov    %eax,%esi
4576f1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4576f4:	85 f6                	test   %esi,%esi
4576f6:	0f 88 0f 03 00 00    	js     0x457a0b
4576fc:	85 c0                	test   %eax,%eax
4576fe:	75 0a                	jne    0x45770a
457700:	be 01 40 00 80       	mov    $0x80004001,%esi
457705:	e9 01 03 00 00       	jmp    0x457a0b
45770a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
45770d:	8d 55 f4             	lea    -0xc(%ebp),%edx
457710:	8b 08                	mov    (%eax),%ecx
457712:	52                   	push   %edx
457713:	50                   	push   %eax
457714:	ff 51 0c             	call   *0xc(%ecx)
457717:	8b f0                	mov    %eax,%esi
457719:	85 f6                	test   %esi,%esi
45771b:	0f 88 e7 02 00 00    	js     0x457a08
457721:	8b 55 f4             	mov    -0xc(%ebp),%edx
457724:	83 7a 28 03          	cmpl   $0x3,0x28(%edx)
457728:	0f 85 ad 00 00 00    	jne    0x4577db
45772e:	f6 42 36 40          	testb  $0x40,0x36(%edx)
457732:	0f 84 a3 00 00 00    	je     0x4577db
457738:	8b 45 fc             	mov    -0x4(%ebp),%eax
45773b:	52                   	push   %edx
45773c:	50                   	push   %eax
45773d:	8b 08                	mov    (%eax),%ecx
45773f:	ff 51 4c             	call   *0x4c(%ecx)
457742:	8b 45 fc             	mov    -0x4(%ebp),%eax
457745:	8d 55 e8             	lea    -0x18(%ebp),%edx
457748:	52                   	push   %edx
457749:	6a ff                	push   $0xffffffff
45774b:	50                   	push   %eax
45774c:	8b 08                	mov    (%eax),%ecx
45774e:	ff 51 20             	call   *0x20(%ecx)
457751:	85 c0                	test   %eax,%eax
457753:	8b 45 fc             	mov    -0x4(%ebp),%eax
457756:	79 0a                	jns    0x457762
457758:	be 05 40 00 80       	mov    $0x80004005,%esi
45775d:	e9 a9 02 00 00       	jmp    0x457a0b
457762:	8d 55 f0             	lea    -0x10(%ebp),%edx
457765:	89 5d f0             	mov    %ebx,-0x10(%ebp)
457768:	8b 08                	mov    (%eax),%ecx
45776a:	52                   	push   %edx
45776b:	ff 75 e8             	push   -0x18(%ebp)
45776e:	50                   	push   %eax
45776f:	ff 51 38             	call   *0x38(%ecx)
457772:	85 c0                	test   %eax,%eax
457774:	79 07                	jns    0x45777d
457776:	be 05 40 00 80       	mov    $0x80004005,%esi
45777b:	eb 3b                	jmp    0x4577b8
45777d:	8b 45 fc             	mov    -0x4(%ebp),%eax
457780:	8b 75 f0             	mov    -0x10(%ebp),%esi
457783:	3b c6                	cmp    %esi,%eax
457785:	74 21                	je     0x4577a8
457787:	85 f6                	test   %esi,%esi
457789:	74 09                	je     0x457794
45778b:	8b 06                	mov    (%esi),%eax
45778d:	56                   	push   %esi
45778e:	ff 50 04             	call   *0x4(%eax)
457791:	8b 45 fc             	mov    -0x4(%ebp),%eax
457794:	8b c8                	mov    %eax,%ecx
457796:	8b c6                	mov    %esi,%eax
457798:	89 45 fc             	mov    %eax,-0x4(%ebp)
45779b:	85 c9                	test   %ecx,%ecx
45779d:	74 09                	je     0x4577a8
45779f:	8b 01                	mov    (%ecx),%eax
4577a1:	51                   	push   %ecx
4577a2:	ff 50 08             	call   *0x8(%eax)
4577a5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4577a8:	8b 08                	mov    (%eax),%ecx
4577aa:	8d 55 f4             	lea    -0xc(%ebp),%edx
4577ad:	52                   	push   %edx
4577ae:	50                   	push   %eax
4577af:	ff 51 0c             	call   *0xc(%ecx)
4577b2:	8b f0                	mov    %eax,%esi
4577b4:	85 f6                	test   %esi,%esi
4577b6:	79 16                	jns    0x4577ce
4577b8:	8b 45 f0             	mov    -0x10(%ebp),%eax
4577bb:	85 c0                	test   %eax,%eax
4577bd:	0f 84 45 02 00 00    	je     0x457a08
4577c3:	8b 08                	mov    (%eax),%ecx
4577c5:	50                   	push   %eax
4577c6:	ff 51 08             	call   *0x8(%ecx)
4577c9:	e9 3a 02 00 00       	jmp    0x457a08
4577ce:	8b 45 f0             	mov    -0x10(%ebp),%eax
4577d1:	85 c0                	test   %eax,%eax
4577d3:	74 06                	je     0x4577db
4577d5:	8b 08                	mov    (%eax),%ecx
4577d7:	50                   	push   %eax
4577d8:	ff 51 08             	call   *0x8(%ecx)
4577db:	8b 45 fc             	mov    -0x4(%ebp),%eax
4577de:	8d 55 ec             	lea    -0x14(%ebp),%edx
4577e1:	83 4d ec ff          	orl    $0xffffffff,-0x14(%ebp)
4577e5:	52                   	push   %edx
4577e6:	6a 01                	push   $0x1
4577e8:	8b 08                	mov    (%eax),%ecx
4577ea:	8d 55 08             	lea    0x8(%ebp),%edx
4577ed:	52                   	push   %edx
4577ee:	50                   	push   %eax
4577ef:	ff 51 28             	call   *0x28(%ecx)
4577f2:	85 c0                	test   %eax,%eax
4577f4:	79 2b                	jns    0x457821
4577f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4577f9:	8d 55 e8             	lea    -0x18(%ebp),%edx
4577fc:	52                   	push   %edx
4577fd:	6a 01                	push   $0x1
4577ff:	8d 55 f0             	lea    -0x10(%ebp),%edx
457802:	89 5d f0             	mov    %ebx,-0x10(%ebp)
457805:	8b 08                	mov    (%eax),%ecx
457807:	52                   	push   %edx
457808:	57                   	push   %edi
457809:	50                   	push   %eax
45780a:	ff 51 1c             	call   *0x1c(%ecx)
45780d:	85 c0                	test   %eax,%eax
45780f:	0f 88 8d 00 00 00    	js     0x4578a2
457815:	ff 75 f0             	push   -0x10(%ebp)
457818:	ff 15 18 f4 48 00    	call   *0x48f418
45781e:	89 7d ec             	mov    %edi,-0x14(%ebp)
457821:	8b 45 f4             	mov    -0xc(%ebp),%eax
457824:	33 c9                	xor    %ecx,%ecx
457826:	8b fb                	mov    %ebx,%edi
457828:	66 3b 48 2c          	cmp    0x2c(%eax),%cx
45782c:	73 42                	jae    0x457870
45782e:	8b 45 fc             	mov    -0x4(%ebp),%eax
457831:	8d 4d f8             	lea    -0x8(%ebp),%ecx
457834:	51                   	push   %ecx
457835:	0f b7 cf             	movzwl %di,%ecx
457838:	51                   	push   %ecx
457839:	8b 10                	mov    (%eax),%edx
45783b:	50                   	push   %eax
45783c:	ff 52 14             	call   *0x14(%edx)
45783f:	8b f0                	mov    %eax,%esi
457841:	85 f6                	test   %esi,%esi
457843:	0f 88 df 00 00 00    	js     0x457928
457849:	8b 55 f8             	mov    -0x8(%ebp),%edx
45784c:	f6 42 10 03          	testb  $0x3,0x10(%edx)
457850:	74 07                	je     0x457859
457852:	8b 02                	mov    (%edx),%eax
457854:	3b 45 ec             	cmp    -0x14(%ebp),%eax
457857:	74 17                	je     0x457870
457859:	8b 45 fc             	mov    -0x4(%ebp),%eax
45785c:	52                   	push   %edx
45785d:	50                   	push   %eax
45785e:	8b 08                	mov    (%eax),%ecx
457860:	ff 51 50             	call   *0x50(%ecx)
457863:	8b 45 f4             	mov    -0xc(%ebp),%eax
457866:	47                   	inc    %edi
457867:	89 5d f8             	mov    %ebx,-0x8(%ebp)
45786a:	66 3b 78 2c          	cmp    0x2c(%eax),%di
45786e:	72 be                	jb     0x45782e
457870:	8b 45 fc             	mov    -0x4(%ebp),%eax
457873:	ff 75 f4             	push   -0xc(%ebp)
457876:	50                   	push   %eax
457877:	8b 08                	mov    (%eax),%ecx
457879:	ff 51 4c             	call   *0x4c(%ecx)
45787c:	8b 55 f8             	mov    -0x8(%ebp),%edx
45787f:	85 d2                	test   %edx,%edx
457881:	74 15                	je     0x457898
457883:	66 83 7a 18 20       	cmpw   $0x20,0x18(%edx)
457888:	0f 8e ab 00 00 00    	jle    0x457939
45788e:	8b 45 fc             	mov    -0x4(%ebp),%eax
457891:	52                   	push   %edx
457892:	50                   	push   %eax
457893:	8b 08                	mov    (%eax),%ecx
457895:	ff 51 50             	call   *0x50(%ecx)
457898:	be 05 40 00 80       	mov    $0x80004005,%esi
45789d:	e9 66 01 00 00       	jmp    0x457a08
4578a2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4578a5:	33 c9                	xor    %ecx,%ecx
4578a7:	8b fb                	mov    %ebx,%edi
4578a9:	66 3b 48 2c          	cmp    0x2c(%eax),%cx
4578ad:	73 c1                	jae    0x457870
4578af:	8b 1d 18 f4 48 00    	mov    0x48f418,%ebx
4578b5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4578b8:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4578bb:	51                   	push   %ecx
4578bc:	0f b7 cf             	movzwl %di,%ecx
4578bf:	51                   	push   %ecx
4578c0:	8b 10                	mov    (%eax),%edx
4578c2:	50                   	push   %eax
4578c3:	ff 52 14             	call   *0x14(%edx)
4578c6:	8b f0                	mov    %eax,%esi
4578c8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4578cb:	85 f6                	test   %esi,%esi
4578cd:	78 5c                	js     0x45792b
4578cf:	8b 10                	mov    (%eax),%edx
4578d1:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4578d4:	33 f6                	xor    %esi,%esi
4578d6:	56                   	push   %esi
4578d7:	56                   	push   %esi
4578d8:	56                   	push   %esi
4578d9:	51                   	push   %ecx
4578da:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4578dd:	ff 31                	push   (%ecx)
4578df:	50                   	push   %eax
4578e0:	ff 52 30             	call   *0x30(%edx)
4578e3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4578e6:	f6 40 10 03          	testb  $0x3,0x10(%eax)
4578ea:	74 10                	je     0x4578fc
4578ec:	ff 75 08             	push   0x8(%ebp)
4578ef:	ff 75 f0             	push   -0x10(%ebp)
4578f2:	ff 15 38 f3 48 00    	call   *0x48f338
4578f8:	85 c0                	test   %eax,%eax
4578fa:	74 20                	je     0x45791c
4578fc:	ff 75 f0             	push   -0x10(%ebp)
4578ff:	ff d3                	call   *%ebx
457901:	8b 45 fc             	mov    -0x4(%ebp),%eax