415b1f:	8b 10                	mov    (%eax),%edx
415b21:	ff 92 84 00 00 00    	call   *0x84(%edx)
415b27:	8b 43 10             	mov    0x10(%ebx),%eax
415b2a:	89 7c f0 04          	mov    %edi,0x4(%eax,%esi,8)
415b2e:	8b c3                	mov    %ebx,%eax
415b30:	8b 10                	mov    (%eax),%edx
415b32:	ff 92 80 00 00 00    	call   *0x80(%edx)
415b38:	5f                   	pop    %edi
415b39:	5e                   	pop    %esi
415b3a:	5b                   	pop    %ebx
415b3b:	c3                   	ret
415b3c:	55                   	push   %ebp
415b3d:	8b ec                	mov    %esp,%ebp
415b3f:	83 c4 f0             	add    $0xfffffff0,%esp
415b42:	53                   	push   %ebx
415b43:	56                   	push   %esi
415b44:	89 4d f4             	mov    %ecx,-0xc(%ebp)
415b47:	89 55 f8             	mov    %edx,-0x8(%ebp)
415b4a:	89 45 fc             	mov    %eax,-0x4(%ebp)
415b4d:	8b 5d f8             	mov    -0x8(%ebp),%ebx
415b50:	8b 75 f4             	mov    -0xc(%ebp),%esi
415b53:	8b 45 f8             	mov    -0x8(%ebp),%eax
415b56:	03 45 f4             	add    -0xc(%ebp),%eax
415b59:	d1 e8                	shr    $1,%eax
415b5b:	89 45 f0             	mov    %eax,-0x10(%ebp)
415b5e:	eb 01                	jmp    0x415b61
415b60:	43                   	inc    %ebx
415b61:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415b64:	8b d3                	mov    %ebx,%edx
415b66:	8b 45 fc             	mov    -0x4(%ebp),%eax
415b69:	ff 55 08             	call   *0x8(%ebp)
415b6c:	85 c0                	test   %eax,%eax
415b6e:	7c f0                	jl     0x415b60
415b70:	eb 01                	jmp    0x415b73
415b72:	4e                   	dec    %esi
415b73:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415b76:	8b d6                	mov    %esi,%edx
415b78:	8b 45 fc             	mov    -0x4(%ebp),%eax
415b7b:	ff 55 08             	call   *0x8(%ebp)
415b7e:	85 c0                	test   %eax,%eax
415b80:	7f f0                	jg     0x415b72
415b82:	3b f3                	cmp    %ebx,%esi
415b84:	7c 20                	jl     0x415ba6
415b86:	8b ce                	mov    %esi,%ecx
415b88:	8b d3                	mov    %ebx,%edx
415b8a:	8b 45 fc             	mov    -0x4(%ebp),%eax
415b8d:	e8 92 fc ff ff       	call   0x415824
415b92:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
415b95:	75 05                	jne    0x415b9c
415b97:	89 75 f0             	mov    %esi,-0x10(%ebp)
415b9a:	eb 08                	jmp    0x415ba4
415b9c:	3b 75 f0             	cmp    -0x10(%ebp),%esi
415b9f:	75 03                	jne    0x415ba4
415ba1:	89 5d f0             	mov    %ebx,-0x10(%ebp)
415ba4:	43                   	inc    %ebx
415ba5:	4e                   	dec    %esi
415ba6:	3b f3                	cmp    %ebx,%esi
415ba8:	7d b7                	jge    0x415b61
415baa:	3b 75 f8             	cmp    -0x8(%ebp),%esi
415bad:	7e 11                	jle    0x415bc0
415baf:	8b 45 08             	mov    0x8(%ebp),%eax
415bb2:	50                   	push   %eax
415bb3:	8b ce                	mov    %esi,%ecx
415bb5:	8b 55 f8             	mov    -0x8(%ebp),%edx
415bb8:	8b 45 fc             	mov    -0x4(%ebp),%eax
415bbb:	e8 7c ff ff ff       	call   0x415b3c
415bc0:	89 5d f8             	mov    %ebx,-0x8(%ebp)
415bc3:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
415bc6:	7c 85                	jl     0x415b4d
415bc8:	5e                   	pop    %esi
415bc9:	5b                   	pop    %ebx
415bca:	8b e5                	mov    %ebp,%esp
415bcc:	5d                   	pop    %ebp
415bcd:	c2 04 00             	ret    $0x4
415bd0:	53                   	push   %ebx
415bd1:	56                   	push   %esi
415bd2:	8b f2                	mov    %edx,%esi
415bd4:	8b d8                	mov    %eax,%ebx
415bd6:	8b d6                	mov    %esi,%edx
415bd8:	c1 e2 03             	shl    $0x3,%edx
415bdb:	8d 43 10             	lea    0x10(%ebx),%eax
415bde:	e8 a5 ce fe ff       	call   0x402a88
415be3:	89 73 18             	mov    %esi,0x18(%ebx)
415be6:	5e                   	pop    %esi
415be7:	5b                   	pop    %ebx
415be8:	c3                   	ret
415be9:	8d 40 00             	lea    0x0(%eax),%eax
415bec:	53                   	push   %ebx
415bed:	56                   	push   %esi
415bee:	8b da                	mov    %edx,%ebx
415bf0:	8b f0                	mov    %eax,%esi
415bf2:	3a 5e 1c             	cmp    0x1c(%esi),%bl
415bf5:	74 11                	je     0x415c08
415bf7:	84 db                	test   %bl,%bl
415bf9:	74 0a                	je     0x415c05
415bfb:	8b c6                	mov    %esi,%eax
415bfd:	8b 10                	mov    (%eax),%edx
415bff:	ff 92 90 00 00 00    	call   *0x90(%edx)
415c05:	88 5e 1c             	mov    %bl,0x1c(%esi)
415c08:	5e                   	pop    %esi
415c09:	5b                   	pop    %ebx
415c0a:	c3                   	ret
415c0b:	90                   	nop
415c0c:	84 d2                	test   %dl,%dl
415c0e:	74 09                	je     0x415c19
415c10:	8b 10                	mov    (%eax),%edx
415c12:	ff 92 84 00 00 00    	call   *0x84(%edx)
415c18:	c3                   	ret
415c19:	8b 10                	mov    (%eax),%edx
415c1b:	ff 92 80 00 00 00    	call   *0x80(%edx)
415c21:	c3                   	ret
415c22:	8b c0                	mov    %eax,%eax
415c24:	53                   	push   %ebx
415c25:	56                   	push   %esi
415c26:	57                   	push   %edi
415c27:	8b fa                	mov    %edx,%edi
415c29:	8b f0                	mov    %eax,%esi
415c2b:	8b 46 10             	mov    0x10(%esi),%eax
415c2e:	8b 0c c8             	mov    (%eax,%ecx,8),%ecx
415c31:	8b 46 10             	mov    0x10(%esi),%eax
415c34:	8b 14 f8             	mov    (%eax,%edi,8),%edx
415c37:	8b c6                	mov    %esi,%eax
415c39:	8b 18                	mov    (%eax),%ebx
415c3b:	ff 53 34             	call   *0x34(%ebx)
415c3e:	5f                   	pop    %edi
415c3f:	5e                   	pop    %esi
415c40:	5b                   	pop    %ebx
415c41:	c3                   	ret
415c42:	8b c0                	mov    %eax,%eax
415c44:	ba 24 5c 41 00       	mov    $0x415c24,%edx
415c49:	8b 08                	mov    (%eax),%ecx
415c4b:	ff 91 94 00 00 00    	call   *0x94(%ecx)
415c51:	c3                   	ret
415c52:	8b c0                	mov    %eax,%eax
415c54:	53                   	push   %ebx
415c55:	56                   	push   %esi
415c56:	8b f2                	mov    %edx,%esi
415c58:	8b d8                	mov    %eax,%ebx
415c5a:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
415c5e:	75 28                	jne    0x415c88
415c60:	83 7b 14 01          	cmpl   $0x1,0x14(%ebx)
415c64:	7e 22                	jle    0x415c88
415c66:	8b c3                	mov    %ebx,%eax
415c68:	8b 10                	mov    (%eax),%edx
415c6a:	ff 92 84 00 00 00    	call   *0x84(%edx)
415c70:	56                   	push   %esi
415c71:	8b 4b 14             	mov    0x14(%ebx),%ecx
415c74:	49                   	dec    %ecx
415c75:	33 d2                	xor    %edx,%edx
415c77:	8b c3                	mov    %ebx,%eax
415c79:	e8 be fe ff ff       	call   0x415b3c
415c7e:	8b c3                	mov    %ebx,%eax
415c80:	8b 10                	mov    (%eax),%edx
415c82:	ff 92 80 00 00 00    	call   *0x80(%edx)
415c88:	5e                   	pop    %esi
415c89:	5b                   	pop    %ebx
415c8a:	c3                   	ret
415c8b:	90                   	nop
415c8c:	80 78 1e 00          	cmpb   $0x0,0x1e(%eax)
415c90:	74 0a                	je     0x415c9c
415c92:	8b c2                	mov    %edx,%eax
415c94:	8b d1                	mov    %ecx,%edx
415c96:	e8 f9 25 ff ff       	call   0x408294
415c9b:	c3                   	ret
415c9c:	8b c2                	mov    %edx,%eax
415c9e:	8b d1                	mov    %ecx,%edx
415ca0:	e8 27 26 ff ff       	call   0x4082cc
415ca5:	c3                   	ret
415ca6:	8b c0                	mov    %eax,%eax
415ca8:	83 c4 f8             	add    $0xfffffff8,%esp
415cab:	6a 00                	push   $0x0
415cad:	6a 00                	push   $0x0
415caf:	b2 01                	mov    $0x1,%dl
415cb1:	8b 08                	mov    (%eax),%ecx
415cb3:	ff 51 18             	call   *0x18(%ecx)
415cb6:	89 04 24             	mov    %eax,(%esp)
415cb9:	89 54 24 04          	mov    %edx,0x4(%esp)
415cbd:	8b 04 24             	mov    (%esp),%eax
415cc0:	8b 54 24 04          	mov    0x4(%esp),%edx
415cc4:	59                   	pop    %ecx
415cc5:	5a                   	pop    %edx
415cc6:	c3                   	ret
415cc7:	90                   	nop
415cc8:	55                   	push   %ebp
415cc9:	8b ec                	mov    %esp,%ebp
415ccb:	ff 75 0c             	push   0xc(%ebp)
415cce:	ff 75 08             	push   0x8(%ebp)
415cd1:	33 d2                	xor    %edx,%edx
415cd3:	8b 08                	mov    (%eax),%ecx
415cd5:	ff 51 18             	call   *0x18(%ecx)
415cd8:	5d                   	pop    %ebp
415cd9:	c2 08 00             	ret    $0x8
415cdc:	53                   	push   %ebx
415cdd:	83 c4 f0             	add    $0xfffffff0,%esp
415ce0:	8b d8                	mov    %eax,%ebx
415ce2:	6a 00                	push   $0x0
415ce4:	6a 00                	push   $0x0
415ce6:	b2 01                	mov    $0x1,%dl
415ce8:	8b c3                	mov    %ebx,%eax
415cea:	8b 08                	mov    (%eax),%ecx
415cec:	ff 51 18             	call   *0x18(%ecx)
415cef:	89 44 24 08          	mov    %eax,0x8(%esp)
415cf3:	89 54 24 0c          	mov    %edx,0xc(%esp)
415cf7:	6a 00                	push   $0x0
415cf9:	6a 00                	push   $0x0
415cfb:	b2 02                	mov    $0x2,%dl
415cfd:	8b c3                	mov    %ebx,%eax
415cff:	8b 08                	mov    (%eax),%ecx
415d01:	ff 51 18             	call   *0x18(%ecx)
415d04:	89 04 24             	mov    %eax,(%esp)
415d07:	89 54 24 04          	mov    %edx,0x4(%esp)
415d0b:	ff 74 24 0c          	push   0xc(%esp)
415d0f:	ff 74 24 0c          	push   0xc(%esp)
415d13:	33 d2                	xor    %edx,%edx
415d15:	8b c3                	mov    %ebx,%eax
415d17:	8b 08                	mov    (%eax),%ecx
415d19:	ff 51 18             	call   *0x18(%ecx)
415d1c:	8b 04 24             	mov    (%esp),%eax
415d1f:	8b 54 24 04          	mov    0x4(%esp),%edx
415d23:	83 c4 10             	add    $0x10,%esp
415d26:	5b                   	pop    %ebx
415d27:	c3                   	ret
415d28:	c3                   	ret
415d29:	8d 40 00             	lea    0x0(%eax),%eax
415d2c:	55                   	push   %ebp
415d2d:	8b ec                	mov    %esp,%ebp
415d2f:	ff 75 0c             	push   0xc(%ebp)
415d32:	ff 75 08             	push   0x8(%ebp)
415d35:	8b 10                	mov    (%eax),%edx
415d37:	ff 52 08             	call   *0x8(%edx)
415d3a:	5d                   	pop    %ebp
415d3b:	c2 08 00             	ret    $0x8
415d3e:	8b c0                	mov    %eax,%eax
415d40:	55                   	push   %ebp
415d41:	8b ec                	mov    %esp,%ebp
415d43:	8b c8                	mov    %eax,%ecx
415d45:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
415d49:	75 0b                	jne    0x415d56
415d4b:	81 7d 08 00 00 00 80 	cmpl   $0x80000000,0x8(%ebp)
415d52:	72 17                	jb     0x415d6b
415d54:	eb 02                	jmp    0x415d58
415d56:	7c 13                	jl     0x415d6b
415d58:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
415d5c:	75 0b                	jne    0x415d69
415d5e:	81 7d 08 ff ff ff 7f 	cmpl   $0x7fffffff,0x8(%ebp)
415d65:	76 1b                	jbe    0x415d82
415d67:	eb 02                	jmp    0x415d6b
415d69:	7e 17                	jle    0x415d82
415d6b:	8b 0d d4 0c 46 00    	mov    0x460cd4,%ecx
415d71:	b2 01                	mov    $0x1,%dl
415d73:	a1 10 78 40 00       	mov    0x407810,%eax
415d78:	e8 53 5d ff ff       	call   0x40bad0
415d7d:	e8 02 e2 fe ff       	call   0x403f84
415d82:	8b 45 08             	mov    0x8(%ebp),%eax
415d85:	8b d0                	mov    %eax,%edx
415d87:	8b c1                	mov    %ecx,%eax
415d89:	8b 08                	mov    (%eax),%ecx
415d8b:	ff 51 04             	call   *0x4(%ecx)
415d8e:	5d                   	pop    %ebp
415d8f:	c2 08 00             	ret    $0x8
415d92:	8b c0                	mov    %eax,%eax
415d94:	55                   	push   %ebp
415d95:	8b ec                	mov    %esp,%ebp
415d97:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
415d9d:	8d 95 f8 fe ff ff    	lea    -0x108(%ebp),%edx
415da3:	8b 45 08             	mov    0x8(%ebp),%eax
415da6:	8b 40 fc             	mov    -0x4(%eax),%eax
415da9:	8b 00                	mov    (%eax),%eax
415dab:	e8 9c d9 fe ff       	call   0x40374c
415db0:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
415db6:	89 45 f8             	mov    %eax,-0x8(%ebp)
415db9:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
415dbd:	8d 45 f8             	lea    -0x8(%ebp),%eax
415dc0:	50                   	push   %eax
415dc1:	6a 00                	push   $0x0
415dc3:	8b 0d 10 0d 46 00    	mov    0x460d10,%ecx
415dc9:	b2 01                	mov    $0x1,%dl
415dcb:	a1 14 17 41 00       	mov    0x411714,%eax
415dd0:	e8 37 5d ff ff       	call   0x40bb0c
415dd5:	e8 aa e1 fe ff       	call   0x403f84
415dda:	8b e5                	mov    %ebp,%esp
415ddc:	5d                   	pop    %ebp
415ddd:	c3                   	ret
415dde:	8b c0                	mov    %eax,%eax
415de0:	55                   	push   %ebp
415de1:	8b ec                	mov    %esp,%ebp
415de3:	83 c4 e0             	add    $0xffffffe0,%esp
415de6:	53                   	push   %ebx
415de7:	56                   	push   %esi
415de8:	66 89 4d e6          	mov    %cx,-0x1a(%ebp)
415dec:	8b f2                	mov    %edx,%esi
415dee:	89 45 fc             	mov    %eax,-0x4(%ebp)
415df1:	8d 5d e0             	lea    -0x20(%ebp),%ebx
415df4:	8b 45 fc             	mov    -0x4(%ebp),%eax
415df7:	89 45 f4             	mov    %eax,-0xc(%ebp)
415dfa:	8b 00                	mov    (%eax),%eax
415dfc:	8b 40 18             	mov    0x18(%eax),%eax
415dff:	89 45 f0             	mov    %eax,-0x10(%ebp)
415e02:	8b 45 fc             	mov    -0x4(%ebp),%eax
415e05:	e8 36 d9 fe ff       	call   0x403740
415e0a:	89 03                	mov    %eax,(%ebx)
415e0c:	eb 09                	jmp    0x415e17
415e0e:	8b 03                	mov    (%ebx),%eax
415e10:	e8 73 d9 fe ff       	call   0x403788
415e15:	89 03                	mov    %eax,(%ebx)
415e17:	83 3b 00             	cmpl   $0x0,(%ebx)
415e1a:	74 0a                	je     0x415e26
415e1c:	8b 03                	mov    (%ebx),%eax
415e1e:	3b 05 a0 21 41 00    	cmp    0x4121a0,%eax
415e24:	75 e8                	jne    0x415e0e
415e26:	83 3b 00             	cmpl   $0x0,(%ebx)
415e29:	75 07                	jne    0x415e32
415e2b:	55                   	push   %ebp
415e2c:	e8 63 ff ff ff       	call   0x415d94
415e31:	59                   	pop    %ecx
415e32:	89 5d ec             	mov    %ebx,-0x14(%ebp)
415e35:	8b 03                	mov    (%ebx),%eax
415e37:	8b 40 18             	mov    0x18(%eax),%eax
415e3a:	89 45 e8             	mov    %eax,-0x18(%ebp)
415e3d:	8b 45 f0             	mov    -0x10(%ebp),%eax
415e40:	3b 45 e8             	cmp    -0x18(%ebp),%eax
415e43:	75 07                	jne    0x415e4c
415e45:	55                   	push   %ebp
415e46:	e8 49 ff ff ff       	call   0x415d94
415e4b:	59                   	pop    %ecx
415e4c:	8b c6                	mov    %esi,%eax
415e4e:	99                   	cltd
415e4f:	52                   	push   %edx
415e50:	50                   	push   %eax
415e51:	8a 55 e6             	mov    -0x1a(%ebp),%dl
415e54:	8b 45 fc             	mov    -0x4(%ebp),%eax
415e57:	8b 08                	mov    (%eax),%ecx
415e59:	ff 51 18             	call   *0x18(%ecx)
415e5c:	5e                   	pop    %esi
415e5d:	5b                   	pop    %ebx
415e5e:	8b e5                	mov    %ebp,%esp
415e60:	5d                   	pop    %ebp
415e61:	c3                   	ret
415e62:	8b c0                	mov    %eax,%eax
415e64:	55                   	push   %ebp
415e65:	8b ec                	mov    %esp,%ebp
415e67:	83 c4 f8             	add    $0xfffffff8,%esp
415e6a:	53                   	push   %ebx
415e6b:	56                   	push   %esi
415e6c:	8b da                	mov    %edx,%ebx
415e6e:	8b f0                	mov    %eax,%esi
415e70:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
415e74:	75 0b                	jne    0x415e81
415e76:	81 7d 08 00 00 00 80 	cmpl   $0x80000000,0x8(%ebp)
415e7d:	72 17                	jb     0x415e96