401d66:	8b d0                	mov    %eax,%edx
401d68:	83 ea 04             	sub    $0x4,%edx
401d6b:	8b 12                	mov    (%edx),%edx
401d6d:	81 e2 fc ff ff 7f    	and    $0x7ffffffc,%edx
401d73:	83 ea 04             	sub    $0x4,%edx
401d76:	01 15 b8 85 6a 00    	add    %edx,0x6a85b8
401d7c:	e8 f3 05 00 00       	call   0x402374
401d81:	c3                   	ret
401d82:	8b c0                	mov    %eax,%eax
401d84:	83 fa 0c             	cmp    $0xc,%edx
401d87:	7c 0e                	jl     0x401d97
401d89:	83 ca 02             	or     $0x2,%edx
401d8c:	89 10                	mov    %edx,(%eax)
401d8e:	83 c0 04             	add    $0x4,%eax
401d91:	e8 ca ff ff ff       	call   0x401d60
401d96:	c3                   	ret
401d97:	83 fa 04             	cmp    $0x4,%edx
401d9a:	7c 0a                	jl     0x401da6
401d9c:	8b ca                	mov    %edx,%ecx
401d9e:	81 c9 02 00 00 80    	or     $0x80000002,%ecx
401da4:	89 08                	mov    %ecx,(%eax)
401da6:	03 c2                	add    %edx,%eax
401da8:	83 20 fe             	andl   $0xfffffffe,(%eax)
401dab:	c3                   	ret
401dac:	53                   	push   %ebx
401dad:	56                   	push   %esi
401dae:	8b d0                	mov    %eax,%edx
401db0:	83 ea 04             	sub    $0x4,%edx
401db3:	8b 12                	mov    (%edx),%edx
401db5:	8b ca                	mov    %edx,%ecx
401db7:	81 e1 02 00 00 80    	and    $0x80000002,%ecx
401dbd:	81 f9 02 00 00 80    	cmp    $0x80000002,%ecx
401dc3:	74 0a                	je     0x401dcf
401dc5:	c7 05 c4 85 6a 00 04 	movl   $0x4,0x6a85c4
401dcc:	00 00 00
401dcf:	8b da                	mov    %edx,%ebx
401dd1:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
401dd7:	2b c3                	sub    %ebx,%eax
401dd9:	8b c8                	mov    %eax,%ecx
401ddb:	33 11                	xor    (%ecx),%edx
401ddd:	f7 c2 fe ff ff ff    	test   $0xfffffffe,%edx
401de3:	74 0a                	je     0x401def
401de5:	c7 05 c4 85 6a 00 05 	movl   $0x5,0x6a85c4
401dec:	00 00 00
401def:	f6 01 01             	testb  $0x1,(%ecx)
401df2:	74 20                	je     0x401e14
401df4:	8b d0                	mov    %eax,%edx
401df6:	83 ea 0c             	sub    $0xc,%edx
401df9:	8b 72 08             	mov    0x8(%edx),%esi
401dfc:	2b c6                	sub    %esi,%eax
401dfe:	3b 70 08             	cmp    0x8(%eax),%esi
401e01:	74 0a                	je     0x401e0d
401e03:	c7 05 c4 85 6a 00 06 	movl   $0x6,0x6a85c4
401e0a:	00 00 00
401e0d:	e8 8a fe ff ff       	call   0x401c9c
401e12:	03 de                	add    %esi,%ebx
401e14:	8b c3                	mov    %ebx,%eax
401e16:	5e                   	pop    %esi
401e17:	5b                   	pop    %ebx
401e18:	c3                   	ret
401e19:	8d 40 00             	lea    0x0(%eax),%eax
401e1c:	53                   	push   %ebx
401e1d:	56                   	push   %esi
401e1e:	57                   	push   %edi
401e1f:	8b d8                	mov    %eax,%ebx
401e21:	33 ff                	xor    %edi,%edi
401e23:	8b 03                	mov    (%ebx),%eax
401e25:	a9 00 00 00 80       	test   $0x80000000,%eax
401e2a:	74 0b                	je     0x401e37
401e2c:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
401e31:	03 f8                	add    %eax,%edi
401e33:	03 d8                	add    %eax,%ebx
401e35:	8b 03                	mov    (%ebx),%eax
401e37:	a8 02                	test   $0x2,%al
401e39:	75 13                	jne    0x401e4e
401e3b:	8b f3                	mov    %ebx,%esi
401e3d:	8b c6                	mov    %esi,%eax
401e3f:	e8 58 fe ff ff       	call   0x401c9c
401e44:	8b 46 08             	mov    0x8(%esi),%eax
401e47:	03 f8                	add    %eax,%edi
401e49:	03 d8                	add    %eax,%ebx
401e4b:	83 23 fe             	andl   $0xfffffffe,(%ebx)
401e4e:	8b c7                	mov    %edi,%eax
401e50:	5f                   	pop    %edi
401e51:	5e                   	pop    %esi
401e52:	5b                   	pop    %ebx
401e53:	c3                   	ret
401e54:	53                   	push   %ebx
401e55:	56                   	push   %esi
401e56:	57                   	push   %edi
401e57:	55                   	push   %ebp
401e58:	83 c4 f4             	add    $0xfffffff4,%esp
401e5b:	8b fa                	mov    %edx,%edi
401e5d:	8b f0                	mov    %eax,%esi
401e5f:	c6 04 24 00          	movb   $0x0,(%esp)
401e63:	8b c6                	mov    %esi,%eax
401e65:	e8 96 fe ff ff       	call   0x401d00
401e6a:	8b d8                	mov    %eax,%ebx
401e6c:	85 db                	test   %ebx,%ebx
401e6e:	0f 84 82 00 00 00    	je     0x401ef6
401e74:	8b 6b 08             	mov    0x8(%ebx),%ebp
401e77:	8b c5                	mov    %ebp,%eax
401e79:	03 43 0c             	add    0xc(%ebx),%eax
401e7c:	8b d0                	mov    %eax,%edx
401e7e:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
401e81:	2b d1                	sub    %ecx,%edx
401e83:	83 fa 0c             	cmp    $0xc,%edx
401e86:	7f 04                	jg     0x401e8c
401e88:	8b f8                	mov    %eax,%edi
401e8a:	2b fe                	sub    %esi,%edi
401e8c:	8b c6                	mov    %esi,%eax
401e8e:	2b c5                	sub    %ebp,%eax
401e90:	83 f8 0c             	cmp    $0xc,%eax
401e93:	7d 14                	jge    0x401ea9
401e95:	8d 4c 24 01          	lea    0x1(%esp),%ecx
401e99:	8b d6                	mov    %esi,%edx
401e9b:	2b 53 08             	sub    0x8(%ebx),%edx
401e9e:	03 d7                	add    %edi,%edx
401ea0:	8b c5                	mov    %ebp,%eax
401ea2:	e8 c5 fb ff ff       	call   0x401a6c
401ea7:	eb 11                	jmp    0x401eba
401ea9:	8d 4c 24 01          	lea    0x1(%esp),%ecx
401ead:	8b d7                	mov    %edi,%edx
401eaf:	83 ea 04             	sub    $0x4,%edx
401eb2:	8d 46 04             	lea    0x4(%esi),%eax
401eb5:	e8 b2 fb ff ff       	call   0x401a6c
401eba:	8b 6c 24 01          	mov    0x1(%esp),%ebp
401ebe:	85 ed                	test   %ebp,%ebp
401ec0:	74 34                	je     0x401ef6
401ec2:	8b d5                	mov    %ebp,%edx
401ec4:	2b d6                	sub    %esi,%edx
401ec6:	8b c6                	mov    %esi,%eax
401ec8:	e8 63 fe ff ff       	call   0x401d30
401ecd:	8b c5                	mov    %ebp,%eax
401ecf:	03 44 24 05          	add    0x5(%esp),%eax
401ed3:	8b 53 08             	mov    0x8(%ebx),%edx
401ed6:	03 53 0c             	add    0xc(%ebx),%edx
401ed9:	3b c2                	cmp    %edx,%eax
401edb:	73 0a                	jae    0x401ee7
401edd:	8d 14 37             	lea    (%edi,%esi,1),%edx
401ee0:	2b d0                	sub    %eax,%edx
401ee2:	e8 9d fe ff ff       	call   0x401d84
401ee7:	8d 54 24 01          	lea    0x1(%esp),%edx
401eeb:	8b c3                	mov    %ebx,%eax
401eed:	e8 8a f6 ff ff       	call   0x40157c
401ef2:	c6 04 24 01          	movb   $0x1,(%esp)
401ef6:	8a 04 24             	mov    (%esp),%al
401ef9:	83 c4 0c             	add    $0xc,%esp
401efc:	5d                   	pop    %ebp
401efd:	5f                   	pop    %edi
401efe:	5e                   	pop    %esi
401eff:	5b                   	pop    %ebx
401f00:	c3                   	ret
401f01:	8d 40 00             	lea    0x0(%eax),%eax
401f04:	53                   	push   %ebx
401f05:	56                   	push   %esi
401f06:	57                   	push   %edi
401f07:	8b f2                	mov    %edx,%esi
401f09:	8b f8                	mov    %eax,%edi
401f0b:	8b df                	mov    %edi,%ebx
401f0d:	89 73 08             	mov    %esi,0x8(%ebx)
401f10:	8b c3                	mov    %ebx,%eax
401f12:	03 c6                	add    %esi,%eax
401f14:	83 e8 0c             	sub    $0xc,%eax
401f17:	89 70 08             	mov    %esi,0x8(%eax)
401f1a:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
401f20:	7f 37                	jg     0x401f59
401f22:	8b d6                	mov    %esi,%edx
401f24:	85 d2                	test   %edx,%edx
401f26:	79 03                	jns    0x401f2b
401f28:	83 c2 03             	add    $0x3,%edx
401f2b:	c1 fa 02             	sar    $0x2,%edx
401f2e:	a1 20 86 6a 00       	mov    0x6a8620,%eax
401f33:	8b 44 90 f4          	mov    -0xc(%eax,%edx,4),%eax
401f37:	85 c0                	test   %eax,%eax
401f39:	75 10                	jne    0x401f4b
401f3b:	a1 20 86 6a 00       	mov    0x6a8620,%eax
401f40:	89 5c 90 f4          	mov    %ebx,-0xc(%eax,%edx,4)
401f44:	89 5b 04             	mov    %ebx,0x4(%ebx)
401f47:	89 1b                	mov    %ebx,(%ebx)
401f49:	eb 3a                	jmp    0x401f85
401f4b:	8b 10                	mov    (%eax),%edx
401f4d:	89 43 04             	mov    %eax,0x4(%ebx)
401f50:	89 13                	mov    %edx,(%ebx)
401f52:	89 18                	mov    %ebx,(%eax)
401f54:	89 5a 04             	mov    %ebx,0x4(%edx)
401f57:	eb 2c                	jmp    0x401f85
401f59:	81 fe 00 3c 00 00    	cmp    $0x3c00,%esi
401f5f:	7c 0d                	jl     0x401f6e
401f61:	8b d6                	mov    %esi,%edx
401f63:	8b c7                	mov    %edi,%eax
401f65:	e8 ea fe ff ff       	call   0x401e54
401f6a:	84 c0                	test   %al,%al
401f6c:	75 17                	jne    0x401f85
401f6e:	a1 14 86 6a 00       	mov    0x6a8614,%eax
401f73:	89 1d 14 86 6a 00    	mov    %ebx,0x6a8614
401f79:	8b 10                	mov    (%eax),%edx
401f7b:	89 43 04             	mov    %eax,0x4(%ebx)
401f7e:	89 13                	mov    %edx,(%ebx)
401f80:	89 18                	mov    %ebx,(%eax)
401f82:	89 5a 04             	mov    %ebx,0x4(%edx)
401f85:	5f                   	pop    %edi
401f86:	5e                   	pop    %esi
401f87:	5b                   	pop    %ebx
401f88:	c3                   	ret
401f89:	8d 40 00             	lea    0x0(%eax),%eax
401f8c:	83 3d 18 86 6a 00 00 	cmpl   $0x0,0x6a8618
401f93:	7e 40                	jle    0x401fd5
401f95:	83 3d 18 86 6a 00 0c 	cmpl   $0xc,0x6a8618
401f9c:	7d 0c                	jge    0x401faa
401f9e:	c7 05 c4 85 6a 00 07 	movl   $0x7,0x6a85c4
401fa5:	00 00 00
401fa8:	eb 2b                	jmp    0x401fd5
401faa:	a1 18 86 6a 00       	mov    0x6a8618,%eax
401faf:	83 c8 02             	or     $0x2,%eax
401fb2:	8b 15 1c 86 6a 00    	mov    0x6a861c,%edx
401fb8:	89 02                	mov    %eax,(%edx)
401fba:	a1 1c 86 6a 00       	mov    0x6a861c,%eax
401fbf:	83 c0 04             	add    $0x4,%eax
401fc2:	e8 99 fd ff ff       	call   0x401d60
401fc7:	33 c0                	xor    %eax,%eax
401fc9:	a3 1c 86 6a 00       	mov    %eax,0x6a861c
401fce:	33 c0                	xor    %eax,%eax
401fd0:	a3 18 86 6a 00       	mov    %eax,0x6a8618
401fd5:	c3                   	ret
401fd6:	8b c0                	mov    %eax,%eax
401fd8:	53                   	push   %ebx
401fd9:	56                   	push   %esi
401fda:	57                   	push   %edi
401fdb:	83 c4 f0             	add    $0xfffffff0,%esp
401fde:	8b f0                	mov    %eax,%esi
401fe0:	8d 3c 24             	lea    (%esp),%edi
401fe3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401fe4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
401fe5:	8b fc                	mov    %esp,%edi
401fe7:	e8 a0 ff ff ff       	call   0x401f8c
401fec:	8d 4c 24 08          	lea    0x8(%esp),%ecx
401ff0:	8b d7                	mov    %edi,%edx
401ff2:	b8 24 86 6a 00       	mov    $0x6a8624,%eax
401ff7:	e8 10 f5 ff ff       	call   0x40150c
401ffc:	8b 5c 24 08          	mov    0x8(%esp),%ebx
402000:	85 db                	test   %ebx,%ebx
402002:	75 04                	jne    0x402008
402004:	33 c0                	xor    %eax,%eax
402006:	eb 52                	jmp    0x40205a
402008:	8b 07                	mov    (%edi),%eax
40200a:	3b d8                	cmp    %eax,%ebx
40200c:	73 0a                	jae    0x402018
40200e:	e8 99 fd ff ff       	call   0x401dac
402013:	29 07                	sub    %eax,(%edi)
402015:	01 47 04             	add    %eax,0x4(%edi)
402018:	8b 07                	mov    (%edi),%eax
40201a:	03 47 04             	add    0x4(%edi),%eax
40201d:	8b f3                	mov    %ebx,%esi
40201f:	03 74 24 0c          	add    0xc(%esp),%esi
402023:	3b c6                	cmp    %esi,%eax
402025:	73 08                	jae    0x40202f
402027:	e8 f0 fd ff ff       	call   0x401e1c
40202c:	01 47 04             	add    %eax,0x4(%edi)
40202f:	8b 07                	mov    (%edi),%eax
402031:	03 47 04             	add    0x4(%edi),%eax
402034:	3b f0                	cmp    %eax,%esi
402036:	75 11                	jne    0x402049
402038:	83 e8 04             	sub    $0x4,%eax
40203b:	ba 04 00 00 00       	mov    $0x4,%edx
402040:	e8 eb fc ff ff       	call   0x401d30
402045:	83 6f 04 04          	subl   $0x4,0x4(%edi)
402049:	8b 07                	mov    (%edi),%eax
40204b:	a3 1c 86 6a 00       	mov    %eax,0x6a861c
402050:	8b 47 04             	mov    0x4(%edi),%eax
402053:	a3 18 86 6a 00       	mov    %eax,0x6a8618
402058:	b0 01                	mov    $0x1,%al
40205a:	83 c4 10             	add    $0x10,%esp
40205d:	5f                   	pop    %edi
40205e:	5e                   	pop    %esi
40205f:	5b                   	pop    %ebx
402060:	c3                   	ret
402061:	8d 40 00             	lea    0x0(%eax),%eax
402064:	53                   	push   %ebx
402065:	83 c4 f8             	add    $0xfffffff8,%esp
402068:	8b d8                	mov    %eax,%ebx
40206a:	8b d4                	mov    %esp,%edx
40206c:	8d 43 04             	lea    0x4(%ebx),%eax
40206f:	e8 44 f8 ff ff       	call   0x4018b8
402074:	83 3c 24 00          	cmpl   $0x0,(%esp)
402078:	74 0b                	je     0x402085
40207a:	8b c4                	mov    %esp,%eax
40207c:	e8 57 ff ff ff       	call   0x401fd8
402081:	84 c0                	test   %al,%al
402083:	75 04                	jne    0x402089
402085:	33 c0                	xor    %eax,%eax
402087:	eb 02                	jmp    0x40208b
402089:	b0 01                	mov    $0x1,%al
40208b:	59                   	pop    %ecx
40208c:	5a                   	pop    %edx
40208d:	5b                   	pop    %ebx
40208e:	c3                   	ret
40208f:	90                   	nop
402090:	53                   	push   %ebx
402091:	56                   	push   %esi
402092:	83 c4 f8             	add    $0xfffffff8,%esp
402095:	8b f2                	mov    %edx,%esi
402097:	8b d8                	mov    %eax,%ebx
402099:	8b cc                	mov    %esp,%ecx
40209b:	8d 56 04             	lea    0x4(%esi),%edx
40209e:	8b c3                	mov    %ebx,%eax
4020a0:	e8 a3 f8 ff ff       	call   0x401948
4020a5:	83 3c 24 00          	cmpl   $0x0,(%esp)
4020a9:	74 0b                	je     0x4020b6
4020ab:	8b c4                	mov    %esp,%eax
4020ad:	e8 26 ff ff ff       	call   0x401fd8
4020b2:	84 c0                	test   %al,%al
4020b4:	75 04                	jne    0x4020ba
4020b6:	33 c0                	xor    %eax,%eax
4020b8:	eb 02                	jmp    0x4020bc
4020ba:	b0 01                	mov    $0x1,%al
4020bc:	59                   	pop    %ecx
4020bd:	5a                   	pop    %edx
4020be:	5e                   	pop    %esi
4020bf:	5b                   	pop    %ebx
4020c0:	c3                   	ret
4020c1:	8d 40 00             	lea    0x0(%eax),%eax
4020c4:	33 d2                	xor    %edx,%edx
4020c6:	85 c0                	test   %eax,%eax
4020c8:	79 03                	jns    0x4020cd
4020ca:	83 c0 03             	add    $0x3,%eax
4020cd:	c1 f8 02             	sar    $0x2,%eax
4020d0:	3d 00 04 00 00       	cmp    $0x400,%eax
4020d5:	7f 16                	jg     0x4020ed
4020d7:	8b 15 20 86 6a 00    	mov    0x6a8620,%edx
4020dd:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
4020e1:	85 d2                	test   %edx,%edx
4020e3:	75 08                	jne    0x4020ed
4020e5:	40                   	inc    %eax
4020e6:	3d 01 04 00 00       	cmp    $0x401,%eax
4020eb:	75 ea                	jne    0x4020d7
4020ed:	8b c2                	mov    %edx,%eax
4020ef:	c3                   	ret
4020f0:	53                   	push   %ebx
4020f1:	56                   	push   %esi
4020f2:	57                   	push   %edi
4020f3:	55                   	push   %ebp
4020f4:	8b f0                	mov    %eax,%esi
4020f6:	bf 14 86 6a 00       	mov    $0x6a8614,%edi
4020fb:	bd 18 86 6a 00       	mov    $0x6a8618,%ebp
402100:	8b 1d 0c 86 6a 00    	mov    0x6a860c,%ebx
402106:	3b 73 08             	cmp    0x8(%ebx),%esi
402109:	0f 8e 84 00 00 00    	jle    0x402193
40210f:	8b 1f                	mov    (%edi),%ebx
402111:	8b 43 08             	mov    0x8(%ebx),%eax