408d07:	74 0e                	je     0x408d17
408d09:	3d 22 05 93 19       	cmp    $0x19930522,%eax
408d0e:	74 07                	je     0x408d17
408d10:	3d 00 40 99 01       	cmp    $0x1994000,%eax
408d15:	75 06                	jne    0x408d1d
408d17:	ff 15 d0 f1 40 00    	call   *0x40f1d0
408d1d:	33 c0                	xor    %eax,%eax
408d1f:	5d                   	pop    %ebp
408d20:	c2 04 00             	ret    $0x4
408d23:	cc                   	int3
408d24:	cc                   	int3
408d25:	cc                   	int3
408d26:	cc                   	int3
408d27:	cc                   	int3
408d28:	cc                   	int3
408d29:	cc                   	int3
408d2a:	cc                   	int3
408d2b:	cc                   	int3
408d2c:	cc                   	int3
408d2d:	cc                   	int3
408d2e:	cc                   	int3
408d2f:	cc                   	int3
408d30:	68 e0 8c 40 00       	push   $0x408ce0
408d35:	ff 15 dc f0 40 00    	call   *0x40f0dc
408d3b:	33 c0                	xor    %eax,%eax
408d3d:	c3                   	ret
408d3e:	ff 25 a0 f1 40 00    	jmp    *0x40f1a0
408d44:	6a 0c                	push   $0xc
408d46:	68 30 91 40 00       	push   $0x409130
408d4b:	e8 b8 02 00 00       	call   0x409008
408d50:	33 c9                	xor    %ecx,%ecx
408d52:	8b 45 08             	mov    0x8(%ebp),%eax
408d55:	85 c0                	test   %eax,%eax
408d57:	74 4b                	je     0x408da4
408d59:	83 f8 ff             	cmp    $0xffffffff,%eax
408d5c:	74 46                	je     0x408da4
408d5e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408d61:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
408d66:	66 39 10             	cmp    %dx,(%eax)
408d69:	75 32                	jne    0x408d9d
408d6b:	8b 50 3c             	mov    0x3c(%eax),%edx
408d6e:	85 d2                	test   %edx,%edx
408d70:	78 2b                	js     0x408d9d
408d72:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
408d78:	73 23                	jae    0x408d9d
408d7a:	03 c2                	add    %edx,%eax
408d7c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408d7f:	8b 08                	mov    (%eax),%ecx
408d81:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
408d87:	f7 d9                	neg    %ecx
408d89:	1b c9                	sbb    %ecx,%ecx
408d8b:	f7 d1                	not    %ecx
408d8d:	23 c8                	and    %eax,%ecx
408d8f:	eb 09                	jmp    0x408d9a
408d91:	33 c0                	xor    %eax,%eax
408d93:	40                   	inc    %eax
408d94:	c3                   	ret
408d95:	8b 65 e8             	mov    -0x18(%ebp),%esp
408d98:	33 c9                	xor    %ecx,%ecx
408d9a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408d9d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
408da4:	8b c1                	mov    %ecx,%eax
408da6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408da9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408db0:	59                   	pop    %ecx
408db1:	5f                   	pop    %edi
408db2:	5e                   	pop    %esi
408db3:	5b                   	pop    %ebx
408db4:	c9                   	leave
408db5:	c2 04 00             	ret    $0x4
408db8:	8b ff                	mov    %edi,%edi
408dba:	55                   	push   %ebp
408dbb:	8b ec                	mov    %esp,%ebp
408dbd:	6a 00                	push   $0x0
408dbf:	ff 15 24 f1 40 00    	call   *0x40f124
408dc5:	85 c0                	test   %eax,%eax
408dc7:	74 20                	je     0x408de9
408dc9:	50                   	push   %eax
408dca:	e8 75 ff ff ff       	call   0x408d44
408dcf:	85 c0                	test   %eax,%eax
408dd1:	74 16                	je     0x408de9
408dd3:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
408dd7:	6a 02                	push   $0x2
408dd9:	58                   	pop    %eax
408dda:	66 3b c8             	cmp    %ax,%cx
408ddd:	74 0d                	je     0x408dec
408ddf:	83 f9 03             	cmp    $0x3,%ecx
408de2:	75 05                	jne    0x408de9
408de4:	33 c0                	xor    %eax,%eax
408de6:	40                   	inc    %eax
408de7:	5d                   	pop    %ebp
408de8:	c3                   	ret
408de9:	8b 45 08             	mov    0x8(%ebp),%eax
408dec:	5d                   	pop    %ebp
408ded:	c3                   	ret
408dee:	ff 25 a8 f1 40 00    	jmp    *0x40f1a8
408df4:	cc                   	int3
408df5:	cc                   	int3
408df6:	cc                   	int3
408df7:	cc                   	int3
408df8:	cc                   	int3
408df9:	cc                   	int3
408dfa:	cc                   	int3
408dfb:	cc                   	int3
408dfc:	cc                   	int3
408dfd:	cc                   	int3
408dfe:	cc                   	int3
408dff:	cc                   	int3
408e00:	33 c0                	xor    %eax,%eax
408e02:	c3                   	ret
408e03:	cc                   	int3
408e04:	cc                   	int3
408e05:	cc                   	int3
408e06:	cc                   	int3
408e07:	cc                   	int3
408e08:	cc                   	int3
408e09:	cc                   	int3
408e0a:	cc                   	int3
408e0b:	cc                   	int3
408e0c:	cc                   	int3
408e0d:	cc                   	int3
408e0e:	cc                   	int3
408e0f:	cc                   	int3
408e10:	8b ff                	mov    %edi,%edi
408e12:	55                   	push   %ebp
408e13:	8b ec                	mov    %esp,%ebp
408e15:	8b 45 08             	mov    0x8(%ebp),%eax
408e18:	33 d2                	xor    %edx,%edx
408e1a:	53                   	push   %ebx
408e1b:	56                   	push   %esi
408e1c:	57                   	push   %edi
408e1d:	8b 48 3c             	mov    0x3c(%eax),%ecx
408e20:	03 c8                	add    %eax,%ecx
408e22:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
408e26:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
408e2a:	83 c0 18             	add    $0x18,%eax
408e2d:	03 c1                	add    %ecx,%eax
408e2f:	85 db                	test   %ebx,%ebx
408e31:	74 1b                	je     0x408e4e
408e33:	8b 7d 0c             	mov    0xc(%ebp),%edi
408e36:	8b 70 0c             	mov    0xc(%eax),%esi
408e39:	3b fe                	cmp    %esi,%edi
408e3b:	72 09                	jb     0x408e46
408e3d:	8b 48 08             	mov    0x8(%eax),%ecx
408e40:	03 ce                	add    %esi,%ecx
408e42:	3b f9                	cmp    %ecx,%edi
408e44:	72 0a                	jb     0x408e50
408e46:	42                   	inc    %edx
408e47:	83 c0 28             	add    $0x28,%eax
408e4a:	3b d3                	cmp    %ebx,%edx
408e4c:	72 e8                	jb     0x408e36
408e4e:	33 c0                	xor    %eax,%eax
408e50:	5f                   	pop    %edi
408e51:	5e                   	pop    %esi
408e52:	5b                   	pop    %ebx
408e53:	5d                   	pop    %ebp
408e54:	c3                   	ret
408e55:	cc                   	int3
408e56:	cc                   	int3
408e57:	cc                   	int3
408e58:	cc                   	int3
408e59:	cc                   	int3
408e5a:	cc                   	int3
408e5b:	cc                   	int3
408e5c:	cc                   	int3
408e5d:	cc                   	int3
408e5e:	cc                   	int3
408e5f:	cc                   	int3
408e60:	8b ff                	mov    %edi,%edi
408e62:	55                   	push   %ebp
408e63:	8b ec                	mov    %esp,%ebp
408e65:	6a fe                	push   $0xfffffffe
408e67:	68 50 91 40 00       	push   $0x409150
408e6c:	68 a0 8a 40 00       	push   $0x408aa0
408e71:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
408e77:	50                   	push   %eax
408e78:	83 ec 08             	sub    $0x8,%esp
408e7b:	53                   	push   %ebx
408e7c:	56                   	push   %esi
408e7d:	57                   	push   %edi
408e7e:	a1 04 a0 40 00       	mov    0x40a004,%eax
408e83:	31 45 f8             	xor    %eax,-0x8(%ebp)
408e86:	33 c5                	xor    %ebp,%eax
408e88:	50                   	push   %eax
408e89:	8d 45 f0             	lea    -0x10(%ebp),%eax
408e8c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
408e92:	89 65 e8             	mov    %esp,-0x18(%ebp)
408e95:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
408e9c:	68 00 00 40 00       	push   $0x400000
408ea1:	e8 7a 00 00 00       	call   0x408f20
408ea6:	83 c4 04             	add    $0x4,%esp
408ea9:	85 c0                	test   %eax,%eax
408eab:	74 54                	je     0x408f01
408ead:	8b 45 08             	mov    0x8(%ebp),%eax
408eb0:	2d 00 00 40 00       	sub    $0x400000,%eax
408eb5:	50                   	push   %eax
408eb6:	68 00 00 40 00       	push   $0x400000
408ebb:	e8 50 ff ff ff       	call   0x408e10
408ec0:	83 c4 08             	add    $0x8,%esp
408ec3:	85 c0                	test   %eax,%eax
408ec5:	74 3a                	je     0x408f01
408ec7:	8b 40 24             	mov    0x24(%eax),%eax
408eca:	c1 e8 1f             	shr    $0x1f,%eax
408ecd:	f7 d0                	not    %eax
408ecf:	83 e0 01             	and    $0x1,%eax
408ed2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
408ed9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408edc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408ee3:	59                   	pop    %ecx
408ee4:	5f                   	pop    %edi
408ee5:	5e                   	pop    %esi
408ee6:	5b                   	pop    %ebx
408ee7:	8b e5                	mov    %ebp,%esp
408ee9:	5d                   	pop    %ebp
408eea:	c3                   	ret
408eeb:	8b 45 ec             	mov    -0x14(%ebp),%eax
408eee:	8b 00                	mov    (%eax),%eax
408ef0:	33 c9                	xor    %ecx,%ecx
408ef2:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
408ef8:	0f 94 c1             	sete   %cl
408efb:	8b c1                	mov    %ecx,%eax
408efd:	c3                   	ret
408efe:	8b 65 e8             	mov    -0x18(%ebp),%esp
408f01:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
408f08:	33 c0                	xor    %eax,%eax
408f0a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408f0d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408f14:	59                   	pop    %ecx
408f15:	5f                   	pop    %edi
408f16:	5e                   	pop    %esi
408f17:	5b                   	pop    %ebx
408f18:	8b e5                	mov    %ebp,%esp
408f1a:	5d                   	pop    %ebp
408f1b:	c3                   	ret
408f1c:	cc                   	int3
408f1d:	cc                   	int3
408f1e:	cc                   	int3
408f1f:	cc                   	int3
408f20:	8b ff                	mov    %edi,%edi
408f22:	55                   	push   %ebp
408f23:	8b ec                	mov    %esp,%ebp
408f25:	8b 4d 08             	mov    0x8(%ebp),%ecx
408f28:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
408f2d:	66 39 01             	cmp    %ax,(%ecx)
408f30:	75 1f                	jne    0x408f51
408f32:	8b 41 3c             	mov    0x3c(%ecx),%eax
408f35:	03 c1                	add    %ecx,%eax
408f37:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
408f3d:	75 12                	jne    0x408f51
408f3f:	b9 0b 01 00 00       	mov    $0x10b,%ecx
408f44:	66 39 48 18          	cmp    %cx,0x18(%eax)
408f48:	75 07                	jne    0x408f51
408f4a:	b8 01 00 00 00       	mov    $0x1,%eax
408f4f:	5d                   	pop    %ebp
408f50:	c3                   	ret
408f51:	33 c0                	xor    %eax,%eax
408f53:	5d                   	pop    %ebp
408f54:	c3                   	ret
408f55:	8b ff                	mov    %edi,%edi
408f57:	55                   	push   %ebp
408f58:	8b ec                	mov    %esp,%ebp
408f5a:	83 ec 14             	sub    $0x14,%esp
408f5d:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
408f61:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
408f65:	a1 04 a0 40 00       	mov    0x40a004,%eax
408f6a:	56                   	push   %esi
408f6b:	57                   	push   %edi
408f6c:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
408f71:	be 00 00 ff ff       	mov    $0xffff0000,%esi
408f76:	3b c7                	cmp    %edi,%eax
408f78:	74 04                	je     0x408f7e
408f7a:	85 c6                	test   %eax,%esi
408f7c:	75 64                	jne    0x408fe2
408f7e:	8d 45 f4             	lea    -0xc(%ebp),%eax
408f81:	50                   	push   %eax
408f82:	ff 15 74 f1 40 00    	call   *0x40f174
408f88:	8b 45 f8             	mov    -0x8(%ebp),%eax
408f8b:	33 45 f4             	xor    -0xc(%ebp),%eax
408f8e:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f91:	ff 15 48 f1 40 00    	call   *0x40f148
408f97:	31 45 fc             	xor    %eax,-0x4(%ebp)
408f9a:	ff 15 50 f1 40 00    	call   *0x40f150
408fa0:	31 45 fc             	xor    %eax,-0x4(%ebp)
408fa3:	ff 15 70 f1 40 00    	call   *0x40f170
408fa9:	33 45 fc             	xor    -0x4(%ebp),%eax
408fac:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408faf:	33 c1                	xor    %ecx,%eax
408fb1:	89 45 fc             	mov    %eax,-0x4(%ebp)
408fb4:	8d 45 ec             	lea    -0x14(%ebp),%eax
408fb7:	50                   	push   %eax
408fb8:	ff 15 58 f1 40 00    	call   *0x40f158
408fbe:	8b 45 f0             	mov    -0x10(%ebp),%eax
408fc1:	33 45 ec             	xor    -0x14(%ebp),%eax
408fc4:	33 45 fc             	xor    -0x4(%ebp),%eax
408fc7:	8b c8                	mov    %eax,%ecx
408fc9:	3b c7                	cmp    %edi,%eax
408fcb:	74 08                	je     0x408fd5
408fcd:	85 35 04 a0 40 00    	test   %esi,0x40a004
408fd3:	75 07                	jne    0x408fdc
408fd5:	b8 4f e6 40 bb       	mov    $0xbb40e64f,%eax
408fda:	8b c8                	mov    %eax,%ecx
408fdc:	89 0d 04 a0 40 00    	mov    %ecx,0x40a004
408fe2:	f7 d0                	not    %eax
408fe4:	5f                   	pop    %edi
408fe5:	a3 08 a0 40 00       	mov    %eax,0x40a008
408fea:	5e                   	pop    %esi
408feb:	c9                   	leave
408fec:	c3                   	ret
408fed:	68 00 00 03 00       	push   $0x30000
408ff2:	68 00 00 01 00       	push   $0x10000
408ff7:	ff 15 d4 f1 40 00    	call   *0x40f1d4
408ffd:	59                   	pop    %ecx
408ffe:	59                   	pop    %ecx
408fff:	c3                   	ret
409000:	ff 25 ec f1 40 00    	jmp    *0x40f1ec
409006:	cc                   	int3
409007:	cc                   	int3
409008:	68 a0 8a 40 00       	push   $0x408aa0
40900d:	64 ff 35 00 00 00 00 	push   %fs:0x0
409014:	8b 44 24 10          	mov    0x10(%esp),%eax
409018:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40901c:	8d 6c 24 10          	lea    0x10(%esp),%ebp
409020:	2b e0                	sub    %eax,%esp
409022:	53                   	push   %ebx
409023:	56                   	push   %esi
409024:	57                   	push   %edi
409025:	a1 04 a0 40 00       	mov    0x40a004,%eax
40902a:	31 45 fc             	xor    %eax,-0x4(%ebp)
40902d:	33 c5                	xor    %ebp,%eax
40902f:	50                   	push   %eax
409030:	89 65 e8             	mov    %esp,-0x18(%ebp)
409033:	ff 75 f8             	push   -0x8(%ebp)
409036:	8b 45 fc             	mov    -0x4(%ebp),%eax
409039:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
409040:	89 45 f8             	mov    %eax,-0x8(%ebp)
409043:	8d 45 f0             	lea    -0x10(%ebp),%eax
409046:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40904c:	c3                   	ret
40904d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
409050:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409057:	59                   	pop    %ecx
409058:	5f                   	pop    %edi
409059:	5f                   	pop    %edi
40905a:	5e                   	pop    %esi
40905b:	5b                   	pop    %ebx
40905c:	8b e5                	mov    %ebp,%esp
40905e:	5d                   	pop    %ebp
40905f:	51                   	push   %ecx
409060:	c3                   	ret
409061:	cc                   	int3