407384:	59                   	pop    %ecx
407385:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40738b:	68 04 c7 40 00       	push   $0x40c704
407390:	50                   	push   %eax
407391:	e8 ac 1b 00 00       	call   0x408f42
407396:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40739a:	59                   	pop    %ecx
40739b:	59                   	pop    %ecx
40739c:	74 05                	je     0x4073a3
40739e:	ff 75 10             	push   0x10(%ebp)
4073a1:	eb 05                	jmp    0x4073a8
4073a3:	68 10 cf 40 00       	push   $0x40cf10
4073a8:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
4073ae:	50                   	push   %eax
4073af:	e8 8e 1b 00 00       	call   0x408f42
4073b4:	59                   	pop    %ecx
4073b5:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
4073bb:	59                   	pop    %ecx
4073bc:	68 04 cf 40 00       	push   $0x40cf04
4073c1:	50                   	push   %eax
4073c2:	e8 7b 1b 00 00       	call   0x408f42
4073c7:	ff 75 14             	push   0x14(%ebp)
4073ca:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
4073d0:	50                   	push   %eax
4073d1:	e8 6c 1b 00 00       	call   0x408f42
4073d6:	83 c4 10             	add    $0x10,%esp
4073d9:	83 be 0c 01 00 00 00 	cmpl   $0x0,0x10c(%esi)
4073e0:	75 24                	jne    0x407406
4073e2:	6a 0c                	push   $0xc
4073e4:	8b 8e 04 01 00 00    	mov    0x104(%esi),%ecx
4073ea:	ff b6 10 01 00 00    	push   0x110(%esi)
4073f0:	ff b6 08 01 00 00    	push   0x108(%esi)
4073f6:	68 ec ce 40 00       	push   $0x40ceec
4073fb:	e8 d3 da ff ff       	call   0x404ed3
407400:	89 86 0c 01 00 00    	mov    %eax,0x10c(%esi)
407406:	57                   	push   %edi
407407:	8b 8e 04 01 00 00    	mov    0x104(%esi),%ecx
40740d:	ff b6 10 01 00 00    	push   0x110(%esi)
407413:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
407419:	ff b6 0c 01 00 00    	push   0x10c(%esi)
40741f:	50                   	push   %eax
407420:	e8 ae da ff ff       	call   0x404ed3
407425:	5f                   	pop    %edi
407426:	5e                   	pop    %esi
407427:	c9                   	leave
407428:	c2 10 00             	ret    $0x10
40742b:	55                   	push   %ebp
40742c:	8b ec                	mov    %esp,%ebp
40742e:	81 ec 30 03 00 00    	sub    $0x330,%esp
407434:	53                   	push   %ebx
407435:	56                   	push   %esi
407436:	8b 75 0c             	mov    0xc(%ebp),%esi
407439:	33 db                	xor    %ebx,%ebx
40743b:	33 c0                	xor    %eax,%eax
40743d:	3b f3                	cmp    %ebx,%esi
40743f:	57                   	push   %edi
407440:	89 4d f4             	mov    %ecx,-0xc(%ebp)
407443:	74 2c                	je     0x407471
407445:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
40744b:	56                   	push   %esi
40744c:	50                   	push   %eax
40744d:	e8 f6 1b 00 00       	call   0x409048
407452:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
407458:	50                   	push   %eax
407459:	e8 f0 1b 00 00       	call   0x40904e
40745e:	83 c4 0c             	add    $0xc,%esp
407461:	c6 84 05 d8 fe ff ff 	movb   $0x5c,-0x128(%ebp,%eax,1)
407468:	5c
407469:	40                   	inc    %eax
40746a:	88 9c 05 d8 fe ff ff 	mov    %bl,-0x128(%ebp,%eax,1)
407471:	8b 3d 04 a0 40 00    	mov    0x40a004,%edi
407477:	8d 84 05 d8 fe ff ff 	lea    -0x128(%ebp,%eax,1),%eax
40747e:	3b f3                	cmp    %ebx,%esi
407480:	89 45 f0             	mov    %eax,-0x10(%ebp)
407483:	89 5d 0c             	mov    %ebx,0xc(%ebp)
407486:	74 1a                	je     0x4074a2
407488:	8d 45 fc             	lea    -0x4(%ebp),%eax
40748b:	50                   	push   %eax
40748c:	68 19 00 02 00       	push   $0x20019
407491:	53                   	push   %ebx
407492:	56                   	push   %esi
407493:	ff 75 08             	push   0x8(%ebp)
407496:	ff d7                	call   *%edi
407498:	85 c0                	test   %eax,%eax
40749a:	0f 85 ed 00 00 00    	jne    0x40758d
4074a0:	eb 06                	jmp    0x4074a8
4074a2:	8b 45 08             	mov    0x8(%ebp),%eax
4074a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4074a8:	be 04 01 00 00       	mov    $0x104,%esi
4074ad:	8d 45 dc             	lea    -0x24(%ebp),%eax
4074b0:	89 75 e8             	mov    %esi,-0x18(%ebp)
4074b3:	50                   	push   %eax
4074b4:	53                   	push   %ebx
4074b5:	53                   	push   %ebx
4074b6:	8d 45 e8             	lea    -0x18(%ebp),%eax
4074b9:	53                   	push   %ebx
4074ba:	50                   	push   %eax
4074bb:	8d 85 d0 fc ff ff    	lea    -0x330(%ebp),%eax
4074c1:	50                   	push   %eax
4074c2:	ff 75 0c             	push   0xc(%ebp)
4074c5:	ff 75 fc             	push   -0x4(%ebp)
4074c8:	ff 15 28 a0 40 00    	call   *0x40a028
4074ce:	3d 03 01 00 00       	cmp    $0x103,%eax
4074d3:	0f 84 ab 00 00 00    	je     0x407584
4074d9:	3b c3                	cmp    %ebx,%eax
4074db:	0f 85 9b 00 00 00    	jne    0x40757c
4074e1:	8d 85 d0 fc ff ff    	lea    -0x330(%ebp),%eax
4074e7:	50                   	push   %eax
4074e8:	ff 75 f0             	push   -0x10(%ebp)
4074eb:	e8 58 1b 00 00       	call   0x409048
4074f0:	39 5d 14             	cmp    %ebx,0x14(%ebp)
4074f3:	59                   	pop    %ecx
4074f4:	59                   	pop    %ecx
4074f5:	74 0d                	je     0x407504
4074f7:	ff 75 14             	push   0x14(%ebp)
4074fa:	ff 75 f0             	push   -0x10(%ebp)
4074fd:	e8 40 1a 00 00       	call   0x408f42
407502:	59                   	pop    %ecx
407503:	59                   	pop    %ecx
407504:	8d 45 ec             	lea    -0x14(%ebp),%eax
407507:	50                   	push   %eax
407508:	68 19 00 02 00       	push   $0x20019
40750d:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
407513:	53                   	push   %ebx
407514:	50                   	push   %eax
407515:	ff 75 08             	push   0x8(%ebp)
407518:	ff d7                	call   *%edi
40751a:	85 c0                	test   %eax,%eax
40751c:	75 5e                	jne    0x40757c
40751e:	8d 45 f8             	lea    -0x8(%ebp),%eax
407521:	89 75 f8             	mov    %esi,-0x8(%ebp)
407524:	50                   	push   %eax
407525:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40752b:	50                   	push   %eax
40752c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40752f:	50                   	push   %eax
407530:	53                   	push   %ebx
407531:	ff 75 10             	push   0x10(%ebp)
407534:	ff 75 ec             	push   -0x14(%ebp)
407537:	ff 15 30 a0 40 00    	call   *0x40a030
40753d:	85 c0                	test   %eax,%eax
40753f:	75 32                	jne    0x407573
407541:	ff 75 f8             	push   -0x8(%ebp)
407544:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407547:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40754d:	50                   	push   %eax
40754e:	e8 20 fd ff ff       	call   0x407273
407553:	3c 01                	cmp    $0x1,%al
407555:	75 1c                	jne    0x407573
407557:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40755d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407560:	50                   	push   %eax
407561:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
407567:	ff 75 10             	push   0x10(%ebp)
40756a:	50                   	push   %eax
40756b:	ff 75 08             	push   0x8(%ebp)
40756e:	e8 4a fd ff ff       	call   0x4072bd
407573:	ff 75 ec             	push   -0x14(%ebp)
407576:	ff 15 00 a0 40 00    	call   *0x40a000
40757c:	ff 45 0c             	incl   0xc(%ebp)
40757f:	e9 29 ff ff ff       	jmp    0x4074ad
407584:	ff 75 fc             	push   -0x4(%ebp)
407587:	ff 15 00 a0 40 00    	call   *0x40a000
40758d:	5f                   	pop    %edi
40758e:	5e                   	pop    %esi
40758f:	5b                   	pop    %ebx
407590:	c9                   	leave
407591:	c2 10 00             	ret    $0x10
407594:	55                   	push   %ebp
407595:	8b ec                	mov    %esp,%ebp
407597:	81 ec 18 02 00 00    	sub    $0x218,%esp
40759d:	53                   	push   %ebx
40759e:	8d 45 fc             	lea    -0x4(%ebp),%eax
4075a1:	57                   	push   %edi
4075a2:	33 ff                	xor    %edi,%edi
4075a4:	50                   	push   %eax
4075a5:	68 19 00 02 00       	push   $0x20019
4075aa:	57                   	push   %edi
4075ab:	8b d9                	mov    %ecx,%ebx
4075ad:	ff 75 0c             	push   0xc(%ebp)
4075b0:	ff 75 08             	push   0x8(%ebp)
4075b3:	ff 15 04 a0 40 00    	call   *0x40a004
4075b9:	85 c0                	test   %eax,%eax
4075bb:	74 07                	je     0x4075c4
4075bd:	33 c0                	xor    %eax,%eax
4075bf:	e9 89 00 00 00       	jmp    0x40764d
4075c4:	8d 45 f8             	lea    -0x8(%ebp),%eax
4075c7:	c7 45 f0 04 01 00 00 	movl   $0x104,-0x10(%ebp)
4075ce:	50                   	push   %eax
4075cf:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
4075d5:	50                   	push   %eax
4075d6:	8d 45 f4             	lea    -0xc(%ebp),%eax
4075d9:	50                   	push   %eax
4075da:	8d 45 f0             	lea    -0x10(%ebp),%eax
4075dd:	6a 00                	push   $0x0
4075df:	50                   	push   %eax
4075e0:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4075e6:	c7 45 f8 04 01 00 00 	movl   $0x104,-0x8(%ebp)
4075ed:	50                   	push   %eax
4075ee:	57                   	push   %edi
4075ef:	ff 75 fc             	push   -0x4(%ebp)
4075f2:	ff 15 24 a0 40 00    	call   *0x40a024
4075f8:	3d 03 01 00 00       	cmp    $0x103,%eax
4075fd:	74 43                	je     0x407642
4075ff:	85 c0                	test   %eax,%eax
407601:	75 3c                	jne    0x40763f
407603:	83 7d f4 01          	cmpl   $0x1,-0xc(%ebp)
407607:	74 06                	je     0x40760f
407609:	83 7d f4 02          	cmpl   $0x2,-0xc(%ebp)
40760d:	75 30                	jne    0x40763f
40760f:	ff 75 f8             	push   -0x8(%ebp)
407612:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
407618:	8b cb                	mov    %ebx,%ecx
40761a:	50                   	push   %eax
40761b:	e8 53 fc ff ff       	call   0x407273
407620:	84 c0                	test   %al,%al
407622:	74 1b                	je     0x40763f
407624:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40762a:	8b cb                	mov    %ebx,%ecx
40762c:	50                   	push   %eax
40762d:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
407633:	50                   	push   %eax
407634:	ff 75 0c             	push   0xc(%ebp)
407637:	ff 75 08             	push   0x8(%ebp)
40763a:	e8 7e fc ff ff       	call   0x4072bd
40763f:	47                   	inc    %edi
407640:	eb 82                	jmp    0x4075c4
407642:	ff 75 fc             	push   -0x4(%ebp)
407645:	ff 15 00 a0 40 00    	call   *0x40a000
40764b:	8b c7                	mov    %edi,%eax
40764d:	5f                   	pop    %edi
40764e:	5b                   	pop    %ebx
40764f:	c9                   	leave
407650:	c2 08 00             	ret    $0x8
407653:	55                   	push   %ebp
407654:	8b ec                	mov    %esp,%ebp
407656:	81 ec 40 05 00 00    	sub    $0x540,%esp
40765c:	53                   	push   %ebx
40765d:	56                   	push   %esi
40765e:	8b 35 58 a1 40 00    	mov    0x40a158,%esi
407664:	57                   	push   %edi
407665:	ff 75 08             	push   0x8(%ebp)
407668:	8d 85 c0 fc ff ff    	lea    -0x340(%ebp),%eax
40766e:	8b d9                	mov    %ecx,%ebx
407670:	68 74 cf 40 00       	push   $0x40cf74
407675:	50                   	push   %eax
407676:	ff d6                	call   *%esi
407678:	83 c4 0c             	add    $0xc,%esp
40767b:	8d 85 c0 fe ff ff    	lea    -0x140(%ebp),%eax
407681:	50                   	push   %eax
407682:	8d 85 c0 fc ff ff    	lea    -0x340(%ebp),%eax
407688:	50                   	push   %eax
407689:	ff 15 b4 a0 40 00    	call   *0x40a0b4
40768f:	8b f8                	mov    %eax,%edi
407691:	85 ff                	test   %edi,%edi
407693:	0f 84 94 00 00 00    	je     0x40772d
407699:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40769f:	50                   	push   %eax
4076a0:	8d 85 c0 fa ff ff    	lea    -0x540(%ebp),%eax
4076a6:	ff 75 08             	push   0x8(%ebp)
4076a9:	68 6c cf 40 00       	push   $0x40cf6c
4076ae:	50                   	push   %eax
4076af:	ff d6                	call   *%esi
4076b1:	83 c4 10             	add    $0x10,%esp
4076b4:	f6 85 c0 fe ff ff 10 	testb  $0x10,-0x140(%ebp)
4076bb:	74 19                	je     0x4076d6
4076bd:	80 bd ec fe ff ff 2e 	cmpb   $0x2e,-0x114(%ebp)
4076c4:	74 10                	je     0x4076d6
4076c6:	8d 85 c0 fa ff ff    	lea    -0x540(%ebp),%eax
4076cc:	8b cb                	mov    %ebx,%ecx
4076ce:	50                   	push   %eax
4076cf:	e8 7f ff ff ff       	call   0x407653
4076d4:	eb 3a                	jmp    0x407710
4076d6:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
4076dc:	50                   	push   %eax
4076dd:	e8 6c 19 00 00       	call   0x40904e
4076e2:	59                   	pop    %ecx
4076e3:	50                   	push   %eax
4076e4:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
4076ea:	50                   	push   %eax
4076eb:	8b cb                	mov    %ebx,%ecx
4076ed:	e8 81 fb ff ff       	call   0x407273
4076f2:	3c 01                	cmp    $0x1,%al
4076f4:	75 1a                	jne    0x407710
4076f6:	8d 45 f0             	lea    -0x10(%ebp),%eax
4076f9:	8b cb                	mov    %ebx,%ecx
4076fb:	50                   	push   %eax
4076fc:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
407702:	50                   	push   %eax
407703:	ff 75 08             	push   0x8(%ebp)
407706:	68 99 00 00 80       	push   $0x80000099
40770b:	e8 ad fb ff ff       	call   0x4072bd
407710:	8d 85 c0 fe ff ff    	lea    -0x140(%ebp),%eax
407716:	50                   	push   %eax
407717:	57                   	push   %edi
407718:	ff 15 b0 a0 40 00    	call   *0x40a0b0
40771e:	85 c0                	test   %eax,%eax
407720:	0f 85 73 ff ff ff    	jne    0x407699
407726:	57                   	push   %edi
407727:	ff 15 ac a0 40 00    	call   *0x40a0ac
40772d:	5f                   	pop    %edi
40772e:	5e                   	pop    %esi
40772f:	5b                   	pop    %ebx
407730:	c9                   	leave
407731:	c2 04 00             	ret    $0x4
407734:	8b c1                	mov    %ecx,%eax
407736:	33 c9                	xor    %ecx,%ecx
407738:	c7 80 b8 00 00 00 01 	movl   $0x1,0xb8(%eax)
40773f:	00 00 00
407742:	89 88 c8 00 00 00    	mov    %ecx,0xc8(%eax)
407748:	c6 80 00 02 00 00 01 	movb   $0x1,0x200(%eax)
40774f:	89 88 bc 00 00 00    	mov    %ecx,0xbc(%eax)
407755:	89 88 c4 00 00 00    	mov    %ecx,0xc4(%eax)
40775b:	89 88 cc 00 00 00    	mov    %ecx,0xcc(%eax)
407761:	89 88 d0 00 00 00    	mov    %ecx,0xd0(%eax)
407767:	89 88 d4 00 00 00    	mov    %ecx,0xd4(%eax)
40776d:	89 88 e8 01 00 00    	mov    %ecx,0x1e8(%eax)
407773:	c7 80 e0 01 00 00 02 	movl   $0x2,0x1e0(%eax)
40777a:	00 00 00
40777d:	c3                   	ret
40777e:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
407783:	56                   	push   %esi
407784:	8b f1                	mov    %ecx,%esi
407786:	74 0a                	je     0x407792
407788:	80 7e 24 00          	cmpb   $0x0,0x24(%esi)
40778c:	0f 94 c0             	sete   %al
40778f:	88 46 24             	mov    %al,0x24(%esi)
407792:	6a 01                	push   $0x1
407794:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
40779a:	ff 15 20 a2 40 00    	call   *0x40a220
4077a0:	50                   	push   %eax
4077a1:	ff 15 c8 a2 40 00    	call   *0x40a2c8
4077a7:	80 7e 24 00          	cmpb   $0x0,0x24(%esi)
4077ab:	5e                   	pop    %esi
4077ac:	74 04                	je     0x4077b2
4077ae:	6a 01                	push   $0x1
4077b0:	eb 02                	jmp    0x4077b4
4077b2:	6a 00                	push   $0x0
4077b4:	68 d6 04 00 00       	push   $0x4d6
4077b9:	50                   	push   %eax
4077ba:	e8 9c 16 00 00       	call   0x408e5b
4077bf:	83 c4 0c             	add    $0xc,%esp
4077c2:	c2 04 00             	ret    $0x4
4077c5:	b8 d0 94 40 00       	mov    $0x4094d0,%eax
4077ca:	e8 61 17 00 00       	call   0x408f30
4077cf:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
4077d5:	53                   	push   %ebx
4077d6:	56                   	push   %esi
4077d7:	57                   	push   %edi
4077d8:	33 db                	xor    %ebx,%ebx