406274:	85 ff                	test   %edi,%edi
406276:	75 0f                	jne    0x406287
406278:	8b 45 10             	mov    0x10(%ebp),%eax
40627b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40627e:	89 30                	mov    %esi,(%eax)
406280:	8b 45 fc             	mov    -0x4(%ebp),%eax
406283:	89 01                	mov    %eax,(%ecx)
406285:	eb 07                	jmp    0x40628e
406287:	56                   	push   %esi
406288:	ff 15 b0 f0 40 00    	call   *0x40f0b0
40628e:	8b c7                	mov    %edi,%eax
406290:	5f                   	pop    %edi
406291:	5e                   	pop    %esi
406292:	5b                   	pop    %ebx
406293:	c9                   	leave
406294:	c2 0c 00             	ret    $0xc
406297:	8b ff                	mov    %edi,%edi
406299:	55                   	push   %ebp
40629a:	8b ec                	mov    %esp,%ebp
40629c:	81 ec 94 00 00 00    	sub    $0x94,%esp
4062a2:	a1 04 a0 40 00       	mov    0x40a004,%eax
4062a7:	33 c5                	xor    %ebp,%eax
4062a9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4062ac:	53                   	push   %ebx
4062ad:	56                   	push   %esi
4062ae:	57                   	push   %edi
4062af:	6a 40                	push   $0x40
4062b1:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4062b7:	8b f1                	mov    %ecx,%esi
4062b9:	6a 00                	push   $0x0
4062bb:	50                   	push   %eax
4062bc:	8b fa                	mov    %edx,%edi
4062be:	89 b5 6c ff ff ff    	mov    %esi,-0x94(%ebp)
4062c4:	e8 1b 2e 00 00       	call   0x4090e4
4062c9:	6a 40                	push   $0x40
4062cb:	8d 45 bc             	lea    -0x44(%ebp),%eax
4062ce:	6a 00                	push   $0x0
4062d0:	50                   	push   %eax
4062d1:	e8 0e 2e 00 00       	call   0x4090e4
4062d6:	33 db                	xor    %ebx,%ebx
4062d8:	83 c4 18             	add    $0x18,%esp
4062db:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
4062e1:	85 f6                	test   %esi,%esi
4062e3:	0f 84 f0 00 00 00    	je     0x4063d9
4062e9:	ff 37                	push   (%edi)
4062eb:	53                   	push   %ebx
4062ec:	68 6e 04 00 00       	push   $0x46e
4062f1:	e8 99 c6 ff ff       	call   0x40298f
4062f6:	68 c4 13 40 00       	push   $0x4013c4
4062fb:	e8 ba c5 ff ff       	call   0x4028ba
406300:	8b 07                	mov    (%edi),%eax
406302:	83 c4 10             	add    $0x10,%esp
406305:	85 c0                	test   %eax,%eax
406307:	75 05                	jne    0x40630e
406309:	6a 04                	push   $0x4
40630b:	5e                   	pop    %esi
40630c:	eb 0c                	jmp    0x40631a
40630e:	69 f0 02 04 00 00    	imul   $0x402,%eax,%esi
406314:	83 c6 09             	add    $0x9,%esi
406317:	83 e6 fc             	and    $0xfffffffc,%esi
40631a:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
406320:	3b 75 08             	cmp    0x8(%ebp),%esi
406323:	0f 87 b0 00 00 00    	ja     0x4063d9
406329:	83 a5 70 ff ff ff 00 	andl   $0x0,-0x90(%ebp)
406330:	85 c0                	test   %eax,%eax
406332:	0f 84 89 00 00 00    	je     0x4063c1
406338:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
40633e:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
406344:	6a 20                	push   $0x20
406346:	8d 45 bc             	lea    -0x44(%ebp),%eax
406349:	50                   	push   %eax
40634a:	68 6f 04 00 00       	push   $0x46f
40634f:	6a 00                	push   $0x0
406351:	ff 15 20 f1 40 00    	call   *0x40f120
406357:	85 c0                	test   %eax,%eax
406359:	75 04                	jne    0x40635f
40635b:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
40635f:	6a 20                	push   $0x20
406361:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
406367:	50                   	push   %eax
406368:	68 67 04 00 00       	push   $0x467
40636d:	6a 00                	push   $0x0
40636f:	ff 15 20 f1 40 00    	call   *0x40f120
406375:	85 c0                	test   %eax,%eax
406377:	75 07                	jne    0x406380
406379:	66 89 85 7c ff ff ff 	mov    %ax,-0x84(%ebp)
406380:	8d 83 00 fc ff ff    	lea    -0x400(%ebx),%eax
406386:	50                   	push   %eax
406387:	8d 45 bc             	lea    -0x44(%ebp),%eax
40638a:	50                   	push   %eax
40638b:	0f b7 03             	movzwl (%ebx),%eax
40638e:	50                   	push   %eax
40638f:	8d 83 00 fe ff ff    	lea    -0x200(%ebx),%eax
406395:	50                   	push   %eax
406396:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40639c:	50                   	push   %eax
40639d:	68 08 1b 40 00       	push   $0x401b08
4063a2:	e8 13 c5 ff ff       	call   0x4028ba
4063a7:	83 c4 18             	add    $0x18,%esp
4063aa:	81 c3 02 04 00 00    	add    $0x402,%ebx
4063b0:	46                   	inc    %esi
4063b1:	3b 37                	cmp    (%edi),%esi
4063b3:	72 8f                	jb     0x406344
4063b5:	8b b5 78 ff ff ff    	mov    -0x88(%ebp),%esi
4063bb:	8b 9d 74 ff ff ff    	mov    -0x8c(%ebp),%ebx
4063c1:	29 75 08             	sub    %esi,0x8(%ebp)
4063c4:	03 fe                	add    %esi,%edi
4063c6:	43                   	inc    %ebx
4063c7:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
4063cd:	3b 9d 6c ff ff ff    	cmp    -0x94(%ebp),%ebx
4063d3:	0f 82 10 ff ff ff    	jb     0x4062e9
4063d9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4063dc:	5f                   	pop    %edi
4063dd:	5e                   	pop    %esi
4063de:	33 cd                	xor    %ebp,%ecx
4063e0:	5b                   	pop    %ebx
4063e1:	e8 ea 26 00 00       	call   0x408ad0
4063e6:	c9                   	leave
4063e7:	c2 04 00             	ret    $0x4
4063ea:	8b ff                	mov    %edi,%edi
4063ec:	55                   	push   %ebp
4063ed:	8b ec                	mov    %esp,%ebp
4063ef:	81 ec e4 02 00 00    	sub    $0x2e4,%esp
4063f5:	a1 04 a0 40 00       	mov    0x40a004,%eax
4063fa:	33 c5                	xor    %ebp,%eax
4063fc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4063ff:	53                   	push   %ebx
406400:	56                   	push   %esi
406401:	57                   	push   %edi
406402:	6a 40                	push   $0x40
406404:	33 ff                	xor    %edi,%edi
406406:	8d 45 b8             	lea    -0x48(%ebp),%eax
406409:	8b da                	mov    %edx,%ebx
40640b:	8b f1                	mov    %ecx,%esi
40640d:	57                   	push   %edi
40640e:	50                   	push   %eax
40640f:	89 9d 24 fd ff ff    	mov    %ebx,-0x2dc(%ebp)
406415:	e8 ca 2c 00 00       	call   0x4090e4
40641a:	83 c4 0c             	add    $0xc,%esp
40641d:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406423:	6a 40                	push   $0x40
406425:	57                   	push   %edi
406426:	50                   	push   %eax
406427:	e8 b8 2c 00 00       	call   0x4090e4
40642c:	83 c4 0c             	add    $0xc,%esp
40642f:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
406435:	6a 40                	push   $0x40
406437:	57                   	push   %edi
406438:	50                   	push   %eax
406439:	e8 a6 2c 00 00       	call   0x4090e4
40643e:	83 c4 0c             	add    $0xc,%esp
406441:	83 fe 03             	cmp    $0x3,%esi
406444:	74 1f                	je     0x406465
406446:	83 fe 04             	cmp    $0x4,%esi
406449:	74 0f                	je     0x40645a
40644b:	6a 08                	push   $0x8
40644d:	59                   	pop    %ecx
40644e:	e8 0c c6 ff ff       	call   0x402a5f
406453:	33 c0                	xor    %eax,%eax
406455:	e9 11 06 00 00       	jmp    0x406a6b
40645a:	8b 7b 0c             	mov    0xc(%ebx),%edi
40645d:	66 83 3f 2a          	cmpw   $0x2a,(%edi)
406461:	75 02                	jne    0x406465
406463:	33 ff                	xor    %edi,%edi
406465:	8b 4b 08             	mov    0x8(%ebx),%ecx
406468:	8d 85 2c fd ff ff    	lea    -0x2d4(%ebp),%eax
40646e:	50                   	push   %eax
40646f:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
406475:	8b d7                	mov    %edi,%edx
406477:	50                   	push   %eax
406478:	6a 02                	push   $0x2
40647a:	e8 a0 fd ff ff       	call   0x40621f
40647f:	8b f0                	mov    %eax,%esi
406481:	85 f6                	test   %esi,%esi
406483:	75 54                	jne    0x4064d9
406485:	39 85 28 fd ff ff    	cmp    %eax,-0x2d8(%ebp)
40648b:	76 35                	jbe    0x4064c2
40648d:	6a 20                	push   $0x20
40648f:	8d 45 b8             	lea    -0x48(%ebp),%eax
406492:	50                   	push   %eax
406493:	68 70 04 00 00       	push   $0x470
406498:	56                   	push   %esi
406499:	ff 15 20 f1 40 00    	call   *0x40f120
40649f:	85 c0                	test   %eax,%eax
4064a1:	75 04                	jne    0x4064a7
4064a3:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
4064a7:	ff b5 28 fd ff ff    	push   -0x2d8(%ebp)
4064ad:	ba 80 1b 40 00       	mov    $0x401b80,%edx
4064b2:	8d 4d b8             	lea    -0x48(%ebp),%ecx
4064b5:	ff b5 2c fd ff ff    	push   -0x2d4(%ebp)
4064bb:	e8 1e d0 ff ff       	call   0x4034de
4064c0:	eb 0b                	jmp    0x4064cd
4064c2:	68 71 04 00 00       	push   $0x471
4064c7:	e8 c3 c4 ff ff       	call   0x40298f
4064cc:	59                   	pop    %ecx
4064cd:	ff b5 2c fd ff ff    	push   -0x2d4(%ebp)
4064d3:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4064d9:	85 ff                	test   %edi,%edi
4064db:	0f 84 7d 05 00 00    	je     0x406a5e
4064e1:	8b 4b 08             	mov    0x8(%ebx),%ecx
4064e4:	8d 85 2c fd ff ff    	lea    -0x2d4(%ebp),%eax
4064ea:	50                   	push   %eax
4064eb:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
4064f1:	8b d7                	mov    %edi,%edx
4064f3:	50                   	push   %eax
4064f4:	6a 00                	push   $0x0
4064f6:	e8 24 fd ff ff       	call   0x40621f
4064fb:	8b f0                	mov    %eax,%esi
4064fd:	6a 20                	push   $0x20
4064ff:	85 f6                	test   %esi,%esi
406501:	0f 85 a8 00 00 00    	jne    0x4065af
406507:	8d 45 b8             	lea    -0x48(%ebp),%eax
40650a:	50                   	push   %eax
40650b:	68 72 04 00 00       	push   $0x472
406510:	56                   	push   %esi
406511:	ff 15 20 f1 40 00    	call   *0x40f120
406517:	85 c0                	test   %eax,%eax
406519:	75 04                	jne    0x40651f
40651b:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
40651f:	8d 45 b8             	lea    -0x48(%ebp),%eax
406522:	6a 20                	push   $0x20
406524:	89 85 1c fd ff ff    	mov    %eax,-0x2e4(%ebp)
40652a:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406530:	50                   	push   %eax
406531:	68 3b 04 00 00       	push   $0x43b
406536:	6a 00                	push   $0x0
406538:	ff 15 20 f1 40 00    	call   *0x40f120
40653e:	85 c0                	test   %eax,%eax
406540:	75 07                	jne    0x406549
406542:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
406549:	8b 9d 2c fd ff ff    	mov    -0x2d4(%ebp),%ebx
40654f:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
406555:	89 85 20 fd ff ff    	mov    %eax,-0x2e0(%ebp)
40655b:	8b 33                	mov    (%ebx),%esi
40655d:	85 f6                	test   %esi,%esi
40655f:	74 03                	je     0x406564
406561:	33 f6                	xor    %esi,%esi
406563:	46                   	inc    %esi
406564:	6a 20                	push   $0x20
406566:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
40656c:	50                   	push   %eax
40656d:	68 74 04 00 00       	push   $0x474
406572:	6a 00                	push   $0x0
406574:	ff 15 20 f1 40 00    	call   *0x40f120
40657a:	85 c0                	test   %eax,%eax
40657c:	75 07                	jne    0x406585
40657e:	66 89 85 38 ff ff ff 	mov    %ax,-0xc8(%ebp)
406585:	ff b4 b5 1c fd ff ff 	push   -0x2e4(%ebp,%esi,4)
40658c:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
406592:	50                   	push   %eax
406593:	68 94 1b 40 00       	push   $0x401b94
406598:	e8 1d c3 ff ff       	call   0x4028ba
40659d:	83 c4 0c             	add    $0xc,%esp
4065a0:	53                   	push   %ebx
4065a1:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4065a7:	8b 9d 24 fd ff ff    	mov    -0x2dc(%ebp),%ebx
4065ad:	eb 45                	jmp    0x4065f4
4065af:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
4065b5:	50                   	push   %eax
4065b6:	68 75 04 00 00       	push   $0x475
4065bb:	6a 00                	push   $0x0
4065bd:	ff 15 20 f1 40 00    	call   *0x40f120
4065c3:	85 c0                	test   %eax,%eax
4065c5:	75 07                	jne    0x4065ce
4065c7:	66 89 85 38 ff ff ff 	mov    %ax,-0xc8(%ebp)
4065ce:	56                   	push   %esi
4065cf:	ba 04 01 00 00       	mov    $0x104,%edx
4065d4:	8d 8d 30 fd ff ff    	lea    -0x2d0(%ebp),%ecx
4065da:	e8 06 c9 ff ff       	call   0x402ee5
4065df:	50                   	push   %eax
4065e0:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
4065e6:	50                   	push   %eax
4065e7:	68 c0 1b 40 00       	push   $0x401bc0
4065ec:	e8 c9 c2 ff ff       	call   0x4028ba
4065f1:	83 c4 0c             	add    $0xc,%esp
4065f4:	8b 4b 08             	mov    0x8(%ebx),%ecx
4065f7:	8d 85 2c fd ff ff    	lea    -0x2d4(%ebp),%eax
4065fd:	50                   	push   %eax
4065fe:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
406604:	8b d7                	mov    %edi,%edx
406606:	50                   	push   %eax
406607:	6a 01                	push   $0x1
406609:	e8 11 fc ff ff       	call   0x40621f
40660e:	8b f0                	mov    %eax,%esi
406610:	8d 45 b8             	lea    -0x48(%ebp),%eax
406613:	6a 20                	push   $0x20
406615:	50                   	push   %eax
406616:	85 f6                	test   %esi,%esi
406618:	75 39                	jne    0x406653
40661a:	68 76 04 00 00       	push   $0x476
40661f:	56                   	push   %esi
406620:	ff 15 20 f1 40 00    	call   *0x40f120
406626:	85 c0                	test   %eax,%eax
406628:	75 04                	jne    0x40662e
40662a:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
40662e:	ff b5 2c fd ff ff    	push   -0x2d4(%ebp)
406634:	8d 45 b8             	lea    -0x48(%ebp),%eax
406637:	50                   	push   %eax
406638:	68 e0 1b 40 00       	push   $0x401be0
40663d:	e8 78 c2 ff ff       	call   0x4028ba
406642:	83 c4 0c             	add    $0xc,%esp
406645:	ff b5 2c fd ff ff    	push   -0x2d4(%ebp)
40664b:	ff 15 b0 f0 40 00    	call   *0x40f0b0
406651:	eb 38                	jmp    0x40668b
406653:	68 77 04 00 00       	push   $0x477
406658:	6a 00                	push   $0x0
40665a:	ff 15 20 f1 40 00    	call   *0x40f120
406660:	85 c0                	test   %eax,%eax
406662:	75 04                	jne    0x406668
406664:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
406668:	56                   	push   %esi
406669:	ba 04 01 00 00       	mov    $0x104,%edx
40666e:	8d 8d 30 fd ff ff    	lea    -0x2d0(%ebp),%ecx
406674:	e8 6c c8 ff ff       	call   0x402ee5
406679:	50                   	push   %eax
40667a:	8d 45 b8             	lea    -0x48(%ebp),%eax
40667d:	50                   	push   %eax
40667e:	68 10 1c 40 00       	push   $0x401c10
406683:	e8 32 c2 ff ff       	call   0x4028ba
406688:	83 c4 0c             	add    $0xc,%esp
40668b:	8b 4b 08             	mov    0x8(%ebx),%ecx
40668e:	8d 85 2c fd ff ff    	lea    -0x2d4(%ebp),%eax
406694:	50                   	push   %eax
406695:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
40669b:	8b d7                	mov    %edi,%edx
40669d:	50                   	push   %eax
40669e:	6a 03                	push   $0x3
4066a0:	e8 7a fb ff ff       	call   0x40621f
4066a5:	8b f0                	mov    %eax,%esi
4066a7:	85 f6                	test   %esi,%esi
4066a9:	0f 85 91 00 00 00    	jne    0x406740
4066af:	8b b5 2c fd ff ff    	mov    -0x2d4(%ebp),%esi
4066b5:	39 85 28 fd ff ff    	cmp    %eax,-0x2d8(%ebp)
4066bb:	76 6f                	jbe    0x40672c
4066bd:	8b 1e                	mov    (%esi),%ebx
4066bf:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
4066c5:	6a 20                	push   $0x20
4066c7:	50                   	push   %eax
4066c8:	68 79 04 00 00       	push   $0x479
4066cd:	6a 00                	push   $0x0
4066cf:	ff 15 20 f1 40 00    	call   *0x40f120
4066d5:	85 c0                	test   %eax,%eax
4066d7:	75 07                	jne    0x4066e0
4066d9:	66 89 85 78 ff ff ff 	mov    %ax,-0x88(%ebp)
4066e0:	6a 20                	push   $0x20
4066e2:	8d 45 b8             	lea    -0x48(%ebp),%eax
4066e5:	50                   	push   %eax
4066e6:	68 78 04 00 00       	push   $0x478
4066eb:	6a 00                	push   $0x0
4066ed:	ff 15 20 f1 40 00    	call   *0x40f120