4042cd:	57                   	push   %edi
4042ce:	8b 7d 0c             	mov    0xc(%ebp),%edi
4042d1:	8b ce                	mov    %esi,%ecx
4042d3:	6a 00                	push   $0x0
4042d5:	57                   	push   %edi
4042d6:	e8 d0 fd ff ff       	call   0x4040ab
4042db:	84 c0                	test   %al,%al
4042dd:	74 32                	je     0x404311
4042df:	8b 46 14             	mov    0x14(%esi),%eax
4042e2:	83 f8 10             	cmp    $0x10,%eax
4042e5:	72 04                	jb     0x4042eb
4042e7:	8b 0e                	mov    (%esi),%ecx
4042e9:	eb 02                	jmp    0x4042ed
4042eb:	8b ce                	mov    %esi,%ecx
4042ed:	85 ff                	test   %edi,%edi
4042ef:	74 0e                	je     0x4042ff
4042f1:	57                   	push   %edi
4042f2:	53                   	push   %ebx
4042f3:	51                   	push   %ecx
4042f4:	e8 b0 07 00 00       	call   0x404aa9
4042f9:	8b 46 14             	mov    0x14(%esi),%eax
4042fc:	83 c4 0c             	add    $0xc,%esp
4042ff:	89 7e 10             	mov    %edi,0x10(%esi)
404302:	83 f8 10             	cmp    $0x10,%eax
404305:	72 04                	jb     0x40430b
404307:	8b 06                	mov    (%esi),%eax
404309:	eb 02                	jmp    0x40430d
40430b:	8b c6                	mov    %esi,%eax
40430d:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
404311:	8b c6                	mov    %esi,%eax
404313:	5f                   	pop    %edi
404314:	5e                   	pop    %esi
404315:	5b                   	pop    %ebx
404316:	5d                   	pop    %ebp
404317:	c2 08 00             	ret    $0x8
40431a:	cc                   	int3
40431b:	cc                   	int3
40431c:	cc                   	int3
40431d:	cc                   	int3
40431e:	cc                   	int3
40431f:	cc                   	int3
404320:	8b ff                	mov    %edi,%edi
404322:	55                   	push   %ebp
404323:	8b ec                	mov    %esp,%ebp
404325:	56                   	push   %esi
404326:	8b 75 0c             	mov    0xc(%ebp),%esi
404329:	56                   	push   %esi
40432a:	e8 27 02 00 00       	call   0x404556
40432f:	59                   	pop    %ecx
404330:	8b 4d 08             	mov    0x8(%ebp),%ecx
404333:	85 c0                	test   %eax,%eax
404335:	8b c1                	mov    %ecx,%eax
404337:	89 31                	mov    %esi,(%ecx)
404339:	5e                   	pop    %esi
40433a:	74 09                	je     0x404345
40433c:	c7 41 04 00 80 40 00 	movl   $0x408000,0x4(%ecx)
404343:	eb 07                	jmp    0x40434c
404345:	c7 41 04 08 80 40 00 	movl   $0x408008,0x4(%ecx)
40434c:	5d                   	pop    %ebp
40434d:	c2 08 00             	ret    $0x8
404350:	8b ff                	mov    %edi,%edi
404352:	55                   	push   %ebp
404353:	8b ec                	mov    %esp,%ebp
404355:	8b 45 08             	mov    0x8(%ebp),%eax
404358:	8b 55 0c             	mov    0xc(%ebp),%edx
40435b:	89 10                	mov    %edx,(%eax)
40435d:	89 48 04             	mov    %ecx,0x4(%eax)
404360:	5d                   	pop    %ebp
404361:	c2 08 00             	ret    $0x8
404364:	cc                   	int3
404365:	cc                   	int3
404366:	cc                   	int3
404367:	cc                   	int3
404368:	cc                   	int3
404369:	cc                   	int3
40436a:	cc                   	int3
40436b:	cc                   	int3
40436c:	cc                   	int3
40436d:	cc                   	int3
40436e:	cc                   	int3
40436f:	cc                   	int3
404370:	8b ff                	mov    %edi,%edi
404372:	55                   	push   %ebp
404373:	8b ec                	mov    %esp,%ebp
404375:	8b 45 08             	mov    0x8(%ebp),%eax
404378:	3b 48 04             	cmp    0x4(%eax),%ecx
40437b:	75 0b                	jne    0x404388
40437d:	8b 00                	mov    (%eax),%eax
40437f:	3b 45 0c             	cmp    0xc(%ebp),%eax
404382:	75 04                	jne    0x404388
404384:	b0 01                	mov    $0x1,%al
404386:	eb 02                	jmp    0x40438a
404388:	32 c0                	xor    %al,%al
40438a:	5d                   	pop    %ebp
40438b:	c2 08 00             	ret    $0x8
40438e:	cc                   	int3
40438f:	cc                   	int3
404390:	8b ff                	mov    %edi,%edi
404392:	55                   	push   %ebp
404393:	8b ec                	mov    %esp,%ebp
404395:	51                   	push   %ecx
404396:	51                   	push   %ecx
404397:	56                   	push   %esi
404398:	57                   	push   %edi
404399:	ff 75 0c             	push   0xc(%ebp)
40439c:	8b f9                	mov    %ecx,%edi
40439e:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4043a1:	ff 75 08             	push   0x8(%ebp)
4043a4:	51                   	push   %ecx
4043a5:	8b 07                	mov    (%edi),%eax
4043a7:	8b 70 0c             	mov    0xc(%eax),%esi
4043aa:	8b ce                	mov    %esi,%ecx
4043ac:	ff 15 5c 91 40 00    	call   *0x40915c
4043b2:	8b cf                	mov    %edi,%ecx
4043b4:	ff d6                	call   *%esi
4043b6:	8b c8                	mov    %eax,%ecx
4043b8:	e8 58 fb ff ff       	call   0x403f15
4043bd:	5f                   	pop    %edi
4043be:	5e                   	pop    %esi
4043bf:	c9                   	leave
4043c0:	c2 08 00             	ret    $0x8
4043c3:	8b ff                	mov    %edi,%edi
4043c5:	55                   	push   %ebp
4043c6:	8b ec                	mov    %esp,%ebp
4043c8:	8b 45 08             	mov    0x8(%ebp),%eax
4043cb:	39 41 10             	cmp    %eax,0x10(%ecx)
4043ce:	72 19                	jb     0x4043e9
4043d0:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4043d4:	89 41 10             	mov    %eax,0x10(%ecx)
4043d7:	72 04                	jb     0x4043dd
4043d9:	8b 11                	mov    (%ecx),%edx
4043db:	eb 02                	jmp    0x4043df
4043dd:	8b d1                	mov    %ecx,%edx
4043df:	c6 04 02 00          	movb   $0x0,(%edx,%eax,1)
4043e3:	8b c1                	mov    %ecx,%eax
4043e5:	5d                   	pop    %ebp
4043e6:	c2 04 00             	ret    $0x4
4043e9:	e8 0c fe ff ff       	call   0x4041fa
4043ee:	cc                   	int3
4043ef:	8b ff                	mov    %edi,%edi
4043f1:	55                   	push   %ebp
4043f2:	8b ec                	mov    %esp,%ebp
4043f4:	51                   	push   %ecx
4043f5:	56                   	push   %esi
4043f6:	8b f1                	mov    %ecx,%esi
4043f8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4043fb:	57                   	push   %edi
4043fc:	8b 7e 10             	mov    0x10(%esi),%edi
4043ff:	3b f9                	cmp    %ecx,%edi
404401:	72 6d                	jb     0x404470
404403:	8b 55 0c             	mov    0xc(%ebp),%edx
404406:	8b c7                	mov    %edi,%eax
404408:	2b c1                	sub    %ecx,%eax
40440a:	3b c2                	cmp    %edx,%eax
40440c:	77 15                	ja     0x404423
40440e:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
404412:	89 4e 10             	mov    %ecx,0x10(%esi)
404415:	72 04                	jb     0x40441b
404417:	8b 06                	mov    (%esi),%eax
404419:	eb 02                	jmp    0x40441d
40441b:	8b c6                	mov    %esi,%eax
40441d:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
404421:	eb 45                	jmp    0x404468
404423:	85 d2                	test   %edx,%edx
404425:	74 41                	je     0x404468
404427:	8b 46 14             	mov    0x14(%esi),%eax
40442a:	53                   	push   %ebx
40442b:	83 f8 10             	cmp    $0x10,%eax
40442e:	72 04                	jb     0x404434
404430:	8b 1e                	mov    (%esi),%ebx
404432:	eb 02                	jmp    0x404436
404434:	8b de                	mov    %esi,%ebx
404436:	2b fa                	sub    %edx,%edi
404438:	03 d9                	add    %ecx,%ebx
40443a:	89 7d fc             	mov    %edi,-0x4(%ebp)
40443d:	29 4d fc             	sub    %ecx,-0x4(%ebp)
404440:	74 13                	je     0x404455
404442:	ff 75 fc             	push   -0x4(%ebp)
404445:	8d 04 13             	lea    (%ebx,%edx,1),%eax
404448:	50                   	push   %eax
404449:	53                   	push   %ebx
40444a:	e8 60 06 00 00       	call   0x404aaf
40444f:	8b 46 14             	mov    0x14(%esi),%eax
404452:	83 c4 0c             	add    $0xc,%esp
404455:	89 7e 10             	mov    %edi,0x10(%esi)
404458:	5b                   	pop    %ebx
404459:	83 f8 10             	cmp    $0x10,%eax
40445c:	72 04                	jb     0x404462
40445e:	8b 06                	mov    (%esi),%eax
404460:	eb 02                	jmp    0x404464
404462:	8b c6                	mov    %esi,%eax
404464:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
404468:	5f                   	pop    %edi
404469:	8b c6                	mov    %esi,%eax
40446b:	5e                   	pop    %esi
40446c:	c9                   	leave
40446d:	c2 08 00             	ret    $0x8
404470:	8b ce                	mov    %esi,%ecx
404472:	e8 83 fd ff ff       	call   0x4041fa
404477:	cc                   	int3
404478:	8b ff                	mov    %edi,%edi
40447a:	55                   	push   %ebp
40447b:	8b ec                	mov    %esp,%ebp
40447d:	8b 45 08             	mov    0x8(%ebp),%eax
404480:	80 38 00             	cmpb   $0x0,(%eax)
404483:	75 04                	jne    0x404489
404485:	33 c0                	xor    %eax,%eax
404487:	5d                   	pop    %ebp
404488:	c3                   	ret
404489:	8d 50 01             	lea    0x1(%eax),%edx
40448c:	8a 08                	mov    (%eax),%cl
40448e:	40                   	inc    %eax
40448f:	84 c9                	test   %cl,%cl
404491:	75 f9                	jne    0x40448c
404493:	2b c2                	sub    %edx,%eax
404495:	5d                   	pop    %ebp
404496:	c3                   	ret
404497:	cc                   	int3
404498:	cc                   	int3
404499:	cc                   	int3
40449a:	cc                   	int3
40449b:	cc                   	int3
40449c:	cc                   	int3
40449d:	cc                   	int3
40449e:	cc                   	int3
40449f:	cc                   	int3
4044a0:	8b ff                	mov    %edi,%edi
4044a2:	55                   	push   %ebp
4044a3:	8b ec                	mov    %esp,%ebp
4044a5:	ff 75 0c             	push   0xc(%ebp)
4044a8:	e8 a9 00 00 00       	call   0x404556
4044ad:	59                   	pop    %ecx
4044ae:	85 c0                	test   %eax,%eax
4044b0:	75 05                	jne    0x4044b7
4044b2:	b8 18 18 40 00       	mov    $0x401818,%eax
4044b7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4044ba:	50                   	push   %eax
4044bb:	e8 6d f9 ff ff       	call   0x403e2d
4044c0:	8b 45 08             	mov    0x8(%ebp),%eax
4044c3:	5d                   	pop    %ebp
4044c4:	c2 08 00             	ret    $0x8
4044c7:	cc                   	int3
4044c8:	cc                   	int3
4044c9:	cc                   	int3
4044ca:	cc                   	int3
4044cb:	cc                   	int3
4044cc:	cc                   	int3
4044cd:	cc                   	int3
4044ce:	cc                   	int3
4044cf:	cc                   	int3
4044d0:	8b ff                	mov    %edi,%edi
4044d2:	55                   	push   %ebp
4044d3:	8b ec                	mov    %esp,%ebp
4044d5:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4044d9:	75 0f                	jne    0x4044ea
4044db:	8b 4d 08             	mov    0x8(%ebp),%ecx
4044de:	68 34 18 40 00       	push   $0x401834
4044e3:	e8 45 f9 ff ff       	call   0x403e2d
4044e8:	eb 0b                	jmp    0x4044f5
4044ea:	ff 75 0c             	push   0xc(%ebp)
4044ed:	ff 75 08             	push   0x8(%ebp)
4044f0:	e8 ab ff ff ff       	call   0x4044a0
4044f5:	8b 45 08             	mov    0x8(%ebp),%eax
4044f8:	5d                   	pop    %ebp
4044f9:	c2 08 00             	ret    $0x8
4044fc:	cc                   	int3
4044fd:	cc                   	int3
4044fe:	cc                   	int3
4044ff:	cc                   	int3
404500:	8b ff                	mov    %edi,%edi
404502:	55                   	push   %ebp
404503:	8b ec                	mov    %esp,%ebp
404505:	ff 75 0c             	push   0xc(%ebp)
404508:	e8 75 00 00 00       	call   0x404582
40450d:	59                   	pop    %ecx
40450e:	85 c0                	test   %eax,%eax
404510:	75 05                	jne    0x404517
404512:	b8 18 18 40 00       	mov    $0x401818,%eax
404517:	8b 4d 08             	mov    0x8(%ebp),%ecx
40451a:	50                   	push   %eax
40451b:	e8 0d f9 ff ff       	call   0x403e2d
404520:	8b 45 08             	mov    0x8(%ebp),%eax
404523:	5d                   	pop    %ebp
404524:	c2 08 00             	ret    $0x8
404527:	cc                   	int3
404528:	cc                   	int3
404529:	cc                   	int3
40452a:	cc                   	int3
40452b:	cc                   	int3
40452c:	cc                   	int3
40452d:	cc                   	int3
40452e:	cc                   	int3
40452f:	cc                   	int3
404530:	b8 10 18 40 00       	mov    $0x401810,%eax
404535:	c3                   	ret
404536:	cc                   	int3
404537:	cc                   	int3
404538:	cc                   	int3
404539:	cc                   	int3
40453a:	cc                   	int3
40453b:	cc                   	int3
40453c:	cc                   	int3
40453d:	cc                   	int3
40453e:	cc                   	int3
40453f:	cc                   	int3
404540:	b8 28 18 40 00       	mov    $0x401828,%eax
404545:	c3                   	ret
404546:	cc                   	int3
404547:	cc                   	int3
404548:	cc                   	int3
404549:	cc                   	int3
40454a:	cc                   	int3
40454b:	cc                   	int3
40454c:	cc                   	int3
40454d:	cc                   	int3
40454e:	cc                   	int3
40454f:	cc                   	int3
404550:	b8 4c 18 40 00       	mov    $0x40184c,%eax
404555:	c3                   	ret
404556:	8b ff                	mov    %edi,%edi
404558:	55                   	push   %ebp
404559:	8b ec                	mov    %esp,%ebp
40455b:	83 3d cc 12 40 00 00 	cmpl   $0x0,0x4012cc
404562:	b8 c8 12 40 00       	mov    $0x4012c8,%eax
404567:	74 10                	je     0x404579
404569:	8b 4d 08             	mov    0x8(%ebp),%ecx
40456c:	39 08                	cmp    %ecx,(%eax)
40456e:	74 0d                	je     0x40457d
404570:	83 c0 08             	add    $0x8,%eax
404573:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
404577:	75 f3                	jne    0x40456c
404579:	33 c0                	xor    %eax,%eax
40457b:	5d                   	pop    %ebp
40457c:	c3                   	ret
40457d:	8b 40 04             	mov    0x4(%eax),%eax
404580:	5d                   	pop    %ebp
404581:	c3                   	ret
404582:	8b ff                	mov    %edi,%edi
404584:	55                   	push   %ebp
404585:	8b ec                	mov    %esp,%ebp
404587:	83 3d 74 10 40 00 00 	cmpl   $0x0,0x401074
40458e:	b8 70 10 40 00       	mov    $0x401070,%eax
404593:	74 10                	je     0x4045a5
404595:	8b 4d 08             	mov    0x8(%ebp),%ecx
404598:	39 08                	cmp    %ecx,(%eax)
40459a:	74 0d                	je     0x4045a9
40459c:	83 c0 08             	add    $0x8,%eax
40459f:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4045a3:	75 f3                	jne    0x404598
4045a5:	33 c0                	xor    %eax,%eax