408c78:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
408c7c:	0f 86 6e 05 00 00    	jbe    0x4091f0
408c82:	8d 55 cc             	lea    -0x34(%ebp),%edx
408c85:	52                   	push   %edx
408c86:	8b 45 f4             	mov    -0xc(%ebp),%eax
408c89:	50                   	push   %eax
408c8a:	e8 11 fe ff ff       	call   0x408aa0
408c8f:	83 c4 08             	add    $0x8,%esp
408c92:	85 c0                	test   %eax,%eax
408c94:	0f 84 56 05 00 00    	je     0x4091f0
408c9a:	c7 45 a0 00 00 00 00 	movl   $0x0,-0x60(%ebp)
408ca1:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
408ca8:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
408caf:	8d 4d dc             	lea    -0x24(%ebp),%ecx
408cb2:	51                   	push   %ecx
408cb3:	8d 55 e0             	lea    -0x20(%ebp),%edx
408cb6:	52                   	push   %edx
408cb7:	8d 45 a0             	lea    -0x60(%ebp),%eax
408cba:	50                   	push   %eax
408cbb:	e8 c0 ae ff ff       	call   0x403b80
408cc0:	8b 48 40             	mov    0x40(%eax),%ecx
408cc3:	51                   	push   %ecx
408cc4:	e8 37 f0 ff ff       	call   0x407d00
408cc9:	83 c4 10             	add    $0x10,%esp
408ccc:	85 c0                	test   %eax,%eax
408cce:	0f 84 1c 05 00 00    	je     0x4091f0
408cd4:	e8 27 c7 ff ff       	call   0x405400
408cd9:	8b 50 0c             	mov    0xc(%eax),%edx
408cdc:	89 55 e8             	mov    %edx,-0x18(%ebp)
408cdf:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
408ce3:	75 29                	jne    0x408d0e
408ce5:	e8 16 c7 ff ff       	call   0x405400
408cea:	8b 40 14             	mov    0x14(%eax),%eax
408ced:	33 c9                	xor    %ecx,%ecx
408cef:	89 45 80             	mov    %eax,-0x80(%ebp)
408cf2:	89 4d 84             	mov    %ecx,-0x7c(%ebp)
408cf5:	8b 55 d0             	mov    -0x30(%ebp),%edx
408cf8:	3b 55 84             	cmp    -0x7c(%ebp),%edx
408cfb:	7f 11                	jg     0x408d0e
408cfd:	7c 08                	jl     0x408d07
408cff:	8b 45 cc             	mov    -0x34(%ebp),%eax
408d02:	3b 45 80             	cmp    -0x80(%ebp),%eax
408d05:	73 07                	jae    0x408d0e
408d07:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
408d0e:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
408d12:	75 35                	jne    0x408d49
408d14:	e8 e7 c6 ff ff       	call   0x405400
408d19:	8b 48 10             	mov    0x10(%eax),%ecx
408d1c:	33 d2                	xor    %edx,%edx
408d1e:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
408d24:	89 95 7c ff ff ff    	mov    %edx,-0x84(%ebp)
408d2a:	8b 45 d0             	mov    -0x30(%ebp),%eax
408d2d:	3b 85 7c ff ff ff    	cmp    -0x84(%ebp),%eax
408d33:	7f 14                	jg     0x408d49
408d35:	7c 0b                	jl     0x408d42
408d37:	8b 4d cc             	mov    -0x34(%ebp),%ecx
408d3a:	3b 8d 78 ff ff ff    	cmp    -0x88(%ebp),%ecx
408d40:	73 07                	jae    0x408d49
408d42:	c7 45 e8 02 00 00 00 	movl   $0x2,-0x18(%ebp)
408d49:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
408d50:	c7 45 b4 20 00 00 00 	movl   $0x20,-0x4c(%ebp)
408d57:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
408d5e:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
408d62:	0f 85 c4 00 00 00    	jne    0x408e2c
408d68:	8b 55 08             	mov    0x8(%ebp),%edx
408d6b:	52                   	push   %edx
408d6c:	e8 df c9 ff ff       	call   0x405750
408d71:	83 c4 04             	add    $0x4,%esp
408d74:	89 45 bc             	mov    %eax,-0x44(%ebp)
408d77:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
408d7b:	74 7f                	je     0x408dfc
408d7d:	6a 04                	push   $0x4
408d7f:	68 78 60 41 00       	push   $0x416078
408d84:	8b 45 08             	mov    0x8(%ebp),%eax
408d87:	50                   	push   %eax
408d88:	e8 33 dc ff ff       	call   0x4069c0
408d8d:	83 c4 0c             	add    $0xc,%esp
408d90:	85 c0                	test   %eax,%eax
408d92:	75 09                	jne    0x408d9d
408d94:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
408d9b:	eb 5f                	jmp    0x408dfc
408d9d:	8b 4d 08             	mov    0x8(%ebp),%ecx
408da0:	51                   	push   %ecx
408da1:	e8 ba dc ff ff       	call   0x406a60
408da6:	83 c4 04             	add    $0x4,%esp
408da9:	83 f8 03             	cmp    $0x3,%eax
408dac:	7e 4e                	jle    0x408dfc
408dae:	6a 03                	push   $0x3
408db0:	e8 4b dc ff ff       	call   0x406a00
408db5:	83 c4 04             	add    $0x4,%esp
408db8:	89 45 c0             	mov    %eax,-0x40(%ebp)
408dbb:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
408dbf:	74 3b                	je     0x408dfc
408dc1:	6a 06                	push   $0x6
408dc3:	8b 55 08             	mov    0x8(%ebp),%edx
408dc6:	52                   	push   %edx
408dc7:	8b 45 c0             	mov    -0x40(%ebp),%eax
408dca:	50                   	push   %eax
408dcb:	e8 d0 db ff ff       	call   0x4069a0
408dd0:	83 c4 0c             	add    $0xc,%esp
408dd3:	8b 4d c0             	mov    -0x40(%ebp),%ecx
408dd6:	51                   	push   %ecx
408dd7:	e8 e4 97 ff ff       	call   0x4025c0
408ddc:	8b 90 f0 00 00 00    	mov    0xf0(%eax),%edx
408de2:	ff d2                	call   *%edx
408de4:	83 f8 04             	cmp    $0x4,%eax
408de7:	75 07                	jne    0x408df0
408de9:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
408df0:	8b 45 c0             	mov    -0x40(%ebp),%eax
408df3:	50                   	push   %eax
408df4:	e8 b7 da ff ff       	call   0x4068b0
408df9:	83 c4 04             	add    $0x4,%esp
408dfc:	8d 4d c8             	lea    -0x38(%ebp),%ecx
408dff:	51                   	push   %ecx
408e00:	8b 55 dc             	mov    -0x24(%ebp),%edx
408e03:	52                   	push   %edx
408e04:	8b 45 e0             	mov    -0x20(%ebp),%eax
408e07:	50                   	push   %eax
408e08:	8b 4d bc             	mov    -0x44(%ebp),%ecx
408e0b:	51                   	push   %ecx
408e0c:	8b 55 d0             	mov    -0x30(%ebp),%edx
408e0f:	52                   	push   %edx
408e10:	8b 45 cc             	mov    -0x34(%ebp),%eax
408e13:	50                   	push   %eax
408e14:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408e17:	51                   	push   %ecx
408e18:	e8 03 f7 ff ff       	call   0x408520
408e1d:	83 c4 1c             	add    $0x1c,%esp
408e20:	89 45 b8             	mov    %eax,-0x48(%ebp)
408e23:	c7 45 b4 60 00 00 00 	movl   $0x60,-0x4c(%ebp)
408e2a:	eb 54                	jmp    0x408e80
408e2c:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
408e30:	75 25                	jne    0x408e57
408e32:	8d 55 c8             	lea    -0x38(%ebp),%edx
408e35:	52                   	push   %edx
408e36:	8b 45 dc             	mov    -0x24(%ebp),%eax
408e39:	50                   	push   %eax
408e3a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
408e3d:	51                   	push   %ecx
408e3e:	8b 55 d0             	mov    -0x30(%ebp),%edx
408e41:	52                   	push   %edx
408e42:	8b 45 cc             	mov    -0x34(%ebp),%eax
408e45:	50                   	push   %eax
408e46:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408e49:	51                   	push   %ecx
408e4a:	e8 f1 f8 ff ff       	call   0x408740
408e4f:	83 c4 18             	add    $0x18,%esp
408e52:	89 45 b8             	mov    %eax,-0x48(%ebp)
408e55:	eb 29                	jmp    0x408e80
408e57:	83 7d e8 02          	cmpl   $0x2,-0x18(%ebp)
408e5b:	75 23                	jne    0x408e80
408e5d:	8d 55 c8             	lea    -0x38(%ebp),%edx
408e60:	52                   	push   %edx
408e61:	8b 45 dc             	mov    -0x24(%ebp),%eax
408e64:	50                   	push   %eax
408e65:	8b 4d e0             	mov    -0x20(%ebp),%ecx
408e68:	51                   	push   %ecx
408e69:	8b 55 d0             	mov    -0x30(%ebp),%edx
408e6c:	52                   	push   %edx
408e6d:	8b 45 cc             	mov    -0x34(%ebp),%eax
408e70:	50                   	push   %eax
408e71:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408e74:	51                   	push   %ecx
408e75:	e8 66 f9 ff ff       	call   0x4087e0
408e7a:	83 c4 18             	add    $0x18,%esp
408e7d:	89 45 b8             	mov    %eax,-0x48(%ebp)
408e80:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
408e84:	0f 84 32 03 00 00    	je     0x4091bc
408e8a:	8d 55 b0             	lea    -0x50(%ebp),%edx
408e8d:	52                   	push   %edx
408e8e:	8b 45 08             	mov    0x8(%ebp),%eax
408e91:	50                   	push   %eax
408e92:	e8 b9 e7 ff ff       	call   0x407650
408e97:	83 c4 08             	add    $0x8,%esp
408e9a:	85 c0                	test   %eax,%eax
408e9c:	0f 84 0e 03 00 00    	je     0x4091b0
408ea2:	8b 4d b0             	mov    -0x50(%ebp),%ecx
408ea5:	51                   	push   %ecx
408ea6:	e8 b5 db ff ff       	call   0x406a60
408eab:	83 c4 04             	add    $0x4,%esp
408eae:	89 45 9c             	mov    %eax,-0x64(%ebp)
408eb1:	8b 55 9c             	mov    -0x64(%ebp),%edx
408eb4:	d1 e2                	shl    $1,%edx
408eb6:	89 55 98             	mov    %edx,-0x68(%ebp)
408eb9:	e8 c2 ac ff ff       	call   0x403b80
408ebe:	8b 40 18             	mov    0x18(%eax),%eax
408ec1:	8b 4d 98             	mov    -0x68(%ebp),%ecx
408ec4:	8d 54 08 08          	lea    0x8(%eax,%ecx,1),%edx
408ec8:	89 55 d8             	mov    %edx,-0x28(%ebp)
408ecb:	8b 45 d8             	mov    -0x28(%ebp),%eax
408ece:	50                   	push   %eax
408ecf:	e8 ac d9 ff ff       	call   0x406880
408ed4:	83 c4 04             	add    $0x4,%esp
408ed7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408eda:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
408ede:	0f 84 cc 02 00 00    	je     0x4091b0
408ee4:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
408eeb:	6a 04                	push   $0x4
408eed:	e8 8e ac ff ff       	call   0x403b80
408ef2:	83 c0 18             	add    $0x18,%eax
408ef5:	50                   	push   %eax
408ef6:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
408ef9:	51                   	push   %ecx
408efa:	e8 a1 da ff ff       	call   0x4069a0
408eff:	83 c4 0c             	add    $0xc,%esp
408f02:	8b 55 ec             	mov    -0x14(%ebp),%edx
408f05:	83 c2 04             	add    $0x4,%edx
408f08:	89 55 ec             	mov    %edx,-0x14(%ebp)
408f0b:	e8 70 ac ff ff       	call   0x403b80
408f10:	8b 40 18             	mov    0x18(%eax),%eax
408f13:	50                   	push   %eax
408f14:	e8 67 ac ff ff       	call   0x403b80
408f19:	8b 48 1c             	mov    0x1c(%eax),%ecx
408f1c:	51                   	push   %ecx
408f1d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
408f20:	03 55 ec             	add    -0x14(%ebp),%edx
408f23:	52                   	push   %edx
408f24:	e8 77 da ff ff       	call   0x4069a0
408f29:	83 c4 0c             	add    $0xc,%esp
408f2c:	e8 4f ac ff ff       	call   0x403b80
408f31:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408f34:	03 48 18             	add    0x18(%eax),%ecx
408f37:	89 4d ec             	mov    %ecx,-0x14(%ebp)
408f3a:	6a 04                	push   $0x4
408f3c:	8d 55 9c             	lea    -0x64(%ebp),%edx
408f3f:	52                   	push   %edx
408f40:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408f43:	03 45 ec             	add    -0x14(%ebp),%eax
408f46:	50                   	push   %eax
408f47:	e8 54 da ff ff       	call   0x4069a0
408f4c:	83 c4 0c             	add    $0xc,%esp
408f4f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408f52:	83 c1 04             	add    $0x4,%ecx
408f55:	89 4d ec             	mov    %ecx,-0x14(%ebp)
408f58:	8b 55 98             	mov    -0x68(%ebp),%edx
408f5b:	52                   	push   %edx
408f5c:	8b 45 b0             	mov    -0x50(%ebp),%eax
408f5f:	50                   	push   %eax
408f60:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
408f63:	03 4d ec             	add    -0x14(%ebp),%ecx
408f66:	51                   	push   %ecx
408f67:	e8 34 da ff ff       	call   0x4069a0
408f6c:	83 c4 0c             	add    $0xc,%esp
408f6f:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%ebp)
408f76:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%ebp)
408f7d:	8d 55 a4             	lea    -0x5c(%ebp),%edx
408f80:	52                   	push   %edx
408f81:	8d 45 a8             	lea    -0x58(%ebp),%eax
408f84:	50                   	push   %eax
408f85:	8b 4d d8             	mov    -0x28(%ebp),%ecx
408f88:	51                   	push   %ecx
408f89:	8b 55 e4             	mov    -0x1c(%ebp),%edx
408f8c:	52                   	push   %edx
408f8d:	8b 45 dc             	mov    -0x24(%ebp),%eax
408f90:	50                   	push   %eax
408f91:	8b 4d e0             	mov    -0x20(%ebp),%ecx
408f94:	51                   	push   %ecx
408f95:	e8 36 e9 ff ff       	call   0x4078d0
408f9a:	83 c4 18             	add    $0x18,%esp
408f9d:	85 c0                	test   %eax,%eax
408f9f:	0f 84 ff 01 00 00    	je     0x4091a4
408fa5:	8b 55 d8             	mov    -0x28(%ebp),%edx
408fa8:	8b 45 b4             	mov    -0x4c(%ebp),%eax
408fab:	8d 8c 10 c4 00 00 00 	lea    0xc4(%eax,%edx,1),%ecx
408fb2:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
408fb5:	8b 55 94             	mov    -0x6c(%ebp),%edx
408fb8:	52                   	push   %edx
408fb9:	e8 c2 d8 ff ff       	call   0x406880
408fbe:	83 c4 04             	add    $0x4,%esp
408fc1:	89 45 f8             	mov    %eax,-0x8(%ebp)
408fc4:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
408fc8:	0f 84 be 01 00 00    	je     0x40918c
408fce:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
408fd5:	8b 45 d8             	mov    -0x28(%ebp),%eax
408fd8:	50                   	push   %eax
408fd9:	8b 4d a8             	mov    -0x58(%ebp),%ecx
408fdc:	51                   	push   %ecx
408fdd:	8b 55 f8             	mov    -0x8(%ebp),%edx
408fe0:	52                   	push   %edx
408fe1:	e8 ba d9 ff ff       	call   0x4069a0
408fe6:	83 c4 0c             	add    $0xc,%esp
408fe9:	8b 45 fc             	mov    -0x4(%ebp),%eax
408fec:	03 45 d8             	add    -0x28(%ebp),%eax
408fef:	89 45 fc             	mov    %eax,-0x4(%ebp)
408ff2:	6a 04                	push   $0x4
408ff4:	8d 4d d8             	lea    -0x28(%ebp),%ecx
408ff7:	51                   	push   %ecx
408ff8:	8b 55 f8             	mov    -0x8(%ebp),%edx
408ffb:	03 55 fc             	add    -0x4(%ebp),%edx
408ffe:	52                   	push   %edx
408fff:	e8 9c d9 ff ff       	call   0x4069a0
409004:	83 c4 0c             	add    $0xc,%esp
409007:	8b 45 fc             	mov    -0x4(%ebp),%eax
40900a:	83 c0 04             	add    $0x4,%eax
40900d:	89 45 fc             	mov    %eax,-0x4(%ebp)
409010:	6a 20                	push   $0x20
409012:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
409015:	51                   	push   %ecx
409016:	8b 55 f8             	mov    -0x8(%ebp),%edx
409019:	03 55 fc             	add    -0x4(%ebp),%edx
40901c:	52                   	push   %edx
40901d:	e8 7e d9 ff ff       	call   0x4069a0
409022:	83 c4 0c             	add    $0xc,%esp
409025:	8b 45 fc             	mov    -0x4(%ebp),%eax
409028:	83 c0 20             	add    $0x20,%eax
40902b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40902e:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
409031:	51                   	push   %ecx
409032:	8b 55 c8             	mov    -0x38(%ebp),%edx
409035:	52                   	push   %edx
409036:	8b 45 f8             	mov    -0x8(%ebp),%eax
409039:	03 45 fc             	add    -0x4(%ebp),%eax
40903c:	50                   	push   %eax
40903d:	e8 5e d9 ff ff       	call   0x4069a0
409042:	83 c4 0c             	add    $0xc,%esp
409045:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409048:	03 4d b4             	add    -0x4c(%ebp),%ecx
40904b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40904e:	6a 08                	push   $0x8
409050:	8b 55 dc             	mov    -0x24(%ebp),%edx
409053:	52                   	push   %edx
409054:	8b 45 f8             	mov    -0x8(%ebp),%eax
409057:	03 45 fc             	add    -0x4(%ebp),%eax
40905a:	50                   	push   %eax
40905b:	e8 40 d9 ff ff       	call   0x4069a0
409060:	83 c4 0c             	add    $0xc,%esp
409063:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409066:	83 c1 08             	add    $0x8,%ecx
409069:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40906c:	6a 04                	push   $0x4
40906e:	8d 55 e8             	lea    -0x18(%ebp),%edx
409071:	52                   	push   %edx
409072:	8b 45 f8             	mov    -0x8(%ebp),%eax
409075:	03 45 fc             	add    -0x4(%ebp),%eax
409078:	50                   	push   %eax
409079:	e8 22 d9 ff ff       	call   0x4069a0
40907e:	83 c4 0c             	add    $0xc,%esp
409081:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409084:	83 c1 04             	add    $0x4,%ecx
409087:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40908a:	6a 04                	push   $0x4
40908c:	e8 6f c3 ff ff       	call   0x405400
409091:	83 c0 10             	add    $0x10,%eax
409094:	50                   	push   %eax
409095:	8b 55 f8             	mov    -0x8(%ebp),%edx
409098:	03 55 fc             	add    -0x4(%ebp),%edx
40909b:	52                   	push   %edx
40909c:	e8 ff d8 ff ff       	call   0x4069a0
4090a1:	83 c4 0c             	add    $0xc,%esp
4090a4:	8b 45 fc             	mov    -0x4(%ebp),%eax