409179:	5e                   	pop    %esi
40917a:	c9                   	leave
40917b:	c2 08 00             	ret    $0x8
40917e:	8b ff                	mov    %edi,%edi
409180:	55                   	push   %ebp
409181:	8b ec                	mov    %esp,%ebp
409183:	81 ec 7c 02 00 00    	sub    $0x27c,%esp
409189:	a1 04 e0 40 00       	mov    0x40e004,%eax
40918e:	33 c5                	xor    %ebp,%eax
409190:	89 45 fc             	mov    %eax,-0x4(%ebp)
409193:	8b 45 08             	mov    0x8(%ebp),%eax
409196:	53                   	push   %ebx
409197:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
40919d:	8d 9d 84 fd ff ff    	lea    -0x27c(%ebp),%ebx
4091a3:	8b 45 0c             	mov    0xc(%ebp),%eax
4091a6:	56                   	push   %esi
4091a7:	57                   	push   %edi
4091a8:	89 85 b8 fd ff ff    	mov    %eax,-0x248(%ebp)
4091ae:	8d bd 84 fd ff ff    	lea    -0x27c(%ebp),%edi
4091b4:	8b 45 10             	mov    0x10(%ebp),%eax
4091b7:	89 85 b4 fd ff ff    	mov    %eax,-0x24c(%ebp)
4091bd:	33 c0                	xor    %eax,%eax
4091bf:	8b f0                	mov    %eax,%esi
4091c1:	89 85 c8 fd ff ff    	mov    %eax,-0x238(%ebp)
4091c7:	ab                   	stos   %eax,%es:(%edi)
4091c8:	6a 03                	push   $0x3
4091ca:	52                   	push   %edx
4091cb:	51                   	push   %ecx
4091cc:	ab                   	stos   %eax,%es:(%edi)
4091cd:	89 b5 d4 fd ff ff    	mov    %esi,-0x22c(%ebp)
4091d3:	ab                   	stos   %eax,%es:(%edi)
4091d4:	ff 15 3c 00 41 00    	call   *0x41003c
4091da:	8b 8d b4 fd ff ff    	mov    -0x24c(%ebp),%ecx
4091e0:	89 01                	mov    %eax,(%ecx)
4091e2:	85 c0                	test   %eax,%eax
4091e4:	75 19                	jne    0x4091ff
4091e6:	ff 15 40 f0 40 00    	call   *0x40f040
4091ec:	8b d0                	mov    %eax,%edx
4091ee:	b9 88 14 40 00       	mov    $0x401488,%ecx
4091f3:	e8 88 f7 ff ff       	call   0x408980
4091f8:	8b f0                	mov    %eax,%esi
4091fa:	e9 b5 09 00 00       	jmp    0x409bb4
4091ff:	8b bd cc fd ff ff    	mov    -0x234(%ebp),%edi
409205:	68 64 40 40 00       	push   $0x404064
40920a:	ff 37                	push   (%edi)
40920c:	ff 15 28 f1 40 00    	call   *0x40f128
409212:	59                   	pop    %ecx
409213:	59                   	pop    %ecx
409214:	85 c0                	test   %eax,%eax
409216:	0f 84 16 09 00 00    	je     0x409b32
40921c:	6b 85 b8 fd ff ff 14 	imul   $0x14,-0x248(%ebp),%eax
409223:	83 c0 0c             	add    $0xc,%eax
409226:	50                   	push   %eax
409227:	6a 40                	push   $0x40
409229:	ff 15 64 f0 40 00    	call   *0x40f064
40922f:	8b d8                	mov    %eax,%ebx
409231:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
409237:	85 db                	test   %ebx,%ebx
409239:	75 19                	jne    0x409254
40923b:	ff 15 40 f0 40 00    	call   *0x40f040
409241:	b9 9c 4e 40 00       	mov    $0x404e9c,%ecx
409246:	8b f0                	mov    %eax,%esi
409248:	8b d6                	mov    %esi,%edx
40924a:	e8 31 f7 ff ff       	call   0x408980
40924f:	e9 60 09 00 00       	jmp    0x409bb4
409254:	8b 85 b8 fd ff ff    	mov    -0x248(%ebp),%eax
40925a:	8d 4b 0c             	lea    0xc(%ebx),%ecx
40925d:	89 8d ac fd ff ff    	mov    %ecx,-0x254(%ebp)
409263:	89 4b 04             	mov    %ecx,0x4(%ebx)
409266:	33 c9                	xor    %ecx,%ecx
409268:	89 03                	mov    %eax,(%ebx)
40926a:	89 8d a4 fd ff ff    	mov    %ecx,-0x25c(%ebp)
409270:	85 c0                	test   %eax,%eax
409272:	0f 84 ba 08 00 00    	je     0x409b32
409278:	8b d9                	mov    %ecx,%ebx
40927a:	89 8d bc fd ff ff    	mov    %ecx,-0x244(%ebp)
409280:	6a 05                	push   $0x5
409282:	68 04 3d 40 00       	push   $0x403d04
409287:	ff 34 9f             	push   (%edi,%ebx,4)
40928a:	89 8d e0 fd ff ff    	mov    %ecx,-0x220(%ebp)
409290:	c7 85 f8 fd ff ff 01 	movl   $0x1,-0x208(%ebp)
409297:	00 00 00
40929a:	c7 85 a8 fd ff ff 01 	movl   $0x1,-0x258(%ebp)
4092a1:	00 00 00
4092a4:	89 8d f0 fd ff ff    	mov    %ecx,-0x210(%ebp)
4092aa:	ff 15 10 f1 40 00    	call   *0x40f110
4092b0:	83 c4 0c             	add    $0xc,%esp
4092b3:	85 c0                	test   %eax,%eax
4092b5:	75 04                	jne    0x4092bb
4092b7:	6a 0c                	push   $0xc
4092b9:	eb 26                	jmp    0x4092e1
4092bb:	6a 04                	push   $0x4
4092bd:	68 30 3e 40 00       	push   $0x403e30
4092c2:	ff 34 9f             	push   (%edi,%ebx,4)
4092c5:	ff 15 10 f1 40 00    	call   *0x40f110
4092cb:	83 c4 0c             	add    $0xc,%esp
4092ce:	85 c0                	test   %eax,%eax
4092d0:	0f 85 f8 07 00 00    	jne    0x409ace
4092d6:	6a 02                	push   $0x2
4092d8:	58                   	pop    %eax
4092d9:	89 85 a8 fd ff ff    	mov    %eax,-0x258(%ebp)
4092df:	6a 0a                	push   $0xa
4092e1:	58                   	pop    %eax
4092e2:	01 04 9f             	add    %eax,(%edi,%ebx,4)
4092e5:	6a 06                	push   $0x6
4092e7:	68 3c 4f 40 00       	push   $0x404f3c
4092ec:	ff 34 9f             	push   (%edi,%ebx,4)
4092ef:	ff 15 10 f1 40 00    	call   *0x40f110
4092f5:	83 c4 0c             	add    $0xc,%esp
4092f8:	85 c0                	test   %eax,%eax
4092fa:	75 0a                	jne    0x409306
4092fc:	6a 02                	push   $0x2
4092fe:	58                   	pop    %eax
4092ff:	6a 0e                	push   $0xe
409301:	e9 b3 02 00 00       	jmp    0x4095b9
409306:	6a 06                	push   $0x6
409308:	68 4c 4f 40 00       	push   $0x404f4c
40930d:	ff 34 9f             	push   (%edi,%ebx,4)
409310:	ff 15 10 f1 40 00    	call   *0x40f110
409316:	83 c4 0c             	add    $0xc,%esp
409319:	85 c0                	test   %eax,%eax
40931b:	75 1b                	jne    0x409338
40931d:	c7 85 f8 fd ff ff 14 	movl   $0x14,-0x208(%ebp)
409324:	00 00 00
409327:	c7 85 e8 fd ff ff 01 	movl   $0x1,-0x218(%ebp)
40932e:	00 00 00
409331:	6a 0e                	push   $0xe
409333:	e9 87 02 00 00       	jmp    0x4095bf
409338:	6a 09                	push   $0x9
40933a:	68 5c 4f 40 00       	push   $0x404f5c
40933f:	ff 34 9f             	push   (%edi,%ebx,4)
409342:	ff 15 10 f1 40 00    	call   *0x40f110
409348:	83 c4 0c             	add    $0xc,%esp
40934b:	85 c0                	test   %eax,%eax
40934d:	75 19                	jne    0x409368
40934f:	6a 14                	push   $0x14
409351:	5a                   	pop    %edx
409352:	6a 02                	push   $0x2
409354:	58                   	pop    %eax
409355:	89 95 f8 fd ff ff    	mov    %edx,-0x208(%ebp)
40935b:	8b fa                	mov    %edx,%edi
40935d:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
409363:	e9 58 02 00 00       	jmp    0x4095c0
409368:	6a 09                	push   $0x9
40936a:	68 70 4f 40 00       	push   $0x404f70
40936f:	ff 34 9f             	push   (%edi,%ebx,4)
409372:	ff 15 10 f1 40 00    	call   *0x40f110
409378:	83 c4 0c             	add    $0xc,%esp
40937b:	85 c0                	test   %eax,%eax
40937d:	75 1a                	jne    0x409399
40937f:	6a 14                	push   $0x14
409381:	58                   	pop    %eax
409382:	89 85 f8 fd ff ff    	mov    %eax,-0x208(%ebp)
409388:	8b f8                	mov    %eax,%edi
40938a:	c7 85 e8 fd ff ff 03 	movl   $0x3,-0x218(%ebp)
409391:	00 00 00
409394:	e9 27 02 00 00       	jmp    0x4095c0
409399:	6a 0b                	push   $0xb
40939b:	68 84 4f 40 00       	push   $0x404f84
4093a0:	ff 34 9f             	push   (%edi,%ebx,4)
4093a3:	ff 15 10 f1 40 00    	call   *0x40f110
4093a9:	83 c4 0c             	add    $0xc,%esp
4093ac:	85 c0                	test   %eax,%eax
4093ae:	75 1b                	jne    0x4093cb
4093b0:	c7 85 f8 fd ff ff 14 	movl   $0x14,-0x208(%ebp)
4093b7:	00 00 00
4093ba:	c7 85 e8 fd ff ff 04 	movl   $0x4,-0x218(%ebp)
4093c1:	00 00 00
4093c4:	6a 18                	push   $0x18
4093c6:	e9 f4 01 00 00       	jmp    0x4095bf
4093cb:	6a 0b                	push   $0xb
4093cd:	68 9c 4f 40 00       	push   $0x404f9c
4093d2:	ff 34 9f             	push   (%edi,%ebx,4)
4093d5:	ff 15 10 f1 40 00    	call   *0x40f110
4093db:	83 c4 0c             	add    $0xc,%esp
4093de:	85 c0                	test   %eax,%eax
4093e0:	75 14                	jne    0x4093f6
4093e2:	6a 05                	push   $0x5
4093e4:	58                   	pop    %eax
4093e5:	c7 85 f8 fd ff ff 14 	movl   $0x14,-0x208(%ebp)
4093ec:	00 00 00
4093ef:	6a 18                	push   $0x18
4093f1:	e9 c3 01 00 00       	jmp    0x4095b9
4093f6:	6a 09                	push   $0x9
4093f8:	68 b4 4f 40 00       	push   $0x404fb4
4093fd:	ff 34 9f             	push   (%edi,%ebx,4)
409400:	ff 15 10 f1 40 00    	call   *0x40f110
409406:	83 c4 0c             	add    $0xc,%esp
409409:	85 c0                	test   %eax,%eax
40940b:	75 18                	jne    0x409425
40940d:	c7 85 f0 fd ff ff 9c 	movl   $0x40169c,-0x210(%ebp)
409414:	16 40 00
409417:	6a 02                	push   $0x2
409419:	58                   	pop    %eax
40941a:	89 85 f8 fd ff ff    	mov    %eax,-0x208(%ebp)
409420:	e9 50 06 00 00       	jmp    0x409a75
409425:	6a 0a                	push   $0xa
409427:	68 c8 4f 40 00       	push   $0x404fc8
40942c:	ff 34 9f             	push   (%edi,%ebx,4)
40942f:	ff 15 10 f1 40 00    	call   *0x40f110
409435:	83 c4 0c             	add    $0xc,%esp
409438:	85 c0                	test   %eax,%eax
40943a:	75 0c                	jne    0x409448
40943c:	c7 85 f0 fd ff ff 8c 	movl   $0x40518c,-0x210(%ebp)
409443:	51 40 00
409446:	eb cf                	jmp    0x409417
409448:	6a 0a                	push   $0xa
40944a:	68 e0 4f 40 00       	push   $0x404fe0
40944f:	ff 34 9f             	push   (%edi,%ebx,4)
409452:	ff 15 10 f1 40 00    	call   *0x40f110
409458:	83 c4 0c             	add    $0xc,%esp
40945b:	85 c0                	test   %eax,%eax
40945d:	75 19                	jne    0x409478
40945f:	c7 85 f0 fd ff ff bc 	movl   $0x4016bc,-0x210(%ebp)
409466:	16 40 00
409469:	c7 85 f8 fd ff ff 03 	movl   $0x3,-0x208(%ebp)
409470:	00 00 00
409473:	e9 fd 05 00 00       	jmp    0x409a75
409478:	6a 0b                	push   $0xb
40947a:	68 f8 4f 40 00       	push   $0x404ff8
40947f:	ff 34 9f             	push   (%edi,%ebx,4)
409482:	ff 15 10 f1 40 00    	call   *0x40f110
409488:	83 c4 0c             	add    $0xc,%esp
40948b:	85 c0                	test   %eax,%eax
40948d:	75 0c                	jne    0x40949b
40948f:	c7 85 f0 fd ff ff ac 	movl   $0x4051ac,-0x210(%ebp)
409496:	51 40 00
409499:	eb ce                	jmp    0x409469
40949b:	6a 08                	push   $0x8
40949d:	68 10 50 40 00       	push   $0x405010
4094a2:	ff 34 9f             	push   (%edi,%ebx,4)
4094a5:	ff 15 10 f1 40 00    	call   *0x40f110
4094ab:	83 c4 0c             	add    $0xc,%esp
4094ae:	85 c0                	test   %eax,%eax
4094b0:	75 1e                	jne    0x4094d0
4094b2:	6a 02                	push   $0x2
4094b4:	58                   	pop    %eax
4094b5:	c7 85 f8 fd ff ff 04 	movl   $0x4,-0x208(%ebp)
4094bc:	00 00 00
4094bf:	c7 85 f0 fd ff ff dc 	movl   $0x4016dc,-0x210(%ebp)
4094c6:	16 40 00
4094c9:	6a 12                	push   $0x12
4094cb:	e9 e9 00 00 00       	jmp    0x4095b9
4094d0:	6a 09                	push   $0x9
4094d2:	68 24 50 40 00       	push   $0x405024
4094d7:	ff 34 9f             	push   (%edi,%ebx,4)
4094da:	ff 15 10 f1 40 00    	call   *0x40f110
4094e0:	83 c4 0c             	add    $0xc,%esp
4094e3:	85 c0                	test   %eax,%eax
4094e5:	75 19                	jne    0x409500
4094e7:	c7 85 f8 fd ff ff 04 	movl   $0x4,-0x208(%ebp)
4094ee:	00 00 00
4094f1:	c7 85 f0 fd ff ff bc 	movl   $0x4051bc,-0x210(%ebp)
4094f8:	51 40 00
4094fb:	e9 b4 00 00 00       	jmp    0x4095b4
409500:	6a 0d                	push   $0xd
409502:	68 38 50 40 00       	push   $0x405038
409507:	ff 34 9f             	push   (%edi,%ebx,4)
40950a:	ff 15 10 f1 40 00    	call   *0x40f110
409510:	83 c4 0c             	add    $0xc,%esp
409513:	85 c0                	test   %eax,%eax
409515:	75 19                	jne    0x409530
409517:	c7 85 f0 fd ff ff ac 	movl   $0x4016ac,-0x210(%ebp)
40951e:	16 40 00
409521:	c7 85 f8 fd ff ff 05 	movl   $0x5,-0x208(%ebp)
409528:	00 00 00
40952b:	e9 45 05 00 00       	jmp    0x409a75
409530:	6a 0a                	push   $0xa
409532:	68 54 50 40 00       	push   $0x405054
409537:	ff 34 9f             	push   (%edi,%ebx,4)
40953a:	ff 15 10 f1 40 00    	call   *0x40f110
409540:	83 c4 0c             	add    $0xc,%esp
409543:	85 c0                	test   %eax,%eax
409545:	75 0c                	jne    0x409553
409547:	c7 85 f0 fd ff ff 9c 	movl   $0x40519c,-0x210(%ebp)
40954e:	51 40 00
409551:	eb ce                	jmp    0x409521
409553:	6a 0c                	push   $0xc
409555:	68 6c 50 40 00       	push   $0x40506c
40955a:	ff 34 9f             	push   (%edi,%ebx,4)
40955d:	ff 15 10 f1 40 00    	call   *0x40f110
409563:	83 c4 0c             	add    $0xc,%esp
409566:	85 c0                	test   %eax,%eax
409568:	75 1b                	jne    0x409585
40956a:	6a 02                	push   $0x2
40956c:	58                   	pop    %eax
40956d:	c7 85 f8 fd ff ff 06 	movl   $0x6,-0x208(%ebp)
409574:	00 00 00
409577:	c7 85 f0 fd ff ff cc 	movl   $0x4016cc,-0x210(%ebp)
40957e:	16 40 00
409581:	6a 1a                	push   $0x1a
409583:	eb 34                	jmp    0x4095b9
409585:	6a 09                	push   $0x9
409587:	68 88 50 40 00       	push   $0x405088
40958c:	ff 34 9f             	push   (%edi,%ebx,4)
40958f:	ff 15 10 f1 40 00    	call   *0x40f110
409595:	83 c4 0c             	add    $0xc,%esp
409598:	85 c0                	test   %eax,%eax
40959a:	0f 85 2e 05 00 00    	jne    0x409ace
4095a0:	c7 85 f8 fd ff ff 06 	movl   $0x6,-0x208(%ebp)
4095a7:	00 00 00
4095aa:	c7 85 f0 fd ff ff 8c 	movl   $0x40168c,-0x210(%ebp)
4095b1:	16 40 00
4095b4:	6a 02                	push   $0x2
4095b6:	58                   	pop    %eax
4095b7:	6a 14                	push   $0x14
4095b9:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
4095bf:	5f                   	pop    %edi
4095c0:	8b 85 cc fd ff ff    	mov    -0x234(%ebp),%eax
4095c6:	8b 0c 98             	mov    (%eax,%ebx,4),%ecx
4095c9:	83 c1 fe             	add    $0xfffffffe,%ecx
4095cc:	03 cf                	add    %edi,%ecx
4095ce:	0f b7 01             	movzwl (%ecx),%eax
4095d1:	66 85 c0             	test   %ax,%ax
4095d4:	0f 84 f4 04 00 00    	je     0x409ace
4095da:	8b 9d e0 fd ff ff    	mov    -0x220(%ebp),%ebx
4095e0:	8b d0                	mov    %eax,%edx
4095e2:	6a 02                	push   $0x2
4095e4:	5e                   	pop    %esi
4095e5:	66 83 fa 2f          	cmp    $0x2f,%dx
4095e9:	75 06                	jne    0x4095f1
4095eb:	33 c0                	xor    %eax,%eax
4095ed:	43                   	inc    %ebx
4095ee:	66 89 01             	mov    %ax,(%ecx)
4095f1:	03 ce                	add    %esi,%ecx
4095f3:	0f b7 01             	movzwl (%ecx),%eax
4095f6:	8b d0                	mov    %eax,%edx
4095f8:	66 85 c0             	test   %ax,%ax
4095fb:	75 e8                	jne    0x4095e5
4095fd:	8b b5 d4 fd ff ff    	mov    -0x22c(%ebp),%esi
409603:	89 9d e0 fd ff ff    	mov    %ebx,-0x220(%ebp)
409609:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40960f:	8b 9d bc fd ff ff    	mov    -0x244(%ebp),%ebx
409615:	66 85 c0             	test   %ax,%ax
409618:	0f 84 b0 04 00 00    	je     0x409ace
40961e:	0f b7 c0             	movzwl %ax,%eax
409621:	6b c0 0c             	imul   $0xc,%eax,%eax
409624:	50                   	push   %eax
409625:	6a 40                	push   $0x40
409627:	ff 15 64 f0 40 00    	call   *0x40f064
40962d:	89 85 ec fd ff ff    	mov    %eax,-0x214(%ebp)
409633:	85 c0                	test   %eax,%eax
409635:	0f 84 00 fc ff ff    	je     0x40923b
40963b:	8b 85 cc fd ff ff    	mov    -0x234(%ebp),%eax
409641:	8b 04 98             	mov    (%eax,%ebx,4),%eax
409644:	03 c7                	add    %edi,%eax
409646:	8b bd f8 fd ff ff    	mov    -0x208(%ebp),%edi
40964c:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
409652:	83 ff 04             	cmp    $0x4,%edi
409655:	74 6a                	je     0x4096c1