415b90:	53                   	push   %ebx
415b91:	56                   	push   %esi
415b92:	57                   	push   %edi
415b93:	55                   	push   %ebp
415b94:	51                   	push   %ecx
415b95:	8b f9                	mov    %ecx,%edi
415b97:	8b f2                	mov    %edx,%esi
415b99:	8b d8                	mov    %eax,%ebx
415b9b:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
415b9f:	75 08                	jne    0x415ba9
415ba1:	8b 43 14             	mov    0x14(%ebx),%eax
415ba4:	89 04 24             	mov    %eax,(%esp)
415ba7:	eb 2e                	jmp    0x415bd7
415ba9:	8b cc                	mov    %esp,%ecx
415bab:	8b d6                	mov    %esi,%edx
415bad:	8b c3                	mov    %ebx,%eax
415baf:	8b 28                	mov    (%eax),%ebp
415bb1:	ff 95 8c 00 00 00    	call   *0x8c(%ebp)
415bb7:	84 c0                	test   %al,%al
415bb9:	74 1c                	je     0x415bd7
415bbb:	8a 43 1d             	mov    0x1d(%ebx),%al
415bbe:	2c 01                	sub    $0x1,%al
415bc0:	72 26                	jb     0x415be8
415bc2:	fe c8                	dec    %al
415bc4:	74 02                	je     0x415bc8
415bc6:	eb 0f                	jmp    0x415bd7
415bc8:	8b 15 e8 da 46 00    	mov    0x46dae8,%edx
415bce:	33 c9                	xor    %ecx,%ecx
415bd0:	8b c3                	mov    %ebx,%eax
415bd2:	e8 69 f5 ff ff       	call   0x415140
415bd7:	57                   	push   %edi
415bd8:	8b ce                	mov    %esi,%ecx
415bda:	8b 54 24 04          	mov    0x4(%esp),%edx
415bde:	8b c3                	mov    %ebx,%eax
415be0:	8b 18                	mov    (%eax),%ebx
415be2:	ff 93 88 00 00 00    	call   *0x88(%ebx)
415be8:	8b 04 24             	mov    (%esp),%eax
415beb:	5a                   	pop    %edx
415bec:	5d                   	pop    %ebp
415bed:	5f                   	pop    %edi
415bee:	5e                   	pop    %esi
415bef:	5b                   	pop    %ebx
415bf0:	c3                   	ret
415bf1:	8d 40 00             	lea    0x0(%eax),%eax
415bf4:	53                   	push   %ebx
415bf5:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
415bf9:	75 11                	jne    0x415c0c
415bfb:	66 83 78 22 00       	cmpw   $0x0,0x22(%eax)
415c00:	74 0a                	je     0x415c0c
415c02:	8b d8                	mov    %eax,%ebx
415c04:	8b d0                	mov    %eax,%edx
415c06:	8b 43 24             	mov    0x24(%ebx),%eax
415c09:	ff 53 20             	call   *0x20(%ebx)
415c0c:	5b                   	pop    %ebx
415c0d:	c3                   	ret
415c0e:	8b c0                	mov    %eax,%eax
415c10:	53                   	push   %ebx
415c11:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
415c15:	75 11                	jne    0x415c28
415c17:	66 83 78 2a 00       	cmpw   $0x0,0x2a(%eax)
415c1c:	74 0a                	je     0x415c28
415c1e:	8b d8                	mov    %eax,%ebx
415c20:	8b d0                	mov    %eax,%edx
415c22:	8b 43 2c             	mov    0x2c(%ebx),%eax
415c25:	ff 53 28             	call   *0x28(%ebx)
415c28:	5b                   	pop    %ebx
415c29:	c3                   	ret
415c2a:	8b c0                	mov    %eax,%eax
415c2c:	53                   	push   %ebx
415c2d:	8b d8                	mov    %eax,%ebx
415c2f:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
415c33:	74 33                	je     0x415c68
415c35:	8b c3                	mov    %ebx,%eax
415c37:	8b 10                	mov    (%eax),%edx
415c39:	ff 92 84 00 00 00    	call   *0x84(%edx)
415c3f:	8b 43 10             	mov    0x10(%ebx),%eax
415c42:	8b 4b 14             	mov    0x14(%ebx),%ecx
415c45:	8b 15 0c 1e 41 00    	mov    0x411e0c,%edx
415c4b:	e8 d0 ed fe ff       	call   0x404a20
415c50:	33 c0                	xor    %eax,%eax
415c52:	89 43 14             	mov    %eax,0x14(%ebx)
415c55:	33 d2                	xor    %edx,%edx
415c57:	8b c3                	mov    %ebx,%eax
415c59:	8b 08                	mov    (%eax),%ecx
415c5b:	ff 51 28             	call   *0x28(%ecx)
415c5e:	8b c3                	mov    %ebx,%eax
415c60:	8b 10                	mov    (%eax),%edx
415c62:	ff 92 80 00 00 00    	call   *0x80(%edx)
415c68:	5b                   	pop    %ebx
415c69:	c3                   	ret
415c6a:	8b c0                	mov    %eax,%eax
415c6c:	53                   	push   %ebx
415c6d:	56                   	push   %esi
415c6e:	8b f2                	mov    %edx,%esi
415c70:	8b d8                	mov    %eax,%ebx
415c72:	85 f6                	test   %esi,%esi
415c74:	7c 05                	jl     0x415c7b
415c76:	3b 73 14             	cmp    0x14(%ebx),%esi
415c79:	7c 0f                	jl     0x415c8a
415c7b:	8b 15 14 dd 46 00    	mov    0x46dd14,%edx
415c81:	8b ce                	mov    %esi,%ecx
415c83:	8b c3                	mov    %ebx,%eax
415c85:	e8 b6 f4 ff ff       	call   0x415140
415c8a:	8b c3                	mov    %ebx,%eax
415c8c:	8b 10                	mov    (%eax),%edx
415c8e:	ff 92 84 00 00 00    	call   *0x84(%edx)
415c94:	8b 43 10             	mov    0x10(%ebx),%eax
415c97:	8d 04 f0             	lea    (%eax,%esi,8),%eax
415c9a:	8b 15 0c 1e 41 00    	mov    0x411e0c,%edx
415ca0:	e8 67 ee fe ff       	call   0x404b0c
415ca5:	ff 4b 14             	decl   0x14(%ebx)
415ca8:	8b 43 14             	mov    0x14(%ebx),%eax
415cab:	3b f0                	cmp    %eax,%esi
415cad:	7d 19                	jge    0x415cc8
415caf:	2b c6                	sub    %esi,%eax
415cb1:	8b c8                	mov    %eax,%ecx
415cb3:	c1 e1 03             	shl    $0x3,%ecx
415cb6:	8b 43 10             	mov    0x10(%ebx),%eax
415cb9:	8d 14 f0             	lea    (%eax,%esi,8),%edx
415cbc:	8b 43 10             	mov    0x10(%ebx),%eax
415cbf:	8d 44 f0 08          	lea    0x8(%eax,%esi,8),%eax
415cc3:	e8 f0 cb fe ff       	call   0x4028b8
415cc8:	8b c3                	mov    %ebx,%eax
415cca:	8b 10                	mov    (%eax),%edx
415ccc:	ff 92 80 00 00 00    	call   *0x80(%edx)
415cd2:	5e                   	pop    %esi
415cd3:	5b                   	pop    %ebx
415cd4:	c3                   	ret
415cd5:	8d 40 00             	lea    0x0(%eax),%eax
415cd8:	53                   	push   %ebx
415cd9:	56                   	push   %esi
415cda:	57                   	push   %edi
415cdb:	8b f9                	mov    %ecx,%edi
415cdd:	8b f2                	mov    %edx,%esi
415cdf:	8b d8                	mov    %eax,%ebx
415ce1:	85 f6                	test   %esi,%esi
415ce3:	7c 05                	jl     0x415cea
415ce5:	3b 73 14             	cmp    0x14(%ebx),%esi
415ce8:	7c 0f                	jl     0x415cf9
415cea:	8b 15 14 dd 46 00    	mov    0x46dd14,%edx
415cf0:	8b ce                	mov    %esi,%ecx
415cf2:	8b c3                	mov    %ebx,%eax
415cf4:	e8 47 f4 ff ff       	call   0x415140
415cf9:	85 ff                	test   %edi,%edi
415cfb:	7c 05                	jl     0x415d02
415cfd:	3b 7b 14             	cmp    0x14(%ebx),%edi
415d00:	7c 0f                	jl     0x415d11
415d02:	8b 15 14 dd 46 00    	mov    0x46dd14,%edx
415d08:	8b cf                	mov    %edi,%ecx
415d0a:	8b c3                	mov    %ebx,%eax
415d0c:	e8 2f f4 ff ff       	call   0x415140
415d11:	8b c3                	mov    %ebx,%eax
415d13:	8b 10                	mov    (%eax),%edx
415d15:	ff 92 84 00 00 00    	call   *0x84(%edx)
415d1b:	8b cf                	mov    %edi,%ecx
415d1d:	8b d6                	mov    %esi,%edx
415d1f:	8b c3                	mov    %ebx,%eax
415d21:	e8 0e 00 00 00       	call   0x415d34
415d26:	8b c3                	mov    %ebx,%eax
415d28:	8b 10                	mov    (%eax),%edx
415d2a:	ff 92 80 00 00 00    	call   *0x80(%edx)
415d30:	5f                   	pop    %edi
415d31:	5e                   	pop    %esi
415d32:	5b                   	pop    %ebx
415d33:	c3                   	ret
415d34:	53                   	push   %ebx
415d35:	8b 58 10             	mov    0x10(%eax),%ebx
415d38:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
415d3b:	8b 40 10             	mov    0x10(%eax),%eax
415d3e:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
415d41:	8b 0a                	mov    (%edx),%ecx
415d43:	8b 18                	mov    (%eax),%ebx
415d45:	89 1a                	mov    %ebx,(%edx)
415d47:	89 08                	mov    %ecx,(%eax)
415d49:	8b 4a 04             	mov    0x4(%edx),%ecx
415d4c:	8b 58 04             	mov    0x4(%eax),%ebx
415d4f:	89 5a 04             	mov    %ebx,0x4(%edx)
415d52:	89 48 04             	mov    %ecx,0x4(%eax)
415d55:	5b                   	pop    %ebx
415d56:	c3                   	ret
415d57:	90                   	nop
415d58:	53                   	push   %ebx
415d59:	56                   	push   %esi
415d5a:	57                   	push   %edi
415d5b:	55                   	push   %ebp
415d5c:	83 c4 f0             	add    $0xfffffff0,%esp
415d5f:	89 4c 24 04          	mov    %ecx,0x4(%esp)
415d63:	89 14 24             	mov    %edx,(%esp)
415d66:	8b f8                	mov    %eax,%edi
415d68:	c6 44 24 08 00       	movb   $0x0,0x8(%esp)
415d6d:	33 f6                	xor    %esi,%esi
415d6f:	8b 47 14             	mov    0x14(%edi),%eax
415d72:	48                   	dec    %eax
415d73:	89 44 24 0c          	mov    %eax,0xc(%esp)
415d77:	3b 74 24 0c          	cmp    0xc(%esp),%esi
415d7b:	7f 3f                	jg     0x415dbc
415d7d:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
415d81:	03 de                	add    %esi,%ebx
415d83:	d1 eb                	shr    $1,%ebx
415d85:	8b 47 10             	mov    0x10(%edi),%eax
415d88:	8b 14 d8             	mov    (%eax,%ebx,8),%edx
415d8b:	8b 0c 24             	mov    (%esp),%ecx
415d8e:	8b c7                	mov    %edi,%eax
415d90:	8b 28                	mov    (%eax),%ebp
415d92:	ff 55 34             	call   *0x34(%ebp)
415d95:	85 c0                	test   %eax,%eax
415d97:	7d 05                	jge    0x415d9e
415d99:	8d 73 01             	lea    0x1(%ebx),%esi
415d9c:	eb 18                	jmp    0x415db6
415d9e:	8b d3                	mov    %ebx,%edx
415da0:	4a                   	dec    %edx
415da1:	89 54 24 0c          	mov    %edx,0xc(%esp)
415da5:	85 c0                	test   %eax,%eax
415da7:	75 0d                	jne    0x415db6
415da9:	c6 44 24 08 01       	movb   $0x1,0x8(%esp)
415dae:	80 7f 1d 01          	cmpb   $0x1,0x1d(%edi)
415db2:	74 02                	je     0x415db6
415db4:	8b f3                	mov    %ebx,%esi
415db6:	3b 74 24 0c          	cmp    0xc(%esp),%esi
415dba:	7e c1                	jle    0x415d7d
415dbc:	8b 44 24 04          	mov    0x4(%esp),%eax
415dc0:	89 30                	mov    %esi,(%eax)
415dc2:	8a 44 24 08          	mov    0x8(%esp),%al
415dc6:	83 c4 10             	add    $0x10,%esp
415dc9:	5d                   	pop    %ebp
415dca:	5f                   	pop    %edi
415dcb:	5e                   	pop    %esi
415dcc:	5b                   	pop    %ebx
415dcd:	c3                   	ret
415dce:	8b c0                	mov    %eax,%eax
415dd0:	53                   	push   %ebx
415dd1:	56                   	push   %esi
415dd2:	57                   	push   %edi
415dd3:	8b f9                	mov    %ecx,%edi
415dd5:	8b f2                	mov    %edx,%esi
415dd7:	8b d8                	mov    %eax,%ebx
415dd9:	85 f6                	test   %esi,%esi
415ddb:	7c 05                	jl     0x415de2
415ddd:	3b 73 14             	cmp    0x14(%ebx),%esi
415de0:	7c 0f                	jl     0x415df1
415de2:	8b 15 14 dd 46 00    	mov    0x46dd14,%edx
415de8:	8b ce                	mov    %esi,%ecx
415dea:	8b c3                	mov    %ebx,%eax
415dec:	e8 4f f3 ff ff       	call   0x415140
415df1:	8b c7                	mov    %edi,%eax
415df3:	8b 53 10             	mov    0x10(%ebx),%edx
415df6:	8b 14 f2             	mov    (%edx,%esi,8),%edx
415df9:	e8 ee e1 fe ff       	call   0x403fec
415dfe:	5f                   	pop    %edi
415dff:	5e                   	pop    %esi
415e00:	5b                   	pop    %ebx
415e01:	c3                   	ret
415e02:	8b c0                	mov    %eax,%eax
415e04:	8b 40 18             	mov    0x18(%eax),%eax
415e07:	c3                   	ret
415e08:	8b 40 14             	mov    0x14(%eax),%eax
415e0b:	c3                   	ret
415e0c:	53                   	push   %ebx
415e0d:	56                   	push   %esi
415e0e:	8b f2                	mov    %edx,%esi
415e10:	8b d8                	mov    %eax,%ebx
415e12:	85 f6                	test   %esi,%esi
415e14:	7c 05                	jl     0x415e1b
415e16:	3b 73 14             	cmp    0x14(%ebx),%esi
415e19:	7c 0f                	jl     0x415e2a
415e1b:	8b 15 14 dd 46 00    	mov    0x46dd14,%edx
415e21:	8b ce                	mov    %esi,%ecx
415e23:	8b c3                	mov    %ebx,%eax
415e25:	e8 16 f3 ff ff       	call   0x415140
415e2a:	8b 43 10             	mov    0x10(%ebx),%eax
415e2d:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
415e31:	5e                   	pop    %esi
415e32:	5b                   	pop    %ebx
415e33:	c3                   	ret
415e34:	56                   	push   %esi
415e35:	8b 50 18             	mov    0x18(%eax),%edx
415e38:	83 fa 40             	cmp    $0x40,%edx
415e3b:	7e 0e                	jle    0x415e4b
415e3d:	8b f2                	mov    %edx,%esi
415e3f:	85 f6                	test   %esi,%esi
415e41:	79 03                	jns    0x415e46
415e43:	83 c6 03             	add    $0x3,%esi
415e46:	c1 fe 02             	sar    $0x2,%esi
415e49:	eb 11                	jmp    0x415e5c
415e4b:	83 fa 08             	cmp    $0x8,%edx
415e4e:	7e 07                	jle    0x415e57
415e50:	be 10 00 00 00       	mov    $0x10,%esi
415e55:	eb 05                	jmp    0x415e5c
415e57:	be 04 00 00 00       	mov    $0x4,%esi
415e5c:	03 f2                	add    %edx,%esi
415e5e:	8b d6                	mov    %esi,%edx
415e60:	8b 08                	mov    (%eax),%ecx
415e62:	ff 51 28             	call   *0x28(%ecx)
415e65:	5e                   	pop    %esi
415e66:	c3                   	ret
415e67:	90                   	nop
415e68:	53                   	push   %ebx
415e69:	56                   	push   %esi
415e6a:	51                   	push   %ecx
415e6b:	8b f2                	mov    %edx,%esi
415e6d:	8b d8                	mov    %eax,%ebx
415e6f:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
415e73:	75 0e                	jne    0x415e83
415e75:	8b d6                	mov    %esi,%edx
415e77:	8b c3                	mov    %ebx,%eax
415e79:	e8 8a f5 ff ff       	call   0x415408
415e7e:	89 04 24             	mov    %eax,(%esp)
415e81:	eb 19                	jmp    0x415e9c
415e83:	8b cc                	mov    %esp,%ecx
415e85:	8b d6                	mov    %esi,%edx
415e87:	8b c3                	mov    %ebx,%eax
415e89:	8b 18                	mov    (%eax),%ebx
415e8b:	ff 93 8c 00 00 00    	call   *0x8c(%ebx)
415e91:	84 c0                	test   %al,%al
415e93:	75 07                	jne    0x415e9c
415e95:	c7 04 24 ff ff ff ff 	movl   $0xffffffff,(%esp)
415e9c:	8b 04 24             	mov    (%esp),%eax
415e9f:	5a                   	pop    %edx
415ea0:	5e                   	pop    %esi
415ea1:	5b                   	pop    %ebx
415ea2:	c3                   	ret
415ea3:	90                   	nop
415ea4:	53                   	push   %ebx
415ea5:	56                   	push   %esi
415ea6:	8b f0                	mov    %eax,%esi
415ea8:	6a 00                	push   $0x0
415eaa:	8b c6                	mov    %esi,%eax
415eac:	8b 18                	mov    (%eax),%ebx
415eae:	ff 53 64             	call   *0x64(%ebx)
415eb1:	5e                   	pop    %esi
415eb2:	5b                   	pop    %ebx
415eb3:	c3                   	ret
415eb4:	55                   	push   %ebp
415eb5:	8b ec                	mov    %esp,%ebp
415eb7:	53                   	push   %ebx
415eb8:	56                   	push   %esi
415eb9:	57                   	push   %edi
415eba:	8b f9                	mov    %ecx,%edi
415ebc:	8b f2                	mov    %edx,%esi
415ebe:	8b d8                	mov    %eax,%ebx
415ec0:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
415ec4:	74 0f                	je     0x415ed5
415ec6:	8b 15 a8 db 46 00    	mov    0x46dba8,%edx
415ecc:	33 c9                	xor    %ecx,%ecx
415ece:	8b c3                	mov    %ebx,%eax
415ed0:	e8 6b f2 ff ff       	call   0x415140
415ed5:	85 f6                	test   %esi,%esi
415ed7:	7c 05                	jl     0x415ede
415ed9:	3b 73 14             	cmp    0x14(%ebx),%esi
415edc:	7e 0f                	jle    0x415eed