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
4779fd:	6b c7 f6             	imul   $0xfffffff6,%edi,%eax
477a00:	6a 48                	push   $0x48
477a02:	59                   	pop    %ecx
477a03:	99                   	cltd
477a04:	f7 f9                	idiv   %ecx
477a06:	50                   	push   %eax
477a07:	ff 15 1c f1 48 00    	call   *0x48f11c
477a0d:	8b 35 88 f6 48 00    	mov    0x48f688,%esi
477a13:	6a 01                	push   $0x1
477a15:	50                   	push   %eax
477a16:	6a 30                	push   $0x30
477a18:	ff 35 90 62 4c 00    	push   0x4c6290
477a1e:	ff d6                	call   *%esi
477a20:	8b 45 ec             	mov    -0x14(%ebp),%eax
477a23:	33 ff                	xor    %edi,%edi
477a25:	2b 45 e4             	sub    -0x1c(%ebp),%eax
477a28:	b9 04 01 00 00       	mov    $0x104,%ecx
477a2d:	57                   	push   %edi
477a2e:	57                   	push   %edi
477a2f:	57                   	push   %edi
477a30:	ff 35 98 62 4c 00    	push   0x4c6298
477a36:	2b c1                	sub    %ecx,%eax
477a38:	6a 14                	push   $0x14
477a3a:	51                   	push   %ecx
477a3b:	99                   	cltd
477a3c:	6a 1e                	push   $0x1e
477a3e:	2b c2                	sub    %edx,%eax
477a40:	d1 f8                	sar    $1,%eax
477a42:	50                   	push   %eax
477a43:	68 01 00 00 50       	push   $0x50000001
477a48:	57                   	push   %edi
477a49:	8b 3d 20 f7 48 00    	mov    0x48f720,%edi
477a4f:	68 00 a9 4b 00       	push   $0x4ba900
477a54:	68 00 02 00 00       	push   $0x200
477a59:	ff d7                	call   *%edi
477a5b:	68 00 00 64 00       	push   $0x640000
477a60:	6a 00                	push   $0x0
477a62:	68 01 04 00 00       	push   $0x401
477a67:	50                   	push   %eax
477a68:	a3 94 62 4c 00       	mov    %eax,0x4c6294
477a6d:	ff d6                	call   *%esi
477a6f:	6a 00                	push   $0x0
477a71:	6a 01                	push   $0x1
477a73:	68 04 04 00 00       	push   $0x404
477a78:	ff 35 94 62 4c 00    	push   0x4c6294
477a7e:	ff d6                	call   *%esi
477a80:	8b 45 ec             	mov    -0x14(%ebp),%eax
477a83:	33 c9                	xor    %ecx,%ecx
477a85:	51                   	push   %ecx
477a86:	51                   	push   %ecx
477a87:	51                   	push   %ecx
477a88:	ff 35 98 62 4c 00    	push   0x4c6298
477a8e:	6a 32                	push   $0x32
477a90:	68 00 05 00 00       	push   $0x500
477a95:	6a 37                	push   $0x37
477a97:	2b 45 e4             	sub    -0x1c(%ebp),%eax
477a9a:	2d 18 01 00 00       	sub    $0x118,%eax
477a9f:	50                   	push   %eax
477aa0:	68 00 00 00 50       	push   $0x50000000
477aa5:	ff 75 d4             	push   -0x2c(%ebp)
477aa8:	68 00 f9 48 00       	push   $0x48f900
477aad:	51                   	push   %ecx
477aae:	ff d7                	call   *%edi
477ab0:	6a 01                	push   $0x1
477ab2:	6a 11                	push   $0x11
477ab4:	a3 8c 62 4c 00       	mov    %eax,0x4c628c
477ab9:	ff d3                	call   *%ebx
477abb:	50                   	push   %eax
477abc:	6a 30                	push   $0x30
477abe:	ff 35 8c 62 4c 00    	push   0x4c628c
477ac4:	ff d6                	call   *%esi
477ac6:	6a 04                	push   $0x4
477ac8:	ff 35 98 62 4c 00    	push   0x4c6298
477ace:	ff 15 1c f7 48 00    	call   *0x48f71c
477ad4:	5f                   	pop    %edi
477ad5:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
477ad8:	e8 87 df f8 ff       	call   0x405a64
477add:	5e                   	pop    %esi
477ade:	33 c0                	xor    %eax,%eax
477ae0:	5b                   	pop    %ebx
477ae1:	8b e5                	mov    %ebp,%esp
477ae3:	5d                   	pop    %ebp
477ae4:	c2 0c 00             	ret    $0xc
477ae7:	55                   	push   %ebp
477ae8:	8b ec                	mov    %esp,%ebp
477aea:	8b 45 08             	mov    0x8(%ebp),%eax
477aed:	0f b6 d0             	movzbl %al,%edx
477af0:	56                   	push   %esi
477af1:	8b 75 0c             	mov    0xc(%ebp),%esi
477af4:	8b ca                	mov    %edx,%ecx
477af6:	2b ce                	sub    %esi,%ecx
477af8:	79 02                	jns    0x477afc
477afa:	33 c9                	xor    %ecx,%ecx
477afc:	8b 45 10             	mov    0x10(%ebp),%eax
477aff:	88 08                	mov    %cl,(%eax)
477b01:	8d 04 32             	lea    (%edx,%esi,1),%eax
477b04:	b9 ff 00 00 00       	mov    $0xff,%ecx
477b09:	5e                   	pop    %esi
477b0a:	3b c1                	cmp    %ecx,%eax
477b0c:	7f 02                	jg     0x477b10
477b0e:	8b c8                	mov    %eax,%ecx
477b10:	8b 45 14             	mov    0x14(%ebp),%eax
477b13:	88 08                	mov    %cl,(%eax)
477b15:	5d                   	pop    %ebp
477b16:	c2 10 00             	ret    $0x10
477b19:	cc                   	int3
477b1a:	cc                   	int3
477b1b:	55                   	push   %ebp
477b1c:	8b ec                	mov    %esp,%ebp
477b1e:	81 ec b8 00 00 00    	sub    $0xb8,%esp
477b24:	83 4d e8 ff          	orl    $0xffffffff,-0x18(%ebp)
477b28:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
477b2c:	53                   	push   %ebx
477b2d:	56                   	push   %esi
477b2e:	33 db                	xor    %ebx,%ebx
477b30:	c7 45 f4 f4 01 00 00 	movl   $0x1f4,-0xc(%ebp)
477b37:	57                   	push   %edi
477b38:	bf 01 00 00 50       	mov    $0x50000001,%edi
477b3d:	c7 45 fc 90 01 00 00 	movl   $0x190,-0x4(%ebp)
477b44:	89 5d d0             	mov    %ebx,-0x30(%ebp)
477b47:	89 7d ec             	mov    %edi,-0x14(%ebp)
477b4a:	c7 45 f8 00 00 c0 88 	movl   $0x88c00000,-0x8(%ebp)
477b51:	c7 45 f0 08 00 00 00 	movl   $0x8,-0x10(%ebp)
477b58:	39 1d a0 62 4c 00    	cmp    %ebx,0x4c62a0
477b5e:	74 3c                	je     0x477b9c
477b60:	a1 a4 62 4c 00       	mov    0x4c62a4,%eax
477b65:	8b 35 c8 f0 48 00    	mov    0x48f0c8,%esi
477b6b:	85 c0                	test   %eax,%eax
477b6d:	74 09                	je     0x477b78
477b6f:	50                   	push   %eax
477b70:	ff d6                	call   *%esi
477b72:	89 1d a4 62 4c 00    	mov    %ebx,0x4c62a4
477b78:	a1 9c 62 4c 00       	mov    0x4c629c,%eax
477b7d:	85 c0                	test   %eax,%eax
477b7f:	74 09                	je     0x477b8a
477b81:	50                   	push   %eax
477b82:	ff d6                	call   *%esi
477b84:	89 1d 9c 62 4c 00    	mov    %ebx,0x4c629c
477b8a:	ff 35 a0 62 4c 00    	push   0x4c62a0
477b90:	ff 15 3c f6 48 00    	call   *0x48f63c
477b96:	89 1d a0 62 4c 00    	mov    %ebx,0x4c62a0
477b9c:	83 7d 10 02          	cmpl   $0x2,0x10(%ebp)
477ba0:	0f 84 ef 04 00 00    	je     0x478095
477ba6:	8d 45 d4             	lea    -0x2c(%ebp),%eax
477ba9:	50                   	push   %eax
477baa:	ff 15 44 f6 48 00    	call   *0x48f644
477bb0:	50                   	push   %eax
477bb1:	ff 15 94 f6 48 00    	call   *0x48f694
477bb7:	8b 75 0c             	mov    0xc(%ebp),%esi
477bba:	8b 5d 08             	mov    0x8(%ebp),%ebx
477bbd:	83 fe 03             	cmp    $0x3,%esi
477bc0:	72 1e                	jb     0x477be0
477bc2:	8b 43 04             	mov    0x4(%ebx),%eax
477bc5:	8b 48 08             	mov    0x8(%eax),%ecx
477bc8:	e8 cf 20 f9 ff       	call   0x409c9c
477bcd:	83 f8 ff             	cmp    $0xffffffff,%eax
477bd0:	74 0e                	je     0x477be0
477bd2:	8b 43 04             	mov    0x4(%ebx),%eax
477bd5:	8b 48 08             	mov    0x8(%eax),%ecx
477bd8:	e8 bf 20 f9 ff       	call   0x409c9c
477bdd:	89 45 f4             	mov    %eax,-0xc(%ebp)
477be0:	83 fe 04             	cmp    $0x4,%esi
477be3:	72 1e                	jb     0x477c03
477be5:	8b 4b 04             	mov    0x4(%ebx),%ecx
477be8:	8b 49 0c             	mov    0xc(%ecx),%ecx
477beb:	e8 ac 20 f9 ff       	call   0x409c9c
477bf0:	83 f8 ff             	cmp    $0xffffffff,%eax
477bf3:	74 0e                	je     0x477c03
477bf5:	8b 43 04             	mov    0x4(%ebx),%eax
477bf8:	8b 48 0c             	mov    0xc(%eax),%ecx
477bfb:	e8 9c 20 f9 ff       	call   0x409c9c
477c00:	89 45 fc             	mov    %eax,-0x4(%ebp)
477c03:	83 fe 05             	cmp    $0x5,%esi
477c06:	72 0e                	jb     0x477c16
477c08:	8b 4b 04             	mov    0x4(%ebx),%ecx