477643:	8b 4e 0c             	mov    0xc(%esi),%ecx
477646:	8b 7e 04             	mov    0x4(%esi),%edi
477649:	0f 9c c3             	setl   %bl
47764c:	3b cf                	cmp    %edi,%ecx
47764e:	88 5d ff             	mov    %bl,-0x1(%ebp)
477651:	0f 9c c7             	setl   %bh
477654:	88 7d 0f             	mov    %bh,0xf(%ebp)
477657:	84 db                	test   %bl,%bl
477659:	74 05                	je     0x477660
47765b:	89 06                	mov    %eax,(%esi)
47765d:	89 56 08             	mov    %edx,0x8(%esi)
477660:	84 ff                	test   %bh,%bh
477662:	74 06                	je     0x47766a
477664:	89 4e 04             	mov    %ecx,0x4(%esi)
477667:	89 7e 0c             	mov    %edi,0xc(%esi)
47766a:	ff 75 08             	push   0x8(%ebp)
47766d:	8d 45 e4             	lea    -0x1c(%ebp),%eax
477670:	50                   	push   %eax
477671:	8b 45 f0             	mov    -0x10(%ebp),%eax
477674:	ff b0 04 01 00 00    	push   0x104(%eax)
47767a:	e8 15 c6 ff ff       	call   0x473c94
47767f:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
477682:	01 4e 08             	add    %ecx,0x8(%esi)
477685:	8b 45 e8             	mov    -0x18(%ebp),%eax
477688:	01 46 0c             	add    %eax,0xc(%esi)
47768b:	01 0e                	add    %ecx,(%esi)
47768d:	01 46 04             	add    %eax,0x4(%esi)
477690:	8b 7e 08             	mov    0x8(%esi),%edi
477693:	8b 5e 0c             	mov    0xc(%esi),%ebx
477696:	2b 3e                	sub    (%esi),%edi
477698:	2b 5e 04             	sub    0x4(%esi),%ebx
47769b:	47                   	inc    %edi
47769c:	43                   	inc    %ebx
47769d:	6a 00                	push   $0x0
47769f:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4776a2:	ff 15 28 f6 48 00    	call   *0x48f628
4776a8:	53                   	push   %ebx
4776a9:	57                   	push   %edi
4776aa:	50                   	push   %eax
4776ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
4776ae:	ff 15 e4 f0 48 00    	call   *0x48f0e4
4776b4:	ff 75 f8             	push   -0x8(%ebp)
4776b7:	89 45 08             	mov    %eax,0x8(%ebp)
4776ba:	ff 15 e8 f0 48 00    	call   *0x48f0e8
4776c0:	ff 75 08             	push   0x8(%ebp)
4776c3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4776c6:	50                   	push   %eax
4776c7:	ff 15 ec f0 48 00    	call   *0x48f0ec
4776cd:	8a 75 0f             	mov    0xf(%ebp),%dh
4776d0:	8b cb                	mov    %ebx,%ecx
4776d2:	89 45 ec             	mov    %eax,-0x14(%ebp)
4776d5:	84 f6                	test   %dh,%dh
4776d7:	74 02                	je     0x4776db
4776d9:	f7 d9                	neg    %ecx
4776db:	8a 55 ff             	mov    -0x1(%ebp),%dl
4776de:	8b c7                	mov    %edi,%eax
4776e0:	84 d2                	test   %dl,%dl
4776e2:	74 02                	je     0x4776e6
4776e4:	f7 d8                	neg    %eax
4776e6:	84 f6                	test   %dh,%dh
4776e8:	74 05                	je     0x4776ef
4776ea:	8b 5e 0c             	mov    0xc(%esi),%ebx
4776ed:	eb 03                	jmp    0x4776f2
4776ef:	8b 5e 04             	mov    0x4(%esi),%ebx
4776f2:	89 5d 0c             	mov    %ebx,0xc(%ebp)
4776f5:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4776f8:	84 d2                	test   %dl,%dl
4776fa:	74 05                	je     0x477701
4776fc:	8b 56 08             	mov    0x8(%esi),%edx
4776ff:	eb 02                	jmp    0x477703
477701:	8b 16                	mov    (%esi),%edx
477703:	8b 75 f0             	mov    -0x10(%ebp),%esi
477706:	68 20 00 cc 00       	push   $0xcc0020
47770b:	51                   	push   %ecx
47770c:	50                   	push   %eax
47770d:	ff 75 0c             	push   0xc(%ebp)
477710:	52                   	push   %edx
477711:	ff 75 f8             	push   -0x8(%ebp)
477714:	53                   	push   %ebx
477715:	57                   	push   %edi
477716:	6a 00                	push   $0x0
477718:	6a 00                	push   $0x0
47771a:	56                   	push   %esi
47771b:	ff 15 f0 f0 48 00    	call   *0x48f0f0
477721:	8b c3                	mov    %ebx,%eax
477723:	c7 45 b8 28 00 00 00 	movl   $0x28,-0x48(%ebp)
47772a:	f7 d8                	neg    %eax
47772c:	89 7d bc             	mov    %edi,-0x44(%ebp)
47772f:	89 45 c0             	mov    %eax,-0x40(%ebp)
477732:	33 c9                	xor    %ecx,%ecx
477734:	6a 20                	push   $0x20
477736:	33 c0                	xor    %eax,%eax
477738:	89 4d c8             	mov    %ecx,-0x38(%ebp)
47773b:	40                   	inc    %eax
47773c:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
477740:	58                   	pop    %eax
477741:	51                   	push   %ecx
477742:	66 89 45 c6          	mov    %ax,-0x3a(%ebp)
477746:	8d 45 b8             	lea    -0x48(%ebp),%eax
477749:	50                   	push   %eax
47774a:	51                   	push   %ecx
47774b:	51                   	push   %ecx
47774c:	51                   	push   %ecx
47774d:	ff 75 08             	push   0x8(%ebp)
477750:	56                   	push   %esi
477751:	8b 35 f4 f0 48 00    	mov    0x48f0f4,%esi
477757:	ff d6                	call   *%esi
477759:	8b 45 10             	mov    0x10(%ebp),%eax
47775c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
47775f:	51                   	push   %ecx
477760:	89 08                	mov    %ecx,(%eax)
477762:	e8 8f 98 fa ff       	call   0x420ff6
477767:	59                   	pop    %ecx
477768:	6a 00                	push   $0x0
47776a:	8b f8                	mov    %eax,%edi
47776c:	8d 45 b8             	lea    -0x48(%ebp),%eax
47776f:	50                   	push   %eax
477770:	57                   	push   %edi
477771:	53                   	push   %ebx
477772:	8b 5d f0             	mov    -0x10(%ebp),%ebx
477775:	6a 00                	push   $0x0
477777:	ff 75 08             	push   0x8(%ebp)
47777a:	53                   	push   %ebx
47777b:	ff d6                	call   *%esi
47777d:	ff 75 ec             	push   -0x14(%ebp)
477780:	8b f0                	mov    %eax,%esi
477782:	53                   	push   %ebx
477783:	ff 15 ec f0 48 00    	call   *0x48f0ec
477789:	ff 75 08             	push   0x8(%ebp)
47778c:	ff 15 c8 f0 48 00    	call   *0x48f0c8
477792:	53                   	push   %ebx
477793:	ff 15 08 f1 48 00    	call   *0x48f108
477799:	ff 75 f8             	push   -0x8(%ebp)
47779c:	6a 00                	push   $0x0
47779e:	ff 15 24 f6 48 00    	call   *0x48f624
4777a4:	85 f6                	test   %esi,%esi
4777a6:	74 04                	je     0x4777ac
4777a8:	8b c7                	mov    %edi,%eax
4777aa:	eb 09                	jmp    0x4777b5
4777ac:	57                   	push   %edi
4777ad:	e8 ba 98 fa ff       	call   0x42106c
4777b2:	59                   	pop    %ecx
4777b3:	33 c0                	xor    %eax,%eax
4777b5:	5f                   	pop    %edi
4777b6:	5e                   	pop    %esi
4777b7:	5b                   	pop    %ebx
4777b8:	8b e5                	mov    %ebp,%esp
4777ba:	5d                   	pop    %ebp
4777bb:	c2 0c 00             	ret    $0xc
4777be:	55                   	push   %ebp
4777bf:	8b ec                	mov    %esp,%ebp
4777c1:	81 ec b0 00 00 00    	sub    $0xb0,%esp
4777c7:	53                   	push   %ebx
4777c8:	56                   	push   %esi
4777c9:	83 ce ff             	or     $0xffffffff,%esi
4777cc:	c7 45 fc 00 00 c0 88 	movl   $0x88c00000,-0x4(%ebp)
4777d3:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4777d6:	89 75 f8             	mov    %esi,-0x8(%ebp)
4777d9:	0b de                	or     %esi,%ebx
4777db:	c7 45 f4 08 00 00 00 	movl   $0x8,-0xc(%ebp)
4777e2:	e8 e0 ff f8 ff       	call   0x4077c7
4777e7:	a1 98 62 4c 00       	mov    0x4c6298,%eax
4777ec:	85 c0                	test   %eax,%eax
4777ee:	74 0e                	je     0x4777fe
4777f0:	50                   	push   %eax
4777f1:	ff 15 3c f6 48 00    	call   *0x48f63c
4777f7:	83 25 98 62 4c 00 00 	andl   $0x0,0x4c6298
4777fe:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
477802:	0f 84 cd 02 00 00    	je     0x477ad5
477808:	83 7d 0c 03          	cmpl   $0x3,0xc(%ebp)
47780c:	57                   	push   %edi
47780d:	8b 7d 08             	mov    0x8(%ebp),%edi
477810:	72 1b                	jb     0x47782d
477812:	8b 47 04             	mov    0x4(%edi),%eax
477815:	8b 70 08             	mov    0x8(%eax),%esi
477818:	8b ce                	mov    %esi,%ecx
47781a:	e8 78 21 f9 ff       	call   0x409997
47781f:	ff 76 08             	push   0x8(%esi)
477822:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
477825:	e8 7d 09 f9 ff       	call   0x4081a7
47782a:	8b 75 f8             	mov    -0x8(%ebp),%esi
47782d:	83 7d 0c 04          	cmpl   $0x4,0xc(%ebp)
477831:	72 10                	jb     0x477843
477833:	8b 47 04             	mov    0x4(%edi),%eax
477836:	8b 48 0c             	mov    0xc(%eax),%ecx
477839:	e8 5e 24 f9 ff       	call   0x409c9c
47783e:	8b f0                	mov    %eax,%esi
477840:	89 45 f8             	mov    %eax,-0x8(%ebp)
477843:	83 7d 0c 05          	cmpl   $0x5,0xc(%ebp)
477847:	72 0d                	jb     0x477856
477849:	8b 4f 04             	mov    0x4(%edi),%ecx
47784c:	8b 49 10             	mov    0x10(%ecx),%ecx
47784f:	e8 48 24 f9 ff       	call   0x409c9c
477854:	8b d8                	mov    %eax,%ebx
477856:	83 7d 0c 06          	cmpl   $0x6,0xc(%ebp)
47785a:	72 4a                	jb     0x4778a6
47785c:	8b 4f 04             	mov    0x4(%edi),%ecx
47785f:	8b 49 14             	mov    0x14(%ecx),%ecx
477862:	e8 35 24 f9 ff       	call   0x409c9c
477867:	a8 01                	test   $0x1,%al
477869:	74 07                	je     0x477872
47786b:	c7 45 fc 00 00 00 88 	movl   $0x88000000,-0x4(%ebp)
477872:	8b 47 04             	mov    0x4(%edi),%eax
477875:	8b 48 14             	mov    0x14(%eax),%ecx
477878:	e8 1f 24 f9 ff       	call   0x409c9c
47787d:	24 02                	and    $0x2,%al
47787f:	0f be c0             	movsbl %al,%eax
477882:	f7 d8                	neg    %eax
477884:	6a 08                	push   $0x8
477886:	1b c0                	sbb    %eax,%eax
477888:	f7 d0                	not    %eax
47788a:	59                   	pop    %ecx
47788b:	23 c1                	and    %ecx,%eax
47788d:	89 45 f4             	mov    %eax,-0xc(%ebp)
477890:	8b 47 04             	mov    0x4(%edi),%eax
477893:	8b 48 14             	mov    0x14(%eax),%ecx
477896:	e8 01 24 f9 ff       	call   0x409c9c
47789b:	a8 10                	test   $0x10,%al
47789d:	74 07                	je     0x4778a6
47789f:	81 75 fc 00 00 00 08 	xorl   $0x8000000,-0x4(%ebp)
4778a6:	6a 00                	push   $0x0
4778a8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4778ab:	50                   	push   %eax
4778ac:	6a 00                	push   $0x0
4778ae:	6a 30                	push   $0x30
4778b0:	ff 15 40 f7 48 00    	call   *0x48f740
4778b6:	83 fe ff             	cmp    $0xffffffff,%esi
4778b9:	75 12                	jne    0x4778cd
4778bb:	8b 45 ec             	mov    -0x14(%ebp),%eax
4778be:	05 d4 fe ff ff       	add    $0xfffffed4,%eax
4778c3:	99                   	cltd
4778c4:	2b c2                	sub    %edx,%eax
4778c6:	8b f0                	mov    %eax,%esi
4778c8:	d1 fe                	sar    $1,%esi
4778ca:	89 75 f8             	mov    %esi,-0x8(%ebp)
4778cd:	83 fb ff             	cmp    $0xffffffff,%ebx
4778d0:	75 0d                	jne    0x4778df
4778d2:	8b 45 f0             	mov    -0x10(%ebp),%eax
4778d5:	83 c0 9c             	add    $0xffffff9c,%eax
4778d8:	99                   	cltd
4778d9:	2b c2                	sub    %edx,%eax
4778db:	8b d8                	mov    %eax,%ebx
4778dd:	d1 fb                	sar    $1,%ebx
4778df:	6a 64                	push   $0x64
4778e1:	68 2c 01 00 00       	push   $0x12c
4778e6:	33 f6                	xor    %esi,%esi
4778e8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4778eb:	56                   	push   %esi
4778ec:	56                   	push   %esi
4778ed:	50                   	push   %eax
4778ee:	ff 15 c4 f5 48 00    	call   *0x48f5c4
4778f4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4778f7:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4778fa:	51                   	push   %ecx
4778fb:	56                   	push   %esi
4778fc:	ff 75 fc             	push   -0x4(%ebp)
4778ff:	50                   	push   %eax
477900:	ff 15 cc f4 48 00    	call   *0x48f4cc
477906:	8b 47 04             	mov    0x4(%edi),%eax
477909:	8b 30                	mov    (%eax),%esi
47790b:	8b ce                	mov    %esi,%ecx
47790d:	e8 85 20 f9 ff       	call   0x409997
477912:	8b 46 08             	mov    0x8(%esi),%eax
477915:	8b 08                	mov    (%eax),%ecx
477917:	33 c0                	xor    %eax,%eax
477919:	50                   	push   %eax
47791a:	50                   	push   %eax
47791b:	50                   	push   %eax
47791c:	ff 35 ac 62 4c 00    	push   0x4c62ac
477922:	8b 45 f0             	mov    -0x10(%ebp),%eax
477925:	2b 45 e8             	sub    -0x18(%ebp),%eax
477928:	50                   	push   %eax
477929:	8b 45 ec             	mov    -0x14(%ebp),%eax
47792c:	2b 45 e4             	sub    -0x1c(%ebp),%eax
47792f:	50                   	push   %eax
477930:	53                   	push   %ebx
477931:	ff 75 f8             	push   -0x8(%ebp)
477934:	8b 1d 20 f7 48 00    	mov    0x48f720,%ebx
47793a:	ff 75 fc             	push   -0x4(%ebp)
47793d:	51                   	push   %ecx
47793e:	68 6c f9 48 00       	push   $0x48f96c
477943:	ff 75 f4             	push   -0xc(%ebp)
477946:	ff d3                	call   *%ebx
477948:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
47794b:	a3 98 62 4c 00       	mov    %eax,0x4c6298
477950:	51                   	push   %ecx
477951:	50                   	push   %eax
477952:	ff 15 34 f6 48 00    	call   *0x48f634
477958:	8b 47 04             	mov    0x4(%edi),%eax
47795b:	8b 70 04             	mov    0x4(%eax),%esi
47795e:	8b ce                	mov    %esi,%ecx
477960:	e8 32 20 f9 ff       	call   0x409997
477965:	8b 46 08             	mov    0x8(%esi),%eax
477968:	33 f6                	xor    %esi,%esi
47796a:	56                   	push   %esi
47796b:	56                   	push   %esi
47796c:	56                   	push   %esi
47796d:	ff 35 98 62 4c 00    	push   0x4c6298
477973:	8b 08                	mov    (%eax),%ecx
477975:	8b 45 ec             	mov    -0x14(%ebp),%eax
477978:	2b 45 e4             	sub    -0x1c(%ebp),%eax
47797b:	6a 18                	push   $0x18
47797d:	68 00 05 00 00       	push   $0x500
477982:	6a 04                	push   $0x4
477984:	2d 19 01 00 00       	sub    $0x119,%eax
477989:	50                   	push   %eax
47798a:	68 00 00 00 50       	push   $0x50000000
47798f:	51                   	push   %ecx
477990:	68 00 f9 48 00       	push   $0x48f900
477995:	56                   	push   %esi
477996:	ff d3                	call   *%ebx
477998:	56                   	push   %esi
477999:	56                   	push   %esi
47799a:	56                   	push   %esi
47799b:	68 f0 a8 4b 00       	push   $0x4ba8f0
4779a0:	a3 90 62 4c 00       	mov    %eax,0x4c6290
4779a5:	ff 15 10 f1 48 00    	call   *0x48f110
4779ab:	8b 1d 14 f1 48 00    	mov    0x48f114,%ebx
4779b1:	8b f0                	mov    %eax,%esi
4779b3:	6a 11                	push   $0x11
4779b5:	ff d3                	call   *%ebx
4779b7:	50                   	push   %eax
4779b8:	56                   	push   %esi
4779b9:	ff 15 ec f0 48 00    	call   *0x48f0ec
4779bf:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
4779c5:	50                   	push   %eax
4779c6:	6a 40                	push   $0x40
4779c8:	56                   	push   %esi
4779c9:	ff 15 18 f1 48 00    	call   *0x48f118
4779cf:	6a 5a                	push   $0x5a
4779d1:	56                   	push   %esi
4779d2:	ff 15 d4 f0 48 00    	call   *0x48f0d4
4779d8:	56                   	push   %esi
4779d9:	8b f8                	mov    %eax,%edi
4779db:	ff 15 08 f1 48 00    	call   *0x48f108
4779e1:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
4779e7:	50                   	push   %eax
4779e8:	33 c0                	xor    %eax,%eax
4779ea:	50                   	push   %eax
4779eb:	6a 02                	push   $0x2
4779ed:	50                   	push   %eax
4779ee:	6a 04                	push   $0x4
4779f0:	6a 01                	push   $0x1
4779f2:	50                   	push   %eax
4779f3:	50                   	push   %eax
4779f4:	50                   	push   %eax
4779f5:	68 58 02 00 00       	push   $0x258
4779fa:	50                   	push   %eax
4779fb:	50                   	push   %eax
4779fc:	50                   	push   %eax