472905:	e8 a3 4f f9 ff       	call   0x4078ad
47290a:	ff 75 dc             	push   -0x24(%ebp)
47290d:	8d 4b 30             	lea    0x30(%ebx),%ecx
472910:	56                   	push   %esi
472911:	ff 75 d8             	push   -0x28(%ebp)
472914:	e8 94 4f f9 ff       	call   0x4078ad
472919:	ff 75 e4             	push   -0x1c(%ebp)
47291c:	8d 4b 40             	lea    0x40(%ebx),%ecx
47291f:	56                   	push   %esi
472920:	ff 75 e0             	push   -0x20(%ebp)
472923:	e8 85 4f f9 ff       	call   0x4078ad
472928:	ff 75 ec             	push   -0x14(%ebp)
47292b:	8d 73 50             	lea    0x50(%ebx),%esi
47292e:	6a 00                	push   $0x0
472930:	ff 75 e8             	push   -0x18(%ebp)
472933:	8b ce                	mov    %esi,%ecx
472935:	e8 73 4f f9 ff       	call   0x4078ad
47293a:	56                   	push   %esi
47293b:	8d 45 f0             	lea    -0x10(%ebp),%eax
47293e:	50                   	push   %eax
47293f:	8d 4b 40             	lea    0x40(%ebx),%ecx
472942:	e8 dc 57 fe ff       	call   0x458123
472947:	50                   	push   %eax
472948:	8d 4b 60             	lea    0x60(%ebx),%ecx
47294b:	e8 57 58 f9 ff       	call   0x4081a7
472950:	8d 4d f0             	lea    -0x10(%ebp),%ecx
472953:	e8 0c 31 f9 ff       	call   0x405a64
472958:	66 8b 45 cc          	mov    -0x34(%ebp),%ax
47295c:	66 89 43 78          	mov    %ax,0x78(%ebx)
472960:	8b 45 c0             	mov    -0x40(%ebp),%eax
472963:	89 43 74             	mov    %eax,0x74(%ebx)
472966:	48                   	dec    %eax
472967:	74 15                	je     0x47297e
472969:	48                   	dec    %eax
47296a:	74 09                	je     0x472975
47296c:	c7 43 70 03 00 00 00 	movl   $0x3,0x70(%ebx)
472973:	eb 10                	jmp    0x472985
472975:	c7 43 70 02 00 00 00 	movl   $0x2,0x70(%ebx)
47297c:	eb 07                	jmp    0x472985
47297e:	c7 43 70 01 00 00 00 	movl   $0x1,0x70(%ebx)
472985:	5f                   	pop    %edi
472986:	b0 01                	mov    $0x1,%al
472988:	5b                   	pop    %ebx
472989:	5e                   	pop    %esi
47298a:	8b e5                	mov    %ebp,%esp
47298c:	5d                   	pop    %ebp
47298d:	c2 08 00             	ret    $0x8
472990:	55                   	push   %ebp
472991:	8b ec                	mov    %esp,%ebp
472993:	56                   	push   %esi
472994:	8b f1                	mov    %ecx,%esi
472996:	80 be d0 00 00 00 00 	cmpb   $0x0,0xd0(%esi)
47299d:	74 2e                	je     0x4729cd
47299f:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4729a3:	74 28                	je     0x4729cd
4729a5:	83 ec 10             	sub    $0x10,%esp
4729a8:	8d 8e d4 00 00 00    	lea    0xd4(%esi),%ecx
4729ae:	e8 7b f0 ff ff       	call   0x471a2e
4729b3:	56                   	push   %esi
4729b4:	6a 00                	push   $0x0
4729b6:	68 60 2a 47 00       	push   $0x472a60
4729bb:	e8 3c 35 fb ff       	call   0x425efc
4729c0:	33 c0                	xor    %eax,%eax
4729c2:	83 c4 0c             	add    $0xc,%esp
4729c5:	39 46 18             	cmp    %eax,0x18(%esi)
4729c8:	0f 94 c0             	sete   %al
4729cb:	eb 08                	jmp    0x4729d5
4729cd:	ff 75 08             	push   0x8(%ebp)
4729d0:	e8 2d f2 ff ff       	call   0x471c02
4729d5:	5e                   	pop    %esi
4729d6:	5d                   	pop    %ebp
4729d7:	c2 04 00             	ret    $0x4
4729da:	57                   	push   %edi
4729db:	8b f9                	mov    %ecx,%edi
4729dd:	ff 77 04             	push   0x4(%edi)
4729e0:	ff 15 80 f7 48 00    	call   *0x48f780
4729e6:	ff 37                	push   (%edi)
4729e8:	ff 15 80 f7 48 00    	call   *0x48f780
4729ee:	83 27 00             	andl   $0x0,(%edi)
4729f1:	8d 8f d4 00 00 00    	lea    0xd4(%edi),%ecx
4729f7:	83 67 04 00          	andl   $0x0,0x4(%edi)
4729fb:	68 10 27 00 00       	push   $0x2710
472a00:	e8 6a 00 00 00       	call   0x472a6f
472a05:	5f                   	pop    %edi
472a06:	c3                   	ret
472a07:	55                   	push   %ebp
472a08:	8b ec                	mov    %esp,%ebp
472a0a:	51                   	push   %ecx
472a0b:	51                   	push   %ecx
472a0c:	53                   	push   %ebx
472a0d:	8b 5d 08             	mov    0x8(%ebp),%ebx
472a10:	56                   	push   %esi
472a11:	57                   	push   %edi
472a12:	8b f9                	mov    %ecx,%edi
472a14:	85 db                	test   %ebx,%ebx
472a16:	74 3d                	je     0x472a55
472a18:	8b 75 0c             	mov    0xc(%ebp),%esi
472a1b:	85 f6                	test   %esi,%esi
472a1d:	74 36                	je     0x472a55
472a1f:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
472a23:	8d 45 f8             	lea    -0x8(%ebp),%eax
472a26:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
472a2a:	50                   	push   %eax
472a2b:	e8 1c 01 00 00       	call   0x472b4c
472a30:	6a 00                	push   $0x0
472a32:	e8 35 e6 fa ff       	call   0x42106c
472a37:	8b 47 04             	mov    0x4(%edi),%eax
472a3a:	59                   	pop    %ecx
472a3b:	8b 4f 08             	mov    0x8(%edi),%ecx
472a3e:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
472a42:	89 18                	mov    %ebx,(%eax)
472a44:	8b 4f 08             	mov    0x8(%edi),%ecx
472a47:	8b 47 04             	mov    0x4(%edi),%eax
472a4a:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
472a4e:	89 70 04             	mov    %esi,0x4(%eax)
472a51:	b0 01                	mov    $0x1,%al
472a53:	eb 02                	jmp    0x472a57
472a55:	32 c0                	xor    %al,%al
472a57:	5f                   	pop    %edi
472a58:	5e                   	pop    %esi
472a59:	5b                   	pop    %ebx
472a5a:	8b e5                	mov    %ebp,%esp
472a5c:	5d                   	pop    %ebp
472a5d:	c2 08 00             	ret    $0x8
472a60:	55                   	push   %ebp
472a61:	8b ec                	mov    %esp,%ebp
472a63:	8b 4d 08             	mov    0x8(%ebp),%ecx
472a66:	6a 01                	push   $0x1
472a68:	e8 95 f1 ff ff       	call   0x471c02
472a6d:	5d                   	pop    %ebp
472a6e:	c3                   	ret
472a6f:	55                   	push   %ebp
472a70:	8b ec                	mov    %esp,%ebp
472a72:	83 39 00             	cmpl   $0x0,(%ecx)
472a75:	74 12                	je     0x472a89
472a77:	ff 75 08             	push   0x8(%ebp)
472a7a:	ff 31                	push   (%ecx)
472a7c:	ff 15 6c f1 48 00    	call   *0x48f16c
472a82:	f7 d8                	neg    %eax
472a84:	1b c0                	sbb    %eax,%eax
472a86:	40                   	inc    %eax
472a87:	eb 02                	jmp    0x472a8b
472a89:	33 c0                	xor    %eax,%eax
472a8b:	5d                   	pop    %ebp
472a8c:	c2 04 00             	ret    $0x4
472a8f:	56                   	push   %esi
472a90:	8b f1                	mov    %ecx,%esi
472a92:	57                   	push   %edi
472a93:	33 ff                	xor    %edi,%edi
472a95:	39 7e 08             	cmp    %edi,0x8(%esi)
472a98:	76 28                	jbe    0x472ac2
472a9a:	53                   	push   %ebx
472a9b:	8b 46 04             	mov    0x4(%esi),%eax
472a9e:	8b 1c b8             	mov    (%eax,%edi,4),%ebx
472aa1:	85 db                	test   %ebx,%ebx
472aa3:	74 0f                	je     0x472ab4
472aa5:	ff 33                	push   (%ebx)
472aa7:	e8 c0 e5 fa ff       	call   0x42106c
472aac:	53                   	push   %ebx
472aad:	e8 ba e5 fa ff       	call   0x42106c
472ab2:	59                   	pop    %ecx
472ab3:	59                   	pop    %ecx
472ab4:	8b 46 04             	mov    0x4(%esi),%eax
472ab7:	83 24 b8 00          	andl   $0x0,(%eax,%edi,4)
472abb:	47                   	inc    %edi
472abc:	3b 7e 08             	cmp    0x8(%esi),%edi
472abf:	72 da                	jb     0x472a9b
472ac1:	5b                   	pop    %ebx
472ac2:	83 66 08 00          	andl   $0x0,0x8(%esi)
472ac6:	5f                   	pop    %edi
472ac7:	5e                   	pop    %esi
472ac8:	c3                   	ret
472ac9:	56                   	push   %esi
472aca:	8b f1                	mov    %ecx,%esi
472acc:	8b 4e 04             	mov    0x4(%esi),%ecx
472acf:	85 c9                	test   %ecx,%ecx
472ad1:	74 1f                	je     0x472af2
472ad3:	8b 41 08             	mov    0x8(%ecx),%eax
472ad6:	51                   	push   %ecx
472ad7:	89 46 04             	mov    %eax,0x4(%esi)
472ada:	e8 c3 ee ff ff       	call   0x4719a2
472adf:	8b 46 04             	mov    0x4(%esi),%eax
472ae2:	85 c0                	test   %eax,%eax
472ae4:	74 06                	je     0x472aec
472ae6:	83 60 04 00          	andl   $0x0,0x4(%eax)
472aea:	eb 03                	jmp    0x472aef
472aec:	83 26 00             	andl   $0x0,(%esi)
472aef:	ff 4e 08             	decl   0x8(%esi)
472af2:	5e                   	pop    %esi
472af3:	c3                   	ret
472af4:	55                   	push   %ebp
472af5:	8b ec                	mov    %esp,%ebp
472af7:	56                   	push   %esi
472af8:	8b f1                	mov    %ecx,%esi
472afa:	57                   	push   %edi
472afb:	33 ff                	xor    %edi,%edi
472afd:	6a 0c                	push   $0xc
472aff:	39 7e 04             	cmp    %edi,0x4(%esi)
472b02:	75 1a                	jne    0x472b1e
472b04:	e8 ed e4 fa ff       	call   0x420ff6
472b09:	59                   	pop    %ecx
472b0a:	85 c0                	test   %eax,%eax
472b0c:	74 0c                	je     0x472b1a
472b0e:	ff 75 08             	push   0x8(%ebp)
472b11:	8b c8                	mov    %eax,%ecx
472b13:	e8 c9 ec ff ff       	call   0x4717e1
472b18:	8b f8                	mov    %eax,%edi
472b1a:	89 3e                	mov    %edi,(%esi)
472b1c:	eb 22                	jmp    0x472b40
472b1e:	e8 d3 e4 fa ff       	call   0x420ff6
472b23:	59                   	pop    %ecx
472b24:	85 c0                	test   %eax,%eax
472b26:	74 0c                	je     0x472b34
472b28:	ff 75 08             	push   0x8(%ebp)
472b2b:	8b c8                	mov    %eax,%ecx
472b2d:	e8 af ec ff ff       	call   0x4717e1
472b32:	8b f8                	mov    %eax,%edi
472b34:	8b 46 04             	mov    0x4(%esi),%eax
472b37:	89 47 08             	mov    %eax,0x8(%edi)
472b3a:	8b 46 04             	mov    0x4(%esi),%eax
472b3d:	89 78 04             	mov    %edi,0x4(%eax)
472b40:	ff 46 08             	incl   0x8(%esi)
472b43:	89 7e 04             	mov    %edi,0x4(%esi)
472b46:	5f                   	pop    %edi
472b47:	5e                   	pop    %esi
472b48:	5d                   	pop    %ebp
472b49:	c2 04 00             	ret    $0x4
472b4c:	55                   	push   %ebp
472b4d:	8b ec                	mov    %esp,%ebp
472b4f:	56                   	push   %esi
472b50:	8b f1                	mov    %ecx,%esi
472b52:	57                   	push   %edi
472b53:	8b 46 0c             	mov    0xc(%esi),%eax
472b56:	39 46 08             	cmp    %eax,0x8(%esi)
472b59:	75 4c                	jne    0x472ba7
472b5b:	03 c0                	add    %eax,%eax
472b5d:	83 f8 08             	cmp    $0x8,%eax
472b60:	73 03                	jae    0x472b65
472b62:	6a 08                	push   $0x8
472b64:	58                   	pop    %eax
472b65:	33 c9                	xor    %ecx,%ecx
472b67:	89 46 0c             	mov    %eax,0xc(%esi)
472b6a:	6a 04                	push   $0x4
472b6c:	5a                   	pop    %edx
472b6d:	f7 e2                	mul    %edx
472b6f:	0f 90 c1             	seto   %cl
472b72:	f7 d9                	neg    %ecx
472b74:	0b c8                	or     %eax,%ecx
472b76:	51                   	push   %ecx
472b77:	e8 7a e4 fa ff       	call   0x420ff6
472b7c:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
472b80:	8b f8                	mov    %eax,%edi
472b82:	59                   	pop    %ecx
472b83:	74 1f                	je     0x472ba4
472b85:	8b 46 08             	mov    0x8(%esi),%eax
472b88:	85 c0                	test   %eax,%eax
472b8a:	74 18                	je     0x472ba4
472b8c:	c1 e0 02             	shl    $0x2,%eax
472b8f:	50                   	push   %eax
472b90:	ff 76 04             	push   0x4(%esi)
472b93:	57                   	push   %edi
472b94:	e8 e7 e4 fa ff       	call   0x421080
472b99:	ff 76 04             	push   0x4(%esi)
472b9c:	e8 cb e4 fa ff       	call   0x42106c
472ba1:	83 c4 10             	add    $0x10,%esp
472ba4:	89 7e 04             	mov    %edi,0x4(%esi)
472ba7:	6a 08                	push   $0x8
472ba9:	e8 48 e4 fa ff       	call   0x420ff6
472bae:	8b f8                	mov    %eax,%edi
472bb0:	59                   	pop    %ecx
472bb1:	85 ff                	test   %edi,%edi
472bb3:	74 0f                	je     0x472bc4
472bb5:	8b 55 08             	mov    0x8(%ebp),%edx
472bb8:	8b 0a                	mov    (%edx),%ecx
472bba:	89 0f                	mov    %ecx,(%edi)
472bbc:	8b 4a 04             	mov    0x4(%edx),%ecx
472bbf:	89 4f 04             	mov    %ecx,0x4(%edi)
472bc2:	eb 02                	jmp    0x472bc6
472bc4:	33 ff                	xor    %edi,%edi
472bc6:	8b 4e 08             	mov    0x8(%esi),%ecx
472bc9:	8b 46 04             	mov    0x4(%esi),%eax
472bcc:	89 3c 88             	mov    %edi,(%eax,%ecx,4)
472bcf:	ff 46 08             	incl   0x8(%esi)
472bd2:	5f                   	pop    %edi
472bd3:	5e                   	pop    %esi
472bd4:	5d                   	pop    %ebp
472bd5:	c2 04 00             	ret    $0x4
472bd8:	55                   	push   %ebp
472bd9:	8b ec                	mov    %esp,%ebp
472bdb:	56                   	push   %esi
472bdc:	57                   	push   %edi
472bdd:	8b 7d 08             	mov    0x8(%ebp),%edi
472be0:	8b f1                	mov    %ecx,%esi
472be2:	8b 0f                	mov    (%edi),%ecx
472be4:	8b 51 08             	mov    0x8(%ecx),%edx
472be7:	8b 41 04             	mov    0x4(%ecx),%eax
472bea:	85 d2                	test   %edx,%edx
472bec:	74 03                	je     0x472bf1
472bee:	89 42 04             	mov    %eax,0x4(%edx)
472bf1:	85 c0                	test   %eax,%eax
472bf3:	74 03                	je     0x472bf8
472bf5:	89 50 08             	mov    %edx,0x8(%eax)
472bf8:	3b 0e                	cmp    (%esi),%ecx
472bfa:	75 02                	jne    0x472bfe
472bfc:	89 06                	mov    %eax,(%esi)
472bfe:	3b 4e 04             	cmp    0x4(%esi),%ecx
472c01:	75 03                	jne    0x472c06
472c03:	89 56 04             	mov    %edx,0x4(%esi)
472c06:	51                   	push   %ecx
472c07:	e8 96 ed ff ff       	call   0x4719a2
472c0c:	83 27 00             	andl   $0x0,(%edi)
472c0f:	ff 4e 08             	decl   0x8(%esi)
472c12:	5f                   	pop    %edi
472c13:	5e                   	pop    %esi
472c14:	5d                   	pop    %ebp
472c15:	c2 04 00             	ret    $0x4
472c18:	55                   	push   %ebp
472c19:	8b ec                	mov    %esp,%ebp
472c1b:	51                   	push   %ecx
472c1c:	51                   	push   %ecx
472c1d:	8b 45 08             	mov    0x8(%ebp),%eax
472c20:	56                   	push   %esi
472c21:	8b 40 04             	mov    0x4(%eax),%eax
472c24:	8b 08                	mov    (%eax),%ecx
472c26:	e8 cd 70 f9 ff       	call   0x409cf8
472c2b:	51                   	push   %ecx
472c2c:	51                   	push   %ecx
472c2d:	dd 1c 24             	fstpl  (%esp)
472c30:	e8 2b 37 fb ff       	call   0x426360
472c35:	8b 75 0c             	mov    0xc(%ebp),%esi
472c38:	83 c4 08             	add    $0x8,%esp
472c3b:	8b ce                	mov    %esi,%ecx
472c3d:	dd 5d f8             	fstpl  -0x8(%ebp)
472c40:	e8 db 6d f9 ff       	call   0x409a20
472c45:	dd 45 f8             	fldl   -0x8(%ebp)
472c48:	33 c0                	xor    %eax,%eax
472c4a:	dd 1e                	fstpl  (%esi)
472c4c:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
472c53:	5e                   	pop    %esi
472c54:	8b e5                	mov    %ebp,%esp
472c56:	5d                   	pop    %ebp
472c57:	c2 08 00             	ret    $0x8
472c5a:	55                   	push   %ebp
472c5b:	8b ec                	mov    %esp,%ebp
472c5d:	51                   	push   %ecx
472c5e:	51                   	push   %ecx
472c5f:	8b 45 08             	mov    0x8(%ebp),%eax
472c62:	56                   	push   %esi
472c63:	8b 40 04             	mov    0x4(%eax),%eax
472c66:	8b 08                	mov    (%eax),%ecx