408a56:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
408a5a:	75 0c                	jne    0x408a68
408a5c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408a5f:	51                   	push   %ecx
408a60:	e8 4b de ff ff       	call   0x4068b0
408a65:	83 c4 04             	add    $0x4,%esp
408a68:	8b 55 e8             	mov    -0x18(%ebp),%edx
408a6b:	52                   	push   %edx
408a6c:	e8 3f de ff ff       	call   0x4068b0
408a71:	83 c4 04             	add    $0x4,%esp
408a74:	8b 45 f8             	mov    -0x8(%ebp),%eax
408a77:	50                   	push   %eax
408a78:	e8 33 de ff ff       	call   0x4068b0
408a7d:	83 c4 04             	add    $0x4,%esp
408a80:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408a83:	51                   	push   %ecx
408a84:	e8 27 de ff ff       	call   0x4068b0
408a89:	83 c4 04             	add    $0x4,%esp
408a8c:	8b 55 f0             	mov    -0x10(%ebp),%edx
408a8f:	52                   	push   %edx
408a90:	e8 1b de ff ff       	call   0x4068b0
408a95:	83 c4 04             	add    $0x4,%esp
408a98:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408a9b:	5e                   	pop    %esi
408a9c:	8b e5                	mov    %ebp,%esp
408a9e:	5d                   	pop    %ebp
408a9f:	c3                   	ret
408aa0:	55                   	push   %ebp
408aa1:	8b ec                	mov    %esp,%ebp
408aa3:	83 ec 20             	sub    $0x20,%esp
408aa6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
408aad:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
408ab1:	75 08                	jne    0x408abb
408ab3:	8b 45 fc             	mov    -0x4(%ebp),%eax
408ab6:	e9 df 00 00 00       	jmp    0x408b9a
408abb:	a1 84 71 41 00       	mov    0x417184,%eax
408ac0:	33 c9                	xor    %ecx,%ecx
408ac2:	8b 55 0c             	mov    0xc(%ebp),%edx
408ac5:	89 55 f8             	mov    %edx,-0x8(%ebp)
408ac8:	89 45 e0             	mov    %eax,-0x20(%ebp)
408acb:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408ace:	8b 45 f8             	mov    -0x8(%ebp),%eax
408ad1:	8b 48 04             	mov    0x4(%eax),%ecx
408ad4:	3b 4d e4             	cmp    -0x1c(%ebp),%ecx
408ad7:	0f 8c b3 00 00 00    	jl     0x408b90
408add:	7f 0e                	jg     0x408aed
408adf:	8b 55 f8             	mov    -0x8(%ebp),%edx
408ae2:	8b 02                	mov    (%edx),%eax
408ae4:	3b 45 e0             	cmp    -0x20(%ebp),%eax
408ae7:	0f 82 a3 00 00 00    	jb     0x408b90
408aed:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408af0:	8b 11                	mov    (%ecx),%edx
408af2:	83 ea 04             	sub    $0x4,%edx
408af5:	8b 41 04             	mov    0x4(%ecx),%eax
408af8:	83 d8 00             	sbb    $0x0,%eax
408afb:	89 55 e8             	mov    %edx,-0x18(%ebp)
408afe:	89 45 ec             	mov    %eax,-0x14(%ebp)
408b01:	6a 00                	push   $0x0
408b03:	6a 00                	push   $0x0
408b05:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408b08:	51                   	push   %ecx
408b09:	8b 55 e8             	mov    -0x18(%ebp),%edx
408b0c:	52                   	push   %edx
408b0d:	8b 45 08             	mov    0x8(%ebp),%eax
408b10:	50                   	push   %eax
408b11:	e8 aa 9a ff ff       	call   0x4025c0
408b16:	8b 88 e4 00 00 00    	mov    0xe4(%eax),%ecx
408b1c:	ff d1                	call   *%ecx
408b1e:	85 c0                	test   %eax,%eax
408b20:	74 6c                	je     0x408b8e
408b22:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
408b29:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
408b30:	6a 00                	push   $0x0
408b32:	8d 55 f0             	lea    -0x10(%ebp),%edx
408b35:	52                   	push   %edx
408b36:	6a 04                	push   $0x4
408b38:	8d 45 f4             	lea    -0xc(%ebp),%eax
408b3b:	50                   	push   %eax
408b3c:	8b 4d 08             	mov    0x8(%ebp),%ecx
408b3f:	51                   	push   %ecx
408b40:	e8 7b 9a ff ff       	call   0x4025c0
408b45:	8b 90 d8 00 00 00    	mov    0xd8(%eax),%edx
408b4b:	ff d2                	call   *%edx
408b4d:	85 c0                	test   %eax,%eax
408b4f:	74 3d                	je     0x408b8e
408b51:	e8 2a b0 ff ff       	call   0x403b80
408b56:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408b59:	3b 48 38             	cmp    0x38(%eax),%ecx
408b5c:	74 30                	je     0x408b8e
408b5e:	0f 57 c0             	xorps  %xmm0,%xmm0
408b61:	66 0f 13 45 e8       	movlpd %xmm0,-0x18(%ebp)
408b66:	6a 00                	push   $0x0
408b68:	6a 00                	push   $0x0
408b6a:	8b 55 ec             	mov    -0x14(%ebp),%edx
408b6d:	52                   	push   %edx
408b6e:	8b 45 e8             	mov    -0x18(%ebp),%eax
408b71:	50                   	push   %eax
408b72:	8b 4d 08             	mov    0x8(%ebp),%ecx
408b75:	51                   	push   %ecx
408b76:	e8 45 9a ff ff       	call   0x4025c0
408b7b:	8b 90 e4 00 00 00    	mov    0xe4(%eax),%edx
408b81:	ff d2                	call   *%edx
408b83:	85 c0                	test   %eax,%eax
408b85:	74 07                	je     0x408b8e
408b87:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
408b8e:	eb 07                	jmp    0x408b97
408b90:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
408b97:	8b 45 fc             	mov    -0x4(%ebp),%eax
408b9a:	8b e5                	mov    %ebp,%esp
408b9c:	5d                   	pop    %ebp
408b9d:	c3                   	ret
408b9e:	cc                   	int3
408b9f:	cc                   	int3
408ba0:	55                   	push   %ebp
408ba1:	8b ec                	mov    %esp,%ebp
408ba3:	81 ec 90 00 00 00    	sub    $0x90,%esp
408ba9:	56                   	push   %esi
408baa:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
408bb1:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
408bb5:	75 08                	jne    0x408bbf
408bb7:	8b 45 d4             	mov    -0x2c(%ebp),%eax
408bba:	e9 03 08 00 00       	jmp    0x4093c2
408bbf:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
408bc6:	8b 45 08             	mov    0x8(%ebp),%eax
408bc9:	50                   	push   %eax
408bca:	e8 f1 99 ff ff       	call   0x4025c0
408bcf:	8b 88 68 01 00 00    	mov    0x168(%eax),%ecx
408bd5:	ff d1                	call   *%ecx
408bd7:	89 45 90             	mov    %eax,-0x70(%ebp)
408bda:	6a 20                	push   $0x20
408bdc:	8b 55 08             	mov    0x8(%ebp),%edx
408bdf:	52                   	push   %edx
408be0:	e8 db 99 ff ff       	call   0x4025c0
408be5:	8b 80 6c 01 00 00    	mov    0x16c(%eax),%eax
408beb:	ff d0                	call   *%eax
408bed:	6a 00                	push   $0x0
408bef:	68 00 00 00 80       	push   $0x80000000
408bf4:	6a 03                	push   $0x3
408bf6:	6a 00                	push   $0x0
408bf8:	6a 00                	push   $0x0
408bfa:	68 00 00 01 c0       	push   $0xc0010000
408bff:	8b 4d 08             	mov    0x8(%ebp),%ecx
408c02:	51                   	push   %ecx
408c03:	e8 b8 99 ff ff       	call   0x4025c0
408c08:	8b 90 d0 00 00 00    	mov    0xd0(%eax),%edx
408c0e:	ff d2                	call   *%edx
408c10:	89 45 f4             	mov    %eax,-0xc(%ebp)
408c13:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%ebp)
408c17:	75 2c                	jne    0x408c45
408c19:	e8 a2 99 ff ff       	call   0x4025c0
408c1e:	8b 80 7c 01 00 00    	mov    0x17c(%eax),%eax
408c24:	ff d0                	call   *%eax
408c26:	83 f8 20             	cmp    $0x20,%eax
408c29:	75 1a                	jne    0x408c45
408c2b:	e8 d0 c7 ff ff       	call   0x405400
408c30:	83 b8 98 00 00 00 00 	cmpl   $0x0,0x98(%eax)
408c37:	74 0c                	je     0x408c45
408c39:	8b 4d 08             	mov    0x8(%ebp),%ecx
408c3c:	51                   	push   %ecx
408c3d:	e8 ae c0 00 00       	call   0x414cf0
408c42:	83 c4 04             	add    $0x4,%esp
408c45:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%ebp)
408c49:	0f 84 55 07 00 00    	je     0x4093a4
408c4f:	8d 55 cc             	lea    -0x34(%ebp),%edx
408c52:	52                   	push   %edx
408c53:	8b 45 f4             	mov    -0xc(%ebp),%eax
408c56:	50                   	push   %eax
408c57:	e8 64 99 ff ff       	call   0x4025c0
408c5c:	8b 88 e0 00 00 00    	mov    0xe0(%eax),%ecx
408c62:	ff d1                	call   *%ecx
408c64:	85 c0                	test   %eax,%eax
408c66:	0f 84 84 05 00 00    	je     0x4091f0
408c6c:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
408c70:	0f 8c 7a 05 00 00    	jl     0x4091f0
408c76:	7f 0a                	jg     0x408c82
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