4059d3:	ff 75 18             	push   0x18(%ebp)
4059d6:	ff 75 14             	push   0x14(%ebp)
4059d9:	ff 75 10             	push   0x10(%ebp)
4059dc:	ff 75 0c             	push   0xc(%ebp)
4059df:	53                   	push   %ebx
4059e0:	e8 9f f3 ff ff       	call   0x404d84
4059e5:	83 c4 1c             	add    $0x1c,%esp
4059e8:	85 c0                	test   %eax,%eax
4059ea:	0f 85 c1 00 00 00    	jne    0x405ab1
4059f0:	8b 45 18             	mov    0x18(%ebp),%eax
4059f3:	89 45 ec             	mov    %eax,-0x14(%ebp)
4059f6:	89 7d f0             	mov    %edi,-0x10(%ebp)
4059f9:	39 78 0c             	cmp    %edi,0xc(%eax)
4059fc:	0f 86 b4 00 00 00    	jbe    0x405ab6
405a02:	ff 75 20             	push   0x20(%ebp)
405a05:	50                   	push   %eax
405a06:	ff 75 14             	push   0x14(%ebp)
405a09:	8d 45 ec             	lea    -0x14(%ebp),%eax
405a0c:	ff 75 1c             	push   0x1c(%ebp)
405a0f:	50                   	push   %eax
405a10:	8d 45 dc             	lea    -0x24(%ebp),%eax
405a13:	50                   	push   %eax
405a14:	e8 9f f2 ff ff       	call   0x404cb8
405a19:	8b 55 e0             	mov    -0x20(%ebp),%edx
405a1c:	83 c4 18             	add    $0x18,%esp
405a1f:	8b 45 dc             	mov    -0x24(%ebp),%eax
405a22:	89 45 f4             	mov    %eax,-0xc(%ebp)
405a25:	89 55 fc             	mov    %edx,-0x4(%ebp)
405a28:	3b 55 e8             	cmp    -0x18(%ebp),%edx
405a2b:	0f 83 80 00 00 00    	jae    0x405ab1
405a31:	6b ca 14             	imul   $0x14,%edx,%ecx
405a34:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405a37:	8b 00                	mov    (%eax),%eax
405a39:	8d 7d c8             	lea    -0x38(%ebp),%edi
405a3c:	6a 05                	push   $0x5
405a3e:	8b 70 10             	mov    0x10(%eax),%esi
405a41:	8b 45 1c             	mov    0x1c(%ebp),%eax
405a44:	03 f1                	add    %ecx,%esi
405a46:	59                   	pop    %ecx
405a47:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405a49:	39 45 c8             	cmp    %eax,-0x38(%ebp)
405a4c:	7f 4e                	jg     0x405a9c
405a4e:	3b 45 cc             	cmp    -0x34(%ebp),%eax
405a51:	7f 49                	jg     0x405a9c
405a53:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
405a56:	8b 45 d8             	mov    -0x28(%ebp),%eax
405a59:	c1 e1 04             	shl    $0x4,%ecx
405a5c:	83 c0 f0             	add    $0xfffffff0,%eax
405a5f:	03 c1                	add    %ecx,%eax
405a61:	8b 48 04             	mov    0x4(%eax),%ecx
405a64:	85 c9                	test   %ecx,%ecx
405a66:	74 06                	je     0x405a6e
405a68:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
405a6c:	75 2e                	jne    0x405a9c
405a6e:	f6 00 40             	testb  $0x40,(%eax)
405a71:	75 29                	jne    0x405a9c
405a73:	6a 00                	push   $0x0
405a75:	6a 01                	push   $0x1
405a77:	ff 75 24             	push   0x24(%ebp)
405a7a:	8d 4d c8             	lea    -0x38(%ebp),%ecx
405a7d:	ff 75 20             	push   0x20(%ebp)
405a80:	51                   	push   %ecx
405a81:	6a 00                	push   $0x0
405a83:	50                   	push   %eax
405a84:	ff 75 18             	push   0x18(%ebp)
405a87:	ff 75 14             	push   0x14(%ebp)
405a8a:	ff 75 10             	push   0x10(%ebp)
405a8d:	ff 75 0c             	push   0xc(%ebp)
405a90:	53                   	push   %ebx
405a91:	e8 cb fa ff ff       	call   0x405561
405a96:	8b 55 fc             	mov    -0x4(%ebp),%edx
405a99:	83 c4 30             	add    $0x30,%esp
405a9c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405a9f:	42                   	inc    %edx
405aa0:	8b 45 f4             	mov    -0xc(%ebp),%eax
405aa3:	83 c1 14             	add    $0x14,%ecx
405aa6:	89 55 fc             	mov    %edx,-0x4(%ebp)
405aa9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405aac:	3b 55 e8             	cmp    -0x18(%ebp),%edx
405aaf:	72 86                	jb     0x405a37
405ab1:	5f                   	pop    %edi
405ab2:	5e                   	pop    %esi
405ab3:	5b                   	pop    %ebx
405ab4:	c9                   	leave
405ab5:	c3                   	ret
405ab6:	e8 6f 4a 00 00       	call   0x40a52a
405abb:	cc                   	int3
405abc:	55                   	push   %ebp
405abd:	8b ec                	mov    %esp,%ebp
405abf:	8b 55 08             	mov    0x8(%ebp),%edx
405ac2:	53                   	push   %ebx
405ac3:	56                   	push   %esi
405ac4:	57                   	push   %edi
405ac5:	8b 42 04             	mov    0x4(%edx),%eax
405ac8:	85 c0                	test   %eax,%eax
405aca:	74 76                	je     0x405b42
405acc:	8d 48 08             	lea    0x8(%eax),%ecx
405acf:	80 39 00             	cmpb   $0x0,(%ecx)
405ad2:	74 6e                	je     0x405b42
405ad4:	f6 02 80             	testb  $0x80,(%edx)
405ad7:	8b 7d 0c             	mov    0xc(%ebp),%edi
405ada:	74 05                	je     0x405ae1
405adc:	f6 07 10             	testb  $0x10,(%edi)
405adf:	75 61                	jne    0x405b42
405ae1:	8b 5f 04             	mov    0x4(%edi),%ebx
405ae4:	33 f6                	xor    %esi,%esi
405ae6:	3b c3                	cmp    %ebx,%eax
405ae8:	74 30                	je     0x405b1a
405aea:	8d 43 08             	lea    0x8(%ebx),%eax
405aed:	8a 19                	mov    (%ecx),%bl
405aef:	3a 18                	cmp    (%eax),%bl
405af1:	75 1a                	jne    0x405b0d
405af3:	84 db                	test   %bl,%bl
405af5:	74 12                	je     0x405b09
405af7:	8a 59 01             	mov    0x1(%ecx),%bl
405afa:	3a 58 01             	cmp    0x1(%eax),%bl
405afd:	75 0e                	jne    0x405b0d
405aff:	83 c1 02             	add    $0x2,%ecx
405b02:	83 c0 02             	add    $0x2,%eax
405b05:	84 db                	test   %bl,%bl
405b07:	75 e4                	jne    0x405aed
405b09:	8b c6                	mov    %esi,%eax
405b0b:	eb 05                	jmp    0x405b12
405b0d:	1b c0                	sbb    %eax,%eax
405b0f:	83 c8 01             	or     $0x1,%eax
405b12:	85 c0                	test   %eax,%eax
405b14:	74 04                	je     0x405b1a
405b16:	33 c0                	xor    %eax,%eax
405b18:	eb 2b                	jmp    0x405b45
405b1a:	f6 07 02             	testb  $0x2,(%edi)
405b1d:	74 05                	je     0x405b24
405b1f:	f6 02 08             	testb  $0x8,(%edx)
405b22:	74 1a                	je     0x405b3e
405b24:	8b 45 10             	mov    0x10(%ebp),%eax
405b27:	f6 00 01             	testb  $0x1,(%eax)
405b2a:	74 05                	je     0x405b31
405b2c:	f6 02 01             	testb  $0x1,(%edx)
405b2f:	74 0d                	je     0x405b3e
405b31:	f6 00 02             	testb  $0x2,(%eax)
405b34:	74 05                	je     0x405b3b
405b36:	f6 02 02             	testb  $0x2,(%edx)
405b39:	74 03                	je     0x405b3e
405b3b:	33 f6                	xor    %esi,%esi
405b3d:	46                   	inc    %esi
405b3e:	8b c6                	mov    %esi,%eax
405b40:	eb 03                	jmp    0x405b45
405b42:	33 c0                	xor    %eax,%eax
405b44:	40                   	inc    %eax
405b45:	5f                   	pop    %edi
405b46:	5e                   	pop    %esi
405b47:	5b                   	pop    %ebx
405b48:	5d                   	pop    %ebp
405b49:	c3                   	ret
405b4a:	55                   	push   %ebp
405b4b:	8b ec                	mov    %esp,%ebp
405b4d:	53                   	push   %ebx
405b4e:	56                   	push   %esi
405b4f:	57                   	push   %edi
405b50:	ff 75 10             	push   0x10(%ebp)
405b53:	e8 c4 05 00 00       	call   0x40611c
405b58:	59                   	pop    %ecx
405b59:	e8 3e f7 ff ff       	call   0x40529c
405b5e:	8b 4d 18             	mov    0x18(%ebp),%ecx
405b61:	33 f6                	xor    %esi,%esi
405b63:	8b 55 08             	mov    0x8(%ebp),%edx
405b66:	bb ff ff ff 1f       	mov    $0x1fffffff,%ebx
405b6b:	bf 22 05 93 19       	mov    $0x19930522,%edi
405b70:	39 70 20             	cmp    %esi,0x20(%eax)
405b73:	75 22                	jne    0x405b97
405b75:	81 3a 63 73 6d e0    	cmpl   $0xe06d7363,(%edx)
405b7b:	74 1a                	je     0x405b97
405b7d:	81 3a 26 00 00 80    	cmpl   $0x80000026,(%edx)
405b83:	74 12                	je     0x405b97
405b85:	8b 01                	mov    (%ecx),%eax
405b87:	23 c3                	and    %ebx,%eax
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