5115d9:	8d 4e 08             	lea    0x8(%esi),%ecx
5115dc:	51                   	push   %ecx
5115dd:	e8 0e d7 02 00       	call   0x53ecf0
5115e2:	8d 87 00 01 00 00    	lea    0x100(%edi),%eax
5115e8:	50                   	push   %eax
5115e9:	8d 46 10             	lea    0x10(%esi),%eax
5115ec:	50                   	push   %eax
5115ed:	e8 fe d6 02 00       	call   0x53ecf0
5115f2:	83 c4 1c             	add    $0x1c,%esp
5115f5:	b8 01 00 00 00       	mov    $0x1,%eax
5115fa:	5f                   	pop    %edi
5115fb:	5e                   	pop    %esi
5115fc:	c3                   	ret
5115fd:	cc                   	int3
5115fe:	cc                   	int3
5115ff:	cc                   	int3
511600:	83 7c 24 08 06       	cmpl   $0x6,0x8(%esp)
511605:	74 04                	je     0x51160b
511607:	83 c8 ff             	or     $0xffffffff,%eax
51160a:	c3                   	ret
51160b:	56                   	push   %esi
51160c:	57                   	push   %edi
51160d:	8b 7c 24 0c          	mov    0xc(%esp),%edi
511611:	57                   	push   %edi
511612:	e8 19 eb fd ff       	call   0x4f0130
511617:	8b 74 24 1c          	mov    0x1c(%esp),%esi
51161b:	50                   	push   %eax
51161c:	56                   	push   %esi
51161d:	e8 ee fc fc ff       	call   0x4e1310
511622:	83 c4 0c             	add    $0xc,%esp
511625:	85 c0                	test   %eax,%eax
511627:	7f 05                	jg     0x51162e
511629:	5f                   	pop    %edi
51162a:	33 c0                	xor    %eax,%eax
51162c:	5e                   	pop    %esi
51162d:	c3                   	ret
51162e:	56                   	push   %esi
51162f:	e8 fc d8 02 00       	call   0x53ef30
511634:	57                   	push   %edi
511635:	e8 f6 ea fd ff       	call   0x4f0130
51163a:	83 c4 08             	add    $0x8,%esp
51163d:	83 f8 10             	cmp    $0x10,%eax
511640:	7c 0c                	jl     0x51164e
511642:	8d 46 08             	lea    0x8(%esi),%eax
511645:	50                   	push   %eax
511646:	e8 e5 d8 02 00       	call   0x53ef30
51164b:	83 c4 04             	add    $0x4,%esp
51164e:	57                   	push   %edi
51164f:	e8 dc ea fd ff       	call   0x4f0130
511654:	83 c4 04             	add    $0x4,%esp
511657:	83 f8 18             	cmp    $0x18,%eax
51165a:	7c 0c                	jl     0x511668
51165c:	8d 46 10             	lea    0x10(%esi),%eax
51165f:	50                   	push   %eax
511660:	e8 cb d8 02 00       	call   0x53ef30
511665:	83 c4 04             	add    $0x4,%esp
511668:	5f                   	pop    %edi
511669:	b8 01 00 00 00       	mov    $0x1,%eax
51166e:	5e                   	pop    %esi
51166f:	c3                   	ret
511670:	53                   	push   %ebx
511671:	55                   	push   %ebp
511672:	56                   	push   %esi
511673:	8b 74 24 10          	mov    0x10(%esp),%esi
511677:	56                   	push   %esi
511678:	e8 43 ea fd ff       	call   0x4f00c0
51167d:	8b 6c 24 20          	mov    0x20(%esp),%ebp
511681:	83 c4 04             	add    $0x4,%esp
511684:	8b 58 04             	mov    0x4(%eax),%ebx
511687:	3b eb                	cmp    %ebx,%ebp
511689:	72 66                	jb     0x5116f1
51168b:	57                   	push   %edi
51168c:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
511690:	2b eb                	sub    %ebx,%ebp
511692:	29 7c 24 18          	sub    %edi,0x18(%esp)
511696:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
51169d:	00
51169e:	66 90                	xchg   %ax,%ax
5116a0:	56                   	push   %esi
5116a1:	e8 aa 5b fd ff       	call   0x4e7250
5116a6:	83 c4 04             	add    $0x4,%esp
5116a9:	50                   	push   %eax
5116aa:	56                   	push   %esi
5116ab:	e8 20 ea fd ff       	call   0x4f00d0
5116b0:	83 c4 04             	add    $0x4,%esp
5116b3:	05 00 01 00 00       	add    $0x100,%eax
5116b8:	50                   	push   %eax
5116b9:	56                   	push   %esi
5116ba:	e8 11 ea fd ff       	call   0x4f00d0
5116bf:	83 c4 04             	add    $0x4,%esp
5116c2:	83 e8 80             	sub    $0xffffff80,%eax
5116c5:	50                   	push   %eax
5116c6:	56                   	push   %esi
5116c7:	e8 04 ea fd ff       	call   0x4f00d0
5116cc:	83 c4 04             	add    $0x4,%esp
5116cf:	50                   	push   %eax
5116d0:	8b 44 24 28          	mov    0x28(%esp),%eax
5116d4:	03 c7                	add    %edi,%eax
5116d6:	50                   	push   %eax
5116d7:	57                   	push   %edi
5116d8:	e8 b3 dc 02 00       	call   0x53f390
5116dd:	8b 44 24 38          	mov    0x38(%esp),%eax
5116e1:	83 c4 18             	add    $0x18,%esp
5116e4:	03 c3                	add    %ebx,%eax
5116e6:	03 fb                	add    %ebx,%edi
5116e8:	89 44 24 20          	mov    %eax,0x20(%esp)
5116ec:	3b c5                	cmp    %ebp,%eax
5116ee:	76 b0                	jbe    0x5116a0
5116f0:	5f                   	pop    %edi
5116f1:	5e                   	pop    %esi
5116f2:	5d                   	pop    %ebp
5116f3:	b8 01 00 00 00       	mov    $0x1,%eax
5116f8:	5b                   	pop    %ebx
5116f9:	c3                   	ret
5116fa:	cc                   	int3
5116fb:	cc                   	int3
5116fc:	cc                   	int3
5116fd:	cc                   	int3
5116fe:	cc                   	int3
5116ff:	cc                   	int3
511700:	b8 04 00 00 00       	mov    $0x4,%eax
511705:	e8 a6 00 0c 00       	call   0x5d17b0
51170a:	53                   	push   %ebx
51170b:	8b 5c 24 14          	mov    0x14(%esp),%ebx
51170f:	55                   	push   %ebp
511710:	8b 6c 24 14          	mov    0x14(%esp),%ebp
511714:	56                   	push   %esi
511715:	8b 74 24 14          	mov    0x14(%esp),%esi
511719:	57                   	push   %edi
51171a:	8b 7c 24 24          	mov    0x24(%esp),%edi
51171e:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
511724:	72 7e                	jb     0x5117a4
511726:	8b c7                	mov    %edi,%eax
511728:	c1 e8 1e             	shr    $0x1e,%eax
51172b:	89 44 24 10          	mov    %eax,0x10(%esp)
51172f:	90                   	nop
511730:	56                   	push   %esi
511731:	e8 0a ea fd ff       	call   0x4f0140
511736:	83 c4 04             	add    $0x4,%esp
511739:	89 44 24 24          	mov    %eax,0x24(%esp)
51173d:	8d 44 24 24          	lea    0x24(%esp),%eax
511741:	50                   	push   %eax
511742:	56                   	push   %esi
511743:	e8 d8 e9 fd ff       	call   0x4f0120
511748:	83 c4 04             	add    $0x4,%esp
51174b:	50                   	push   %eax
51174c:	56                   	push   %esi
51174d:	e8 7e e9 fd ff       	call   0x4f00d0
511752:	83 c4 04             	add    $0x4,%esp
511755:	05 00 01 00 00       	add    $0x100,%eax
51175a:	50                   	push   %eax
51175b:	56                   	push   %esi
51175c:	e8 6f e9 fd ff       	call   0x4f00d0
511761:	83 c4 04             	add    $0x4,%esp
511764:	83 e8 80             	sub    $0xffffff80,%eax
511767:	50                   	push   %eax
511768:	56                   	push   %esi
511769:	e8 62 e9 fd ff       	call   0x4f00d0
51176e:	83 c4 04             	add    $0x4,%esp
511771:	50                   	push   %eax
511772:	68 00 00 00 40       	push   $0x40000000
511777:	55                   	push   %ebp
511778:	53                   	push   %ebx
511779:	e8 d2 e6 02 00       	call   0x53fe50
51177e:	ff 74 24 44          	push   0x44(%esp)
511782:	56                   	push   %esi
511783:	e8 d8 e9 fd ff       	call   0x4f0160
511788:	83 c4 28             	add    $0x28,%esp
51178b:	81 ef 00 00 00 40    	sub    $0x40000000,%edi
511791:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
511797:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
51179d:	83 6c 24 10 01       	subl   $0x1,0x10(%esp)
5117a2:	75 8c                	jne    0x511730
5117a4:	85 ff                	test   %edi,%edi
5117a6:	74 57                	je     0x5117ff
5117a8:	56                   	push   %esi
5117a9:	e8 92 e9 fd ff       	call   0x4f0140
5117ae:	83 c4 04             	add    $0x4,%esp
5117b1:	89 44 24 24          	mov    %eax,0x24(%esp)
5117b5:	8d 44 24 24          	lea    0x24(%esp),%eax
5117b9:	50                   	push   %eax
5117ba:	56                   	push   %esi
5117bb:	e8 60 e9 fd ff       	call   0x4f0120
5117c0:	83 c4 04             	add    $0x4,%esp
5117c3:	50                   	push   %eax
5117c4:	56                   	push   %esi
5117c5:	e8 06 e9 fd ff       	call   0x4f00d0
5117ca:	83 c4 04             	add    $0x4,%esp
5117cd:	05 00 01 00 00       	add    $0x100,%eax
5117d2:	50                   	push   %eax
5117d3:	56                   	push   %esi
5117d4:	e8 f7 e8 fd ff       	call   0x4f00d0
5117d9:	83 c4 04             	add    $0x4,%esp
5117dc:	83 e8 80             	sub    $0xffffff80,%eax
5117df:	50                   	push   %eax
5117e0:	56                   	push   %esi
5117e1:	e8 ea e8 fd ff       	call   0x4f00d0
5117e6:	83 c4 04             	add    $0x4,%esp
5117e9:	50                   	push   %eax
5117ea:	57                   	push   %edi
5117eb:	55                   	push   %ebp
5117ec:	53                   	push   %ebx
5117ed:	e8 5e e6 02 00       	call   0x53fe50
5117f2:	ff 74 24 44          	push   0x44(%esp)
5117f6:	56                   	push   %esi
5117f7:	e8 64 e9 fd ff       	call   0x4f0160
5117fc:	83 c4 28             	add    $0x28,%esp
5117ff:	5f                   	pop    %edi
511800:	5e                   	pop    %esi
511801:	5d                   	pop    %ebp
511802:	b8 01 00 00 00       	mov    $0x1,%eax
511807:	5b                   	pop    %ebx
511808:	59                   	pop    %ecx
511809:	c3                   	ret
51180a:	cc                   	int3
51180b:	cc                   	int3
51180c:	cc                   	int3
51180d:	cc                   	int3
51180e:	cc                   	int3
51180f:	cc                   	int3
511810:	b8 04 00 00 00       	mov    $0x4,%eax
511815:	e8 96 ff 0b 00       	call   0x5d17b0
51181a:	53                   	push   %ebx
51181b:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
51181f:	56                   	push   %esi
511820:	53                   	push   %ebx
511821:	e8 aa e8 fd ff       	call   0x4f00d0
511826:	8b f0                	mov    %eax,%esi
511828:	83 c4 04             	add    $0x4,%esp
51182b:	83 be 80 01 00 00 00 	cmpl   $0x0,0x180(%esi)
511832:	74 28                	je     0x51185c
511834:	53                   	push   %ebx
511835:	e8 e6 e8 fd ff       	call   0x4f0120
51183a:	50                   	push   %eax
51183b:	8b 86 80 01 00 00    	mov    0x180(%esi),%eax
511841:	56                   	push   %esi
511842:	ff 74 24 28          	push   0x28(%esp)
511846:	ff 74 24 24          	push   0x24(%esp)
51184a:	ff 74 24 2c          	push   0x2c(%esp)
51184e:	ff d0                	call   *%eax
511850:	83 c4 18             	add    $0x18,%esp
511853:	b8 01 00 00 00       	mov    $0x1,%eax
511858:	5e                   	pop    %esi
511859:	5b                   	pop    %ebx
51185a:	59                   	pop    %ecx
51185b:	c3                   	ret
51185c:	8b 5c 24 18          	mov    0x18(%esp),%ebx
511860:	55                   	push   %ebp
511861:	8b 6c 24 18          	mov    0x18(%esp),%ebp
511865:	57                   	push   %edi
511866:	8b 7c 24 24          	mov    0x24(%esp),%edi
51186a:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
511870:	72 5f                	jb     0x5118d1
511872:	8b c7                	mov    %edi,%eax
511874:	c1 e8 1e             	shr    $0x1e,%eax
511877:	89 44 24 10          	mov    %eax,0x10(%esp)
51187b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
511880:	ff 74 24 18          	push   0x18(%esp)
511884:	e8 c7 59 fd ff       	call   0x4e7250
511889:	83 c4 04             	add    $0x4,%esp
51188c:	50                   	push   %eax
51188d:	ff 74 24 1c          	push   0x1c(%esp)
511891:	e8 8a e8 fd ff       	call   0x4f0120
511896:	83 c4 04             	add    $0x4,%esp
511899:	50                   	push   %eax
51189a:	8d 86 00 01 00 00    	lea    0x100(%esi),%eax
5118a0:	50                   	push   %eax
5118a1:	8d 86 80 00 00 00    	lea    0x80(%esi),%eax
5118a7:	50                   	push   %eax
5118a8:	56                   	push   %esi
5118a9:	68 00 00 00 40       	push   $0x40000000
5118ae:	55                   	push   %ebp
5118af:	53                   	push   %ebx
5118b0:	e8 8b 3d f0 ff       	call   0x415640
5118b5:	83 c4 20             	add    $0x20,%esp
5118b8:	81 ef 00 00 00 40    	sub    $0x40000000,%edi
5118be:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
5118c4:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
5118ca:	83 6c 24 10 01       	subl   $0x1,0x10(%esp)
5118cf:	75 af                	jne    0x511880
5118d1:	85 ff                	test   %edi,%edi
5118d3:	74 34                	je     0x511909
5118d5:	ff 74 24 18          	push   0x18(%esp)
5118d9:	e8 72 59 fd ff       	call   0x4e7250
5118de:	83 c4 04             	add    $0x4,%esp
5118e1:	50                   	push   %eax
5118e2:	ff 74 24 1c          	push   0x1c(%esp)
5118e6:	e8 35 e8 fd ff       	call   0x4f0120
5118eb:	83 c4 04             	add    $0x4,%esp
5118ee:	50                   	push   %eax
5118ef:	8d 86 00 01 00 00    	lea    0x100(%esi),%eax
5118f5:	50                   	push   %eax
5118f6:	8d 86 80 00 00 00    	lea    0x80(%esi),%eax
5118fc:	50                   	push   %eax
5118fd:	56                   	push   %esi
5118fe:	57                   	push   %edi
5118ff:	55                   	push   %ebp
511900:	53                   	push   %ebx
511901:	e8 3a 3d f0 ff       	call   0x415640
511906:	83 c4 20             	add    $0x20,%esp
511909:	5f                   	pop    %edi
51190a:	5d                   	pop    %ebp
51190b:	5e                   	pop    %esi
51190c:	b8 01 00 00 00       	mov    $0x1,%eax
511911:	5b                   	pop    %ebx
511912:	59                   	pop    %ecx
511913:	c3                   	ret
511914:	cc                   	int3
511915:	cc                   	int3
511916:	cc                   	int3
511917:	cc                   	int3
511918:	cc                   	int3
511919:	cc                   	int3
51191a:	cc                   	int3
51191b:	cc                   	int3
51191c:	cc                   	int3
51191d:	cc                   	int3
51191e:	cc                   	int3
51191f:	cc                   	int3
511920:	b8 04 00 00 00       	mov    $0x4,%eax
511925:	e8 86 fe 0b 00       	call   0x5d17b0
51192a:	53                   	push   %ebx
51192b:	8b 5c 24 14          	mov    0x14(%esp),%ebx
51192f:	55                   	push   %ebp
511930:	8b 6c 24 14          	mov    0x14(%esp),%ebp
511934:	56                   	push   %esi
511935:	8b 74 24 14          	mov    0x14(%esp),%esi
511939:	57                   	push   %edi
51193a:	8b 7c 24 24          	mov    0x24(%esp),%edi
51193e:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
511944:	0f 82 84 00 00 00    	jb     0x5119ce
51194a:	8b c7                	mov    %edi,%eax
51194c:	c1 e8 1e             	shr    $0x1e,%eax
51194f:	89 44 24 10          	mov    %eax,0x10(%esp)
511953:	56                   	push   %esi
511954:	e8 e7 e7 fd ff       	call   0x4f0140
511959:	56                   	push   %esi
51195a:	89 44 24 2c          	mov    %eax,0x2c(%esp)
51195e:	e8 ed 58 fd ff       	call   0x4e7250
511963:	83 c4 08             	add    $0x8,%esp
511966:	50                   	push   %eax
511967:	8d 44 24 28          	lea    0x28(%esp),%eax
51196b:	50                   	push   %eax
51196c:	56                   	push   %esi
51196d:	e8 ae e7 fd ff       	call   0x4f0120
511972:	83 c4 04             	add    $0x4,%esp
511975:	50                   	push   %eax
511976:	56                   	push   %esi
511977:	e8 54 e7 fd ff       	call   0x4f00d0
51197c:	83 c4 04             	add    $0x4,%esp