405b89:	3b c7                	cmp    %edi,%eax
405b8b:	72 0a                	jb     0x405b97
405b8d:	f6 41 20 01          	testb  $0x1,0x20(%ecx)
405b91:	0f 85 ad 00 00 00    	jne    0x405c44
405b97:	f6 42 04 66          	testb  $0x66,0x4(%edx)
405b9b:	74 26                	je     0x405bc3
405b9d:	39 71 04             	cmp    %esi,0x4(%ecx)
405ba0:	0f 84 9e 00 00 00    	je     0x405c44
405ba6:	39 75 1c             	cmp    %esi,0x1c(%ebp)
405ba9:	0f 85 95 00 00 00    	jne    0x405c44
405baf:	51                   	push   %ecx
405bb0:	ff 75 14             	push   0x14(%ebp)
405bb3:	ff 75 0c             	push   0xc(%ebp)
405bb6:	e8 44 03 00 00       	call   0x405eff
405bbb:	83 c4 0c             	add    $0xc,%esp
405bbe:	e9 81 00 00 00       	jmp    0x405c44
405bc3:	39 71 0c             	cmp    %esi,0xc(%ecx)
405bc6:	75 1e                	jne    0x405be6
405bc8:	8b 01                	mov    (%ecx),%eax
405bca:	23 c3                	and    %ebx,%eax
405bcc:	3d 21 05 93 19       	cmp    $0x19930521,%eax
405bd1:	72 05                	jb     0x405bd8
405bd3:	39 71 1c             	cmp    %esi,0x1c(%ecx)
405bd6:	75 0e                	jne    0x405be6
405bd8:	3b c7                	cmp    %edi,%eax
405bda:	72 68                	jb     0x405c44
405bdc:	8b 41 20             	mov    0x20(%ecx),%eax
405bdf:	c1 e8 02             	shr    $0x2,%eax
405be2:	a8 01                	test   $0x1,%al
405be4:	74 5e                	je     0x405c44
405be6:	81 3a 63 73 6d e0    	cmpl   $0xe06d7363,(%edx)
405bec:	75 3a                	jne    0x405c28
405bee:	83 7a 10 03          	cmpl   $0x3,0x10(%edx)
405bf2:	72 34                	jb     0x405c28
405bf4:	39 7a 14             	cmp    %edi,0x14(%edx)
405bf7:	76 2f                	jbe    0x405c28
405bf9:	8b 42 1c             	mov    0x1c(%edx),%eax
405bfc:	8b 70 08             	mov    0x8(%eax),%esi
405bff:	85 f6                	test   %esi,%esi
405c01:	74 25                	je     0x405c28
405c03:	0f b6 45 24          	movzbl 0x24(%ebp),%eax
405c07:	50                   	push   %eax
405c08:	ff 75 20             	push   0x20(%ebp)
405c0b:	ff 75 1c             	push   0x1c(%ebp)
405c0e:	51                   	push   %ecx
405c0f:	ff 75 14             	push   0x14(%ebp)
405c12:	8b ce                	mov    %esi,%ecx
405c14:	ff 75 10             	push   0x10(%ebp)
405c17:	ff 75 0c             	push   0xc(%ebp)
405c1a:	52                   	push   %edx
405c1b:	ff 15 54 91 41 00    	call   *0x419154
405c21:	ff d6                	call   *%esi
405c23:	83 c4 20             	add    $0x20,%esp
405c26:	eb 1f                	jmp    0x405c47
405c28:	ff 75 20             	push   0x20(%ebp)
405c2b:	ff 75 1c             	push   0x1c(%ebp)
405c2e:	ff 75 24             	push   0x24(%ebp)
405c31:	51                   	push   %ecx
405c32:	ff 75 14             	push   0x14(%ebp)
405c35:	ff 75 10             	push   0x10(%ebp)
405c38:	ff 75 0c             	push   0xc(%ebp)
405c3b:	52                   	push   %edx
405c3c:	e8 a0 f9 ff ff       	call   0x4055e1
405c41:	83 c4 20             	add    $0x20,%esp
405c44:	33 c0                	xor    %eax,%eax
405c46:	40                   	inc    %eax
405c47:	5f                   	pop    %edi
405c48:	5e                   	pop    %esi
405c49:	5b                   	pop    %ebx
405c4a:	5d                   	pop    %ebp
405c4b:	c3                   	ret
405c4c:	55                   	push   %ebp
405c4d:	8b ec                	mov    %esp,%ebp
405c4f:	5d                   	pop    %ebp
405c50:	e9 f5 fe ff ff       	jmp    0x405b4a
405c55:	55                   	push   %ebp
405c56:	8b ec                	mov    %esp,%ebp
405c58:	56                   	push   %esi
405c59:	ff 75 08             	push   0x8(%ebp)
405c5c:	8b f1                	mov    %ecx,%esi
405c5e:	e8 8d cf ff ff       	call   0x402bf0
405c63:	c7 06 d0 95 41 00    	movl   $0x4195d0,(%esi)
405c69:	8b c6                	mov    %esi,%eax
405c6b:	5e                   	pop    %esi
405c6c:	5d                   	pop    %ebp
405c6d:	c2 04 00             	ret    $0x4
405c70:	83 61 04 00          	andl   $0x0,0x4(%ecx)
405c74:	8b c1                	mov    %ecx,%eax
405c76:	83 61 08 00          	andl   $0x0,0x8(%ecx)
405c7a:	c7 41 04 d8 95 41 00 	movl   $0x4195d8,0x4(%ecx)
405c81:	c7 01 d0 95 41 00    	movl   $0x4195d0,(%ecx)
405c87:	c3                   	ret
405c88:	55                   	push   %ebp
405c89:	8b ec                	mov    %esp,%ebp
405c8b:	8b 45 08             	mov    0x8(%ebp),%eax
405c8e:	83 c0 04             	add    $0x4,%eax
405c91:	50                   	push   %eax
405c92:	8d 41 04             	lea    0x4(%ecx),%eax
405c95:	50                   	push   %eax
405c96:	e8 a9 f5 ff ff       	call   0x405244
405c9b:	f7 d8                	neg    %eax
405c9d:	59                   	pop    %ecx
405c9e:	1a c0                	sbb    %al,%al
405ca0:	59                   	pop    %ecx
405ca1:	fe c0                	inc    %al
405ca3:	5d                   	pop    %ebp
405ca4:	c2 04 00             	ret    $0x4
405ca7:	6a 3c                	push   $0x3c
405ca9:	68 28 fd 41 00       	push   $0x41fd28
405cae:	e8 ed e1 ff ff       	call   0x403ea0
405cb3:	8b 45 18             	mov    0x18(%ebp),%eax
405cb6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405cb9:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
405cbd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405cc0:	8b 43 fc             	mov    -0x4(%ebx),%eax
405cc3:	89 45 d0             	mov    %eax,-0x30(%ebp)
405cc6:	8b 75 08             	mov    0x8(%ebp),%esi
405cc9:	ff 76 18             	push   0x18(%esi)
405ccc:	8d 45 b4             	lea    -0x4c(%ebp),%eax
405ccf:	50                   	push   %eax
405cd0:	e8 53 f2 ff ff       	call   0x404f28
405cd5:	59                   	pop    %ecx
405cd6:	59                   	pop    %ecx
405cd7:	89 45 cc             	mov    %eax,-0x34(%ebp)
405cda:	e8 bd f5 ff ff       	call   0x40529c
405cdf:	8b 40 10             	mov    0x10(%eax),%eax
405ce2:	89 45 c8             	mov    %eax,-0x38(%ebp)
405ce5:	e8 b2 f5 ff ff       	call   0x40529c
405cea:	8b 40 14             	mov    0x14(%eax),%eax
405ced:	89 45 c4             	mov    %eax,-0x3c(%ebp)
405cf0:	e8 a7 f5 ff ff       	call   0x40529c
405cf5:	89 70 10             	mov    %esi,0x10(%eax)
405cf8:	e8 9f f5 ff ff       	call   0x40529c
405cfd:	8b 4d 10             	mov    0x10(%ebp),%ecx
405d00:	89 48 14             	mov    %ecx,0x14(%eax)
405d03:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405d07:	33 c0                	xor    %eax,%eax
405d09:	40                   	inc    %eax
405d0a:	89 45 bc             	mov    %eax,-0x44(%ebp)
405d0d:	89 45 fc             	mov    %eax,-0x4(%ebp)
405d10:	ff 75 20             	push   0x20(%ebp)
405d13:	ff 75 1c             	push   0x1c(%ebp)
405d16:	ff 75 18             	push   0x18(%ebp)
405d19:	ff 75 14             	push   0x14(%ebp)
405d1c:	53                   	push   %ebx
405d1d:	e8 05 f0 ff ff       	call   0x404d27
405d22:	83 c4 14             	add    $0x14,%esp
405d25:	8b d8                	mov    %eax,%ebx
405d27:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
405d2a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405d2e:	e9 9c 00 00 00       	jmp    0x405dcf
405d33:	ff 75 ec             	push   -0x14(%ebp)
405d36:	e8 7a 01 00 00       	call   0x405eb5
405d3b:	59                   	pop    %ecx
405d3c:	c3                   	ret
405d3d:	8b 65 e8             	mov    -0x18(%ebp),%esp
405d40:	e8 57 f5 ff ff       	call   0x40529c
405d45:	83 60 20 00          	andl   $0x0,0x20(%eax)
405d49:	8b 75 14             	mov    0x14(%ebp),%esi
405d4c:	8b 46 08             	mov    0x8(%esi),%eax
405d4f:	89 45 d8             	mov    %eax,-0x28(%ebp)
405d52:	56                   	push   %esi
405d53:	ff 75 18             	push   0x18(%ebp)
405d56:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405d59:	53                   	push   %ebx
405d5a:	e8 01 08 00 00       	call   0x406560
405d5f:	83 c4 0c             	add    $0xc,%esp
405d62:	8b d0                	mov    %eax,%edx
405d64:	89 55 e0             	mov    %edx,-0x20(%ebp)
405d67:	8b 46 10             	mov    0x10(%esi),%eax
405d6a:	89 45 dc             	mov    %eax,-0x24(%ebp)
405d6d:	33 c9                	xor    %ecx,%ecx
405d6f:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
405d72:	39 4e 0c             	cmp    %ecx,0xc(%esi)
405d75:	76 40                	jbe    0x405db7
405d77:	6b c1 14             	imul   $0x14,%ecx,%eax
405d7a:	8b 5e 10             	mov    0x10(%esi),%ebx
405d7d:	3b 54 18 04          	cmp    0x4(%eax,%ebx,1),%edx
405d81:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405d84:	7e 28                	jle    0x405dae
405d86:	6b c1 14             	imul   $0x14,%ecx,%eax
405d89:	8b 75 dc             	mov    -0x24(%ebp),%esi
405d8c:	3b 54 30 08          	cmp    0x8(%eax,%esi,1),%edx
405d90:	8b 75 14             	mov    0x14(%ebp),%esi
405d93:	7f 19                	jg     0x405dae
405d95:	6b c1 14             	imul   $0x14,%ecx,%eax
405d98:	8b 4e 10             	mov    0x10(%esi),%ecx
405d9b:	8b 44 08 04          	mov    0x4(%eax,%ecx,1),%eax
405d9f:	40                   	inc    %eax
405da0:	89 45 e0             	mov    %eax,-0x20(%ebp)
405da3:	8b 55 d8             	mov    -0x28(%ebp),%edx
405da6:	8b 14 c2             	mov    (%edx,%eax,8),%edx
405da9:	89 55 e0             	mov    %edx,-0x20(%ebp)
405dac:	eb 09                	jmp    0x405db7
405dae:	41                   	inc    %ecx
405daf:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
405db2:	3b 4e 0c             	cmp    0xc(%esi),%ecx
405db5:	72 c0                	jb     0x405d77
405db7:	52                   	push   %edx
405db8:	56                   	push   %esi
405db9:	6a 00                	push   $0x0
405dbb:	53                   	push   %ebx
405dbc:	e8 56 01 00 00       	call   0x405f17
405dc1:	83 c4 10             	add    $0x10,%esp
405dc4:	33 db                	xor    %ebx,%ebx
405dc6:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
405dc9:	21 5d fc             	and    %ebx,-0x4(%ebp)
405dcc:	8b 75 08             	mov    0x8(%ebp),%esi
405dcf:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
405dd6:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
405ddd:	e8 18 00 00 00       	call   0x405dfa
405de2:	8b c3                	mov    %ebx,%eax
405de4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405de7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405dee:	59                   	pop    %ecx
405def:	5f                   	pop    %edi
405df0:	5e                   	pop    %esi
405df1:	5b                   	pop    %ebx
405df2:	c9                   	leave
405df3:	c3                   	ret
405df4:	8b 75 08             	mov    0x8(%ebp),%esi
405df7:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
405dfa:	8b 45 d0             	mov    -0x30(%ebp),%eax
405dfd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405e00:	89 41 fc             	mov    %eax,-0x4(%ecx)
405e03:	ff 75 cc             	push   -0x34(%ebp)
405e06:	e8 41 f1 ff ff       	call   0x404f4c
405e0b:	59                   	pop    %ecx
405e0c:	e8 8b f4 ff ff       	call   0x40529c
405e11:	8b 4d c8             	mov    -0x38(%ebp),%ecx
405e14:	89 48 10             	mov    %ecx,0x10(%eax)
405e17:	e8 80 f4 ff ff       	call   0x40529c
405e1c:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
405e1f:	89 48 14             	mov    %ecx,0x14(%eax)
405e22:	81 3e 63 73 6d e0    	cmpl   $0xe06d7363,(%esi)
405e28:	75 4b                	jne    0x405e75
405e2a:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
405e2e:	75 45                	jne    0x405e75
405e30:	81 7e 14 20 05 93 19 	cmpl   $0x19930520,0x14(%esi)
405e37:	74 12                	je     0x405e4b
405e39:	81 7e 14 21 05 93 19 	cmpl   $0x19930521,0x14(%esi)
405e40:	74 09                	je     0x405e4b
405e42:	81 7e 14 22 05 93 19 	cmpl   $0x19930522,0x14(%esi)
405e49:	75 2a                	jne    0x405e75
405e4b:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
405e4f:	75 24                	jne    0x405e75
405e51:	85 db                	test   %ebx,%ebx
405e53:	74 20                	je     0x405e75
405e55:	ff 76 18             	push   0x18(%esi)
405e58:	e8 59 eb ff ff       	call   0x4049b6
405e5d:	59                   	pop    %ecx
405e5e:	85 c0                	test   %eax,%eax
405e60:	74 13                	je     0x405e75
405e62:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
405e66:	0f 95 c0             	setne  %al
405e69:	0f b6 c0             	movzbl %al,%eax
405e6c:	50                   	push   %eax
405e6d:	56                   	push   %esi
405e6e:	e8 3d ea ff ff       	call   0x4048b0
405e73:	59                   	pop    %ecx
405e74:	59                   	pop    %ecx
405e75:	c3                   	ret
405e76:	6a 04                	push   $0x4
405e78:	b8 07 80 41 00       	mov    $0x418007,%eax
405e7d:	e8 46 1b 01 00       	call   0x4179c8
405e82:	e8 15 f4 ff ff       	call   0x40529c
405e87:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
405e8b:	75 1d                	jne    0x405eaa
405e8d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405e91:	e8 ad 06 00 00       	call   0x406543
405e96:	e8 01 f4 ff ff       	call   0x40529c
405e9b:	8b 4d 08             	mov    0x8(%ebp),%ecx
405e9e:	6a 00                	push   $0x0
405ea0:	6a 00                	push   $0x0
405ea2:	89 48 1c             	mov    %ecx,0x1c(%eax)
405ea5:	e8 20 ed ff ff       	call   0x404bca
405eaa:	e8 7b 46 00 00       	call   0x40a52a
405eaf:	cc                   	int3
405eb0:	cc                   	int3
405eb1:	cc                   	int3
405eb2:	cc                   	int3
405eb3:	cc                   	int3
405eb4:	cc                   	int3
405eb5:	55                   	push   %ebp
405eb6:	8b ec                	mov    %esp,%ebp
405eb8:	8b 45 08             	mov    0x8(%ebp),%eax
405ebb:	8b 00                	mov    (%eax),%eax
405ebd:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
405ec3:	75 36                	jne    0x405efb
405ec5:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
405ec9:	75 30                	jne    0x405efb
405ecb:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
405ed2:	74 12                	je     0x405ee6
405ed4:	81 78 14 21 05 93 19 	cmpl   $0x19930521,0x14(%eax)
405edb:	74 09                	je     0x405ee6
405edd:	81 78 14 22 05 93 19 	cmpl   $0x19930522,0x14(%eax)
405ee4:	75 15                	jne    0x405efb
405ee6:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
405eea:	75 0f                	jne    0x405efb
405eec:	e8 ab f3 ff ff       	call   0x40529c
405ef1:	33 c9                	xor    %ecx,%ecx
405ef3:	41                   	inc    %ecx
405ef4:	89 48 20             	mov    %ecx,0x20(%eax)
405ef7:	8b c1                	mov    %ecx,%eax
405ef9:	5d                   	pop    %ebp
405efa:	c3                   	ret
405efb:	33 c0                	xor    %eax,%eax
405efd:	5d                   	pop    %ebp
405efe:	c3                   	ret
405eff:	55                   	push   %ebp
405f00:	8b ec                	mov    %esp,%ebp
405f02:	6a ff                	push   $0xffffffff
405f04:	ff 75 10             	push   0x10(%ebp)
405f07:	ff 75 0c             	push   0xc(%ebp)
405f0a:	ff 75 08             	push   0x8(%ebp)
405f0d:	e8 05 00 00 00       	call   0x405f17
405f12:	83 c4 10             	add    $0x10,%esp
405f15:	5d                   	pop    %ebp
405f16:	c3                   	ret
405f17:	6a 10                	push   $0x10
405f19:	68 00 fd 41 00       	push   $0x41fd00
405f1e:	e8 7d df ff ff       	call   0x403ea0
405f23:	ff 75 10             	push   0x10(%ebp)
405f26:	ff 75 0c             	push   0xc(%ebp)
405f29:	ff 75 08             	push   0x8(%ebp)
405f2c:	e8 2f 06 00 00       	call   0x406560
405f31:	83 c4 0c             	add    $0xc,%esp
405f34:	8b f0                	mov    %eax,%esi
405f36:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405f39:	e8 5e f3 ff ff       	call   0x40529c
405f3e:	ff 40 18             	incl   0x18(%eax)
405f41:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405f45:	3b 75 14             	cmp    0x14(%ebp),%esi
405f48:	74 68                	je     0x405fb2
405f4a:	83 fe ff             	cmp    $0xffffffff,%esi
405f4d:	0f 8e a6 00 00 00    	jle    0x405ff9
405f53:	8b 7d 10             	mov    0x10(%ebp),%edi
405f56:	3b 77 04             	cmp    0x4(%edi),%esi
405f59:	0f 8d 9a 00 00 00    	jge    0x405ff9
405f5f:	8b 47 08             	mov    0x8(%edi),%eax
405f62:	8b 0c f0             	mov    (%eax,%esi,8),%ecx
405f65:	89 4d e0             	mov    %ecx,-0x20(%ebp)
405f68:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
405f6f:	83 7c f0 04 00       	cmpl   $0x0,0x4(%eax,%esi,8)
405f74:	74 30                	je     0x405fa6
405f76:	51                   	push   %ecx
405f77:	57                   	push   %edi
405f78:	ff 75 08             	push   0x8(%ebp)
405f7b:	e8 fd 05 00 00       	call   0x40657d
405f80:	83 c4 0c             	add    $0xc,%esp