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
472c68:	e8 8b 70 f9 ff       	call   0x409cf8
472c6d:	51                   	push   %ecx
472c6e:	51                   	push   %ecx
472c6f:	dd 1c 24             	fstpl  (%esp)
472c72:	e8 39 38 fb ff       	call   0x4264b0
472c77:	8b 75 0c             	mov    0xc(%ebp),%esi
472c7a:	83 c4 08             	add    $0x8,%esp
472c7d:	8b ce                	mov    %esi,%ecx
472c7f:	dd 5d f8             	fstpl  -0x8(%ebp)
472c82:	e8 99 6d f9 ff       	call   0x409a20
472c87:	dd 45 f8             	fldl   -0x8(%ebp)
472c8a:	33 c0                	xor    %eax,%eax
472c8c:	dd 1e                	fstpl  (%esi)
472c8e:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
472c95:	5e                   	pop    %esi
472c96:	8b e5                	mov    %ebp,%esp
472c98:	5d                   	pop    %ebp
472c99:	c2 08 00             	ret    $0x8
472c9c:	55                   	push   %ebp
472c9d:	8b ec                	mov    %esp,%ebp
472c9f:	8b 45 08             	mov    0x8(%ebp),%eax
472ca2:	53                   	push   %ebx
472ca3:	56                   	push   %esi
472ca4:	57                   	push   %edi
472ca5:	8b 40 04             	mov    0x4(%eax),%eax
472ca8:	8b 30                	mov    (%eax),%esi
472caa:	8b ce                	mov    %esi,%ecx
472cac:	e8 e6 6c f9 ff       	call   0x409997
472cb1:	8b 46 08             	mov    0x8(%esi),%eax
472cb4:	8d 4d 08             	lea    0x8(%ebp),%ecx
472cb7:	83 ca ff             	or     $0xffffffff,%edx
472cba:	8b 00                	mov    (%eax),%eax
472cbc:	66 8b 00             	mov    (%eax),%ax
472cbf:	66 89 45 08          	mov    %ax,0x8(%ebp)
472cc3:	33 c0                	xor    %eax,%eax
472cc5:	66 89 45 0a          	mov    %ax,0xa(%ebp)
472cc9:	e8 5b 2e ff ff       	call   0x465b29
472cce:	8b 75 0c             	mov    0xc(%ebp),%esi
472cd1:	8b d8                	mov    %eax,%ebx
472cd3:	8b ce                	mov    %esi,%ecx
472cd5:	0f b6 3b             	movzbl (%ebx),%edi
472cd8:	e8 43 6d f9 ff       	call   0x409a20
472cdd:	53                   	push   %ebx
472cde:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
472ce5:	89 3e                	mov    %edi,(%esi)
472ce7:	e8 80 e3 fa ff       	call   0x42106c
472cec:	59                   	pop    %ecx
472ced:	5f                   	pop    %edi
472cee:	5e                   	pop    %esi
472cef:	33 c0                	xor    %eax,%eax
472cf1:	5b                   	pop    %ebx
472cf2:	5d                   	pop    %ebp
472cf3:	c2 08 00             	ret    $0x8
472cf6:	55                   	push   %ebp
472cf7:	8b ec                	mov    %esp,%ebp
472cf9:	8b 45 08             	mov    0x8(%ebp),%eax
472cfc:	56                   	push   %esi
472cfd:	57                   	push   %edi
472cfe:	8b 40 04             	mov    0x4(%eax),%eax
472d01:	8b 30                	mov    (%eax),%esi
472d03:	8b ce                	mov    %esi,%ecx
472d05:	e8 8d 6c f9 ff       	call   0x409997
472d0a:	8b 46 08             	mov    0x8(%esi),%eax
472d0d:	8b 75 0c             	mov    0xc(%ebp),%esi
472d10:	8b ce                	mov    %esi,%ecx
472d12:	8b 00                	mov    (%eax),%eax
472d14:	0f b7 38             	movzwl (%eax),%edi
472d17:	e8 04 6d f9 ff       	call   0x409a20
472d1c:	89 3e                	mov    %edi,(%esi)
472d1e:	33 c0                	xor    %eax,%eax
472d20:	5f                   	pop    %edi
472d21:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
472d28:	5e                   	pop    %esi
472d29:	5d                   	pop    %ebp
472d2a:	c2 08 00             	ret    $0x8
472d2d:	55                   	push   %ebp
472d2e:	8b ec                	mov    %esp,%ebp
472d30:	8b 45 08             	mov    0x8(%ebp),%eax
472d33:	8b 4d 0c             	mov    0xc(%ebp),%ecx
472d36:	8b 40 04             	mov    0x4(%eax),%eax
472d39:	ff 30                	push   (%eax)
472d3b:	e8 5c 71 f9 ff       	call   0x409e9c
472d40:	8b 4d 0c             	mov    0xc(%ebp),%ecx
472d43:	e8 f5 4c ff ff       	call   0x467a3d
472d48:	33 c0                	xor    %eax,%eax
472d4a:	5d                   	pop    %ebp
472d4b:	c2 08 00             	ret    $0x8
472d4e:	55                   	push   %ebp
472d4f:	8b ec                	mov    %esp,%ebp
472d51:	53                   	push   %ebx
472d52:	8b 5d 08             	mov    0x8(%ebp),%ebx
472d55:	56                   	push   %esi
472d56:	57                   	push   %edi
472d57:	8b 43 08             	mov    0x8(%ebx),%eax
472d5a:	89 45 08             	mov    %eax,0x8(%ebp)
472d5d:	8b 43 04             	mov    0x4(%ebx),%eax
472d60:	8b 08                	mov    (%eax),%ecx
472d62:	e8 35 6f f9 ff       	call   0x409c9c
472d67:	33 f6                	xor    %esi,%esi
472d69:	8b f8                	mov    %eax,%edi
472d6b:	46                   	inc    %esi
472d6c:	39 75 08             	cmp    %esi,0x8(%ebp)
472d6f:	76 13                	jbe    0x472d84
472d71:	8b 4b 04             	mov    0x4(%ebx),%ecx
472d74:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
472d77:	e8 20 6f f9 ff       	call   0x409c9c
472d7c:	23 f8                	and    %eax,%edi
472d7e:	46                   	inc    %esi
472d7f:	3b 75 08             	cmp    0x8(%ebp),%esi
472d82:	72 ed                	jb     0x472d71
472d84:	8b 75 0c             	mov    0xc(%ebp),%esi
472d87:	8b ce                	mov    %esi,%ecx
472d89:	e8 92 6c f9 ff       	call   0x409a20
472d8e:	89 3e                	mov    %edi,(%esi)
472d90:	33 c0                	xor    %eax,%eax
472d92:	5f                   	pop    %edi
472d93:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
472d9a:	5e                   	pop    %esi
472d9b:	5b                   	pop    %ebx
472d9c:	5d                   	pop    %ebp
472d9d:	c2 08 00             	ret    $0x8
472da0:	55                   	push   %ebp
472da1:	8b ec                	mov    %esp,%ebp
472da3:	8b 45 08             	mov    0x8(%ebp),%eax
472da6:	56                   	push   %esi
472da7:	57                   	push   %edi
472da8:	8b 40 04             	mov    0x4(%eax),%eax
472dab:	8b 08                	mov    (%eax),%ecx
472dad:	e8 ea 6e f9 ff       	call   0x409c9c
472db2:	8b 75 0c             	mov    0xc(%ebp),%esi
472db5:	8b f8                	mov    %eax,%edi
472db7:	8b ce                	mov    %esi,%ecx
472db9:	f7 d7                	not    %edi
472dbb:	e8 60 6c f9 ff       	call   0x409a20
472dc0:	89 3e                	mov    %edi,(%esi)
472dc2:	33 c0                	xor    %eax,%eax
472dc4:	5f                   	pop    %edi
472dc5:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
472dcc:	5e                   	pop    %esi
472dcd:	5d                   	pop    %ebp
472dce:	c2 08 00             	ret    $0x8
472dd1:	55                   	push   %ebp
472dd2:	8b ec                	mov    %esp,%ebp
472dd4:	53                   	push   %ebx
472dd5:	8b 5d 08             	mov    0x8(%ebp),%ebx
472dd8:	56                   	push   %esi
472dd9:	57                   	push   %edi
472dda:	8b 43 08             	mov    0x8(%ebx),%eax
472ddd:	89 45 08             	mov    %eax,0x8(%ebp)
472de0:	8b 43 04             	mov    0x4(%ebx),%eax
472de3:	8b 08                	mov    (%eax),%ecx
472de5:	e8 b2 6e f9 ff       	call   0x409c9c
472dea:	33 f6                	xor    %esi,%esi
472dec:	8b f8                	mov    %eax,%edi
472dee:	46                   	inc    %esi
472def:	39 75 08             	cmp    %esi,0x8(%ebp)
472df2:	76 13                	jbe    0x472e07
472df4:	8b 4b 04             	mov    0x4(%ebx),%ecx
472df7:	8b 0c b1             	mov    (%ecx,%esi,4),%ecx
472dfa:	e8 9d 6e f9 ff       	call   0x409c9c
472dff:	0b f8                	or     %eax,%edi
472e01:	46                   	inc    %esi
472e02:	3b 75 08             	cmp    0x8(%ebp),%esi
472e05:	72 ed                	jb     0x472df4
472e07:	8b 75 0c             	mov    0xc(%ebp),%esi
472e0a:	8b ce                	mov    %esi,%ecx
472e0c:	e8 0f 6c f9 ff       	call   0x409a20
472e11:	89 3e                	mov    %edi,(%esi)
472e13:	33 c0                	xor    %eax,%eax
472e15:	5f                   	pop    %edi
472e16:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
472e1d:	5e                   	pop    %esi
472e1e:	5b                   	pop    %ebx
472e1f:	5d                   	pop    %ebp
472e20:	c2 08 00             	ret    $0x8