404b4b:	8b 50 3c             	mov    0x3c(%eax),%edx
404b4e:	85 d2                	test   %edx,%edx
404b50:	78 2b                	js     0x404b7d
404b52:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
404b58:	73 23                	jae    0x404b7d
404b5a:	03 c2                	add    %edx,%eax
404b5c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404b5f:	8b 08                	mov    (%eax),%ecx
404b61:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
404b67:	f7 d9                	neg    %ecx
404b69:	1b c9                	sbb    %ecx,%ecx
404b6b:	f7 d1                	not    %ecx
404b6d:	23 c8                	and    %eax,%ecx
404b6f:	eb 09                	jmp    0x404b7a
404b71:	33 c0                	xor    %eax,%eax
404b73:	40                   	inc    %eax
404b74:	c3                   	ret
404b75:	8b 65 e8             	mov    -0x18(%ebp),%esp
404b78:	33 c9                	xor    %ecx,%ecx
404b7a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
404b7d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404b84:	8b c1                	mov    %ecx,%eax
404b86:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404b89:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404b90:	59                   	pop    %ecx
404b91:	5f                   	pop    %edi
404b92:	5e                   	pop    %esi
404b93:	5b                   	pop    %ebx
404b94:	c9                   	leave
404b95:	c2 04 00             	ret    $0x4
404b98:	8b ff                	mov    %edi,%edi
404b9a:	55                   	push   %ebp
404b9b:	8b ec                	mov    %esp,%ebp
404b9d:	6a 00                	push   $0x0
404b9f:	ff 15 64 90 40 00    	call   *0x409064
404ba5:	85 c0                	test   %eax,%eax
404ba7:	74 20                	je     0x404bc9
404ba9:	50                   	push   %eax
404baa:	e8 75 ff ff ff       	call   0x404b24
404baf:	85 c0                	test   %eax,%eax
404bb1:	74 16                	je     0x404bc9
404bb3:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
404bb7:	6a 02                	push   $0x2
404bb9:	58                   	pop    %eax
404bba:	66 3b c8             	cmp    %ax,%cx
404bbd:	74 0d                	je     0x404bcc
404bbf:	83 f9 03             	cmp    $0x3,%ecx
404bc2:	75 05                	jne    0x404bc9
404bc4:	33 c0                	xor    %eax,%eax
404bc6:	40                   	inc    %eax
404bc7:	5d                   	pop    %ebp
404bc8:	c3                   	ret
404bc9:	8b 45 08             	mov    0x8(%ebp),%eax
404bcc:	5d                   	pop    %ebp
404bcd:	c3                   	ret
404bce:	ff 25 50 91 40 00    	jmp    *0x409150
404bd4:	cc                   	int3
404bd5:	cc                   	int3
404bd6:	cc                   	int3
404bd7:	cc                   	int3
404bd8:	cc                   	int3
404bd9:	cc                   	int3
404bda:	cc                   	int3
404bdb:	cc                   	int3
404bdc:	cc                   	int3
404bdd:	cc                   	int3
404bde:	cc                   	int3
404bdf:	cc                   	int3
404be0:	33 c0                	xor    %eax,%eax
404be2:	c3                   	ret
404be3:	cc                   	int3
404be4:	cc                   	int3
404be5:	cc                   	int3
404be6:	cc                   	int3
404be7:	cc                   	int3
404be8:	cc                   	int3
404be9:	cc                   	int3
404bea:	cc                   	int3
404beb:	cc                   	int3
404bec:	cc                   	int3
404bed:	cc                   	int3
404bee:	cc                   	int3
404bef:	cc                   	int3
404bf0:	8b ff                	mov    %edi,%edi
404bf2:	55                   	push   %ebp
404bf3:	8b ec                	mov    %esp,%ebp
404bf5:	8b 45 08             	mov    0x8(%ebp),%eax
404bf8:	33 d2                	xor    %edx,%edx
404bfa:	53                   	push   %ebx
404bfb:	56                   	push   %esi
404bfc:	57                   	push   %edi
404bfd:	8b 48 3c             	mov    0x3c(%eax),%ecx
404c00:	03 c8                	add    %eax,%ecx
404c02:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
404c06:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
404c0a:	83 c0 18             	add    $0x18,%eax
404c0d:	03 c1                	add    %ecx,%eax
404c0f:	85 db                	test   %ebx,%ebx
404c11:	74 1b                	je     0x404c2e
404c13:	8b 7d 0c             	mov    0xc(%ebp),%edi
404c16:	8b 70 0c             	mov    0xc(%eax),%esi
404c19:	3b fe                	cmp    %esi,%edi
404c1b:	72 09                	jb     0x404c26
404c1d:	8b 48 08             	mov    0x8(%eax),%ecx
404c20:	03 ce                	add    %esi,%ecx
404c22:	3b f9                	cmp    %ecx,%edi
404c24:	72 0a                	jb     0x404c30
404c26:	42                   	inc    %edx
404c27:	83 c0 28             	add    $0x28,%eax
404c2a:	3b d3                	cmp    %ebx,%edx
404c2c:	72 e8                	jb     0x404c16
404c2e:	33 c0                	xor    %eax,%eax
404c30:	5f                   	pop    %edi
404c31:	5e                   	pop    %esi
404c32:	5b                   	pop    %ebx
404c33:	5d                   	pop    %ebp
404c34:	c3                   	ret
404c35:	cc                   	int3
404c36:	cc                   	int3
404c37:	cc                   	int3
404c38:	cc                   	int3
404c39:	cc                   	int3
404c3a:	cc                   	int3
404c3b:	cc                   	int3
404c3c:	cc                   	int3
404c3d:	cc                   	int3
404c3e:	cc                   	int3
404c3f:	cc                   	int3
404c40:	8b ff                	mov    %edi,%edi
404c42:	55                   	push   %ebp
404c43:	8b ec                	mov    %esp,%ebp
404c45:	6a fe                	push   $0xfffffffe
404c47:	68 20 57 40 00       	push   $0x405720
404c4c:	68 50 4e 40 00       	push   $0x404e50
404c51:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
404c57:	50                   	push   %eax
404c58:	83 ec 08             	sub    $0x8,%esp
404c5b:	53                   	push   %ebx
404c5c:	56                   	push   %esi
404c5d:	57                   	push   %edi
404c5e:	a1 cc 80 40 00       	mov    0x4080cc,%eax
404c63:	31 45 f8             	xor    %eax,-0x8(%ebp)
404c66:	33 c5                	xor    %ebp,%eax
404c68:	50                   	push   %eax
404c69:	8d 45 f0             	lea    -0x10(%ebp),%eax
404c6c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
404c72:	89 65 e8             	mov    %esp,-0x18(%ebp)
404c75:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
404c7c:	68 00 00 40 00       	push   $0x400000
404c81:	e8 7a 00 00 00       	call   0x404d00
404c86:	83 c4 04             	add    $0x4,%esp
404c89:	85 c0                	test   %eax,%eax
404c8b:	74 54                	je     0x404ce1
404c8d:	8b 45 08             	mov    0x8(%ebp),%eax
404c90:	2d 00 00 40 00       	sub    $0x400000,%eax
404c95:	50                   	push   %eax
404c96:	68 00 00 40 00       	push   $0x400000
404c9b:	e8 50 ff ff ff       	call   0x404bf0
404ca0:	83 c4 08             	add    $0x8,%esp
404ca3:	85 c0                	test   %eax,%eax
404ca5:	74 3a                	je     0x404ce1
404ca7:	8b 40 24             	mov    0x24(%eax),%eax
404caa:	c1 e8 1f             	shr    $0x1f,%eax
404cad:	f7 d0                	not    %eax
404caf:	83 e0 01             	and    $0x1,%eax
404cb2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404cb9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404cbc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404cc3:	59                   	pop    %ecx
404cc4:	5f                   	pop    %edi
404cc5:	5e                   	pop    %esi
404cc6:	5b                   	pop    %ebx
404cc7:	8b e5                	mov    %ebp,%esp
404cc9:	5d                   	pop    %ebp
404cca:	c3                   	ret
404ccb:	8b 45 ec             	mov    -0x14(%ebp),%eax
404cce:	8b 00                	mov    (%eax),%eax
404cd0:	33 c9                	xor    %ecx,%ecx
404cd2:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
404cd8:	0f 94 c1             	sete   %cl
404cdb:	8b c1                	mov    %ecx,%eax
404cdd:	c3                   	ret
404cde:	8b 65 e8             	mov    -0x18(%ebp),%esp
404ce1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404ce8:	33 c0                	xor    %eax,%eax
404cea:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404ced:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404cf4:	59                   	pop    %ecx
404cf5:	5f                   	pop    %edi
404cf6:	5e                   	pop    %esi
404cf7:	5b                   	pop    %ebx
404cf8:	8b e5                	mov    %ebp,%esp
404cfa:	5d                   	pop    %ebp
404cfb:	c3                   	ret
404cfc:	cc                   	int3
404cfd:	cc                   	int3
404cfe:	cc                   	int3
404cff:	cc                   	int3
404d00:	8b ff                	mov    %edi,%edi
404d02:	55                   	push   %ebp
404d03:	8b ec                	mov    %esp,%ebp
404d05:	8b 4d 08             	mov    0x8(%ebp),%ecx
404d08:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
404d0d:	66 39 01             	cmp    %ax,(%ecx)
404d10:	75 1f                	jne    0x404d31
404d12:	8b 41 3c             	mov    0x3c(%ecx),%eax
404d15:	03 c1                	add    %ecx,%eax
404d17:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
404d1d:	75 12                	jne    0x404d31
404d1f:	b9 0b 01 00 00       	mov    $0x10b,%ecx
404d24:	66 39 48 18          	cmp    %cx,0x18(%eax)
404d28:	75 07                	jne    0x404d31
404d2a:	b8 01 00 00 00       	mov    $0x1,%eax
404d2f:	5d                   	pop    %ebp
404d30:	c3                   	ret
404d31:	33 c0                	xor    %eax,%eax
404d33:	5d                   	pop    %ebp
404d34:	c3                   	ret
404d35:	8b ff                	mov    %edi,%edi
404d37:	55                   	push   %ebp
404d38:	8b ec                	mov    %esp,%ebp
404d3a:	83 ec 14             	sub    $0x14,%esp
404d3d:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
404d41:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
404d45:	a1 cc 80 40 00       	mov    0x4080cc,%eax
404d4a:	56                   	push   %esi
404d4b:	57                   	push   %edi
404d4c:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
404d51:	be 00 00 ff ff       	mov    $0xffff0000,%esi
404d56:	3b c7                	cmp    %edi,%eax
404d58:	74 04                	je     0x404d5e
404d5a:	85 c6                	test   %eax,%esi
404d5c:	75 64                	jne    0x404dc2
404d5e:	8d 45 f4             	lea    -0xc(%ebp),%eax
404d61:	50                   	push   %eax
404d62:	ff 15 ac 90 40 00    	call   *0x4090ac
404d68:	8b 45 f8             	mov    -0x8(%ebp),%eax
404d6b:	33 45 f4             	xor    -0xc(%ebp),%eax
404d6e:	89 45 fc             	mov    %eax,-0x4(%ebp)
404d71:	ff 15 6c 90 40 00    	call   *0x40906c
404d77:	31 45 fc             	xor    %eax,-0x4(%ebp)
404d7a:	ff 15 74 90 40 00    	call   *0x409074
404d80:	31 45 fc             	xor    %eax,-0x4(%ebp)
404d83:	ff 15 b4 90 40 00    	call   *0x4090b4
404d89:	33 45 fc             	xor    -0x4(%ebp),%eax
404d8c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
404d8f:	33 c1                	xor    %ecx,%eax
404d91:	89 45 fc             	mov    %eax,-0x4(%ebp)
404d94:	8d 45 ec             	lea    -0x14(%ebp),%eax
404d97:	50                   	push   %eax
404d98:	ff 15 84 90 40 00    	call   *0x409084
404d9e:	8b 45 f0             	mov    -0x10(%ebp),%eax
404da1:	33 45 ec             	xor    -0x14(%ebp),%eax
404da4:	33 45 fc             	xor    -0x4(%ebp),%eax
404da7:	8b c8                	mov    %eax,%ecx
404da9:	3b c7                	cmp    %edi,%eax
404dab:	74 08                	je     0x404db5
404dad:	85 35 cc 80 40 00    	test   %esi,0x4080cc
404db3:	75 07                	jne    0x404dbc
404db5:	b8 4f e6 40 bb       	mov    $0xbb40e64f,%eax
404dba:	8b c8                	mov    %eax,%ecx
404dbc:	89 0d cc 80 40 00    	mov    %ecx,0x4080cc
404dc2:	f7 d0                	not    %eax
404dc4:	5f                   	pop    %edi
404dc5:	a3 d0 80 40 00       	mov    %eax,0x4080d0
404dca:	5e                   	pop    %esi
404dcb:	c9                   	leave
404dcc:	c3                   	ret
404dcd:	68 00 00 03 00       	push   $0x30000
404dd2:	68 00 00 01 00       	push   $0x10000
404dd7:	ff 15 00 91 40 00    	call   *0x409100
404ddd:	59                   	pop    %ecx
404dde:	59                   	pop    %ecx
404ddf:	c3                   	ret
404de0:	ff 25 14 91 40 00    	jmp    *0x409114
404de6:	cc                   	int3
404de7:	cc                   	int3
404de8:	68 50 4e 40 00       	push   $0x404e50
404ded:	64 ff 35 00 00 00 00 	push   %fs:0x0
404df4:	8b 44 24 10          	mov    0x10(%esp),%eax
404df8:	89 6c 24 10          	mov    %ebp,0x10(%esp)
404dfc:	8d 6c 24 10          	lea    0x10(%esp),%ebp
404e00:	2b e0                	sub    %eax,%esp
404e02:	53                   	push   %ebx
404e03:	56                   	push   %esi
404e04:	57                   	push   %edi
404e05:	a1 cc 80 40 00       	mov    0x4080cc,%eax
404e0a:	31 45 fc             	xor    %eax,-0x4(%ebp)
404e0d:	33 c5                	xor    %ebp,%eax
404e0f:	50                   	push   %eax
404e10:	89 65 e8             	mov    %esp,-0x18(%ebp)
404e13:	ff 75 f8             	push   -0x8(%ebp)
404e16:	8b 45 fc             	mov    -0x4(%ebp),%eax
404e19:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404e20:	89 45 f8             	mov    %eax,-0x8(%ebp)
404e23:	8d 45 f0             	lea    -0x10(%ebp),%eax
404e26:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
404e2c:	c3                   	ret
404e2d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404e30:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404e37:	59                   	pop    %ecx
404e38:	5f                   	pop    %edi
404e39:	5f                   	pop    %edi
404e3a:	5e                   	pop    %esi
404e3b:	5b                   	pop    %ebx
404e3c:	8b e5                	mov    %ebp,%esp
404e3e:	5d                   	pop    %ebp
404e3f:	51                   	push   %ecx
404e40:	c3                   	ret
404e41:	cc                   	int3
404e42:	cc                   	int3
404e43:	cc                   	int3
404e44:	cc                   	int3
404e45:	cc                   	int3
404e46:	cc                   	int3
404e47:	cc                   	int3
404e48:	cc                   	int3
404e49:	cc                   	int3
404e4a:	cc                   	int3
404e4b:	cc                   	int3
404e4c:	cc                   	int3
404e4d:	cc                   	int3
404e4e:	cc                   	int3
404e4f:	cc                   	int3
404e50:	8b ff                	mov    %edi,%edi
404e52:	55                   	push   %ebp
404e53:	8b ec                	mov    %esp,%ebp
404e55:	ff 75 14             	push   0x14(%ebp)
404e58:	ff 75 10             	push   0x10(%ebp)
404e5b:	ff 75 0c             	push   0xc(%ebp)
404e5e:	ff 75 08             	push   0x8(%ebp)
404e61:	68 f0 48 40 00       	push   $0x4048f0
404e66:	68 cc 80 40 00       	push   $0x4080cc
404e6b:	e8 4f 01 00 00       	call   0x404fbf
404e70:	83 c4 18             	add    $0x18,%esp
404e73:	5d                   	pop    %ebp
404e74:	c3                   	ret
404e75:	8b ff                	mov    %edi,%edi
404e77:	55                   	push   %ebp
404e78:	8b ec                	mov    %esp,%ebp
404e7a:	6a 00                	push   $0x0
404e7c:	ff 15 4c 90 40 00    	call   *0x40904c
404e82:	ff 75 08             	push   0x8(%ebp)
404e85:	ff 15 54 90 40 00    	call   *0x409054
404e8b:	68 09 04 00 c0       	push   $0xc0000409
404e90:	ff 15 78 90 40 00    	call   *0x409078
404e96:	50                   	push   %eax
404e97:	ff 15 7c 90 40 00    	call   *0x40907c
404e9d:	5d                   	pop    %ebp
404e9e:	c3                   	ret