4021be:	89 45 f0             	mov    %eax,-0x10(%ebp)
4021c1:	89 45 f4             	mov    %eax,-0xc(%ebp)
4021c4:	58                   	pop    %eax
4021c5:	89 7d f8             	mov    %edi,-0x8(%ebp)
4021c8:	e8 09 0f 00 00       	call   0x4030d6
4021cd:	8b f4                	mov    %esp,%esi
4021cf:	3b f7                	cmp    %edi,%esi
4021d1:	74 13                	je     0x4021e6
4021d3:	68 8a 00 00 00       	push   $0x8a
4021d8:	6a 15                	push   $0x15
4021da:	8b c6                	mov    %esi,%eax
4021dc:	ba 6c 5a 40 00       	mov    $0x405a6c,%edx
4021e1:	e8 77 07 00 00       	call   0x40295d
4021e6:	8d 45 f4             	lea    -0xc(%ebp),%eax
4021e9:	50                   	push   %eax
4021ea:	8d 45 f8             	lea    -0x8(%ebp),%eax
4021ed:	50                   	push   %eax
4021ee:	8d 45 f0             	lea    -0x10(%ebp),%eax
4021f1:	50                   	push   %eax
4021f2:	57                   	push   %edi
4021f3:	56                   	push   %esi
4021f4:	ff 75 fc             	push   -0x4(%ebp)
4021f7:	ff 15 28 40 40 00    	call   *0x404028
4021fd:	85 c0                	test   %eax,%eax
4021ff:	75 18                	jne    0x402219
402201:	39 7d f8             	cmp    %edi,-0x8(%ebp)
402204:	74 13                	je     0x402219
402206:	56                   	push   %esi
402207:	ff 75 fc             	push   -0x4(%ebp)
40220a:	ff 15 34 40 40 00    	call   *0x404034
402210:	ff 75 fc             	push   -0x4(%ebp)
402213:	ff 15 38 40 40 00    	call   *0x404038
402219:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40221c:	74 09                	je     0x402227
40221e:	ff 75 fc             	push   -0x4(%ebp)
402221:	ff 15 3c 40 40 00    	call   *0x40403c
402227:	8d 65 e8             	lea    -0x18(%ebp),%esp
40222a:	5f                   	pop    %edi
40222b:	5e                   	pop    %esi
40222c:	c9                   	leave
40222d:	c3                   	ret
40222e:	55                   	push   %ebp
40222f:	8b ec                	mov    %esp,%ebp
402231:	6a 00                	push   $0x0
402233:	68 80 00 00 00       	push   $0x80
402238:	6a 02                	push   $0x2
40223a:	6a 00                	push   $0x0
40223c:	6a 03                	push   $0x3
40223e:	68 00 00 00 c0       	push   $0xc0000000
402243:	ff 75 08             	push   0x8(%ebp)
402246:	ff 15 bc 40 40 00    	call   *0x4040bc
40224c:	5d                   	pop    %ebp
40224d:	c2 04 00             	ret    $0x4
402250:	55                   	push   %ebp
402251:	8b ec                	mov    %esp,%ebp
402253:	6a 00                	push   $0x0
402255:	68 80 00 00 00       	push   $0x80
40225a:	6a 03                	push   $0x3
40225c:	6a 00                	push   $0x0
40225e:	6a 03                	push   $0x3
402260:	ff 75 0c             	push   0xc(%ebp)
402263:	ff 75 08             	push   0x8(%ebp)
402266:	ff 15 bc 40 40 00    	call   *0x4040bc
40226c:	5d                   	pop    %ebp
40226d:	c2 08 00             	ret    $0x8
402270:	55                   	push   %ebp
402271:	8b ec                	mov    %esp,%ebp
402273:	51                   	push   %ecx
402274:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402278:	33 c0                	xor    %eax,%eax
40227a:	39 45 0c             	cmp    %eax,0xc(%ebp)
40227d:	74 26                	je     0x4022a5
40227f:	85 f6                	test   %esi,%esi
402281:	74 22                	je     0x4022a5
402283:	50                   	push   %eax
402284:	8d 45 fc             	lea    -0x4(%ebp),%eax
402287:	50                   	push   %eax
402288:	56                   	push   %esi
402289:	ff 75 0c             	push   0xc(%ebp)
40228c:	ff 75 08             	push   0x8(%ebp)
40228f:	ff 15 d0 40 40 00    	call   *0x4040d0
402295:	85 c0                	test   %eax,%eax
402297:	74 0a                	je     0x4022a3
402299:	3b 75 fc             	cmp    -0x4(%ebp),%esi
40229c:	75 05                	jne    0x4022a3
40229e:	33 c0                	xor    %eax,%eax
4022a0:	40                   	inc    %eax
4022a1:	eb 02                	jmp    0x4022a5
4022a3:	33 c0                	xor    %eax,%eax
4022a5:	c9                   	leave
4022a6:	c2 08 00             	ret    $0x8
4022a9:	55                   	push   %ebp
4022aa:	8b ec                	mov    %esp,%ebp
4022ac:	83 ec 10             	sub    $0x10,%esp
4022af:	53                   	push   %ebx
4022b0:	33 db                	xor    %ebx,%ebx
4022b2:	56                   	push   %esi
4022b3:	33 f6                	xor    %esi,%esi
4022b5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4022b8:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4022bb:	74 71                	je     0x40232e
4022bd:	68 00 00 00 80       	push   $0x80000000
4022c2:	ff 75 08             	push   0x8(%ebp)
4022c5:	e8 86 ff ff ff       	call   0x402250
4022ca:	89 45 08             	mov    %eax,0x8(%ebp)
4022cd:	83 f8 ff             	cmp    $0xffffffff,%eax
4022d0:	74 5c                	je     0x40232e
4022d2:	57                   	push   %edi
4022d3:	33 c0                	xor    %eax,%eax
4022d5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4022d8:	8d 7d f4             	lea    -0xc(%ebp),%edi
4022db:	ab                   	stos   %eax,%es:(%edi)
4022dc:	8d 45 f0             	lea    -0x10(%ebp),%eax
4022df:	50                   	push   %eax
4022e0:	ff 75 08             	push   0x8(%ebp)
4022e3:	ff 15 dc 40 40 00    	call   *0x4040dc
4022e9:	8b 75 f0             	mov    -0x10(%ebp),%esi
4022ec:	89 75 f4             	mov    %esi,-0xc(%ebp)
4022ef:	3b f3                	cmp    %ebx,%esi
4022f1:	74 2f                	je     0x402322
4022f3:	e8 cb 07 00 00       	call   0x402ac3
4022f8:	8b f8                	mov    %eax,%edi
4022fa:	89 7d fc             	mov    %edi,-0x4(%ebp)
4022fd:	3b fb                	cmp    %ebx,%edi
4022ff:	74 21                	je     0x402322
402301:	53                   	push   %ebx
402302:	8d 45 f8             	lea    -0x8(%ebp),%eax
402305:	50                   	push   %eax
402306:	56                   	push   %esi
402307:	57                   	push   %edi
402308:	ff 75 08             	push   0x8(%ebp)
40230b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40230e:	ff 15 d4 40 40 00    	call   *0x4040d4
402314:	3b c3                	cmp    %ebx,%eax
402316:	75 0a                	jne    0x402322
402318:	8b f7                	mov    %edi,%esi
40231a:	e8 f3 07 00 00       	call   0x402b12
40231f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402322:	ff 75 08             	push   0x8(%ebp)
402325:	e8 56 fb ff ff       	call   0x401e80
40232a:	8b 75 f4             	mov    -0xc(%ebp),%esi
40232d:	5f                   	pop    %edi
40232e:	8b 45 0c             	mov    0xc(%ebp),%eax
402331:	3b c3                	cmp    %ebx,%eax
402333:	74 02                	je     0x402337
402335:	89 30                	mov    %esi,(%eax)
402337:	8b 45 fc             	mov    -0x4(%ebp),%eax
40233a:	5e                   	pop    %esi
40233b:	5b                   	pop    %ebx
40233c:	c9                   	leave
40233d:	c2 08 00             	ret    $0x8
402340:	55                   	push   %ebp
402341:	8b ec                	mov    %esp,%ebp
402343:	53                   	push   %ebx
402344:	33 db                	xor    %ebx,%ebx
402346:	56                   	push   %esi
402347:	8b f0                	mov    %eax,%esi
402349:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40234c:	74 49                	je     0x402397
40234e:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
402351:	74 44                	je     0x402397
402353:	3b f3                	cmp    %ebx,%esi
402355:	74 40                	je     0x402397
402357:	57                   	push   %edi
402358:	68 00 00 00 40       	push   $0x40000000
40235d:	ff 75 08             	push   0x8(%ebp)
402360:	e8 eb fe ff ff       	call   0x402250
402365:	8b f8                	mov    %eax,%edi
402367:	83 ff ff             	cmp    $0xffffffff,%edi
40236a:	75 0f                	jne    0x40237b
40236c:	ff 75 08             	push   0x8(%ebp)
40236f:	e8 ba fe ff ff       	call   0x40222e
402374:	8b f8                	mov    %eax,%edi
402376:	83 ff ff             	cmp    $0xffffffff,%edi
402379:	74 1b                	je     0x402396
40237b:	ff 75 0c             	push   0xc(%ebp)
40237e:	57                   	push   %edi
40237f:	e8 ec fe ff ff       	call   0x402270
402384:	85 c0                	test   %eax,%eax
402386:	74 03                	je     0x40238b
402388:	33 db                	xor    %ebx,%ebx
40238a:	43                   	inc    %ebx
40238b:	83 ff ff             	cmp    $0xffffffff,%edi
40238e:	74 06                	je     0x402396
402390:	57                   	push   %edi
402391:	e8 ea fa ff ff       	call   0x401e80
402396:	5f                   	pop    %edi
402397:	5e                   	pop    %esi
402398:	8b c3                	mov    %ebx,%eax
40239a:	5b                   	pop    %ebx
40239b:	5d                   	pop    %ebp
40239c:	c2 08 00             	ret    $0x8
40239f:	33 c0                	xor    %eax,%eax
4023a1:	85 ff                	test   %edi,%edi
4023a3:	74 1a                	je     0x4023bf
4023a5:	56                   	push   %esi
4023a6:	50                   	push   %eax
4023a7:	57                   	push   %edi
4023a8:	ff 15 e4 40 40 00    	call   *0x4040e4
4023ae:	8b 35 54 40 40 00    	mov    0x404054,%esi
4023b4:	57                   	push   %edi
4023b5:	ff d6                	call   *%esi
4023b7:	85 c0                	test   %eax,%eax
4023b9:	75 03                	jne    0x4023be
4023bb:	57                   	push   %edi
4023bc:	ff d6                	call   *%esi
4023be:	5e                   	pop    %esi
4023bf:	c3                   	ret
4023c0:	55                   	push   %ebp
4023c1:	8b ec                	mov    %esp,%ebp
4023c3:	81 ec 54 04 00 00    	sub    $0x454,%esp
4023c9:	53                   	push   %ebx
4023ca:	56                   	push   %esi
4023cb:	57                   	push   %edi
4023cc:	6a 00                	push   $0x0
4023ce:	ff 15 80 40 40 00    	call   *0x404080
4023d4:	be 04 01 00 00       	mov    $0x104,%esi
4023d9:	56                   	push   %esi
4023da:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
4023e0:	50                   	push   %eax
4023e1:	6a 00                	push   $0x0
4023e3:	ff 15 90 40 40 00    	call   *0x404090
4023e9:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
4023ef:	50                   	push   %eax
4023f0:	ff 15 18 41 40 00    	call   *0x404118
4023f6:	85 c0                	test   %eax,%eax
4023f8:	0f 84 23 02 00 00    	je     0x402621
4023fe:	6a 08                	push   $0x8
402400:	58                   	pop    %eax
402401:	e8 d0 0c 00 00       	call   0x4030d6
402406:	8b c4                	mov    %esp,%eax
402408:	89 45 f8             	mov    %eax,-0x8(%ebp)
40240b:	85 c0                	test   %eax,%eax
40240d:	74 11                	je     0x402420
40240f:	68 99 00 00 00       	push   $0x99
402414:	6a 04                	push   $0x4
402416:	ba 34 54 40 00       	mov    $0x405434,%edx
40241b:	e8 3d 05 00 00       	call   0x40295d
402420:	6a 1c                	push   $0x1c
402422:	58                   	pop    %eax
402423:	e8 ae 0c 00 00       	call   0x4030d6
402428:	8b fc                	mov    %esp,%edi
40242a:	85 ff                	test   %edi,%edi
40242c:	74 13                	je     0x402441
40242e:	68 87 00 00 00       	push   $0x87
402433:	6a 1b                	push   $0x1b
402435:	8b c7                	mov    %edi,%eax
402437:	ba b0 51 40 00       	mov    $0x4051b0,%edx
40243c:	e8 1c 05 00 00       	call   0x40295d
402441:	6a 14                	push   $0x14
402443:	58                   	pop    %eax
402444:	e8 8d 0c 00 00       	call   0x4030d6
402449:	8b dc                	mov    %esp,%ebx
40244b:	85 db                	test   %ebx,%ebx
40244d:	74 13                	je     0x402462
40244f:	68 86 00 00 00       	push   $0x86
402454:	6a 13                	push   $0x13
402456:	8b c3                	mov    %ebx,%eax
402458:	ba cc 51 40 00       	mov    $0x4051cc,%edx
40245d:	e8 fb 04 00 00       	call   0x40295d
402462:	6a 08                	push   $0x8
402464:	58                   	pop    %eax
402465:	e8 6c 0c 00 00       	call   0x4030d6
40246a:	8b c4                	mov    %esp,%eax
40246c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40246f:	85 c0                	test   %eax,%eax
402471:	74 11                	je     0x402484
402473:	68 89 00 00 00       	push   $0x89
402478:	6a 04                	push   $0x4
40247a:	ba dc 57 40 00       	mov    $0x4057dc,%edx
40247f:	e8 d9 04 00 00       	call   0x40295d
402484:	6a 08                	push   $0x8
402486:	58                   	pop    %eax
402487:	e8 4a 0c 00 00       	call   0x4030d6
40248c:	8b c4                	mov    %esp,%eax
40248e:	85 c0                	test   %eax,%eax
402490:	74 11                	je     0x4024a3
402492:	68 8f 00 00 00       	push   $0x8f
402497:	6a 06                	push   $0x6
402499:	ba e0 58 40 00       	mov    $0x4058e0,%edx
40249e:	e8 ba 04 00 00       	call   0x40295d
4024a3:	8d 8d b4 fd ff ff    	lea    -0x24c(%ebp),%ecx
4024a9:	51                   	push   %ecx
4024aa:	50                   	push   %eax
4024ab:	8d 85 ac fb ff ff    	lea    -0x454(%ebp),%eax
4024b1:	56                   	push   %esi
4024b2:	50                   	push   %eax
4024b3:	ff 15 88 41 40 00    	call   *0x404188
4024b9:	8d 8d b8 fe ff ff    	lea    -0x148(%ebp),%ecx
4024bf:	83 c4 10             	add    $0x10,%esp
4024c2:	8b c7                	mov    %edi,%eax
4024c4:	2b cf                	sub    %edi,%ecx
4024c6:	8a 10                	mov    (%eax),%dl
4024c8:	88 14 01             	mov    %dl,(%ecx,%eax,1)
4024cb:	40                   	inc    %eax
4024cc:	84 d2                	test   %dl,%dl
4024ce:	75 f6                	jne    0x4024c6
4024d0:	6a 0a                	push   $0xa
4024d2:	e8 6f 06 00 00       	call   0x402b46
4024d7:	83 c0 0a             	add    $0xa,%eax
4024da:	50                   	push   %eax
4024db:	e8 3d 05 00 00       	call   0x402a1d
4024e0:	8b d0                	mov    %eax,%edx
4024e2:	8a 08                	mov    (%eax),%cl
4024e4:	40                   	inc    %eax
4024e5:	84 c9                	test   %cl,%cl
4024e7:	75 f9                	jne    0x4024e2
4024e9:	8d bd b8 fe ff ff    	lea    -0x148(%ebp),%edi
4024ef:	2b c2                	sub    %edx,%eax
4024f1:	4f                   	dec    %edi
4024f2:	8a 4f 01             	mov    0x1(%edi),%cl
4024f5:	47                   	inc    %edi
4024f6:	84 c9                	test   %cl,%cl
4024f8:	75 f8                	jne    0x4024f2
4024fa:	8b c8                	mov    %eax,%ecx
4024fc:	c1 e9 02             	shr    $0x2,%ecx
4024ff:	8b f2                	mov    %edx,%esi
402501:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402503:	8b c8                	mov    %eax,%ecx
402505:	83 e1 03             	and    $0x3,%ecx
402508:	8b c3                	mov    %ebx,%eax
40250a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40250c:	8b c8                	mov    %eax,%ecx
40250e:	8a 10                	mov    (%eax),%dl
402510:	40                   	inc    %eax
402511:	84 d2                	test   %dl,%dl
402513:	75 f9                	jne    0x40250e
402515:	8d bd b8 fe ff ff    	lea    -0x148(%ebp),%edi
40251b:	2b c1                	sub    %ecx,%eax
40251d:	8b f1                	mov    %ecx,%esi
40251f:	4f                   	dec    %edi
402520:	8a 4f 01             	mov    0x1(%edi),%cl
402523:	47                   	inc    %edi
402524:	84 c9                	test   %cl,%cl
402526:	75 f8                	jne    0x402520
402528:	8b c8                	mov    %eax,%ecx
40252a:	c1 e9 02             	shr    $0x2,%ecx
40252d:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40252f:	8b c8                	mov    %eax,%ecx
402531:	83 e1 03             	and    $0x3,%ecx
402534:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
402536:	e8 6e 01 00 00       	call   0x4026a9
40253b:	8b d8                	mov    %eax,%ebx
40253d:	85 db                	test   %ebx,%ebx
40253f:	0f 84 dc 00 00 00    	je     0x402621
402545:	8b 45 f8             	mov    -0x8(%ebp),%eax
402548:	8b d0                	mov    %eax,%edx
40254a:	8a 08                	mov    (%eax),%cl
40254c:	40                   	inc    %eax
40254d:	84 c9                	test   %cl,%cl