401b20:	3d 00 40 99 01       	cmp    $0x1994000,%eax
401b25:	75 06                	jne    0x401b2d
401b27:	ff 15 90 40 40 00    	call   *0x404090
401b2d:	33 c0                	xor    %eax,%eax
401b2f:	5d                   	pop    %ebp
401b30:	c2 04 00             	ret    $0x4
401b33:	cc                   	int3
401b34:	cc                   	int3
401b35:	cc                   	int3
401b36:	cc                   	int3
401b37:	cc                   	int3
401b38:	cc                   	int3
401b39:	cc                   	int3
401b3a:	cc                   	int3
401b3b:	cc                   	int3
401b3c:	cc                   	int3
401b3d:	cc                   	int3
401b3e:	cc                   	int3
401b3f:	cc                   	int3
401b40:	68 f0 1a 40 00       	push   $0x401af0
401b45:	ff 15 60 40 40 00    	call   *0x404060
401b4b:	33 c0                	xor    %eax,%eax
401b4d:	c3                   	ret
401b4e:	ff 25 ac 40 40 00    	jmp    *0x4040ac
401b54:	6a 0c                	push   $0xc
401b56:	68 18 20 40 00       	push   $0x402018
401b5b:	e8 b8 02 00 00       	call   0x401e18
401b60:	33 c9                	xor    %ecx,%ecx
401b62:	8b 45 08             	mov    0x8(%ebp),%eax
401b65:	85 c0                	test   %eax,%eax
401b67:	74 4b                	je     0x401bb4
401b69:	83 f8 ff             	cmp    $0xffffffff,%eax
401b6c:	74 46                	je     0x401bb4
401b6e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
401b71:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
401b76:	66 39 10             	cmp    %dx,(%eax)
401b79:	75 32                	jne    0x401bad
401b7b:	8b 50 3c             	mov    0x3c(%eax),%edx
401b7e:	85 d2                	test   %edx,%edx
401b80:	78 2b                	js     0x401bad
401b82:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
401b88:	73 23                	jae    0x401bad
401b8a:	03 c2                	add    %edx,%eax
401b8c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401b8f:	8b 08                	mov    (%eax),%ecx
401b91:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
401b97:	f7 d9                	neg    %ecx
401b99:	1b c9                	sbb    %ecx,%ecx
401b9b:	f7 d1                	not    %ecx
401b9d:	23 c8                	and    %eax,%ecx
401b9f:	eb 09                	jmp    0x401baa
401ba1:	33 c0                	xor    %eax,%eax
401ba3:	40                   	inc    %eax
401ba4:	c3                   	ret
401ba5:	8b 65 e8             	mov    -0x18(%ebp),%esp
401ba8:	33 c9                	xor    %ecx,%ecx
401baa:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
401bad:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401bb4:	8b c1                	mov    %ecx,%eax
401bb6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401bb9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401bc0:	59                   	pop    %ecx
401bc1:	5f                   	pop    %edi
401bc2:	5e                   	pop    %esi
401bc3:	5b                   	pop    %ebx
401bc4:	c9                   	leave
401bc5:	c2 04 00             	ret    $0x4
401bc8:	8b ff                	mov    %edi,%edi
401bca:	55                   	push   %ebp
401bcb:	8b ec                	mov    %esp,%ebp
401bcd:	6a 00                	push   $0x0
401bcf:	ff 15 5c 40 40 00    	call   *0x40405c
401bd5:	85 c0                	test   %eax,%eax
401bd7:	74 20                	je     0x401bf9
401bd9:	50                   	push   %eax
401bda:	e8 75 ff ff ff       	call   0x401b54
401bdf:	85 c0                	test   %eax,%eax
401be1:	74 16                	je     0x401bf9
401be3:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
401be7:	6a 02                	push   $0x2
401be9:	58                   	pop    %eax
401bea:	66 3b c8             	cmp    %ax,%cx
401bed:	74 0d                	je     0x401bfc
401bef:	83 f9 03             	cmp    $0x3,%ecx
401bf2:	75 05                	jne    0x401bf9
401bf4:	33 c0                	xor    %eax,%eax
401bf6:	40                   	inc    %eax
401bf7:	5d                   	pop    %ebp
401bf8:	c3                   	ret
401bf9:	8b 45 08             	mov    0x8(%ebp),%eax
401bfc:	5d                   	pop    %ebp
401bfd:	c3                   	ret
401bfe:	ff 25 a4 40 40 00    	jmp    *0x4040a4
401c04:	cc                   	int3
401c05:	cc                   	int3
401c06:	cc                   	int3
401c07:	cc                   	int3
401c08:	cc                   	int3
401c09:	cc                   	int3
401c0a:	cc                   	int3
401c0b:	cc                   	int3
401c0c:	cc                   	int3
401c0d:	cc                   	int3
401c0e:	cc                   	int3
401c0f:	cc                   	int3
401c10:	33 c0                	xor    %eax,%eax
401c12:	c3                   	ret
401c13:	cc                   	int3
401c14:	cc                   	int3
401c15:	cc                   	int3
401c16:	cc                   	int3
401c17:	cc                   	int3
401c18:	cc                   	int3
401c19:	cc                   	int3
401c1a:	cc                   	int3
401c1b:	cc                   	int3
401c1c:	cc                   	int3
401c1d:	cc                   	int3
401c1e:	cc                   	int3
401c1f:	cc                   	int3
401c20:	8b ff                	mov    %edi,%edi
401c22:	55                   	push   %ebp
401c23:	8b ec                	mov    %esp,%ebp
401c25:	8b 45 08             	mov    0x8(%ebp),%eax
401c28:	33 d2                	xor    %edx,%edx
401c2a:	53                   	push   %ebx
401c2b:	56                   	push   %esi
401c2c:	57                   	push   %edi
401c2d:	8b 48 3c             	mov    0x3c(%eax),%ecx
401c30:	03 c8                	add    %eax,%ecx
401c32:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
401c36:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
401c3a:	83 c0 18             	add    $0x18,%eax
401c3d:	03 c1                	add    %ecx,%eax
401c3f:	85 db                	test   %ebx,%ebx
401c41:	74 1b                	je     0x401c5e
401c43:	8b 7d 0c             	mov    0xc(%ebp),%edi
401c46:	8b 70 0c             	mov    0xc(%eax),%esi
401c49:	3b fe                	cmp    %esi,%edi
401c4b:	72 09                	jb     0x401c56
401c4d:	8b 48 08             	mov    0x8(%eax),%ecx
401c50:	03 ce                	add    %esi,%ecx
401c52:	3b f9                	cmp    %ecx,%edi
401c54:	72 0a                	jb     0x401c60
401c56:	42                   	inc    %edx
401c57:	83 c0 28             	add    $0x28,%eax
401c5a:	3b d3                	cmp    %ebx,%edx
401c5c:	72 e8                	jb     0x401c46
401c5e:	33 c0                	xor    %eax,%eax
401c60:	5f                   	pop    %edi
401c61:	5e                   	pop    %esi
401c62:	5b                   	pop    %ebx
401c63:	5d                   	pop    %ebp
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:	8b ff                	mov    %edi,%edi
401c72:	55                   	push   %ebp
401c73:	8b ec                	mov    %esp,%ebp
401c75:	6a fe                	push   $0xfffffffe
401c77:	68 38 20 40 00       	push   $0x402038
401c7c:	68 80 1e 40 00       	push   $0x401e80
401c81:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
401c87:	50                   	push   %eax
401c88:	83 ec 08             	sub    $0x8,%esp
401c8b:	53                   	push   %ebx
401c8c:	56                   	push   %esi
401c8d:	57                   	push   %edi
401c8e:	a1 04 30 40 00       	mov    0x403004,%eax
401c93:	31 45 f8             	xor    %eax,-0x8(%ebp)
401c96:	33 c5                	xor    %ebp,%eax
401c98:	50                   	push   %eax
401c99:	8d 45 f0             	lea    -0x10(%ebp),%eax
401c9c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401ca2:	89 65 e8             	mov    %esp,-0x18(%ebp)
401ca5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
401cac:	68 00 00 40 00       	push   $0x400000
401cb1:	e8 7a 00 00 00       	call   0x401d30
401cb6:	83 c4 04             	add    $0x4,%esp
401cb9:	85 c0                	test   %eax,%eax
401cbb:	74 54                	je     0x401d11
401cbd:	8b 45 08             	mov    0x8(%ebp),%eax
401cc0:	2d 00 00 40 00       	sub    $0x400000,%eax
401cc5:	50                   	push   %eax
401cc6:	68 00 00 40 00       	push   $0x400000
401ccb:	e8 50 ff ff ff       	call   0x401c20
401cd0:	83 c4 08             	add    $0x8,%esp
401cd3:	85 c0                	test   %eax,%eax
401cd5:	74 3a                	je     0x401d11
401cd7:	8b 40 24             	mov    0x24(%eax),%eax
401cda:	c1 e8 1f             	shr    $0x1f,%eax
401cdd:	f7 d0                	not    %eax
401cdf:	83 e0 01             	and    $0x1,%eax
401ce2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401ce9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401cec:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401cf3:	59                   	pop    %ecx
401cf4:	5f                   	pop    %edi
401cf5:	5e                   	pop    %esi
401cf6:	5b                   	pop    %ebx
401cf7:	8b e5                	mov    %ebp,%esp
401cf9:	5d                   	pop    %ebp
401cfa:	c3                   	ret
401cfb:	8b 45 ec             	mov    -0x14(%ebp),%eax
401cfe:	8b 00                	mov    (%eax),%eax
401d00:	33 c9                	xor    %ecx,%ecx
401d02:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
401d08:	0f 94 c1             	sete   %cl
401d0b:	8b c1                	mov    %ecx,%eax
401d0d:	c3                   	ret
401d0e:	8b 65 e8             	mov    -0x18(%ebp),%esp
401d11:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401d18:	33 c0                	xor    %eax,%eax
401d1a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401d1d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401d24:	59                   	pop    %ecx
401d25:	5f                   	pop    %edi
401d26:	5e                   	pop    %esi
401d27:	5b                   	pop    %ebx
401d28:	8b e5                	mov    %ebp,%esp
401d2a:	5d                   	pop    %ebp
401d2b:	c3                   	ret
401d2c:	cc                   	int3
401d2d:	cc                   	int3
401d2e:	cc                   	int3
401d2f:	cc                   	int3
401d30:	8b ff                	mov    %edi,%edi
401d32:	55                   	push   %ebp
401d33:	8b ec                	mov    %esp,%ebp
401d35:	8b 4d 08             	mov    0x8(%ebp),%ecx
401d38:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
401d3d:	66 39 01             	cmp    %ax,(%ecx)
401d40:	75 1f                	jne    0x401d61
401d42:	8b 41 3c             	mov    0x3c(%ecx),%eax
401d45:	03 c1                	add    %ecx,%eax
401d47:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
401d4d:	75 12                	jne    0x401d61
401d4f:	b9 0b 01 00 00       	mov    $0x10b,%ecx
401d54:	66 39 48 18          	cmp    %cx,0x18(%eax)
401d58:	75 07                	jne    0x401d61
401d5a:	b8 01 00 00 00       	mov    $0x1,%eax
401d5f:	5d                   	pop    %ebp
401d60:	c3                   	ret
401d61:	33 c0                	xor    %eax,%eax
401d63:	5d                   	pop    %ebp
401d64:	c3                   	ret
401d65:	8b ff                	mov    %edi,%edi
401d67:	55                   	push   %ebp
401d68:	8b ec                	mov    %esp,%ebp
401d6a:	83 ec 14             	sub    $0x14,%esp
401d6d:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
401d71:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
401d75:	a1 04 30 40 00       	mov    0x403004,%eax
401d7a:	56                   	push   %esi
401d7b:	57                   	push   %edi
401d7c:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
401d81:	be 00 00 ff ff       	mov    $0xffff0000,%esi
401d86:	3b c7                	cmp    %edi,%eax
401d88:	74 04                	je     0x401d8e
401d8a:	85 c6                	test   %eax,%esi
401d8c:	75 64                	jne    0x401df2
401d8e:	8d 45 f4             	lea    -0xc(%ebp),%eax
401d91:	50                   	push   %eax
401d92:	ff 15 4c 40 40 00    	call   *0x40404c
401d98:	8b 45 f8             	mov    -0x8(%ebp),%eax
401d9b:	33 45 f4             	xor    -0xc(%ebp),%eax
401d9e:	89 45 fc             	mov    %eax,-0x4(%ebp)
401da1:	ff 15 54 40 40 00    	call   *0x404054
401da7:	31 45 fc             	xor    %eax,-0x4(%ebp)
401daa:	ff 15 50 40 40 00    	call   *0x404050
401db0:	31 45 fc             	xor    %eax,-0x4(%ebp)
401db3:	ff 15 48 40 40 00    	call   *0x404048
401db9:	33 45 fc             	xor    -0x4(%ebp),%eax
401dbc:	8d 4d fc             	lea    -0x4(%ebp),%ecx
401dbf:	33 c1                	xor    %ecx,%eax
401dc1:	89 45 fc             	mov    %eax,-0x4(%ebp)
401dc4:	8d 45 ec             	lea    -0x14(%ebp),%eax
401dc7:	50                   	push   %eax
401dc8:	ff 15 58 40 40 00    	call   *0x404058
401dce:	8b 45 f0             	mov    -0x10(%ebp),%eax
401dd1:	33 45 ec             	xor    -0x14(%ebp),%eax
401dd4:	33 45 fc             	xor    -0x4(%ebp),%eax
401dd7:	8b c8                	mov    %eax,%ecx
401dd9:	3b c7                	cmp    %edi,%eax
401ddb:	74 08                	je     0x401de5
401ddd:	85 35 04 30 40 00    	test   %esi,0x403004
401de3:	75 07                	jne    0x401dec
401de5:	b8 4f e6 40 bb       	mov    $0xbb40e64f,%eax
401dea:	8b c8                	mov    %eax,%ecx
401dec:	89 0d 04 30 40 00    	mov    %ecx,0x403004
401df2:	f7 d0                	not    %eax
401df4:	5f                   	pop    %edi
401df5:	a3 08 30 40 00       	mov    %eax,0x403008
401dfa:	5e                   	pop    %esi
401dfb:	c9                   	leave
401dfc:	c3                   	ret
401dfd:	68 00 00 03 00       	push   $0x30000
401e02:	68 00 00 01 00       	push   $0x10000
401e07:	ff 15 94 40 40 00    	call   *0x404094
401e0d:	59                   	pop    %ecx
401e0e:	59                   	pop    %ecx
401e0f:	c3                   	ret
401e10:	ff 25 b4 40 40 00    	jmp    *0x4040b4
401e16:	cc                   	int3
401e17:	cc                   	int3
401e18:	68 80 1e 40 00       	push   $0x401e80
401e1d:	64 ff 35 00 00 00 00 	push   %fs:0x0
401e24:	8b 44 24 10          	mov    0x10(%esp),%eax
401e28:	89 6c 24 10          	mov    %ebp,0x10(%esp)
401e2c:	8d 6c 24 10          	lea    0x10(%esp),%ebp
401e30:	2b e0                	sub    %eax,%esp
401e32:	53                   	push   %ebx
401e33:	56                   	push   %esi
401e34:	57                   	push   %edi
401e35:	a1 04 30 40 00       	mov    0x403004,%eax
401e3a:	31 45 fc             	xor    %eax,-0x4(%ebp)
401e3d:	33 c5                	xor    %ebp,%eax
401e3f:	50                   	push   %eax
401e40:	89 65 e8             	mov    %esp,-0x18(%ebp)
401e43:	ff 75 f8             	push   -0x8(%ebp)
401e46:	8b 45 fc             	mov    -0x4(%ebp),%eax
401e49:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401e50:	89 45 f8             	mov    %eax,-0x8(%ebp)
401e53:	8d 45 f0             	lea    -0x10(%ebp),%eax
401e56:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401e5c:	c3                   	ret
401e5d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401e60:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401e67:	59                   	pop    %ecx
401e68:	5f                   	pop    %edi
401e69:	5f                   	pop    %edi
401e6a:	5e                   	pop    %esi
401e6b:	5b                   	pop    %ebx
401e6c:	8b e5                	mov    %ebp,%esp
401e6e:	5d                   	pop    %ebp
401e6f:	51                   	push   %ecx
401e70:	c3                   	ret
401e71:	cc                   	int3
401e72:	cc                   	int3
401e73:	cc                   	int3
401e74:	cc                   	int3