4020e1:	7f f8                	jg     0x4020db
4020e3:	8b 17                	mov    (%edi),%edx
4020e5:	89 42 08             	mov    %eax,0x8(%edx)
4020e8:	3b 1f                	cmp    (%edi),%ebx
4020ea:	74 04                	je     0x4020f0
4020ec:	89 1f                	mov    %ebx,(%edi)
4020ee:	eb 63                	jmp    0x402153
4020f0:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
4020f6:	7f 0d                	jg     0x402105
4020f8:	8b c6                	mov    %esi,%eax
4020fa:	e8 85 ff ff ff       	call   0x402084
4020ff:	8b d8                	mov    %eax,%ebx
402101:	85 db                	test   %ebx,%ebx
402103:	75 4e                	jne    0x402153
402105:	8b c6                	mov    %esi,%eax
402107:	e8 18 ff ff ff       	call   0x402024
40210c:	84 c0                	test   %al,%al
40210e:	75 07                	jne    0x402117
402110:	33 c0                	xor    %eax,%eax
402112:	e9 88 00 00 00       	jmp    0x40219f
402117:	3b 75 00             	cmp    0x0(%ebp),%esi
40211a:	7f a4                	jg     0x4020c0
40211c:	29 75 00             	sub    %esi,0x0(%ebp)
40211f:	83 7d 00 0c          	cmpl   $0xc,0x0(%ebp)
402123:	7d 08                	jge    0x40212d
402125:	03 75 00             	add    0x0(%ebp),%esi
402128:	33 c0                	xor    %eax,%eax
40212a:	89 45 00             	mov    %eax,0x0(%ebp)
40212d:	a1 20 c6 49 00       	mov    0x49c620,%eax
402132:	01 35 20 c6 49 00    	add    %esi,0x49c620
402138:	8b d6                	mov    %esi,%edx
40213a:	83 ca 02             	or     $0x2,%edx
40213d:	89 10                	mov    %edx,(%eax)
40213f:	83 c0 04             	add    $0x4,%eax
402142:	ff 05 b4 c5 49 00    	incl   0x49c5b4
402148:	83 ee 04             	sub    $0x4,%esi
40214b:	01 35 b8 c5 49 00    	add    %esi,0x49c5b8
402151:	eb 4c                	jmp    0x40219f
402153:	8b c3                	mov    %ebx,%eax
402155:	e8 02 fb ff ff       	call   0x401c5c
40215a:	8b 53 08             	mov    0x8(%ebx),%edx
40215d:	8b c2                	mov    %edx,%eax
40215f:	2b c6                	sub    %esi,%eax
402161:	83 f8 0c             	cmp    $0xc,%eax
402164:	7c 0c                	jl     0x402172
402166:	8b d3                	mov    %ebx,%edx
402168:	03 d6                	add    %esi,%edx
40216a:	92                   	xchg   %eax,%edx
40216b:	e8 54 fd ff ff       	call   0x401ec4
402170:	eb 12                	jmp    0x402184
402172:	8b f2                	mov    %edx,%esi
402174:	3b 1f                	cmp    (%edi),%ebx
402176:	75 05                	jne    0x40217d
402178:	8b 43 04             	mov    0x4(%ebx),%eax
40217b:	89 07                	mov    %eax,(%edi)
40217d:	8b c3                	mov    %ebx,%eax
40217f:	03 c6                	add    %esi,%eax
402181:	83 20 fe             	andl   $0xfffffffe,(%eax)
402184:	8b c3                	mov    %ebx,%eax
402186:	8b d6                	mov    %esi,%edx
402188:	83 ca 02             	or     $0x2,%edx
40218b:	89 10                	mov    %edx,(%eax)
40218d:	83 c0 04             	add    $0x4,%eax
402190:	ff 05 b4 c5 49 00    	incl   0x49c5b4
402196:	83 ee 04             	sub    $0x4,%esi
402199:	01 35 b8 c5 49 00    	add    %esi,0x49c5b8
40219f:	5d                   	pop    %ebp
4021a0:	5f                   	pop    %edi
4021a1:	5e                   	pop    %esi
4021a2:	5b                   	pop    %ebx
4021a3:	c3                   	ret
4021a4:	55                   	push   %ebp
4021a5:	8b ec                	mov    %esp,%ebp
4021a7:	83 c4 f8             	add    $0xfffffff8,%esp
4021aa:	53                   	push   %ebx
4021ab:	56                   	push   %esi
4021ac:	57                   	push   %edi
4021ad:	8b d8                	mov    %eax,%ebx
4021af:	80 3d c4 c5 49 00 00 	cmpb   $0x0,0x49c5c4
4021b6:	75 09                	jne    0x4021c1
4021b8:	e8 fb f8 ff ff       	call   0x401ab8
4021bd:	84 c0                	test   %al,%al
4021bf:	74 08                	je     0x4021c9
4021c1:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
4021c7:	7e 0a                	jle    0x4021d3
4021c9:	33 c0                	xor    %eax,%eax
4021cb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4021ce:	e9 54 01 00 00       	jmp    0x402327
4021d3:	33 c9                	xor    %ecx,%ecx
4021d5:	55                   	push   %ebp
4021d6:	68 20 23 40 00       	push   $0x402320
4021db:	64 ff 31             	push   %fs:(%ecx)
4021de:	64 89 21             	mov    %esp,%fs:(%ecx)
4021e1:	80 3d 4d c0 49 00 00 	cmpb   $0x0,0x49c04d
4021e8:	74 0a                	je     0x4021f4
4021ea:	68 cc c5 49 00       	push   $0x49c5cc
4021ef:	e8 20 f2 ff ff       	call   0x401414
4021f4:	83 c3 07             	add    $0x7,%ebx
4021f7:	83 e3 fc             	and    $0xfffffffc,%ebx
4021fa:	83 fb 0c             	cmp    $0xc,%ebx
4021fd:	7d 05                	jge    0x402204
4021ff:	bb 0c 00 00 00       	mov    $0xc,%ebx
402204:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
40220a:	0f 8f 93 00 00 00    	jg     0x4022a3
402210:	8b c3                	mov    %ebx,%eax
402212:	85 c0                	test   %eax,%eax
402214:	79 03                	jns    0x402219
402216:	83 c0 03             	add    $0x3,%eax
402219:	c1 f8 02             	sar    $0x2,%eax
40221c:	8b 15 24 c6 49 00    	mov    0x49c624,%edx
402222:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
402226:	85 d2                	test   %edx,%edx
402228:	74 79                	je     0x4022a3
40222a:	8b f2                	mov    %edx,%esi
40222c:	8b c6                	mov    %esi,%eax
40222e:	03 c3                	add    %ebx,%eax
402230:	83 20 fe             	andl   $0xfffffffe,(%eax)
402233:	8b 42 04             	mov    0x4(%edx),%eax
402236:	3b d0                	cmp    %eax,%edx
402238:	75 1a                	jne    0x402254
40223a:	8b c3                	mov    %ebx,%eax
40223c:	85 c0                	test   %eax,%eax
40223e:	79 03                	jns    0x402243
402240:	83 c0 03             	add    $0x3,%eax
402243:	c1 f8 02             	sar    $0x2,%eax
402246:	8b 0d 24 c6 49 00    	mov    0x49c624,%ecx
40224c:	33 ff                	xor    %edi,%edi
40224e:	89 7c 81 f4          	mov    %edi,-0xc(%ecx,%eax,4)
402252:	eb 26                	jmp    0x40227a
402254:	8b cb                	mov    %ebx,%ecx
402256:	85 c9                	test   %ecx,%ecx
402258:	79 03                	jns    0x40225d
40225a:	83 c1 03             	add    $0x3,%ecx
40225d:	c1 f9 02             	sar    $0x2,%ecx
402260:	8b 3d 24 c6 49 00    	mov    0x49c624,%edi
402266:	89 44 8f f4          	mov    %eax,-0xc(%edi,%ecx,4)
40226a:	8b 0a                	mov    (%edx),%ecx
40226c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40226f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402272:	89 41 04             	mov    %eax,0x4(%ecx)
402275:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402278:	89 08                	mov    %ecx,(%eax)
40227a:	8b c6                	mov    %esi,%eax
40227c:	8b 52 08             	mov    0x8(%edx),%edx
40227f:	83 ca 02             	or     $0x2,%edx
402282:	89 10                	mov    %edx,(%eax)
402284:	83 c0 04             	add    $0x4,%eax
402287:	89 45 fc             	mov    %eax,-0x4(%ebp)
40228a:	ff 05 b4 c5 49 00    	incl   0x49c5b4
402290:	83 eb 04             	sub    $0x4,%ebx
402293:	01 1d b8 c5 49 00    	add    %ebx,0x49c5b8
402299:	e8 ae 19 00 00       	call   0x403c4c
40229e:	e9 84 00 00 00       	jmp    0x402327
4022a3:	3b 1d 1c c6 49 00    	cmp    0x49c61c,%ebx
4022a9:	7f 4a                	jg     0x4022f5
4022ab:	29 1d 1c c6 49 00    	sub    %ebx,0x49c61c
4022b1:	83 3d 1c c6 49 00 0c 	cmpl   $0xc,0x49c61c
4022b8:	7d 0d                	jge    0x4022c7
4022ba:	03 1d 1c c6 49 00    	add    0x49c61c,%ebx
4022c0:	33 c0                	xor    %eax,%eax
4022c2:	a3 1c c6 49 00       	mov    %eax,0x49c61c
4022c7:	a1 20 c6 49 00       	mov    0x49c620,%eax
4022cc:	01 1d 20 c6 49 00    	add    %ebx,0x49c620
4022d2:	8b d3                	mov    %ebx,%edx
4022d4:	83 ca 02             	or     $0x2,%edx
4022d7:	89 10                	mov    %edx,(%eax)
4022d9:	83 c0 04             	add    $0x4,%eax
4022dc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4022df:	ff 05 b4 c5 49 00    	incl   0x49c5b4
4022e5:	83 eb 04             	sub    $0x4,%ebx
4022e8:	01 1d b8 c5 49 00    	add    %ebx,0x49c5b8
4022ee:	e8 59 19 00 00       	call   0x403c4c
4022f3:	eb 32                	jmp    0x402327
4022f5:	8b c3                	mov    %ebx,%eax
4022f7:	e8 b4 fd ff ff       	call   0x4020b0
4022fc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4022ff:	33 c0                	xor    %eax,%eax
402301:	5a                   	pop    %edx
402302:	59                   	pop    %ecx
402303:	59                   	pop    %ecx
402304:	64 89 10             	mov    %edx,%fs:(%eax)
402307:	68 27 23 40 00       	push   $0x402327
40230c:	80 3d 4d c0 49 00 00 	cmpb   $0x0,0x49c04d
402313:	74 0a                	je     0x40231f
402315:	68 cc c5 49 00       	push   $0x49c5cc
40231a:	e8 fd f0 ff ff       	call   0x40141c
40231f:	c3                   	ret
402320:	e9 43 18 00 00       	jmp    0x403b68
402325:	eb e5                	jmp    0x40230c
402327:	8b 45 fc             	mov    -0x4(%ebp),%eax
40232a:	5f                   	pop    %edi
40232b:	5e                   	pop    %esi
40232c:	5b                   	pop    %ebx
40232d:	59                   	pop    %ecx
40232e:	59                   	pop    %ecx
40232f:	5d                   	pop    %ebp
402330:	c3                   	ret
402331:	8d 40 00             	lea    0x0(%eax),%eax
402334:	55                   	push   %ebp
402335:	8b ec                	mov    %esp,%ebp
402337:	51                   	push   %ecx
402338:	53                   	push   %ebx
402339:	56                   	push   %esi
40233a:	57                   	push   %edi
40233b:	8b d8                	mov    %eax,%ebx
40233d:	33 c0                	xor    %eax,%eax
40233f:	a3 c8 c5 49 00       	mov    %eax,0x49c5c8
402344:	80 3d c4 c5 49 00 00 	cmpb   $0x0,0x49c5c4
40234b:	75 1f                	jne    0x40236c
40234d:	e8 66 f7 ff ff       	call   0x401ab8
402352:	84 c0                	test   %al,%al
402354:	75 16                	jne    0x40236c
402356:	c7 05 c8 c5 49 00 08 	movl   $0x8,0x49c5c8
40235d:	00 00 00
402360:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
402367:	e9 61 01 00 00       	jmp    0x4024cd
40236c:	33 c9                	xor    %ecx,%ecx
40236e:	55                   	push   %ebp
40236f:	68 c6 24 40 00       	push   $0x4024c6
402374:	64 ff 31             	push   %fs:(%ecx)
402377:	64 89 21             	mov    %esp,%fs:(%ecx)
40237a:	80 3d 4d c0 49 00 00 	cmpb   $0x0,0x49c04d
402381:	74 0a                	je     0x40238d
402383:	68 cc c5 49 00       	push   $0x49c5cc
402388:	e8 87 f0 ff ff       	call   0x401414
40238d:	8b f3                	mov    %ebx,%esi
40238f:	83 ee 04             	sub    $0x4,%esi
402392:	8b 1e                	mov    (%esi),%ebx
402394:	f6 c3 02             	test   $0x2,%bl
402397:	75 0f                	jne    0x4023a8
402399:	c7 05 c8 c5 49 00 09 	movl   $0x9,0x49c5c8
4023a0:	00 00 00
4023a3:	e9 f5 00 00 00       	jmp    0x40249d
4023a8:	ff 0d b4 c5 49 00    	decl   0x49c5b4
4023ae:	8b c3                	mov    %ebx,%eax
4023b0:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
4023b5:	83 e8 04             	sub    $0x4,%eax
4023b8:	29 05 b8 c5 49 00    	sub    %eax,0x49c5b8
4023be:	f6 c3 01             	test   $0x1,%bl
4023c1:	74 45                	je     0x402408
4023c3:	8b c6                	mov    %esi,%eax
4023c5:	83 e8 0c             	sub    $0xc,%eax
4023c8:	8b 50 08             	mov    0x8(%eax),%edx
4023cb:	83 fa 0c             	cmp    $0xc,%edx
4023ce:	7c 08                	jl     0x4023d8
4023d0:	f7 c2 03 00 00 80    	test   $0x80000003,%edx
4023d6:	74 0f                	je     0x4023e7
4023d8:	c7 05 c8 c5 49 00 0a 	movl   $0xa,0x49c5c8
4023df:	00 00 00
4023e2:	e9 b6 00 00 00       	jmp    0x40249d
4023e7:	8b c6                	mov    %esi,%eax
4023e9:	2b c2                	sub    %edx,%eax
4023eb:	3b 50 08             	cmp    0x8(%eax),%edx
4023ee:	74 0f                	je     0x4023ff
4023f0:	c7 05 c8 c5 49 00 0a 	movl   $0xa,0x49c5c8
4023f7:	00 00 00
4023fa:	e9 9e 00 00 00       	jmp    0x40249d
4023ff:	03 da                	add    %edx,%ebx
402401:	8b f0                	mov    %eax,%esi
402403:	e8 54 f8 ff ff       	call   0x401c5c
402408:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
40240e:	8b c6                	mov    %esi,%eax
402410:	03 c3                	add    %ebx,%eax
402412:	8b f8                	mov    %eax,%edi
402414:	3b 3d 20 c6 49 00    	cmp    0x49c620,%edi
40241a:	75 2c                	jne    0x402448
40241c:	29 1d 20 c6 49 00    	sub    %ebx,0x49c620
402422:	01 1d 1c c6 49 00    	add    %ebx,0x49c61c
402428:	81 3d 1c c6 49 00 00 	cmpl   $0x3c00,0x49c61c
40242f:	3c 00 00
402432:	7e 05                	jle    0x402439
402434:	e8 13 fb ff ff       	call   0x401f4c
402439:	33 c0                	xor    %eax,%eax
40243b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40243e:	e8 09 18 00 00       	call   0x403c4c
402443:	e9 85 00 00 00       	jmp    0x4024cd
402448:	8b 10                	mov    (%eax),%edx
40244a:	f6 c2 02             	test   $0x2,%dl
40244d:	74 1c                	je     0x40246b
40244f:	81 e2 fc ff ff 7f    	and    $0x7ffffffc,%edx
402455:	83 fa 04             	cmp    $0x4,%edx
402458:	7d 0c                	jge    0x402466
40245a:	c7 05 c8 c5 49 00 0b 	movl   $0xb,0x49c5c8
402461:	00 00 00
402464:	eb 37                	jmp    0x40249d
402466:	83 08 01             	orl    $0x1,(%eax)
402469:	eb 29                	jmp    0x402494
40246b:	8b c7                	mov    %edi,%eax
40246d:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
402471:	74 0b                	je     0x40247e
402473:	83 38 00             	cmpl   $0x0,(%eax)
402476:	74 06                	je     0x40247e
402478:	83 78 08 0c          	cmpl   $0xc,0x8(%eax)
40247c:	7d 0c                	jge    0x40248a
40247e:	c7 05 c8 c5 49 00 0b 	movl   $0xb,0x49c5c8
402485:	00 00 00
402488:	eb 13                	jmp    0x40249d
40248a:	8b 50 08             	mov    0x8(%eax),%edx
40248d:	03 da                	add    %edx,%ebx
40248f:	e8 c8 f7 ff ff       	call   0x401c5c
402494:	8b d3                	mov    %ebx,%edx
402496:	8b c6                	mov    %esi,%eax
402498:	e8 27 fa ff ff       	call   0x401ec4
40249d:	a1 c8 c5 49 00       	mov    0x49c5c8,%eax
4024a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024a5:	33 c0                	xor    %eax,%eax
4024a7:	5a                   	pop    %edx
4024a8:	59                   	pop    %ecx
4024a9:	59                   	pop    %ecx
4024aa:	64 89 10             	mov    %edx,%fs:(%eax)
4024ad:	68 cd 24 40 00       	push   $0x4024cd
4024b2:	80 3d 4d c0 49 00 00 	cmpb   $0x0,0x49c04d
4024b9:	74 0a                	je     0x4024c5
4024bb:	68 cc c5 49 00       	push   $0x49c5cc
4024c0:	e8 57 ef ff ff       	call   0x40141c
4024c5:	c3                   	ret
4024c6:	e9 9d 16 00 00       	jmp    0x403b68
4024cb:	eb e5                	jmp    0x4024b2
4024cd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4024d0:	5f                   	pop    %edi
4024d1:	5e                   	pop    %esi
4024d2:	5b                   	pop    %ebx
4024d3:	59                   	pop    %ecx
4024d4:	5d                   	pop    %ebp
4024d5:	c3                   	ret
4024d6:	8b c0                	mov    %eax,%eax
4024d8:	53                   	push   %ebx
4024d9:	56                   	push   %esi
4024da:	57                   	push   %edi
4024db:	55                   	push   %ebp
4024dc:	83 c4 f8             	add    $0xfffffff8,%esp
4024df:	8b f2                	mov    %edx,%esi
4024e1:	83 c6 07             	add    $0x7,%esi
4024e4:	83 e6 fc             	and    $0xfffffffc,%esi
4024e7:	83 fe 0c             	cmp    $0xc,%esi
4024ea:	7d 05                	jge    0x4024f1
4024ec:	be 0c 00 00 00       	mov    $0xc,%esi
4024f1:	8b e8                	mov    %eax,%ebp
4024f3:	83 ed 04             	sub    $0x4,%ebp
4024f6:	8b 7d 00             	mov    0x0(%ebp),%edi
4024f9:	81 e7 fc ff ff 7f    	and    $0x7ffffffc,%edi
4024ff:	8b c5                	mov    %ebp,%eax
402501:	03 c7                	add    %edi,%eax
402503:	8b d8                	mov    %eax,%ebx
402505:	3b fe                	cmp    %esi,%edi
402507:	75 07                	jne    0x402510
402509:	b0 01                	mov    $0x1,%al
40250b:	e9 9b 01 00 00       	jmp    0x4026ab
402510:	3b fe                	cmp    %esi,%edi
402512:	0f 8e 83 00 00 00    	jle    0x40259b