407ac4:	50                   	push   %eax
407ac5:	e8 f6 aa ff ff       	call   0x4025c0
407aca:	8b 48 7c             	mov    0x7c(%eax),%ecx
407acd:	ff d1                	call   *%ecx
407acf:	85 c0                	test   %eax,%eax
407ad1:	0f 8c dc 01 00 00    	jl     0x407cb3
407ad7:	8b 55 c4             	mov    -0x3c(%ebp),%edx
407ada:	89 55 d0             	mov    %edx,-0x30(%ebp)
407add:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
407ae4:	eb 09                	jmp    0x407aef
407ae6:	8b 45 f4             	mov    -0xc(%ebp),%eax
407ae9:	83 c0 01             	add    $0x1,%eax
407aec:	89 45 f4             	mov    %eax,-0xc(%ebp)
407aef:	83 7d f4 20          	cmpl   $0x20,-0xc(%ebp)
407af3:	73 45                	jae    0x407b3a
407af5:	e8 86 c0 ff ff       	call   0x403b80
407afa:	83 38 05             	cmpl   $0x5,(%eax)
407afd:	72 23                	jb     0x407b22
407aff:	e8 7c c0 ff ff       	call   0x403b80
407b04:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
407b08:	74 18                	je     0x407b22
407b0a:	8d 4d d0             	lea    -0x30(%ebp),%ecx
407b0d:	51                   	push   %ecx
407b0e:	e8 ad aa ff ff       	call   0x4025c0
407b13:	8b 50 44             	mov    0x44(%eax),%edx
407b16:	ff d2                	call   *%edx
407b18:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407b1b:	03 4d f4             	add    -0xc(%ebp),%ecx
407b1e:	88 01                	mov    %al,(%ecx)
407b20:	eb 16                	jmp    0x407b38
407b22:	8d 55 d0             	lea    -0x30(%ebp),%edx
407b25:	52                   	push   %edx
407b26:	e8 95 aa ff ff       	call   0x4025c0
407b2b:	8b 40 48             	mov    0x48(%eax),%eax
407b2e:	ff d0                	call   *%eax
407b30:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407b33:	03 4d f4             	add    -0xc(%ebp),%ecx
407b36:	88 01                	mov    %al,(%ecx)
407b38:	eb ac                	jmp    0x407ae6
407b3a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
407b3d:	52                   	push   %edx
407b3e:	8b 45 f8             	mov    -0x8(%ebp),%eax
407b41:	50                   	push   %eax
407b42:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407b45:	51                   	push   %ecx
407b46:	e8 f5 7f 00 00       	call   0x40fb40
407b4b:	83 c4 0c             	add    $0xc,%esp
407b4e:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
407b55:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
407b5c:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
407b63:	8d 55 e8             	lea    -0x18(%ebp),%edx
407b66:	52                   	push   %edx
407b67:	8d 45 ec             	lea    -0x14(%ebp),%eax
407b6a:	50                   	push   %eax
407b6b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
407b6e:	51                   	push   %ecx
407b6f:	8b 55 08             	mov    0x8(%ebp),%edx
407b72:	52                   	push   %edx
407b73:	e8 88 01 00 00       	call   0x407d00
407b78:	83 c4 10             	add    $0x10,%esp
407b7b:	85 c0                	test   %eax,%eax
407b7d:	0f 84 30 01 00 00    	je     0x407cb3
407b83:	6a 00                	push   $0x0
407b85:	6a 20                	push   $0x20
407b87:	8b 45 f0             	mov    -0x10(%ebp),%eax
407b8a:	50                   	push   %eax
407b8b:	e8 30 fb ff ff       	call   0x4076c0
407b90:	83 c4 0c             	add    $0xc,%esp
407b93:	89 45 cc             	mov    %eax,-0x34(%ebp)
407b96:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
407b9d:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
407ba4:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407ba7:	51                   	push   %ecx
407ba8:	8d 55 dc             	lea    -0x24(%ebp),%edx
407bab:	52                   	push   %edx
407bac:	6a 20                	push   $0x20
407bae:	8b 45 f8             	mov    -0x8(%ebp),%eax
407bb1:	50                   	push   %eax
407bb2:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407bb5:	51                   	push   %ecx
407bb6:	8b 55 ec             	mov    -0x14(%ebp),%edx
407bb9:	52                   	push   %edx
407bba:	e8 11 fd ff ff       	call   0x4078d0
407bbf:	83 c4 18             	add    $0x18,%esp
407bc2:	85 c0                	test   %eax,%eax
407bc4:	0f 84 b5 00 00 00    	je     0x407c7f
407bca:	6a 6c                	push   $0x6c
407bcc:	e8 af ec ff ff       	call   0x406880
407bd1:	83 c4 04             	add    $0x4,%esp
407bd4:	89 45 fc             	mov    %eax,-0x4(%ebp)
407bd7:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
407bdb:	0f 84 86 00 00 00    	je     0x407c67
407be1:	6a 04                	push   $0x4
407be3:	8d 45 cc             	lea    -0x34(%ebp),%eax
407be6:	50                   	push   %eax
407be7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407bea:	51                   	push   %ecx
407beb:	e8 b0 ed ff ff       	call   0x4069a0
407bf0:	83 c4 0c             	add    $0xc,%esp
407bf3:	6a 20                	push   $0x20
407bf5:	8b 55 d4             	mov    -0x2c(%ebp),%edx
407bf8:	52                   	push   %edx
407bf9:	8b 45 fc             	mov    -0x4(%ebp),%eax
407bfc:	83 c0 04             	add    $0x4,%eax
407bff:	50                   	push   %eax
407c00:	e8 9b ed ff ff       	call   0x4069a0
407c05:	83 c4 0c             	add    $0xc,%esp
407c08:	6a 08                	push   $0x8
407c0a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407c0d:	51                   	push   %ecx
407c0e:	8b 55 fc             	mov    -0x4(%ebp),%edx
407c11:	83 c2 24             	add    $0x24,%edx
407c14:	52                   	push   %edx
407c15:	e8 86 ed ff ff       	call   0x4069a0
407c1a:	83 c4 0c             	add    $0xc,%esp
407c1d:	6a 20                	push   $0x20
407c1f:	8b 45 d8             	mov    -0x28(%ebp),%eax
407c22:	50                   	push   %eax
407c23:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407c26:	83 c1 2c             	add    $0x2c,%ecx
407c29:	51                   	push   %ecx
407c2a:	e8 71 ed ff ff       	call   0x4069a0
407c2f:	83 c4 0c             	add    $0xc,%esp
407c32:	6a 20                	push   $0x20
407c34:	8b 55 dc             	mov    -0x24(%ebp),%edx
407c37:	52                   	push   %edx
407c38:	8b 45 fc             	mov    -0x4(%ebp),%eax
407c3b:	83 c0 4c             	add    $0x4c,%eax
407c3e:	50                   	push   %eax
407c3f:	e8 5c ed ff ff       	call   0x4069a0
407c44:	83 c4 0c             	add    $0xc,%esp
407c47:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407c4a:	8b 55 f0             	mov    -0x10(%ebp),%edx
407c4d:	89 11                	mov    %edx,(%ecx)
407c4f:	8b 45 10             	mov    0x10(%ebp),%eax
407c52:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407c55:	89 08                	mov    %ecx,(%eax)
407c57:	8b 55 14             	mov    0x14(%ebp),%edx
407c5a:	c7 02 6c 00 00 00    	movl   $0x6c,(%edx)
407c60:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
407c67:	8b 45 dc             	mov    -0x24(%ebp),%eax
407c6a:	50                   	push   %eax
407c6b:	e8 40 ec ff ff       	call   0x4068b0
407c70:	83 c4 04             	add    $0x4,%esp
407c73:	8b 4d d8             	mov    -0x28(%ebp),%ecx
407c76:	51                   	push   %ecx
407c77:	e8 34 ec ff ff       	call   0x4068b0
407c7c:	83 c4 04             	add    $0x4,%esp
407c7f:	6a 20                	push   $0x20
407c81:	6a 00                	push   $0x0
407c83:	8b 55 ec             	mov    -0x14(%ebp),%edx
407c86:	52                   	push   %edx
407c87:	e8 f4 ec ff ff       	call   0x406980
407c8c:	83 c4 0c             	add    $0xc,%esp
407c8f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
407c92:	50                   	push   %eax
407c93:	e8 18 ec ff ff       	call   0x4068b0
407c98:	83 c4 04             	add    $0x4,%esp
407c9b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407c9e:	51                   	push   %ecx
407c9f:	e8 0c ec ff ff       	call   0x4068b0
407ca4:	83 c4 04             	add    $0x4,%esp
407ca7:	8b 55 e8             	mov    -0x18(%ebp),%edx
407caa:	52                   	push   %edx
407cab:	e8 00 ec ff ff       	call   0x4068b0
407cb0:	83 c4 04             	add    $0x4,%esp
407cb3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
407cb6:	50                   	push   %eax
407cb7:	e8 f4 eb ff ff       	call   0x4068b0
407cbc:	83 c4 04             	add    $0x4,%esp
407cbf:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
407cc3:	75 0c                	jne    0x407cd1
407cc5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407cc8:	51                   	push   %ecx
407cc9:	e8 e2 eb ff ff       	call   0x4068b0
407cce:	83 c4 04             	add    $0x4,%esp
407cd1:	6a 20                	push   $0x20
407cd3:	6a 00                	push   $0x0
407cd5:	8b 55 f8             	mov    -0x8(%ebp),%edx
407cd8:	52                   	push   %edx
407cd9:	e8 a2 ec ff ff       	call   0x406980
407cde:	83 c4 0c             	add    $0xc,%esp
407ce1:	8b 45 f8             	mov    -0x8(%ebp),%eax
407ce4:	50                   	push   %eax
407ce5:	e8 c6 eb ff ff       	call   0x4068b0
407cea:	83 c4 04             	add    $0x4,%esp
407ced:	8b 45 e0             	mov    -0x20(%ebp),%eax
407cf0:	8b e5                	mov    %ebp,%esp
407cf2:	5d                   	pop    %ebp
407cf3:	c3                   	ret
407cf4:	cc                   	int3
407cf5:	cc                   	int3
407cf6:	cc                   	int3
407cf7:	cc                   	int3
407cf8:	cc                   	int3
407cf9:	cc                   	int3
407cfa:	cc                   	int3
407cfb:	cc                   	int3
407cfc:	cc                   	int3
407cfd:	cc                   	int3
407cfe:	cc                   	int3
407cff:	cc                   	int3
407d00:	55                   	push   %ebp
407d01:	8b ec                	mov    %esp,%ebp
407d03:	83 ec 28             	sub    $0x28,%esp
407d06:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
407d0d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
407d11:	74 12                	je     0x407d25
407d13:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407d17:	74 0c                	je     0x407d25
407d19:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
407d1d:	74 06                	je     0x407d25
407d1f:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
407d23:	75 08                	jne    0x407d2d
407d25:	8b 45 e8             	mov    -0x18(%ebp),%eax
407d28:	e9 e2 01 00 00       	jmp    0x407f0f
407d2d:	6a 20                	push   $0x20
407d2f:	e8 4c eb ff ff       	call   0x406880
407d34:	83 c4 04             	add    $0x4,%esp
407d37:	89 45 fc             	mov    %eax,-0x4(%ebp)
407d3a:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
407d3e:	0f 84 c8 01 00 00    	je     0x407f0c
407d44:	6a 20                	push   $0x20
407d46:	e8 35 eb ff ff       	call   0x406880
407d4b:	83 c4 04             	add    $0x4,%esp
407d4e:	89 45 ec             	mov    %eax,-0x14(%ebp)
407d51:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
407d55:	0f 84 95 01 00 00    	je     0x407ef0
407d5b:	6a 20                	push   $0x20
407d5d:	e8 1e eb ff ff       	call   0x406880
407d62:	83 c4 04             	add    $0x4,%esp
407d65:	89 45 f0             	mov    %eax,-0x10(%ebp)
407d68:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
407d6c:	0f 84 6c 01 00 00    	je     0x407ede
407d72:	b8 01 00 00 00       	mov    $0x1,%eax
407d77:	6b c8 00             	imul   $0x0,%eax,%ecx
407d7a:	8b 55 f0             	mov    -0x10(%ebp),%edx
407d7d:	c6 04 0a 09          	movb   $0x9,(%edx,%ecx,1)
407d81:	8d 45 d8             	lea    -0x28(%ebp),%eax
407d84:	50                   	push   %eax
407d85:	e8 36 a8 ff ff       	call   0x4025c0
407d8a:	8b 48 7c             	mov    0x7c(%eax),%ecx
407d8d:	ff d1                	call   *%ecx
407d8f:	85 c0                	test   %eax,%eax
407d91:	0f 8c 3b 01 00 00    	jl     0x407ed2
407d97:	8b 55 d8             	mov    -0x28(%ebp),%edx
407d9a:	89 55 e4             	mov    %edx,-0x1c(%ebp)
407d9d:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
407da4:	eb 09                	jmp    0x407daf
407da6:	8b 45 f8             	mov    -0x8(%ebp),%eax
407da9:	83 c0 01             	add    $0x1,%eax
407dac:	89 45 f8             	mov    %eax,-0x8(%ebp)
407daf:	83 7d f8 20          	cmpl   $0x20,-0x8(%ebp)
407db3:	73 45                	jae    0x407dfa
407db5:	e8 c6 bd ff ff       	call   0x403b80
407dba:	83 38 05             	cmpl   $0x5,(%eax)
407dbd:	72 23                	jb     0x407de2
407dbf:	e8 bc bd ff ff       	call   0x403b80
407dc4:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
407dc8:	74 18                	je     0x407de2
407dca:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
407dcd:	51                   	push   %ecx
407dce:	e8 ed a7 ff ff       	call   0x4025c0
407dd3:	8b 50 44             	mov    0x44(%eax),%edx
407dd6:	ff d2                	call   *%edx
407dd8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407ddb:	03 4d f8             	add    -0x8(%ebp),%ecx
407dde:	88 01                	mov    %al,(%ecx)
407de0:	eb 16                	jmp    0x407df8
407de2:	8d 55 e4             	lea    -0x1c(%ebp),%edx
407de5:	52                   	push   %edx
407de6:	e8 d5 a7 ff ff       	call   0x4025c0
407deb:	8b 40 48             	mov    0x48(%eax),%eax
407dee:	ff d0                	call   *%eax
407df0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407df3:	03 4d f8             	add    -0x8(%ebp),%ecx
407df6:	88 01                	mov    %al,(%ecx)
407df8:	eb ac                	jmp    0x407da6
407dfa:	ba 01 00 00 00       	mov    $0x1,%edx
407dff:	6b c2 00             	imul   $0x0,%edx,%eax
407e02:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407e05:	0f b6 14 01          	movzbl (%ecx,%eax,1),%edx
407e09:	81 e2 f8 00 00 00    	and    $0xf8,%edx
407e0f:	b8 01 00 00 00       	mov    $0x1,%eax
407e14:	6b c8 00             	imul   $0x0,%eax,%ecx
407e17:	8b 45 fc             	mov    -0x4(%ebp),%eax
407e1a:	88 14 08             	mov    %dl,(%eax,%ecx,1)
407e1d:	b9 01 00 00 00       	mov    $0x1,%ecx
407e22:	6b d1 1f             	imul   $0x1f,%ecx,%edx
407e25:	8b 45 fc             	mov    -0x4(%ebp),%eax
407e28:	0f b6 0c 10          	movzbl (%eax,%edx,1),%ecx
407e2c:	83 e1 7f             	and    $0x7f,%ecx
407e2f:	ba 01 00 00 00       	mov    $0x1,%edx
407e34:	6b c2 1f             	imul   $0x1f,%edx,%eax
407e37:	8b 55 fc             	mov    -0x4(%ebp),%edx
407e3a:	88 0c 02             	mov    %cl,(%edx,%eax,1)
407e3d:	b8 01 00 00 00       	mov    $0x1,%eax
407e42:	6b c8 1f             	imul   $0x1f,%eax,%ecx
407e45:	8b 55 fc             	mov    -0x4(%ebp),%edx
407e48:	0f b6 04 0a          	movzbl (%edx,%ecx,1),%eax
407e4c:	83 c8 40             	or     $0x40,%eax
407e4f:	b9 01 00 00 00       	mov    $0x1,%ecx
407e54:	6b d1 1f             	imul   $0x1f,%ecx,%edx
407e57:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407e5a:	88 04 11             	mov    %al,(%ecx,%edx,1)
407e5d:	8b 55 f0             	mov    -0x10(%ebp),%edx
407e60:	52                   	push   %edx
407e61:	8b 45 fc             	mov    -0x4(%ebp),%eax
407e64:	50                   	push   %eax
407e65:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407e68:	51                   	push   %ecx
407e69:	e8 d2 7c 00 00       	call   0x40fb40
407e6e:	83 c4 0c             	add    $0xc,%esp
407e71:	6a 20                	push   $0x20
407e73:	e8 08 ea ff ff       	call   0x406880
407e78:	83 c4 04             	add    $0x4,%esp
407e7b:	89 45 f4             	mov    %eax,-0xc(%ebp)
407e7e:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
407e82:	74 4e                	je     0x407ed2
407e84:	8b 55 08             	mov    0x8(%ebp),%edx
407e87:	52                   	push   %edx
407e88:	8b 45 fc             	mov    -0x4(%ebp),%eax
407e8b:	50                   	push   %eax
407e8c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407e8f:	51                   	push   %ecx
407e90:	e8 ab 7c 00 00       	call   0x40fb40
407e95:	83 c4 0c             	add    $0xc,%esp
407e98:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
407e9f:	8d 55 e0             	lea    -0x20(%ebp),%edx
407ea2:	52                   	push   %edx
407ea3:	8b 45 f4             	mov    -0xc(%ebp),%eax
407ea6:	50                   	push   %eax
407ea7:	e8 d4 84 00 00       	call   0x410380
407eac:	83 c4 08             	add    $0x8,%esp
407eaf:	85 c0                	test   %eax,%eax
407eb1:	74 1f                	je     0x407ed2
407eb3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407eb6:	8b 55 ec             	mov    -0x14(%ebp),%edx
407eb9:	89 11                	mov    %edx,(%ecx)
407ebb:	8b 45 10             	mov    0x10(%ebp),%eax
407ebe:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407ec1:	89 08                	mov    %ecx,(%eax)
407ec3:	8b 55 14             	mov    0x14(%ebp),%edx
407ec6:	8b 45 e0             	mov    -0x20(%ebp),%eax
407ec9:	89 02                	mov    %eax,(%edx)
407ecb:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
407ed2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407ed5:	51                   	push   %ecx
407ed6:	e8 d5 e9 ff ff       	call   0x4068b0
407edb:	83 c4 04             	add    $0x4,%esp