4020d1:	e8 02 fb ff ff       	call   0x401bd8
4020d6:	8b 53 08             	mov    0x8(%ebx),%edx
4020d9:	8b c2                	mov    %edx,%eax
4020db:	2b c6                	sub    %esi,%eax
4020dd:	83 f8 0c             	cmp    $0xc,%eax
4020e0:	7c 0c                	jl     0x4020ee
4020e2:	8b d3                	mov    %ebx,%edx
4020e4:	03 d6                	add    %esi,%edx
4020e6:	92                   	xchg   %eax,%edx
4020e7:	e8 54 fd ff ff       	call   0x401e40
4020ec:	eb 12                	jmp    0x402100
4020ee:	8b f2                	mov    %edx,%esi
4020f0:	3b 1f                	cmp    (%edi),%ebx
4020f2:	75 05                	jne    0x4020f9
4020f4:	8b 43 04             	mov    0x4(%ebx),%eax
4020f7:	89 07                	mov    %eax,(%edi)
4020f9:	8b c3                	mov    %ebx,%eax
4020fb:	03 c6                	add    %esi,%eax
4020fd:	83 20 fe             	andl   $0xfffffffe,(%eax)
402100:	8b c3                	mov    %ebx,%eax
402102:	8b d6                	mov    %esi,%edx
402104:	83 ca 02             	or     $0x2,%edx
402107:	89 10                	mov    %edx,(%eax)
402109:	83 c0 04             	add    $0x4,%eax
40210c:	ff 05 b0 55 47 00    	incl   0x4755b0
402112:	83 ee 04             	sub    $0x4,%esi
402115:	01 35 b4 55 47 00    	add    %esi,0x4755b4
40211b:	5d                   	pop    %ebp
40211c:	5f                   	pop    %edi
40211d:	5e                   	pop    %esi
40211e:	5b                   	pop    %ebx
40211f:	c3                   	ret
402120:	55                   	push   %ebp
402121:	8b ec                	mov    %esp,%ebp
402123:	83 c4 f8             	add    $0xfffffff8,%esp
402126:	53                   	push   %ebx
402127:	56                   	push   %esi
402128:	57                   	push   %edi
402129:	8b d8                	mov    %eax,%ebx
40212b:	80 3d c0 55 47 00 00 	cmpb   $0x0,0x4755c0
402132:	75 09                	jne    0x40213d
402134:	e8 fb f8 ff ff       	call   0x401a34
402139:	84 c0                	test   %al,%al
40213b:	74 08                	je     0x402145
40213d:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
402143:	7e 0a                	jle    0x40214f
402145:	33 c0                	xor    %eax,%eax
402147:	89 45 fc             	mov    %eax,-0x4(%ebp)
40214a:	e9 54 01 00 00       	jmp    0x4022a3
40214f:	33 c9                	xor    %ecx,%ecx
402151:	55                   	push   %ebp
402152:	68 9c 22 40 00       	push   $0x40229c
402157:	64 ff 31             	push   %fs:(%ecx)
40215a:	64 89 21             	mov    %esp,%fs:(%ecx)
40215d:	80 3d 49 50 47 00 00 	cmpb   $0x0,0x475049
402164:	74 0a                	je     0x402170
402166:	68 c8 55 47 00       	push   $0x4755c8
40216b:	e8 20 f2 ff ff       	call   0x401390
402170:	83 c3 07             	add    $0x7,%ebx
402173:	83 e3 fc             	and    $0xfffffffc,%ebx
402176:	83 fb 0c             	cmp    $0xc,%ebx
402179:	7d 05                	jge    0x402180
40217b:	bb 0c 00 00 00       	mov    $0xc,%ebx
402180:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402186:	0f 8f 93 00 00 00    	jg     0x40221f
40218c:	8b c3                	mov    %ebx,%eax
40218e:	85 c0                	test   %eax,%eax
402190:	79 03                	jns    0x402195
402192:	83 c0 03             	add    $0x3,%eax
402195:	c1 f8 02             	sar    $0x2,%eax
402198:	8b 15 20 56 47 00    	mov    0x475620,%edx
40219e:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
4021a2:	85 d2                	test   %edx,%edx
4021a4:	74 79                	je     0x40221f
4021a6:	8b f2                	mov    %edx,%esi
4021a8:	8b c6                	mov    %esi,%eax
4021aa:	03 c3                	add    %ebx,%eax
4021ac:	83 20 fe             	andl   $0xfffffffe,(%eax)
4021af:	8b 42 04             	mov    0x4(%edx),%eax
4021b2:	3b d0                	cmp    %eax,%edx
4021b4:	75 1a                	jne    0x4021d0
4021b6:	8b c3                	mov    %ebx,%eax
4021b8:	85 c0                	test   %eax,%eax
4021ba:	79 03                	jns    0x4021bf
4021bc:	83 c0 03             	add    $0x3,%eax
4021bf:	c1 f8 02             	sar    $0x2,%eax
4021c2:	8b 0d 20 56 47 00    	mov    0x475620,%ecx
4021c8:	33 ff                	xor    %edi,%edi
4021ca:	89 7c 81 f4          	mov    %edi,-0xc(%ecx,%eax,4)
4021ce:	eb 26                	jmp    0x4021f6
4021d0:	8b cb                	mov    %ebx,%ecx
4021d2:	85 c9                	test   %ecx,%ecx
4021d4:	79 03                	jns    0x4021d9
4021d6:	83 c1 03             	add    $0x3,%ecx
4021d9:	c1 f9 02             	sar    $0x2,%ecx
4021dc:	8b 3d 20 56 47 00    	mov    0x475620,%edi
4021e2:	89 44 8f f4          	mov    %eax,-0xc(%edi,%ecx,4)
4021e6:	8b 0a                	mov    (%edx),%ecx
4021e8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4021eb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4021ee:	89 41 04             	mov    %eax,0x4(%ecx)
4021f1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4021f4:	89 08                	mov    %ecx,(%eax)
4021f6:	8b c6                	mov    %esi,%eax
4021f8:	8b 52 08             	mov    0x8(%edx),%edx
4021fb:	83 ca 02             	or     $0x2,%edx
4021fe:	89 10                	mov    %edx,(%eax)
402200:	83 c0 04             	add    $0x4,%eax
402203:	89 45 fc             	mov    %eax,-0x4(%ebp)
402206:	ff 05 b0 55 47 00    	incl   0x4755b0
40220c:	83 eb 04             	sub    $0x4,%ebx
40220f:	01 1d b4 55 47 00    	add    %ebx,0x4755b4
402215:	e8 1e 19 00 00       	call   0x403b38
40221a:	e9 84 00 00 00       	jmp    0x4022a3
40221f:	3b 1d 18 56 47 00    	cmp    0x475618,%ebx
402225:	7f 4a                	jg     0x402271
402227:	29 1d 18 56 47 00    	sub    %ebx,0x475618
40222d:	83 3d 18 56 47 00 0c 	cmpl   $0xc,0x475618
402234:	7d 0d                	jge    0x402243
402236:	03 1d 18 56 47 00    	add    0x475618,%ebx
40223c:	33 c0                	xor    %eax,%eax
40223e:	a3 18 56 47 00       	mov    %eax,0x475618
402243:	a1 1c 56 47 00       	mov    0x47561c,%eax
402248:	01 1d 1c 56 47 00    	add    %ebx,0x47561c
40224e:	8b d3                	mov    %ebx,%edx
402250:	83 ca 02             	or     $0x2,%edx
402253:	89 10                	mov    %edx,(%eax)
402255:	83 c0 04             	add    $0x4,%eax
402258:	89 45 fc             	mov    %eax,-0x4(%ebp)
40225b:	ff 05 b0 55 47 00    	incl   0x4755b0
402261:	83 eb 04             	sub    $0x4,%ebx
402264:	01 1d b4 55 47 00    	add    %ebx,0x4755b4
40226a:	e8 c9 18 00 00       	call   0x403b38
40226f:	eb 32                	jmp    0x4022a3
402271:	8b c3                	mov    %ebx,%eax
402273:	e8 b4 fd ff ff       	call   0x40202c
402278:	89 45 fc             	mov    %eax,-0x4(%ebp)
40227b:	33 c0                	xor    %eax,%eax
40227d:	5a                   	pop    %edx
40227e:	59                   	pop    %ecx
40227f:	59                   	pop    %ecx
402280:	64 89 10             	mov    %edx,%fs:(%eax)
402283:	68 a3 22 40 00       	push   $0x4022a3
402288:	80 3d 49 50 47 00 00 	cmpb   $0x0,0x475049
40228f:	74 0a                	je     0x40229b
402291:	68 c8 55 47 00       	push   $0x4755c8
402296:	e8 fd f0 ff ff       	call   0x401398
40229b:	c3                   	ret
40229c:	e9 b3 17 00 00       	jmp    0x403a54
4022a1:	eb e5                	jmp    0x402288
4022a3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4022a6:	5f                   	pop    %edi
4022a7:	5e                   	pop    %esi
4022a8:	5b                   	pop    %ebx
4022a9:	59                   	pop    %ecx
4022aa:	59                   	pop    %ecx
4022ab:	5d                   	pop    %ebp
4022ac:	c3                   	ret
4022ad:	8d 40 00             	lea    0x0(%eax),%eax
4022b0:	55                   	push   %ebp
4022b1:	8b ec                	mov    %esp,%ebp
4022b3:	51                   	push   %ecx
4022b4:	53                   	push   %ebx
4022b5:	56                   	push   %esi
4022b6:	57                   	push   %edi
4022b7:	8b d8                	mov    %eax,%ebx
4022b9:	33 c0                	xor    %eax,%eax
4022bb:	a3 c4 55 47 00       	mov    %eax,0x4755c4
4022c0:	80 3d c0 55 47 00 00 	cmpb   $0x0,0x4755c0
4022c7:	75 1f                	jne    0x4022e8
4022c9:	e8 66 f7 ff ff       	call   0x401a34
4022ce:	84 c0                	test   %al,%al
4022d0:	75 16                	jne    0x4022e8
4022d2:	c7 05 c4 55 47 00 08 	movl   $0x8,0x4755c4
4022d9:	00 00 00
4022dc:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
4022e3:	e9 61 01 00 00       	jmp    0x402449
4022e8:	33 c9                	xor    %ecx,%ecx
4022ea:	55                   	push   %ebp
4022eb:	68 42 24 40 00       	push   $0x402442
4022f0:	64 ff 31             	push   %fs:(%ecx)
4022f3:	64 89 21             	mov    %esp,%fs:(%ecx)
4022f6:	80 3d 49 50 47 00 00 	cmpb   $0x0,0x475049
4022fd:	74 0a                	je     0x402309
4022ff:	68 c8 55 47 00       	push   $0x4755c8
402304:	e8 87 f0 ff ff       	call   0x401390
402309:	8b f3                	mov    %ebx,%esi
40230b:	83 ee 04             	sub    $0x4,%esi
40230e:	8b 1e                	mov    (%esi),%ebx
402310:	f6 c3 02             	test   $0x2,%bl
402313:	75 0f                	jne    0x402324
402315:	c7 05 c4 55 47 00 09 	movl   $0x9,0x4755c4
40231c:	00 00 00
40231f:	e9 f5 00 00 00       	jmp    0x402419
402324:	ff 0d b0 55 47 00    	decl   0x4755b0
40232a:	8b c3                	mov    %ebx,%eax
40232c:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
402331:	83 e8 04             	sub    $0x4,%eax
402334:	29 05 b4 55 47 00    	sub    %eax,0x4755b4
40233a:	f6 c3 01             	test   $0x1,%bl
40233d:	74 45                	je     0x402384
40233f:	8b c6                	mov    %esi,%eax
402341:	83 e8 0c             	sub    $0xc,%eax
402344:	8b 50 08             	mov    0x8(%eax),%edx
402347:	83 fa 0c             	cmp    $0xc,%edx
40234a:	7c 08                	jl     0x402354
40234c:	f7 c2 03 00 00 80    	test   $0x80000003,%edx
402352:	74 0f                	je     0x402363
402354:	c7 05 c4 55 47 00 0a 	movl   $0xa,0x4755c4
40235b:	00 00 00
40235e:	e9 b6 00 00 00       	jmp    0x402419
402363:	8b c6                	mov    %esi,%eax
402365:	2b c2                	sub    %edx,%eax
402367:	3b 50 08             	cmp    0x8(%eax),%edx
40236a:	74 0f                	je     0x40237b
40236c:	c7 05 c4 55 47 00 0a 	movl   $0xa,0x4755c4
402373:	00 00 00
402376:	e9 9e 00 00 00       	jmp    0x402419
40237b:	03 da                	add    %edx,%ebx
40237d:	8b f0                	mov    %eax,%esi
40237f:	e8 54 f8 ff ff       	call   0x401bd8
402384:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
40238a:	8b c6                	mov    %esi,%eax
40238c:	03 c3                	add    %ebx,%eax
40238e:	8b f8                	mov    %eax,%edi
402390:	3b 3d 1c 56 47 00    	cmp    0x47561c,%edi
402396:	75 2c                	jne    0x4023c4
402398:	29 1d 1c 56 47 00    	sub    %ebx,0x47561c
40239e:	01 1d 18 56 47 00    	add    %ebx,0x475618
4023a4:	81 3d 18 56 47 00 00 	cmpl   $0x3c00,0x475618
4023ab:	3c 00 00
4023ae:	7e 05                	jle    0x4023b5
4023b0:	e8 13 fb ff ff       	call   0x401ec8
4023b5:	33 c0                	xor    %eax,%eax
4023b7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4023ba:	e8 79 17 00 00       	call   0x403b38
4023bf:	e9 85 00 00 00       	jmp    0x402449
4023c4:	8b 10                	mov    (%eax),%edx
4023c6:	f6 c2 02             	test   $0x2,%dl
4023c9:	74 1c                	je     0x4023e7
4023cb:	81 e2 fc ff ff 7f    	and    $0x7ffffffc,%edx
4023d1:	83 fa 04             	cmp    $0x4,%edx
4023d4:	7d 0c                	jge    0x4023e2
4023d6:	c7 05 c4 55 47 00 0b 	movl   $0xb,0x4755c4
4023dd:	00 00 00
4023e0:	eb 37                	jmp    0x402419
4023e2:	83 08 01             	orl    $0x1,(%eax)
4023e5:	eb 29                	jmp    0x402410
4023e7:	8b c7                	mov    %edi,%eax
4023e9:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4023ed:	74 0b                	je     0x4023fa
4023ef:	83 38 00             	cmpl   $0x0,(%eax)
4023f2:	74 06                	je     0x4023fa
4023f4:	83 78 08 0c          	cmpl   $0xc,0x8(%eax)
4023f8:	7d 0c                	jge    0x402406
4023fa:	c7 05 c4 55 47 00 0b 	movl   $0xb,0x4755c4
402401:	00 00 00
402404:	eb 13                	jmp    0x402419
402406:	8b 50 08             	mov    0x8(%eax),%edx
402409:	03 da                	add    %edx,%ebx
40240b:	e8 c8 f7 ff ff       	call   0x401bd8
402410:	8b d3                	mov    %ebx,%edx
402412:	8b c6                	mov    %esi,%eax
402414:	e8 27 fa ff ff       	call   0x401e40
402419:	a1 c4 55 47 00       	mov    0x4755c4,%eax
40241e:	89 45 fc             	mov    %eax,-0x4(%ebp)
402421:	33 c0                	xor    %eax,%eax
402423:	5a                   	pop    %edx
402424:	59                   	pop    %ecx
402425:	59                   	pop    %ecx
402426:	64 89 10             	mov    %edx,%fs:(%eax)
402429:	68 49 24 40 00       	push   $0x402449
40242e:	80 3d 49 50 47 00 00 	cmpb   $0x0,0x475049
402435:	74 0a                	je     0x402441
402437:	68 c8 55 47 00       	push   $0x4755c8
40243c:	e8 57 ef ff ff       	call   0x401398
402441:	c3                   	ret
402442:	e9 0d 16 00 00       	jmp    0x403a54
402447:	eb e5                	jmp    0x40242e
402449:	8b 45 fc             	mov    -0x4(%ebp),%eax
40244c:	5f                   	pop    %edi
40244d:	5e                   	pop    %esi
40244e:	5b                   	pop    %ebx
40244f:	59                   	pop    %ecx
402450:	5d                   	pop    %ebp
402451:	c3                   	ret
402452:	8b c0                	mov    %eax,%eax
402454:	53                   	push   %ebx
402455:	56                   	push   %esi
402456:	57                   	push   %edi
402457:	55                   	push   %ebp
402458:	83 c4 f8             	add    $0xfffffff8,%esp
40245b:	8b f2                	mov    %edx,%esi
40245d:	83 c6 07             	add    $0x7,%esi
402460:	83 e6 fc             	and    $0xfffffffc,%esi
402463:	83 fe 0c             	cmp    $0xc,%esi
402466:	7d 05                	jge    0x40246d
402468:	be 0c 00 00 00       	mov    $0xc,%esi
40246d:	8b e8                	mov    %eax,%ebp
40246f:	83 ed 04             	sub    $0x4,%ebp
402472:	8b 7d 00             	mov    0x0(%ebp),%edi
402475:	81 e7 fc ff ff 7f    	and    $0x7ffffffc,%edi
40247b:	8b c5                	mov    %ebp,%eax
40247d:	03 c7                	add    %edi,%eax
40247f:	8b d8                	mov    %eax,%ebx
402481:	3b fe                	cmp    %esi,%edi
402483:	75 07                	jne    0x40248c
402485:	b0 01                	mov    $0x1,%al
402487:	e9 9b 01 00 00       	jmp    0x402627
40248c:	3b fe                	cmp    %esi,%edi
40248e:	0f 8e 83 00 00 00    	jle    0x402517
402494:	8b d7                	mov    %edi,%edx
402496:	2b d6                	sub    %esi,%edx
402498:	89 14 24             	mov    %edx,(%esp)
40249b:	3b 1d 1c 56 47 00    	cmp    0x47561c,%ebx
4024a1:	75 38                	jne    0x4024db
4024a3:	8b 04 24             	mov    (%esp),%eax
4024a6:	29 05 1c 56 47 00    	sub    %eax,0x47561c
4024ac:	8b 04 24             	mov    (%esp),%eax
4024af:	01 05 18 56 47 00    	add    %eax,0x475618
4024b5:	83 3d 18 56 47 00 0c 	cmpl   $0xc,0x475618
4024bc:	0f 8d 4c 01 00 00    	jge    0x40260e
4024c2:	8b 04 24             	mov    (%esp),%eax
4024c5:	01 05 1c 56 47 00    	add    %eax,0x47561c
4024cb:	8b 04 24             	mov    (%esp),%eax
4024ce:	29 05 18 56 47 00    	sub    %eax,0x475618
4024d4:	8b f7                	mov    %edi,%esi
4024d6:	e9 33 01 00 00       	jmp    0x40260e
4024db:	8b d8                	mov    %eax,%ebx
4024dd:	f6 03 02             	testb  $0x2,(%ebx)
4024e0:	75 0d                	jne    0x4024ef
4024e2:	8b c3                	mov    %ebx,%eax
4024e4:	8b 50 08             	mov    0x8(%eax),%edx
4024e7:	01 14 24             	add    %edx,(%esp)
4024ea:	e8 e9 f6 ff ff       	call   0x401bd8
4024ef:	83 3c 24 0c          	cmpl   $0xc,(%esp)
4024f3:	7c 1b                	jl     0x402510
4024f5:	8b dd                	mov    %ebp,%ebx
4024f7:	03 de                	add    %esi,%ebx
4024f9:	8b 04 24             	mov    (%esp),%eax
4024fc:	83 c8 02             	or     $0x2,%eax
4024ff:	89 03                	mov    %eax,(%ebx)
402501:	8b c3                	mov    %ebx,%eax
402503:	83 c0 04             	add    $0x4,%eax
402506:	e8 91 f7 ff ff       	call   0x401c9c
40250b:	e9 fe 00 00 00       	jmp    0x40260e
402510:	8b f7                	mov    %edi,%esi
402512:	e9 f7 00 00 00       	jmp    0x40260e
402517:	8b c6                	mov    %esi,%eax
402519:	2b c7                	sub    %edi,%eax