401b38:	58                   	pop    %eax
401b39:	50                   	push   %eax
401b3a:	51                   	push   %ecx
401b3b:	53                   	push   %ebx
401b3c:	68 00 00 40 00       	push   $0x400000
401b41:	e8 a3 fa ff ff       	call   0x4015e9
401b46:	a3 10 30 40 00       	mov    %eax,0x403010
401b4b:	83 3d 28 30 40 00 00 	cmpl   $0x0,0x403028
401b52:	75 4f                	jne    0x401ba3
401b54:	50                   	push   %eax
401b55:	ff 15 8c 40 40 00    	call   *0x40408c
401b5b:	83 f8 22             	cmp    $0x22,%eax
401b5e:	75 0c                	jne    0x401b6c
401b60:	33 c0                	xor    %eax,%eax
401b62:	85 d2                	test   %edx,%edx
401b64:	0f 94 c0             	sete   %al
401b67:	8b d0                	mov    %eax,%edx
401b69:	89 55 e4             	mov    %edx,-0x1c(%ebp)
401b6c:	83 c1 02             	add    $0x2,%ecx
401b6f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
401b72:	eb 90                	jmp    0x401b04
401b74:	8b 4d ec             	mov    -0x14(%ebp),%ecx
401b77:	8b 01                	mov    (%ecx),%eax
401b79:	8b 00                	mov    (%eax),%eax
401b7b:	89 45 dc             	mov    %eax,-0x24(%ebp)
401b7e:	51                   	push   %ecx
401b7f:	50                   	push   %eax
401b80:	e8 99 01 00 00       	call   0x401d1e
401b85:	59                   	pop    %ecx
401b86:	59                   	pop    %ecx
401b87:	c3                   	ret
401b88:	8b 65 e8             	mov    -0x18(%ebp),%esp
401b8b:	8b 45 dc             	mov    -0x24(%ebp),%eax
401b8e:	a3 10 30 40 00       	mov    %eax,0x403010
401b93:	83 3d 28 30 40 00 00 	cmpl   $0x0,0x403028
401b9a:	75 07                	jne    0x401ba3
401b9c:	50                   	push   %eax
401b9d:	ff 15 88 40 40 00    	call   *0x404088
401ba3:	83 3d 14 30 40 00 00 	cmpl   $0x0,0x403014
401baa:	75 0b                	jne    0x401bb7
401bac:	ff 15 84 40 40 00    	call   *0x404084
401bb2:	a1 10 30 40 00       	mov    0x403010,%eax
401bb7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401bbe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401bc1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401bc8:	59                   	pop    %ecx
401bc9:	5f                   	pop    %edi
401bca:	5e                   	pop    %esi
401bcb:	5b                   	pop    %ebx
401bcc:	c9                   	leave
401bcd:	c3                   	ret
401bce:	8b ff                	mov    %edi,%edi
401bd0:	55                   	push   %ebp
401bd1:	8b ec                	mov    %esp,%ebp
401bd3:	56                   	push   %esi
401bd4:	8b 75 08             	mov    0x8(%ebp),%esi
401bd7:	33 c0                	xor    %eax,%eax
401bd9:	3b 75 0c             	cmp    0xc(%ebp),%esi
401bdc:	73 1e                	jae    0x401bfc
401bde:	57                   	push   %edi
401bdf:	85 c0                	test   %eax,%eax
401be1:	75 18                	jne    0x401bfb
401be3:	8b 3e                	mov    (%esi),%edi
401be5:	85 ff                	test   %edi,%edi
401be7:	74 0a                	je     0x401bf3
401be9:	8b cf                	mov    %edi,%ecx
401beb:	ff 15 ac 40 40 00    	call   *0x4040ac
401bf1:	ff d7                	call   *%edi
401bf3:	83 c6 04             	add    $0x4,%esi
401bf6:	3b 75 0c             	cmp    0xc(%ebp),%esi
401bf9:	72 e4                	jb     0x401bdf
401bfb:	5f                   	pop    %edi
401bfc:	5e                   	pop    %esi
401bfd:	5d                   	pop    %ebp
401bfe:	c3                   	ret
401bff:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
401c04:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
401c0b:	75 55                	jne    0x401c62
401c0d:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
401c13:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
401c1a:	45 00 00
401c1d:	75 43                	jne    0x401c62
401c1f:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
401c26:	ba 0b 01 00 00       	mov    $0x10b,%edx
401c2b:	66 3b c2             	cmp    %dx,%ax
401c2e:	74 1f                	je     0x401c4f
401c30:	ba 0b 02 00 00       	mov    $0x20b,%edx
401c35:	66 3b c2             	cmp    %dx,%ax
401c38:	75 28                	jne    0x401c62
401c3a:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
401c41:	76 1f                	jbe    0x401c62
401c43:	33 c0                	xor    %eax,%eax
401c45:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
401c4b:	0f 95 c0             	setne  %al
401c4e:	c3                   	ret
401c4f:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
401c56:	76 0a                	jbe    0x401c62
401c58:	33 c0                	xor    %eax,%eax
401c5a:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
401c60:	eb e9                	jmp    0x401c4b
401c62:	33 c0                	xor    %eax,%eax
401c64:	c3                   	ret
401c65:	cc                   	int3
401c66:	cc                   	int3
401c67:	cc                   	int3
401c68:	cc                   	int3
401c69:	cc                   	int3
401c6a:	cc                   	int3
401c6b:	cc                   	int3
401c6c:	cc                   	int3
401c6d:	cc                   	int3
401c6e:	cc                   	int3
401c6f:	cc                   	int3
401c70:	e8 c0 02 00 00       	call   0x401f35
401c75:	e9 79 fd ff ff       	jmp    0x4019f3
401c7a:	cc                   	int3
401c7b:	cc                   	int3
401c7c:	cc                   	int3
401c7d:	cc                   	int3
401c7e:	cc                   	int3
401c7f:	cc                   	int3
401c80:	8b ff                	mov    %edi,%edi
401c82:	55                   	push   %ebp
401c83:	8b ec                	mov    %esp,%ebp
401c85:	ff 75 14             	push   0x14(%ebp)
401c88:	ff 75 10             	push   0x10(%ebp)
401c8b:	ff 75 0c             	push   0xc(%ebp)
401c8e:	ff 75 08             	push   0x8(%ebp)
401c91:	68 b0 1c 40 00       	push   $0x401cb0
401c96:	68 04 30 40 00       	push   $0x403004
401c9b:	e8 b3 03 00 00       	call   0x402053
401ca0:	83 c4 18             	add    $0x18,%esp
401ca3:	5d                   	pop    %ebp
401ca4:	c3                   	ret
401ca5:	cc                   	int3
401ca6:	cc                   	int3
401ca7:	cc                   	int3
401ca8:	cc                   	int3
401ca9:	cc                   	int3
401caa:	cc                   	int3
401cab:	cc                   	int3
401cac:	cc                   	int3
401cad:	cc                   	int3
401cae:	cc                   	int3
401caf:	cc                   	int3
401cb0:	3b 0d 04 30 40 00    	cmp    0x403004,%ecx
401cb6:	75 03                	jne    0x401cbb
401cb8:	c2 00 00             	ret    $0x0
401cbb:	e9 c3 03 00 00       	jmp    0x402083
401cc0:	8b ff                	mov    %edi,%edi
401cc2:	55                   	push   %ebp
401cc3:	8b ec                	mov    %esp,%ebp
401cc5:	8b 45 08             	mov    0x8(%ebp),%eax
401cc8:	8b 00                	mov    (%eax),%eax
401cca:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
401cd0:	75 2b                	jne    0x401cfd
401cd2:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
401cd6:	75 25                	jne    0x401cfd
401cd8:	8b 40 14             	mov    0x14(%eax),%eax
401cdb:	3d 20 05 93 19       	cmp    $0x19930520,%eax
401ce0:	74 15                	je     0x401cf7
401ce2:	3d 21 05 93 19       	cmp    $0x19930521,%eax
401ce7:	74 0e                	je     0x401cf7
401ce9:	3d 22 05 93 19       	cmp    $0x19930522,%eax
401cee:	74 07                	je     0x401cf7
401cf0:	3d 00 40 99 01       	cmp    $0x1994000,%eax
401cf5:	75 06                	jne    0x401cfd
401cf7:	ff 15 5c 40 40 00    	call   *0x40405c
401cfd:	33 c0                	xor    %eax,%eax
401cff:	5d                   	pop    %ebp
401d00:	c2 04 00             	ret    $0x4
401d03:	cc                   	int3
401d04:	cc                   	int3
401d05:	cc                   	int3
401d06:	cc                   	int3
401d07:	cc                   	int3
401d08:	cc                   	int3
401d09:	cc                   	int3
401d0a:	cc                   	int3
401d0b:	cc                   	int3
401d0c:	cc                   	int3
401d0d:	cc                   	int3
401d0e:	cc                   	int3
401d0f:	cc                   	int3
401d10:	68 c0 1c 40 00       	push   $0x401cc0
401d15:	ff 15 40 40 40 00    	call   *0x404040
401d1b:	33 c0                	xor    %eax,%eax
401d1d:	c3                   	ret
401d1e:	ff 25 68 40 40 00    	jmp    *0x404068
401d24:	6a 0c                	push   $0xc
401d26:	68 50 22 40 00       	push   $0x402250
401d2b:	e8 b8 02 00 00       	call   0x401fe8
401d30:	33 c9                	xor    %ecx,%ecx
401d32:	8b 45 08             	mov    0x8(%ebp),%eax
401d35:	85 c0                	test   %eax,%eax
401d37:	74 4b                	je     0x401d84
401d39:	83 f8 ff             	cmp    $0xffffffff,%eax
401d3c:	74 46                	je     0x401d84
401d3e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
401d41:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
401d46:	66 39 10             	cmp    %dx,(%eax)
401d49:	75 32                	jne    0x401d7d
401d4b:	8b 50 3c             	mov    0x3c(%eax),%edx
401d4e:	85 d2                	test   %edx,%edx
401d50:	78 2b                	js     0x401d7d
401d52:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
401d58:	73 23                	jae    0x401d7d
401d5a:	03 c2                	add    %edx,%eax
401d5c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401d5f:	8b 08                	mov    (%eax),%ecx
401d61:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
401d67:	f7 d9                	neg    %ecx
401d69:	1b c9                	sbb    %ecx,%ecx
401d6b:	f7 d1                	not    %ecx
401d6d:	23 c8                	and    %eax,%ecx
401d6f:	eb 09                	jmp    0x401d7a
401d71:	33 c0                	xor    %eax,%eax
401d73:	40                   	inc    %eax
401d74:	c3                   	ret
401d75:	8b 65 e8             	mov    -0x18(%ebp),%esp
401d78:	33 c9                	xor    %ecx,%ecx
401d7a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
401d7d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401d84:	8b c1                	mov    %ecx,%eax
401d86:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401d89:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401d90:	59                   	pop    %ecx
401d91:	5f                   	pop    %edi
401d92:	5e                   	pop    %esi
401d93:	5b                   	pop    %ebx
401d94:	c9                   	leave
401d95:	c2 04 00             	ret    $0x4
401d98:	8b ff                	mov    %edi,%edi
401d9a:	55                   	push   %ebp
401d9b:	8b ec                	mov    %esp,%ebp
401d9d:	6a 00                	push   $0x0
401d9f:	ff 15 3c 40 40 00    	call   *0x40403c
401da5:	85 c0                	test   %eax,%eax
401da7:	74 20                	je     0x401dc9
401da9:	50                   	push   %eax
401daa:	e8 75 ff ff ff       	call   0x401d24
401daf:	85 c0                	test   %eax,%eax
401db1:	74 16                	je     0x401dc9
401db3:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
401db7:	6a 02                	push   $0x2
401db9:	58                   	pop    %eax
401dba:	66 3b c8             	cmp    %ax,%cx
401dbd:	74 0d                	je     0x401dcc
401dbf:	83 f9 03             	cmp    $0x3,%ecx
401dc2:	75 05                	jne    0x401dc9
401dc4:	33 c0                	xor    %eax,%eax
401dc6:	40                   	inc    %eax
401dc7:	5d                   	pop    %ebp
401dc8:	c3                   	ret
401dc9:	8b 45 08             	mov    0x8(%ebp),%eax
401dcc:	5d                   	pop    %ebp
401dcd:	c3                   	ret
401dce:	ff 25 70 40 40 00    	jmp    *0x404070
401dd4:	cc                   	int3
401dd5:	cc                   	int3
401dd6:	cc                   	int3
401dd7:	cc                   	int3
401dd8:	cc                   	int3
401dd9:	cc                   	int3
401dda:	cc                   	int3
401ddb:	cc                   	int3
401ddc:	cc                   	int3
401ddd:	cc                   	int3
401dde:	cc                   	int3
401ddf:	cc                   	int3
401de0:	33 c0                	xor    %eax,%eax
401de2:	c3                   	ret
401de3:	cc                   	int3
401de4:	cc                   	int3
401de5:	cc                   	int3
401de6:	cc                   	int3
401de7:	cc                   	int3
401de8:	cc                   	int3
401de9:	cc                   	int3
401dea:	cc                   	int3
401deb:	cc                   	int3
401dec:	cc                   	int3
401ded:	cc                   	int3
401dee:	cc                   	int3
401def:	cc                   	int3
401df0:	8b ff                	mov    %edi,%edi
401df2:	55                   	push   %ebp
401df3:	8b ec                	mov    %esp,%ebp
401df5:	8b 45 08             	mov    0x8(%ebp),%eax
401df8:	33 d2                	xor    %edx,%edx
401dfa:	53                   	push   %ebx
401dfb:	56                   	push   %esi
401dfc:	57                   	push   %edi
401dfd:	8b 48 3c             	mov    0x3c(%eax),%ecx
401e00:	03 c8                	add    %eax,%ecx
401e02:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
401e06:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
401e0a:	83 c0 18             	add    $0x18,%eax
401e0d:	03 c1                	add    %ecx,%eax
401e0f:	85 db                	test   %ebx,%ebx
401e11:	74 1b                	je     0x401e2e
401e13:	8b 7d 0c             	mov    0xc(%ebp),%edi
401e16:	8b 70 0c             	mov    0xc(%eax),%esi
401e19:	3b fe                	cmp    %esi,%edi
401e1b:	72 09                	jb     0x401e26
401e1d:	8b 48 08             	mov    0x8(%eax),%ecx
401e20:	03 ce                	add    %esi,%ecx
401e22:	3b f9                	cmp    %ecx,%edi
401e24:	72 0a                	jb     0x401e30
401e26:	42                   	inc    %edx
401e27:	83 c0 28             	add    $0x28,%eax
401e2a:	3b d3                	cmp    %ebx,%edx
401e2c:	72 e8                	jb     0x401e16
401e2e:	33 c0                	xor    %eax,%eax
401e30:	5f                   	pop    %edi
401e31:	5e                   	pop    %esi
401e32:	5b                   	pop    %ebx
401e33:	5d                   	pop    %ebp
401e34:	c3                   	ret
401e35:	cc                   	int3
401e36:	cc                   	int3
401e37:	cc                   	int3
401e38:	cc                   	int3
401e39:	cc                   	int3
401e3a:	cc                   	int3
401e3b:	cc                   	int3
401e3c:	cc                   	int3
401e3d:	cc                   	int3
401e3e:	cc                   	int3
401e3f:	cc                   	int3
401e40:	8b ff                	mov    %edi,%edi
401e42:	55                   	push   %ebp
401e43:	8b ec                	mov    %esp,%ebp
401e45:	6a fe                	push   $0xfffffffe
401e47:	68 70 22 40 00       	push   $0x402270
401e4c:	68 80 1c 40 00       	push   $0x401c80
401e51:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
401e57:	50                   	push   %eax
401e58:	83 ec 08             	sub    $0x8,%esp
401e5b:	53                   	push   %ebx
401e5c:	56                   	push   %esi
401e5d:	57                   	push   %edi
401e5e:	a1 04 30 40 00       	mov    0x403004,%eax
401e63:	31 45 f8             	xor    %eax,-0x8(%ebp)
401e66:	33 c5                	xor    %ebp,%eax
401e68:	50                   	push   %eax
401e69:	8d 45 f0             	lea    -0x10(%ebp),%eax
401e6c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401e72:	89 65 e8             	mov    %esp,-0x18(%ebp)
401e75:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)