401ba7:	75 09                	jne    0x401bb2
401ba9:	8b 50 04             	mov    0x4(%eax),%edx
401bac:	89 15 14 e6 46 00    	mov    %edx,0x46e614
401bb2:	8b 50 04             	mov    0x4(%eax),%edx
401bb5:	8b 48 08             	mov    0x8(%eax),%ecx
401bb8:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
401bbe:	7f 38                	jg     0x401bf8
401bc0:	3b c2                	cmp    %edx,%eax
401bc2:	75 17                	jne    0x401bdb
401bc4:	85 c9                	test   %ecx,%ecx
401bc6:	79 03                	jns    0x401bcb
401bc8:	83 c1 03             	add    $0x3,%ecx
401bcb:	c1 f9 02             	sar    $0x2,%ecx
401bce:	a1 20 e6 46 00       	mov    0x46e620,%eax
401bd3:	33 d2                	xor    %edx,%edx
401bd5:	89 54 88 f4          	mov    %edx,-0xc(%eax,%ecx,4)
401bd9:	eb 24                	jmp    0x401bff
401bdb:	85 c9                	test   %ecx,%ecx
401bdd:	79 03                	jns    0x401be2
401bdf:	83 c1 03             	add    $0x3,%ecx
401be2:	c1 f9 02             	sar    $0x2,%ecx
401be5:	8b 1d 20 e6 46 00    	mov    0x46e620,%ebx
401beb:	89 54 8b f4          	mov    %edx,-0xc(%ebx,%ecx,4)
401bef:	8b 00                	mov    (%eax),%eax
401bf1:	89 02                	mov    %eax,(%edx)
401bf3:	89 50 04             	mov    %edx,0x4(%eax)
401bf6:	5b                   	pop    %ebx
401bf7:	c3                   	ret
401bf8:	8b 00                	mov    (%eax),%eax
401bfa:	89 02                	mov    %eax,(%edx)
401bfc:	89 50 04             	mov    %edx,0x4(%eax)
401bff:	5b                   	pop    %ebx
401c00:	c3                   	ret
401c01:	8d 40 00             	lea    0x0(%eax),%eax
401c04:	8b 15 24 e6 46 00    	mov    0x46e624,%edx
401c0a:	eb 10                	jmp    0x401c1c
401c0c:	8b 4a 08             	mov    0x8(%edx),%ecx
401c0f:	3b c1                	cmp    %ecx,%eax
401c11:	72 07                	jb     0x401c1a
401c13:	03 4a 0c             	add    0xc(%edx),%ecx
401c16:	3b c1                	cmp    %ecx,%eax
401c18:	72 16                	jb     0x401c30
401c1a:	8b 12                	mov    (%edx),%edx
401c1c:	81 fa 24 e6 46 00    	cmp    $0x46e624,%edx
401c22:	75 e8                	jne    0x401c0c
401c24:	c7 05 c4 e5 46 00 03 	movl   $0x3,0x46e5c4
401c2b:	00 00 00
401c2e:	33 d2                	xor    %edx,%edx
401c30:	8b c2                	mov    %edx,%eax
401c32:	c3                   	ret
401c33:	90                   	nop
401c34:	53                   	push   %ebx
401c35:	8b ca                	mov    %edx,%ecx
401c37:	83 e9 04             	sub    $0x4,%ecx
401c3a:	8d 1c 01             	lea    (%ecx,%eax,1),%ebx
401c3d:	83 fa 10             	cmp    $0x10,%edx
401c40:	7c 0f                	jl     0x401c51
401c42:	c7 03 07 00 00 80    	movl   $0x80000007,(%ebx)
401c48:	8b d1                	mov    %ecx,%edx
401c4a:	e8 b9 01 00 00       	call   0x401e08
401c4f:	5b                   	pop    %ebx
401c50:	c3                   	ret
401c51:	83 fa 04             	cmp    $0x4,%edx
401c54:	7c 0c                	jl     0x401c62
401c56:	8b ca                	mov    %edx,%ecx
401c58:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401c5e:	89 08                	mov    %ecx,(%eax)
401c60:	89 0b                	mov    %ecx,(%ebx)
401c62:	5b                   	pop    %ebx
401c63:	c3                   	ret
401c64:	ff 05 b0 e5 46 00    	incl   0x46e5b0
401c6a:	8b d0                	mov    %eax,%edx
401c6c:	83 ea 04             	sub    $0x4,%edx
401c6f:	8b 12                	mov    (%edx),%edx
401c71:	81 e2 fc ff ff 7f    	and    $0x7ffffffc,%edx
401c77:	83 ea 04             	sub    $0x4,%edx
401c7a:	01 15 b4 e5 46 00    	add    %edx,0x46e5b4
401c80:	e8 f3 05 00 00       	call   0x402278
401c85:	c3                   	ret
401c86:	8b c0                	mov    %eax,%eax
401c88:	83 fa 0c             	cmp    $0xc,%edx
401c8b:	7c 0e                	jl     0x401c9b
401c8d:	83 ca 02             	or     $0x2,%edx
401c90:	89 10                	mov    %edx,(%eax)
401c92:	83 c0 04             	add    $0x4,%eax
401c95:	e8 ca ff ff ff       	call   0x401c64
401c9a:	c3                   	ret
401c9b:	83 fa 04             	cmp    $0x4,%edx
401c9e:	7c 0a                	jl     0x401caa
401ca0:	8b ca                	mov    %edx,%ecx
401ca2:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401ca8:	89 08                	mov    %ecx,(%eax)
401caa:	03 c2                	add    %edx,%eax
401cac:	83 20 fe             	andl   $0xfffffffe,(%eax)
401caf:	c3                   	ret
401cb0:	53                   	push   %ebx
401cb1:	56                   	push   %esi
401cb2:	8b d0                	mov    %eax,%edx
401cb4:	83 ea 04             	sub    $0x4,%edx
401cb7:	8b 12                	mov    (%edx),%edx
401cb9:	8b ca                	mov    %edx,%ecx
401cbb:	81 e1 02 00 00 80    	and    $0x80000002,%ecx
401cc1:	81 f9 02 00 00 80    	cmp    $0x80000002,%ecx
401cc7:	74 0a                	je     0x401cd3
401cc9:	c7 05 c4 e5 46 00 04 	movl   $0x4,0x46e5c4
401cd0:	00 00 00
401cd3:	8b da                	mov    %edx,%ebx
401cd5:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
401cdb:	2b c3                	sub    %ebx,%eax
401cdd:	8b c8                	mov    %eax,%ecx
401cdf:	33 11                	xor    (%ecx),%edx
401ce1:	f7 c2 fe ff ff ff    	test   $0xfffffffe,%edx
401ce7:	74 0a                	je     0x401cf3
401ce9:	c7 05 c4 e5 46 00 05 	movl   $0x5,0x46e5c4
401cf0:	00 00 00
401cf3:	f6 01 01             	testb  $0x1,(%ecx)
401cf6:	74 20                	je     0x401d18
401cf8:	8b d0                	mov    %eax,%edx
401cfa:	83 ea 0c             	sub    $0xc,%edx
401cfd:	8b 72 08             	mov    0x8(%edx),%esi
401d00:	2b c6                	sub    %esi,%eax
401d02:	3b 70 08             	cmp    0x8(%eax),%esi
401d05:	74 0a                	je     0x401d11
401d07:	c7 05 c4 e5 46 00 06 	movl   $0x6,0x46e5c4
401d0e:	00 00 00
401d11:	e8 8a fe ff ff       	call   0x401ba0
401d16:	03 de                	add    %esi,%ebx
401d18:	8b c3                	mov    %ebx,%eax
401d1a:	5e                   	pop    %esi
401d1b:	5b                   	pop    %ebx
401d1c:	c3                   	ret
401d1d:	8d 40 00             	lea    0x0(%eax),%eax
401d20:	53                   	push   %ebx
401d21:	56                   	push   %esi
401d22:	57                   	push   %edi
401d23:	8b d8                	mov    %eax,%ebx
401d25:	33 ff                	xor    %edi,%edi
401d27:	8b 03                	mov    (%ebx),%eax
401d29:	a9 00 00 00 80       	test   $0x80000000,%eax
401d2e:	74 0b                	je     0x401d3b
401d30:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
401d35:	03 f8                	add    %eax,%edi
401d37:	03 d8                	add    %eax,%ebx
401d39:	8b 03                	mov    (%ebx),%eax
401d3b:	a8 02                	test   $0x2,%al
401d3d:	75 13                	jne    0x401d52
401d3f:	8b f3                	mov    %ebx,%esi
401d41:	8b c6                	mov    %esi,%eax
401d43:	e8 58 fe ff ff       	call   0x401ba0
401d48:	8b 46 08             	mov    0x8(%esi),%eax
401d4b:	03 f8                	add    %eax,%edi
401d4d:	03 d8                	add    %eax,%ebx
401d4f:	83 23 fe             	andl   $0xfffffffe,(%ebx)
401d52:	8b c7                	mov    %edi,%eax
401d54:	5f                   	pop    %edi
401d55:	5e                   	pop    %esi
401d56:	5b                   	pop    %ebx
401d57:	c3                   	ret
401d58:	53                   	push   %ebx
401d59:	56                   	push   %esi
401d5a:	57                   	push   %edi
401d5b:	55                   	push   %ebp
401d5c:	83 c4 f4             	add    $0xfffffff4,%esp
401d5f:	8b fa                	mov    %edx,%edi
401d61:	8b f0                	mov    %eax,%esi
401d63:	c6 04 24 00          	movb   $0x0,(%esp)
401d67:	8b c6                	mov    %esi,%eax
401d69:	e8 96 fe ff ff       	call   0x401c04
401d6e:	8b d8                	mov    %eax,%ebx
401d70:	85 db                	test   %ebx,%ebx
401d72:	0f 84 82 00 00 00    	je     0x401dfa
401d78:	8b 6b 08             	mov    0x8(%ebx),%ebp
401d7b:	8b c5                	mov    %ebp,%eax
401d7d:	03 43 0c             	add    0xc(%ebx),%eax
401d80:	8b d0                	mov    %eax,%edx
401d82:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
401d85:	2b d1                	sub    %ecx,%edx
401d87:	83 fa 0c             	cmp    $0xc,%edx
401d8a:	7f 04                	jg     0x401d90
401d8c:	8b f8                	mov    %eax,%edi
401d8e:	2b fe                	sub    %esi,%edi
401d90:	8b c6                	mov    %esi,%eax
401d92:	2b c5                	sub    %ebp,%eax
401d94:	83 f8 0c             	cmp    $0xc,%eax
401d97:	7d 14                	jge    0x401dad
401d99:	8d 4c 24 01          	lea    0x1(%esp),%ecx
401d9d:	8b d6                	mov    %esi,%edx
401d9f:	2b 53 08             	sub    0x8(%ebx),%edx
401da2:	03 d7                	add    %edi,%edx
401da4:	8b c5                	mov    %ebp,%eax
401da6:	e8 c5 fb ff ff       	call   0x401970
401dab:	eb 11                	jmp    0x401dbe
401dad:	8d 4c 24 01          	lea    0x1(%esp),%ecx
401db1:	8b d7                	mov    %edi,%edx
401db3:	83 ea 04             	sub    $0x4,%edx
401db6:	8d 46 04             	lea    0x4(%esi),%eax
401db9:	e8 b2 fb ff ff       	call   0x401970
401dbe:	8b 6c 24 01          	mov    0x1(%esp),%ebp
401dc2:	85 ed                	test   %ebp,%ebp
401dc4:	74 34                	je     0x401dfa
401dc6:	8b d5                	mov    %ebp,%edx
401dc8:	2b d6                	sub    %esi,%edx
401dca:	8b c6                	mov    %esi,%eax
401dcc:	e8 63 fe ff ff       	call   0x401c34
401dd1:	8b c5                	mov    %ebp,%eax
401dd3:	03 44 24 05          	add    0x5(%esp),%eax
401dd7:	8b 53 08             	mov    0x8(%ebx),%edx
401dda:	03 53 0c             	add    0xc(%ebx),%edx
401ddd:	3b c2                	cmp    %edx,%eax
401ddf:	73 0a                	jae    0x401deb
401de1:	8d 14 37             	lea    (%edi,%esi,1),%edx
401de4:	2b d0                	sub    %eax,%edx
401de6:	e8 9d fe ff ff       	call   0x401c88
401deb:	8d 54 24 01          	lea    0x1(%esp),%edx
401def:	8b c3                	mov    %ebx,%eax
401df1:	e8 8a f6 ff ff       	call   0x401480
401df6:	c6 04 24 01          	movb   $0x1,(%esp)
401dfa:	8a 04 24             	mov    (%esp),%al
401dfd:	83 c4 0c             	add    $0xc,%esp
401e00:	5d                   	pop    %ebp
401e01:	5f                   	pop    %edi
401e02:	5e                   	pop    %esi
401e03:	5b                   	pop    %ebx
401e04:	c3                   	ret
401e05:	8d 40 00             	lea    0x0(%eax),%eax
401e08:	53                   	push   %ebx
401e09:	56                   	push   %esi
401e0a:	57                   	push   %edi
401e0b:	8b f2                	mov    %edx,%esi
401e0d:	8b f8                	mov    %eax,%edi
401e0f:	8b df                	mov    %edi,%ebx
401e11:	89 73 08             	mov    %esi,0x8(%ebx)
401e14:	8b c3                	mov    %ebx,%eax
401e16:	03 c6                	add    %esi,%eax
401e18:	83 e8 0c             	sub    $0xc,%eax
401e1b:	89 70 08             	mov    %esi,0x8(%eax)
401e1e:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
401e24:	7f 37                	jg     0x401e5d
401e26:	8b d6                	mov    %esi,%edx
401e28:	85 d2                	test   %edx,%edx
401e2a:	79 03                	jns    0x401e2f
401e2c:	83 c2 03             	add    $0x3,%edx
401e2f:	c1 fa 02             	sar    $0x2,%edx
401e32:	a1 20 e6 46 00       	mov    0x46e620,%eax
401e37:	8b 44 90 f4          	mov    -0xc(%eax,%edx,4),%eax
401e3b:	85 c0                	test   %eax,%eax
401e3d:	75 10                	jne    0x401e4f
401e3f:	a1 20 e6 46 00       	mov    0x46e620,%eax
401e44:	89 5c 90 f4          	mov    %ebx,-0xc(%eax,%edx,4)
401e48:	89 5b 04             	mov    %ebx,0x4(%ebx)
401e4b:	89 1b                	mov    %ebx,(%ebx)
401e4d:	eb 3a                	jmp    0x401e89
401e4f:	8b 10                	mov    (%eax),%edx
401e51:	89 43 04             	mov    %eax,0x4(%ebx)
401e54:	89 13                	mov    %edx,(%ebx)
401e56:	89 18                	mov    %ebx,(%eax)
401e58:	89 5a 04             	mov    %ebx,0x4(%edx)
401e5b:	eb 2c                	jmp    0x401e89
401e5d:	81 fe 00 3c 00 00    	cmp    $0x3c00,%esi
401e63:	7c 0d                	jl     0x401e72
401e65:	8b d6                	mov    %esi,%edx
401e67:	8b c7                	mov    %edi,%eax
401e69:	e8 ea fe ff ff       	call   0x401d58
401e6e:	84 c0                	test   %al,%al
401e70:	75 17                	jne    0x401e89
401e72:	a1 14 e6 46 00       	mov    0x46e614,%eax
401e77:	89 1d 14 e6 46 00    	mov    %ebx,0x46e614
401e7d:	8b 10                	mov    (%eax),%edx
401e7f:	89 43 04             	mov    %eax,0x4(%ebx)
401e82:	89 13                	mov    %edx,(%ebx)
401e84:	89 18                	mov    %ebx,(%eax)
401e86:	89 5a 04             	mov    %ebx,0x4(%edx)
401e89:	5f                   	pop    %edi
401e8a:	5e                   	pop    %esi
401e8b:	5b                   	pop    %ebx
401e8c:	c3                   	ret
401e8d:	8d 40 00             	lea    0x0(%eax),%eax
401e90:	83 3d 18 e6 46 00 00 	cmpl   $0x0,0x46e618
401e97:	7e 40                	jle    0x401ed9
401e99:	83 3d 18 e6 46 00 0c 	cmpl   $0xc,0x46e618
401ea0:	7d 0c                	jge    0x401eae
401ea2:	c7 05 c4 e5 46 00 07 	movl   $0x7,0x46e5c4
401ea9:	00 00 00
401eac:	eb 2b                	jmp    0x401ed9
401eae:	a1 18 e6 46 00       	mov    0x46e618,%eax
401eb3:	83 c8 02             	or     $0x2,%eax
401eb6:	8b 15 1c e6 46 00    	mov    0x46e61c,%edx
401ebc:	89 02                	mov    %eax,(%edx)
401ebe:	a1 1c e6 46 00       	mov    0x46e61c,%eax
401ec3:	83 c0 04             	add    $0x4,%eax
401ec6:	e8 99 fd ff ff       	call   0x401c64
401ecb:	33 c0                	xor    %eax,%eax
401ecd:	a3 1c e6 46 00       	mov    %eax,0x46e61c
401ed2:	33 c0                	xor    %eax,%eax
401ed4:	a3 18 e6 46 00       	mov    %eax,0x46e618
401ed9:	c3                   	ret
401eda:	8b c0                	mov    %eax,%eax
401edc:	53                   	push   %ebx
401edd:	56                   	push   %esi
401ede:	57                   	push   %edi
401edf:	83 c4 f0             	add    $0xfffffff0,%esp
401ee2:	8b f0                	mov    %eax,%esi
401ee4:	8d 3c 24             	lea    (%esp),%edi
401ee7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401ee8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401ee9:	8b fc                	mov    %esp,%edi
401eeb:	e8 a0 ff ff ff       	call   0x401e90
401ef0:	8d 4c 24 08          	lea    0x8(%esp),%ecx
401ef4:	8b d7                	mov    %edi,%edx
401ef6:	b8 24 e6 46 00       	mov    $0x46e624,%eax
401efb:	e8 10 f5 ff ff       	call   0x401410
401f00:	8b 5c 24 08          	mov    0x8(%esp),%ebx
401f04:	85 db                	test   %ebx,%ebx
401f06:	75 04                	jne    0x401f0c
401f08:	33 c0                	xor    %eax,%eax
401f0a:	eb 52                	jmp    0x401f5e
401f0c:	8b 07                	mov    (%edi),%eax
401f0e:	3b d8                	cmp    %eax,%ebx
401f10:	73 0a                	jae    0x401f1c
401f12:	e8 99 fd ff ff       	call   0x401cb0
401f17:	29 07                	sub    %eax,(%edi)
401f19:	01 47 04             	add    %eax,0x4(%edi)
401f1c:	8b 07                	mov    (%edi),%eax
401f1e:	03 47 04             	add    0x4(%edi),%eax
401f21:	8b f3                	mov    %ebx,%esi
401f23:	03 74 24 0c          	add    0xc(%esp),%esi
401f27:	3b c6                	cmp    %esi,%eax
401f29:	73 08                	jae    0x401f33
401f2b:	e8 f0 fd ff ff       	call   0x401d20
401f30:	01 47 04             	add    %eax,0x4(%edi)
401f33:	8b 07                	mov    (%edi),%eax
401f35:	03 47 04             	add    0x4(%edi),%eax
401f38:	3b f0                	cmp    %eax,%esi
401f3a:	75 11                	jne    0x401f4d
401f3c:	83 e8 04             	sub    $0x4,%eax
401f3f:	ba 04 00 00 00       	mov    $0x4,%edx
401f44:	e8 eb fc ff ff       	call   0x401c34
401f49:	83 6f 04 04          	subl   $0x4,0x4(%edi)
401f4d:	8b 07                	mov    (%edi),%eax
401f4f:	a3 1c e6 46 00       	mov    %eax,0x46e61c
401f54:	8b 47 04             	mov    0x4(%edi),%eax
401f57:	a3 18 e6 46 00       	mov    %eax,0x46e618
401f5c:	b0 01                	mov    $0x1,%al
401f5e:	83 c4 10             	add    $0x10,%esp
401f61:	5f                   	pop    %edi
401f62:	5e                   	pop    %esi
401f63:	5b                   	pop    %ebx
401f64:	c3                   	ret
401f65:	8d 40 00             	lea    0x0(%eax),%eax
401f68:	53                   	push   %ebx