408ba3:	ff 75 0c             	push   0xc(%ebp)
408ba6:	e8 1c 03 00 00       	call   0x408ec7
408bab:	83 c4 10             	add    $0x10,%esp
408bae:	eb 56                	jmp    0x408c06
408bb0:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
408bb4:	74 50                	je     0x408c06
408bb6:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
408bbc:	75 2c                	jne    0x408bea
408bbe:	39 78 14             	cmp    %edi,0x14(%eax)
408bc1:	76 27                	jbe    0x408bea
408bc3:	8b 48 1c             	mov    0x1c(%eax),%ecx
408bc6:	8b 49 08             	mov    0x8(%ecx),%ecx
408bc9:	85 c9                	test   %ecx,%ecx
408bcb:	74 1d                	je     0x408bea
408bcd:	0f b6 55 24          	movzbl 0x24(%ebp),%edx
408bd1:	52                   	push   %edx
408bd2:	ff 75 20             	push   0x20(%ebp)
408bd5:	ff 75 1c             	push   0x1c(%ebp)
408bd8:	56                   	push   %esi
408bd9:	ff 75 14             	push   0x14(%ebp)
408bdc:	ff 75 10             	push   0x10(%ebp)
408bdf:	ff 75 0c             	push   0xc(%ebp)
408be2:	50                   	push   %eax
408be3:	ff d1                	call   *%ecx
408be5:	83 c4 20             	add    $0x20,%esp
408be8:	eb 1f                	jmp    0x408c09
408bea:	ff 75 20             	push   0x20(%ebp)
408bed:	ff 75 1c             	push   0x1c(%ebp)
408bf0:	ff 75 24             	push   0x24(%ebp)
408bf3:	56                   	push   %esi
408bf4:	ff 75 14             	push   0x14(%ebp)
408bf7:	ff 75 10             	push   0x10(%ebp)
408bfa:	ff 75 0c             	push   0xc(%ebp)
408bfd:	50                   	push   %eax
408bfe:	e8 0a 00 00 00       	call   0x408c0d
408c03:	83 c4 20             	add    $0x20,%esp
408c06:	6a 01                	push   $0x1
408c08:	58                   	pop    %eax
408c09:	5f                   	pop    %edi
408c0a:	5e                   	pop    %esi
408c0b:	5d                   	pop    %ebp
408c0c:	c3                   	ret
408c0d:	55                   	push   %ebp
408c0e:	8b ec                	mov    %esp,%ebp
408c10:	83 ec 18             	sub    $0x18,%esp
408c13:	8b 45 0c             	mov    0xc(%ebp),%eax
408c16:	80 65 ec 00          	andb   $0x0,-0x14(%ebp)
408c1a:	8b 40 08             	mov    0x8(%eax),%eax
408c1d:	83 f8 ff             	cmp    $0xffffffff,%eax
408c20:	89 45 f0             	mov    %eax,-0x10(%ebp)
408c23:	7c 08                	jl     0x408c2d
408c25:	8b 4d 18             	mov    0x18(%ebp),%ecx
408c28:	3b 41 04             	cmp    0x4(%ecx),%eax
408c2b:	7c 05                	jl     0x408c32
408c2d:	e8 0b 08 00 00       	call   0x40943d
408c32:	53                   	push   %ebx
408c33:	56                   	push   %esi
408c34:	8b 75 08             	mov    0x8(%ebp),%esi
408c37:	bb 63 73 6d e0       	mov    $0xe06d7363,%ebx
408c3c:	57                   	push   %edi
408c3d:	bf 20 05 93 19       	mov    $0x19930520,%edi
408c42:	39 1e                	cmp    %ebx,(%esi)
408c44:	0f 85 4b 01 00 00    	jne    0x408d95
408c4a:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
408c4e:	75 62                	jne    0x408cb2
408c50:	39 7e 14             	cmp    %edi,0x14(%esi)
408c53:	75 5d                	jne    0x408cb2
408c55:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
408c59:	75 57                	jne    0x408cb2
408c5b:	e8 67 fa ff ff       	call   0x4086c7
408c60:	83 78 6c 00          	cmpl   $0x0,0x6c(%eax)
408c64:	0f 84 26 01 00 00    	je     0x408d90
408c6a:	e8 58 fa ff ff       	call   0x4086c7
408c6f:	8b 70 6c             	mov    0x6c(%eax),%esi
408c72:	e8 50 fa ff ff       	call   0x4086c7
408c77:	8b 40 70             	mov    0x70(%eax),%eax
408c7a:	6a 01                	push   $0x1
408c7c:	56                   	push   %esi
408c7d:	89 45 10             	mov    %eax,0x10(%ebp)
408c80:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
408c84:	e8 f4 2a 00 00       	call   0x40b77d
408c89:	59                   	pop    %ecx
408c8a:	85 c0                	test   %eax,%eax
408c8c:	59                   	pop    %ecx
408c8d:	75 05                	jne    0x408c94
408c8f:	e8 a9 07 00 00       	call   0x40943d
408c94:	39 1e                	cmp    %ebx,(%esi)
408c96:	0f 85 f9 00 00 00    	jne    0x408d95
408c9c:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
408ca0:	75 10                	jne    0x408cb2
408ca2:	39 7e 14             	cmp    %edi,0x14(%esi)
408ca5:	75 0b                	jne    0x408cb2
408ca7:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
408cab:	75 05                	jne    0x408cb2
408cad:	e8 8b 07 00 00       	call   0x40943d
408cb2:	39 1e                	cmp    %ebx,(%esi)
408cb4:	0f 85 db 00 00 00    	jne    0x408d95
408cba:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
408cbe:	0f 85 d1 00 00 00    	jne    0x408d95
408cc4:	39 7e 14             	cmp    %edi,0x14(%esi)
408cc7:	0f 85 c8 00 00 00    	jne    0x408d95
408ccd:	8b 7d f0             	mov    -0x10(%ebp),%edi
408cd0:	8d 45 e8             	lea    -0x18(%ebp),%eax
408cd3:	50                   	push   %eax
408cd4:	8d 45 fc             	lea    -0x4(%ebp),%eax
408cd7:	50                   	push   %eax
408cd8:	57                   	push   %edi
408cd9:	ff 75 20             	push   0x20(%ebp)
408cdc:	ff 75 18             	push   0x18(%ebp)
408cdf:	e8 f1 ce ff ff       	call   0x405bd5
408ce4:	83 c4 14             	add    $0x14,%esp
408ce7:	8b d8                	mov    %eax,%ebx
408ce9:	8b 45 fc             	mov    -0x4(%ebp),%eax
408cec:	3b 45 e8             	cmp    -0x18(%ebp),%eax
408cef:	0f 83 8b 00 00 00    	jae    0x408d80
408cf5:	39 3b                	cmp    %edi,(%ebx)
408cf7:	7f 7c                	jg     0x408d75
408cf9:	3b 7b 04             	cmp    0x4(%ebx),%edi
408cfc:	7f 77                	jg     0x408d75
408cfe:	8b 43 10             	mov    0x10(%ebx),%eax
408d01:	89 45 08             	mov    %eax,0x8(%ebp)
408d04:	8b 43 0c             	mov    0xc(%ebx),%eax
408d07:	85 c0                	test   %eax,%eax
408d09:	89 45 f4             	mov    %eax,-0xc(%ebp)
408d0c:	7e 64                	jle    0x408d72
408d0e:	8b 46 1c             	mov    0x1c(%esi),%eax
408d11:	8b 40 0c             	mov    0xc(%eax),%eax
408d14:	8d 78 04             	lea    0x4(%eax),%edi
408d17:	8b 00                	mov    (%eax),%eax
408d19:	85 c0                	test   %eax,%eax
408d1b:	89 45 f8             	mov    %eax,-0x8(%ebp)
408d1e:	7e 1f                	jle    0x408d3f
408d20:	ff 76 1c             	push   0x1c(%esi)
408d23:	ff 37                	push   (%edi)
408d25:	ff 75 08             	push   0x8(%ebp)
408d28:	e8 3d 01 00 00       	call   0x408e6a
408d2d:	83 c4 0c             	add    $0xc,%esp
408d30:	85 c0                	test   %eax,%eax
408d32:	75 1a                	jne    0x408d4e
408d34:	ff 4d f8             	decl   -0x8(%ebp)
408d37:	83 c7 04             	add    $0x4,%edi
408d3a:	39 45 f8             	cmp    %eax,-0x8(%ebp)
408d3d:	7f e1                	jg     0x408d20
408d3f:	ff 4d f4             	decl   -0xc(%ebp)
408d42:	83 45 08 10          	addl   $0x10,0x8(%ebp)
408d46:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
408d4a:	7f c2                	jg     0x408d0e
408d4c:	eb 24                	jmp    0x408d72
408d4e:	ff 75 ec             	push   -0x14(%ebp)
408d51:	ff 75 24             	push   0x24(%ebp)
408d54:	ff 75 20             	push   0x20(%ebp)
408d57:	53                   	push   %ebx
408d58:	ff 37                	push   (%edi)
408d5a:	ff 75 08             	push   0x8(%ebp)
408d5d:	ff 75 18             	push   0x18(%ebp)
408d60:	ff 75 14             	push   0x14(%ebp)
408d63:	ff 75 10             	push   0x10(%ebp)
408d66:	ff 75 0c             	push   0xc(%ebp)
408d69:	56                   	push   %esi
408d6a:	e8 0c 02 00 00       	call   0x408f7b
408d6f:	83 c4 2c             	add    $0x2c,%esp
408d72:	8b 7d f0             	mov    -0x10(%ebp),%edi
408d75:	ff 45 fc             	incl   -0x4(%ebp)
408d78:	83 c3 14             	add    $0x14,%ebx
408d7b:	e9 69 ff ff ff       	jmp    0x408ce9
408d80:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
408d84:	74 0a                	je     0x408d90
408d86:	6a 01                	push   $0x1
408d88:	56                   	push   %esi
408d89:	e8 71 05 00 00       	call   0x4092ff
408d8e:	59                   	pop    %ecx
408d8f:	59                   	pop    %ecx
408d90:	5f                   	pop    %edi
408d91:	5e                   	pop    %esi
408d92:	5b                   	pop    %ebx
408d93:	c9                   	leave
408d94:	c3                   	ret
408d95:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
408d99:	75 20                	jne    0x408dbb
408d9b:	ff 75 24             	push   0x24(%ebp)
408d9e:	ff 75 20             	push   0x20(%ebp)
408da1:	ff 75 f0             	push   -0x10(%ebp)
408da4:	ff 75 18             	push   0x18(%ebp)
408da7:	ff 75 14             	push   0x14(%ebp)
408daa:	ff 75 10             	push   0x10(%ebp)
408dad:	ff 75 0c             	push   0xc(%ebp)
408db0:	56                   	push   %esi
408db1:	e8 0a 00 00 00       	call   0x408dc0
408db6:	83 c4 20             	add    $0x20,%esp
408db9:	eb d5                	jmp    0x408d90
408dbb:	e9 1c 06 00 00       	jmp    0x4093dc
408dc0:	55                   	push   %ebp
408dc1:	8b ec                	mov    %esp,%ebp
408dc3:	51                   	push   %ecx
408dc4:	51                   	push   %ecx
408dc5:	56                   	push   %esi
408dc6:	57                   	push   %edi
408dc7:	e8 fb f8 ff ff       	call   0x4086c7
408dcc:	83 78 68 00          	cmpl   $0x0,0x68(%eax)
408dd0:	74 21                	je     0x408df3
408dd2:	ff 75 24             	push   0x24(%ebp)
408dd5:	ff 75 20             	push   0x20(%ebp)
408dd8:	ff 75 18             	push   0x18(%ebp)
408ddb:	ff 75 14             	push   0x14(%ebp)
408dde:	ff 75 10             	push   0x10(%ebp)
408de1:	ff 75 0c             	push   0xc(%ebp)
408de4:	ff 75 08             	push   0x8(%ebp)
408de7:	e8 be cc ff ff       	call   0x405aaa
408dec:	83 c4 1c             	add    $0x1c,%esp
408def:	85 c0                	test   %eax,%eax
408df1:	75 73                	jne    0x408e66
408df3:	8b 7d 1c             	mov    0x1c(%ebp),%edi
408df6:	8d 45 f8             	lea    -0x8(%ebp),%eax
408df9:	50                   	push   %eax
408dfa:	8d 45 fc             	lea    -0x4(%ebp),%eax
408dfd:	50                   	push   %eax
408dfe:	57                   	push   %edi
408dff:	ff 75 20             	push   0x20(%ebp)
408e02:	ff 75 18             	push   0x18(%ebp)
408e05:	e8 cb cd ff ff       	call   0x405bd5
408e0a:	83 c4 14             	add    $0x14,%esp
408e0d:	8b f0                	mov    %eax,%esi
408e0f:	8b 45 fc             	mov    -0x4(%ebp),%eax
408e12:	3b 45 f8             	cmp    -0x8(%ebp),%eax
408e15:	73 4f                	jae    0x408e66
408e17:	3b 3e                	cmp    (%esi),%edi
408e19:	7c 43                	jl     0x408e5e
408e1b:	3b 7e 04             	cmp    0x4(%esi),%edi
408e1e:	7f 3e                	jg     0x408e5e
408e20:	8b 46 0c             	mov    0xc(%esi),%eax
408e23:	8b 4e 10             	mov    0x10(%esi),%ecx
408e26:	c1 e0 04             	shl    $0x4,%eax
408e29:	03 c1                	add    %ecx,%eax
408e2b:	8b 48 f4             	mov    -0xc(%eax),%ecx
408e2e:	85 c9                	test   %ecx,%ecx
408e30:	74 06                	je     0x408e38
408e32:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
408e36:	75 26                	jne    0x408e5e
408e38:	6a 01                	push   $0x1
408e3a:	83 c0 f0             	add    $0xfffffff0,%eax
408e3d:	ff 75 24             	push   0x24(%ebp)
408e40:	ff 75 20             	push   0x20(%ebp)
408e43:	56                   	push   %esi
408e44:	6a 00                	push   $0x0
408e46:	50                   	push   %eax
408e47:	ff 75 18             	push   0x18(%ebp)
408e4a:	ff 75 14             	push   0x14(%ebp)
408e4d:	ff 75 10             	push   0x10(%ebp)
408e50:	ff 75 0c             	push   0xc(%ebp)
408e53:	ff 75 08             	push   0x8(%ebp)
408e56:	e8 20 01 00 00       	call   0x408f7b
408e5b:	83 c4 2c             	add    $0x2c,%esp
408e5e:	ff 45 fc             	incl   -0x4(%ebp)
408e61:	83 c6 14             	add    $0x14,%esi
408e64:	eb a9                	jmp    0x408e0f
408e66:	5f                   	pop    %edi
408e67:	5e                   	pop    %esi
408e68:	c9                   	leave
408e69:	c3                   	ret
408e6a:	56                   	push   %esi
408e6b:	57                   	push   %edi
408e6c:	8b 7c 24 0c          	mov    0xc(%esp),%edi
408e70:	8b 47 04             	mov    0x4(%edi),%eax
408e73:	85 c0                	test   %eax,%eax
408e75:	74 4a                	je     0x408ec1
408e77:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
408e7b:	8d 50 08             	lea    0x8(%eax),%edx
408e7e:	74 41                	je     0x408ec1
408e80:	8b 74 24 10          	mov    0x10(%esp),%esi
408e84:	8b 4e 04             	mov    0x4(%esi),%ecx
408e87:	3b c1                	cmp    %ecx,%eax
408e89:	74 10                	je     0x408e9b
408e8b:	83 c1 08             	add    $0x8,%ecx
408e8e:	51                   	push   %ecx
408e8f:	52                   	push   %edx
408e90:	e8 4b fb ff ff       	call   0x4089e0
408e95:	59                   	pop    %ecx
408e96:	85 c0                	test   %eax,%eax
408e98:	59                   	pop    %ecx
408e99:	75 22                	jne    0x408ebd
408e9b:	f6 06 02             	testb  $0x2,(%esi)
408e9e:	74 05                	je     0x408ea5
408ea0:	f6 07 08             	testb  $0x8,(%edi)
408ea3:	74 18                	je     0x408ebd
408ea5:	8b 44 24 14          	mov    0x14(%esp),%eax
408ea9:	8b 00                	mov    (%eax),%eax
408eab:	a8 01                	test   $0x1,%al
408ead:	74 05                	je     0x408eb4
408eaf:	f6 07 01             	testb  $0x1,(%edi)
408eb2:	74 09                	je     0x408ebd
408eb4:	a8 02                	test   $0x2,%al
408eb6:	74 09                	je     0x408ec1
408eb8:	f6 07 02             	testb  $0x2,(%edi)
408ebb:	75 04                	jne    0x408ec1
408ebd:	33 c0                	xor    %eax,%eax
408ebf:	eb 03                	jmp    0x408ec4
408ec1:	6a 01                	push   $0x1
408ec3:	58                   	pop    %eax
408ec4:	5f                   	pop    %edi
408ec5:	5e                   	pop    %esi
408ec6:	c3                   	ret
408ec7:	55                   	push   %ebp
408ec8:	8b ec                	mov    %esp,%ebp
408eca:	6a ff                	push   $0xffffffff
408ecc:	68 b0 d7 40 00       	push   $0x40d7b0
408ed1:	68 74 87 40 00       	push   $0x408774
408ed6:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
408edc:	50                   	push   %eax
408edd:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
408ee4:	83 ec 0c             	sub    $0xc,%esp
408ee7:	53                   	push   %ebx
408ee8:	56                   	push   %esi
408ee9:	57                   	push   %edi
408eea:	89 65 e8             	mov    %esp,-0x18(%ebp)
408eed:	8b 5d 08             	mov    0x8(%ebp),%ebx
408ef0:	8b 73 08             	mov    0x8(%ebx),%esi
408ef3:	89 75 e4             	mov    %esi,-0x1c(%ebp)
408ef6:	8b 7d 10             	mov    0x10(%ebp),%edi
408ef9:	3b 75 14             	cmp    0x14(%ebp),%esi
408efc:	74 55                	je     0x408f53
408efe:	83 fe ff             	cmp    $0xffffffff,%esi
408f01:	7e 05                	jle    0x408f08
408f03:	3b 77 04             	cmp    0x4(%edi),%esi
408f06:	7c 05                	jl     0x408f0d
408f08:	e8 30 05 00 00       	call   0x40943d
408f0d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408f11:	8b 47 08             	mov    0x8(%edi),%eax
408f14:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
408f18:	85 c0                	test   %eax,%eax
408f1a:	74 0c                	je     0x408f28
408f1c:	68 03 01 00 00       	push   $0x103
408f21:	53                   	push   %ebx
408f22:	50                   	push   %eax
408f23:	e8 68 04 00 00       	call   0x409390
408f28:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408f2c:	eb 1a                	jmp    0x408f48
408f2e:	ff 75 ec             	push   -0x14(%ebp)
408f31:	e8 2f 00 00 00       	call   0x408f65
408f36:	59                   	pop    %ecx
408f37:	c3                   	ret
408f38:	8b 65 e8             	mov    -0x18(%ebp),%esp
408f3b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408f3f:	8b 7d 10             	mov    0x10(%ebp),%edi
408f42:	8b 5d 08             	mov    0x8(%ebp),%ebx
408f45:	8b 75 e4             	mov    -0x1c(%ebp),%esi
408f48:	8b 47 08             	mov    0x8(%edi),%eax
408f4b:	8b 34 f0             	mov    (%eax,%esi,8),%esi
408f4e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
408f51:	eb a6                	jmp    0x408ef9
408f53:	89 73 08             	mov    %esi,0x8(%ebx)