401f69:	83 c4 f8             	add    $0xfffffff8,%esp
401f6c:	8b d8                	mov    %eax,%ebx
401f6e:	8b d4                	mov    %esp,%edx
401f70:	8d 43 04             	lea    0x4(%ebx),%eax
401f73:	e8 44 f8 ff ff       	call   0x4017bc
401f78:	83 3c 24 00          	cmpl   $0x0,(%esp)
401f7c:	74 0b                	je     0x401f89
401f7e:	8b c4                	mov    %esp,%eax
401f80:	e8 57 ff ff ff       	call   0x401edc
401f85:	84 c0                	test   %al,%al
401f87:	75 04                	jne    0x401f8d
401f89:	33 c0                	xor    %eax,%eax
401f8b:	eb 02                	jmp    0x401f8f
401f8d:	b0 01                	mov    $0x1,%al
401f8f:	59                   	pop    %ecx
401f90:	5a                   	pop    %edx
401f91:	5b                   	pop    %ebx
401f92:	c3                   	ret
401f93:	90                   	nop
401f94:	53                   	push   %ebx
401f95:	56                   	push   %esi
401f96:	83 c4 f8             	add    $0xfffffff8,%esp
401f99:	8b f2                	mov    %edx,%esi
401f9b:	8b d8                	mov    %eax,%ebx
401f9d:	8b cc                	mov    %esp,%ecx
401f9f:	8d 56 04             	lea    0x4(%esi),%edx
401fa2:	8b c3                	mov    %ebx,%eax
401fa4:	e8 a3 f8 ff ff       	call   0x40184c
401fa9:	83 3c 24 00          	cmpl   $0x0,(%esp)
401fad:	74 0b                	je     0x401fba
401faf:	8b c4                	mov    %esp,%eax
401fb1:	e8 26 ff ff ff       	call   0x401edc
401fb6:	84 c0                	test   %al,%al
401fb8:	75 04                	jne    0x401fbe
401fba:	33 c0                	xor    %eax,%eax
401fbc:	eb 02                	jmp    0x401fc0
401fbe:	b0 01                	mov    $0x1,%al
401fc0:	59                   	pop    %ecx
401fc1:	5a                   	pop    %edx
401fc2:	5e                   	pop    %esi
401fc3:	5b                   	pop    %ebx
401fc4:	c3                   	ret
401fc5:	8d 40 00             	lea    0x0(%eax),%eax
401fc8:	33 d2                	xor    %edx,%edx
401fca:	85 c0                	test   %eax,%eax
401fcc:	79 03                	jns    0x401fd1
401fce:	83 c0 03             	add    $0x3,%eax
401fd1:	c1 f8 02             	sar    $0x2,%eax
401fd4:	3d 00 04 00 00       	cmp    $0x400,%eax
401fd9:	7f 16                	jg     0x401ff1
401fdb:	8b 15 20 e6 46 00    	mov    0x46e620,%edx
401fe1:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
401fe5:	85 d2                	test   %edx,%edx
401fe7:	75 08                	jne    0x401ff1
401fe9:	40                   	inc    %eax
401fea:	3d 01 04 00 00       	cmp    $0x401,%eax
401fef:	75 ea                	jne    0x401fdb
401ff1:	8b c2                	mov    %edx,%eax
401ff3:	c3                   	ret
401ff4:	53                   	push   %ebx
401ff5:	56                   	push   %esi
401ff6:	57                   	push   %edi
401ff7:	55                   	push   %ebp
401ff8:	8b f0                	mov    %eax,%esi
401ffa:	bf 14 e6 46 00       	mov    $0x46e614,%edi
401fff:	bd 18 e6 46 00       	mov    $0x46e618,%ebp
402004:	8b 1d 0c e6 46 00    	mov    0x46e60c,%ebx
40200a:	3b 73 08             	cmp    0x8(%ebx),%esi
40200d:	0f 8e 84 00 00 00    	jle    0x402097
402013:	8b 1f                	mov    (%edi),%ebx
402015:	8b 43 08             	mov    0x8(%ebx),%eax
402018:	3b f0                	cmp    %eax,%esi
40201a:	7e 7b                	jle    0x402097
40201c:	89 73 08             	mov    %esi,0x8(%ebx)
40201f:	8b 5b 04             	mov    0x4(%ebx),%ebx
402022:	3b 73 08             	cmp    0x8(%ebx),%esi
402025:	7f f8                	jg     0x40201f
402027:	8b 17                	mov    (%edi),%edx
402029:	89 42 08             	mov    %eax,0x8(%edx)
40202c:	3b 1f                	cmp    (%edi),%ebx
40202e:	74 04                	je     0x402034
402030:	89 1f                	mov    %ebx,(%edi)
402032:	eb 63                	jmp    0x402097
402034:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
40203a:	7f 0d                	jg     0x402049
40203c:	8b c6                	mov    %esi,%eax
40203e:	e8 85 ff ff ff       	call   0x401fc8
402043:	8b d8                	mov    %eax,%ebx
402045:	85 db                	test   %ebx,%ebx
402047:	75 4e                	jne    0x402097
402049:	8b c6                	mov    %esi,%eax
40204b:	e8 18 ff ff ff       	call   0x401f68
402050:	84 c0                	test   %al,%al
402052:	75 07                	jne    0x40205b
402054:	33 c0                	xor    %eax,%eax
402056:	e9 88 00 00 00       	jmp    0x4020e3
40205b:	3b 75 00             	cmp    0x0(%ebp),%esi
40205e:	7f a4                	jg     0x402004
402060:	29 75 00             	sub    %esi,0x0(%ebp)
402063:	83 7d 00 0c          	cmpl   $0xc,0x0(%ebp)
402067:	7d 08                	jge    0x402071
402069:	03 75 00             	add    0x0(%ebp),%esi
40206c:	33 c0                	xor    %eax,%eax
40206e:	89 45 00             	mov    %eax,0x0(%ebp)
402071:	a1 1c e6 46 00       	mov    0x46e61c,%eax
402076:	01 35 1c e6 46 00    	add    %esi,0x46e61c
40207c:	8b d6                	mov    %esi,%edx
40207e:	83 ca 02             	or     $0x2,%edx
402081:	89 10                	mov    %edx,(%eax)
402083:	83 c0 04             	add    $0x4,%eax
402086:	ff 05 b0 e5 46 00    	incl   0x46e5b0
40208c:	83 ee 04             	sub    $0x4,%esi
40208f:	01 35 b4 e5 46 00    	add    %esi,0x46e5b4
402095:	eb 4c                	jmp    0x4020e3
402097:	8b c3                	mov    %ebx,%eax
402099:	e8 02 fb ff ff       	call   0x401ba0
40209e:	8b 53 08             	mov    0x8(%ebx),%edx
4020a1:	8b c2                	mov    %edx,%eax
4020a3:	2b c6                	sub    %esi,%eax
4020a5:	83 f8 0c             	cmp    $0xc,%eax
4020a8:	7c 0c                	jl     0x4020b6
4020aa:	8b d3                	mov    %ebx,%edx
4020ac:	03 d6                	add    %esi,%edx
4020ae:	92                   	xchg   %eax,%edx
4020af:	e8 54 fd ff ff       	call   0x401e08
4020b4:	eb 12                	jmp    0x4020c8
4020b6:	8b f2                	mov    %edx,%esi
4020b8:	3b 1f                	cmp    (%edi),%ebx
4020ba:	75 05                	jne    0x4020c1
4020bc:	8b 43 04             	mov    0x4(%ebx),%eax
4020bf:	89 07                	mov    %eax,(%edi)
4020c1:	8b c3                	mov    %ebx,%eax
4020c3:	03 c6                	add    %esi,%eax
4020c5:	83 20 fe             	andl   $0xfffffffe,(%eax)
4020c8:	8b c3                	mov    %ebx,%eax
4020ca:	8b d6                	mov    %esi,%edx
4020cc:	83 ca 02             	or     $0x2,%edx
4020cf:	89 10                	mov    %edx,(%eax)
4020d1:	83 c0 04             	add    $0x4,%eax
4020d4:	ff 05 b0 e5 46 00    	incl   0x46e5b0
4020da:	83 ee 04             	sub    $0x4,%esi
4020dd:	01 35 b4 e5 46 00    	add    %esi,0x46e5b4
4020e3:	5d                   	pop    %ebp
4020e4:	5f                   	pop    %edi
4020e5:	5e                   	pop    %esi
4020e6:	5b                   	pop    %ebx
4020e7:	c3                   	ret
4020e8:	55                   	push   %ebp
4020e9:	8b ec                	mov    %esp,%ebp
4020eb:	83 c4 f8             	add    $0xfffffff8,%esp
4020ee:	53                   	push   %ebx
4020ef:	56                   	push   %esi
4020f0:	57                   	push   %edi
4020f1:	8b d8                	mov    %eax,%ebx
4020f3:	80 3d c0 e5 46 00 00 	cmpb   $0x0,0x46e5c0
4020fa:	75 09                	jne    0x402105
4020fc:	e8 fb f8 ff ff       	call   0x4019fc
402101:	84 c0                	test   %al,%al
402103:	74 08                	je     0x40210d
402105:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
40210b:	7e 0a                	jle    0x402117
40210d:	33 c0                	xor    %eax,%eax
40210f:	89 45 fc             	mov    %eax,-0x4(%ebp)
402112:	e9 54 01 00 00       	jmp    0x40226b
402117:	33 c9                	xor    %ecx,%ecx
402119:	55                   	push   %ebp
40211a:	68 64 22 40 00       	push   $0x402264
40211f:	64 ff 31             	push   %fs:(%ecx)
402122:	64 89 21             	mov    %esp,%fs:(%ecx)
402125:	80 3d 49 e0 46 00 00 	cmpb   $0x0,0x46e049
40212c:	74 0a                	je     0x402138
40212e:	68 c8 e5 46 00       	push   $0x46e5c8
402133:	e8 20 f2 ff ff       	call   0x401358
402138:	83 c3 07             	add    $0x7,%ebx
40213b:	83 e3 fc             	and    $0xfffffffc,%ebx
40213e:	83 fb 0c             	cmp    $0xc,%ebx
402141:	7d 05                	jge    0x402148
402143:	bb 0c 00 00 00       	mov    $0xc,%ebx
402148:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
40214e:	0f 8f 93 00 00 00    	jg     0x4021e7
402154:	8b c3                	mov    %ebx,%eax
402156:	85 c0                	test   %eax,%eax
402158:	79 03                	jns    0x40215d
40215a:	83 c0 03             	add    $0x3,%eax
40215d:	c1 f8 02             	sar    $0x2,%eax
402160:	8b 15 20 e6 46 00    	mov    0x46e620,%edx
402166:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
40216a:	85 d2                	test   %edx,%edx
40216c:	74 79                	je     0x4021e7
40216e:	8b f2                	mov    %edx,%esi
402170:	8b c6                	mov    %esi,%eax
402172:	03 c3                	add    %ebx,%eax
402174:	83 20 fe             	andl   $0xfffffffe,(%eax)
402177:	8b 42 04             	mov    0x4(%edx),%eax
40217a:	3b d0                	cmp    %eax,%edx
40217c:	75 1a                	jne    0x402198
40217e:	8b c3                	mov    %ebx,%eax
402180:	85 c0                	test   %eax,%eax
402182:	79 03                	jns    0x402187
402184:	83 c0 03             	add    $0x3,%eax
402187:	c1 f8 02             	sar    $0x2,%eax
40218a:	8b 0d 20 e6 46 00    	mov    0x46e620,%ecx
402190:	33 ff                	xor    %edi,%edi
402192:	89 7c 81 f4          	mov    %edi,-0xc(%ecx,%eax,4)
402196:	eb 26                	jmp    0x4021be
402198:	8b cb                	mov    %ebx,%ecx
40219a:	85 c9                	test   %ecx,%ecx
40219c:	79 03                	jns    0x4021a1
40219e:	83 c1 03             	add    $0x3,%ecx
4021a1:	c1 f9 02             	sar    $0x2,%ecx
4021a4:	8b 3d 20 e6 46 00    	mov    0x46e620,%edi
4021aa:	89 44 8f f4          	mov    %eax,-0xc(%edi,%ecx,4)
4021ae:	8b 0a                	mov    (%edx),%ecx
4021b0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4021b3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4021b6:	89 41 04             	mov    %eax,0x4(%ecx)
4021b9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4021bc:	89 08                	mov    %ecx,(%eax)
4021be:	8b c6                	mov    %esi,%eax
4021c0:	8b 52 08             	mov    0x8(%edx),%edx
4021c3:	83 ca 02             	or     $0x2,%edx
4021c6:	89 10                	mov    %edx,(%eax)
4021c8:	83 c0 04             	add    $0x4,%eax
4021cb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4021ce:	ff 05 b0 e5 46 00    	incl   0x46e5b0
4021d4:	83 eb 04             	sub    $0x4,%ebx
4021d7:	01 1d b4 e5 46 00    	add    %ebx,0x46e5b4
4021dd:	e8 9e 18 00 00       	call   0x403a80
4021e2:	e9 84 00 00 00       	jmp    0x40226b
4021e7:	3b 1d 18 e6 46 00    	cmp    0x46e618,%ebx
4021ed:	7f 4a                	jg     0x402239
4021ef:	29 1d 18 e6 46 00    	sub    %ebx,0x46e618
4021f5:	83 3d 18 e6 46 00 0c 	cmpl   $0xc,0x46e618
4021fc:	7d 0d                	jge    0x40220b
4021fe:	03 1d 18 e6 46 00    	add    0x46e618,%ebx
402204:	33 c0                	xor    %eax,%eax
402206:	a3 18 e6 46 00       	mov    %eax,0x46e618
40220b:	a1 1c e6 46 00       	mov    0x46e61c,%eax
402210:	01 1d 1c e6 46 00    	add    %ebx,0x46e61c
402216:	8b d3                	mov    %ebx,%edx
402218:	83 ca 02             	or     $0x2,%edx
40221b:	89 10                	mov    %edx,(%eax)
40221d:	83 c0 04             	add    $0x4,%eax
402220:	89 45 fc             	mov    %eax,-0x4(%ebp)
402223:	ff 05 b0 e5 46 00    	incl   0x46e5b0
402229:	83 eb 04             	sub    $0x4,%ebx
40222c:	01 1d b4 e5 46 00    	add    %ebx,0x46e5b4
402232:	e8 49 18 00 00       	call   0x403a80
402237:	eb 32                	jmp    0x40226b
402239:	8b c3                	mov    %ebx,%eax
40223b:	e8 b4 fd ff ff       	call   0x401ff4
402240:	89 45 fc             	mov    %eax,-0x4(%ebp)
402243:	33 c0                	xor    %eax,%eax
402245:	5a                   	pop    %edx
402246:	59                   	pop    %ecx
402247:	59                   	pop    %ecx
402248:	64 89 10             	mov    %edx,%fs:(%eax)
40224b:	68 6b 22 40 00       	push   $0x40226b
402250:	80 3d 49 e0 46 00 00 	cmpb   $0x0,0x46e049
402257:	74 0a                	je     0x402263
402259:	68 c8 e5 46 00       	push   $0x46e5c8
40225e:	e8 fd f0 ff ff       	call   0x401360
402263:	c3                   	ret
402264:	e9 33 17 00 00       	jmp    0x40399c
402269:	eb e5                	jmp    0x402250
40226b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40226e:	5f                   	pop    %edi
40226f:	5e                   	pop    %esi
402270:	5b                   	pop    %ebx
402271:	59                   	pop    %ecx
402272:	59                   	pop    %ecx
402273:	5d                   	pop    %ebp
402274:	c3                   	ret
402275:	8d 40 00             	lea    0x0(%eax),%eax
402278:	55                   	push   %ebp
402279:	8b ec                	mov    %esp,%ebp
40227b:	51                   	push   %ecx
40227c:	53                   	push   %ebx
40227d:	56                   	push   %esi
40227e:	57                   	push   %edi
40227f:	8b d8                	mov    %eax,%ebx
402281:	33 c0                	xor    %eax,%eax
402283:	a3 c4 e5 46 00       	mov    %eax,0x46e5c4
402288:	80 3d c0 e5 46 00 00 	cmpb   $0x0,0x46e5c0
40228f:	75 1f                	jne    0x4022b0
402291:	e8 66 f7 ff ff       	call   0x4019fc
402296:	84 c0                	test   %al,%al
402298:	75 16                	jne    0x4022b0
40229a:	c7 05 c4 e5 46 00 08 	movl   $0x8,0x46e5c4
4022a1:	00 00 00
4022a4:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
4022ab:	e9 61 01 00 00       	jmp    0x402411
4022b0:	33 c9                	xor    %ecx,%ecx
4022b2:	55                   	push   %ebp
4022b3:	68 0a 24 40 00       	push   $0x40240a
4022b8:	64 ff 31             	push   %fs:(%ecx)
4022bb:	64 89 21             	mov    %esp,%fs:(%ecx)
4022be:	80 3d 49 e0 46 00 00 	cmpb   $0x0,0x46e049
4022c5:	74 0a                	je     0x4022d1
4022c7:	68 c8 e5 46 00       	push   $0x46e5c8
4022cc:	e8 87 f0 ff ff       	call   0x401358
4022d1:	8b f3                	mov    %ebx,%esi
4022d3:	83 ee 04             	sub    $0x4,%esi
4022d6:	8b 1e                	mov    (%esi),%ebx
4022d8:	f6 c3 02             	test   $0x2,%bl
4022db:	75 0f                	jne    0x4022ec
4022dd:	c7 05 c4 e5 46 00 09 	movl   $0x9,0x46e5c4
4022e4:	00 00 00
4022e7:	e9 f5 00 00 00       	jmp    0x4023e1
4022ec:	ff 0d b0 e5 46 00    	decl   0x46e5b0
4022f2:	8b c3                	mov    %ebx,%eax
4022f4:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
4022f9:	83 e8 04             	sub    $0x4,%eax
4022fc:	29 05 b4 e5 46 00    	sub    %eax,0x46e5b4
402302:	f6 c3 01             	test   $0x1,%bl
402305:	74 45                	je     0x40234c
402307:	8b c6                	mov    %esi,%eax
402309:	83 e8 0c             	sub    $0xc,%eax
40230c:	8b 50 08             	mov    0x8(%eax),%edx
40230f:	83 fa 0c             	cmp    $0xc,%edx
402312:	7c 08                	jl     0x40231c
402314:	f7 c2 03 00 00 80    	test   $0x80000003,%edx
40231a:	74 0f                	je     0x40232b
40231c:	c7 05 c4 e5 46 00 0a 	movl   $0xa,0x46e5c4
402323:	00 00 00
402326:	e9 b6 00 00 00       	jmp    0x4023e1
40232b:	8b c6                	mov    %esi,%eax
40232d:	2b c2                	sub    %edx,%eax
40232f:	3b 50 08             	cmp    0x8(%eax),%edx
402332:	74 0f                	je     0x402343
402334:	c7 05 c4 e5 46 00 0a 	movl   $0xa,0x46e5c4
40233b:	00 00 00
40233e:	e9 9e 00 00 00       	jmp    0x4023e1
402343:	03 da                	add    %edx,%ebx
402345:	8b f0                	mov    %eax,%esi
402347:	e8 54 f8 ff ff       	call   0x401ba0
40234c:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
402352:	8b c6                	mov    %esi,%eax
402354:	03 c3                	add    %ebx,%eax
402356:	8b f8                	mov    %eax,%edi
402358:	3b 3d 1c e6 46 00    	cmp    0x46e61c,%edi
40235e:	75 2c                	jne    0x40238c
402360:	29 1d 1c e6 46 00    	sub    %ebx,0x46e61c
402366:	01 1d 18 e6 46 00    	add    %ebx,0x46e618
40236c:	81 3d 18 e6 46 00 00 	cmpl   $0x3c00,0x46e618
402373:	3c 00 00
402376:	7e 05                	jle    0x40237d
402378:	e8 13 fb ff ff       	call   0x401e90
40237d:	33 c0                	xor    %eax,%eax
40237f:	89 45 fc             	mov    %eax,-0x4(%ebp)