404252:	66 03 05 20 92 42 00 	add    0x429220,%ax
404259:	57                   	push   %edi
40425a:	0f b7 c0             	movzwl %ax,%eax
40425d:	50                   	push   %eax
40425e:	ff 35 40 a2 42 00    	push   0x42a240
404264:	ff 15 88 82 40 00    	call   *0x408288
40426a:	3b c5                	cmp    %ebp,%eax
40426c:	a3 18 92 42 00       	mov    %eax,0x429218
404271:	0f 84 92 00 00 00    	je     0x404309
404277:	ff 76 2c             	push   0x2c(%esi)
40427a:	6a 06                	push   $0x6
40427c:	50                   	push   %eax
40427d:	e8 dd 00 00 00       	call   0x40435f
404282:	8d 44 24 10          	lea    0x10(%esp),%eax
404286:	50                   	push   %eax
404287:	68 fa 03 00 00       	push   $0x3fa
40428c:	57                   	push   %edi
40428d:	ff 15 e4 81 40 00    	call   *0x4081e4
404293:	50                   	push   %eax
404294:	ff 15 e0 81 40 00    	call   *0x4081e0
40429a:	8d 44 24 10          	lea    0x10(%esp),%eax
40429e:	50                   	push   %eax
40429f:	57                   	push   %edi
4042a0:	ff 15 dc 81 40 00    	call   *0x4081dc
4042a6:	6a 15                	push   $0x15
4042a8:	55                   	push   %ebp
4042a9:	55                   	push   %ebp
4042aa:	ff 74 24 20          	push   0x20(%esp)
4042ae:	ff 74 24 20          	push   0x20(%esp)
4042b2:	55                   	push   %ebp
4042b3:	ff 35 18 92 42 00    	push   0x429218
4042b9:	ff 15 a4 81 40 00    	call   *0x4081a4
4042bf:	55                   	push   %ebp
4042c0:	ff 76 0c             	push   0xc(%esi)
4042c3:	e8 c1 d0 ff ff       	call   0x401389
4042c8:	39 2d 0c 92 42 00    	cmp    %ebp,0x42920c
4042ce:	75 5c                	jne    0x40432c
4042d0:	6a 08                	push   $0x8
4042d2:	ff 35 18 92 42 00    	push   0x429218
4042d8:	ff 15 68 82 40 00    	call   *0x408268
4042de:	68 05 04 00 00       	push   $0x405
4042e3:	e8 c3 00 00 00       	call   0x4043ab
4042e8:	eb 1f                	jmp    0x404309
4042ea:	ff 35 18 92 42 00    	push   0x429218
4042f0:	ff 15 50 82 40 00    	call   *0x408250
4042f6:	ff 35 f8 1e 42 00    	push   0x421ef8
4042fc:	89 2d 48 a2 42 00    	mov    %ebp,0x42a248
404302:	57                   	push   %edi
404303:	ff 15 30 82 40 00    	call   *0x408230
404309:	39 2d 28 57 42 00    	cmp    %ebp,0x425728
40430f:	75 1b                	jne    0x40432c
404311:	39 2d 18 92 42 00    	cmp    %ebp,0x429218
404317:	74 13                	je     0x40432c
404319:	6a 0a                	push   $0xa
40431b:	57                   	push   %edi
40431c:	ff 15 68 82 40 00    	call   *0x408268
404322:	c7 05 28 57 42 00 01 	movl   $0x1,0x425728
404329:	00 00 00
40432c:	33 c0                	xor    %eax,%eax
40432e:	5f                   	pop    %edi
40432f:	5e                   	pop    %esi
404330:	5d                   	pop    %ebp
404331:	5b                   	pop    %ebx
404332:	83 c4 10             	add    $0x10,%esp
404335:	c2 10 00             	ret    $0x10
404338:	83 7c 24 04 78       	cmpl   $0x78,0x4(%esp)
40433d:	75 06                	jne    0x404345
40433f:	ff 05 0c 92 42 00    	incl   0x42920c
404345:	6a 00                	push   $0x0
404347:	ff 74 24 08          	push   0x8(%esp)
40434b:	68 08 04 00 00       	push   $0x408
404350:	ff 35 48 a2 42 00    	push   0x42a248
404356:	ff 15 18 82 40 00    	call   *0x408218
40435c:	c2 04 00             	ret    $0x4
40435f:	ff 74 24 0c          	push   0xc(%esp)
404363:	6a 00                	push   $0x0
404365:	e8 a0 20 00 00       	call   0x40640a
40436a:	50                   	push   %eax
40436b:	8b 44 24 0c          	mov    0xc(%esp),%eax
40436f:	05 e8 03 00 00       	add    $0x3e8,%eax
404374:	50                   	push   %eax
404375:	ff 74 24 0c          	push   0xc(%esp)
404379:	e8 ae 16 00 00       	call   0x405a2c
40437e:	c2 0c 00             	ret    $0xc
404381:	ff 74 24 04          	push   0x4(%esp)
404385:	ff 35 24 37 42 00    	push   0x423724
40438b:	ff 15 10 82 40 00    	call   *0x408210
404391:	c2 04 00             	ret    $0x4
404394:	6a 01                	push   $0x1
404396:	ff 74 24 08          	push   0x8(%esp)
40439a:	6a 28                	push   $0x28
40439c:	ff 35 48 a2 42 00    	push   0x42a248
4043a2:	ff 15 18 82 40 00    	call   *0x408218
4043a8:	c2 04 00             	ret    $0x4
4043ab:	a1 18 92 42 00       	mov    0x429218,%eax
4043b0:	85 c0                	test   %eax,%eax
4043b2:	74 0f                	je     0x4043c3
4043b4:	6a 00                	push   $0x0
4043b6:	6a 00                	push   $0x0
4043b8:	ff 74 24 0c          	push   0xc(%esp)
4043bc:	50                   	push   %eax
4043bd:	ff 15 18 82 40 00    	call   *0x408218
4043c3:	c2 04 00             	ret    $0x4
4043c6:	55                   	push   %ebp
4043c7:	8b ec                	mov    %esp,%ebp
4043c9:	83 ec 0c             	sub    $0xc,%esp
4043cc:	8b 45 08             	mov    0x8(%ebp),%eax
4043cf:	56                   	push   %esi
4043d0:	05 cd fe ff ff       	add    $0xfffffecd,%eax
4043d5:	83 f8 05             	cmp    $0x5,%eax
4043d8:	0f 87 b0 00 00 00    	ja     0x40448e
4043de:	6a eb                	push   $0xffffffeb
4043e0:	ff 75 10             	push   0x10(%ebp)
4043e3:	ff 15 ac 81 40 00    	call   *0x4081ac
4043e9:	8b f0                	mov    %eax,%esi
4043eb:	85 f6                	test   %esi,%esi
4043ed:	0f 84 9b 00 00 00    	je     0x40448e
4043f3:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
4043f7:	0f 87 91 00 00 00    	ja     0x40448e
4043fd:	83 7e 10 02          	cmpl   $0x2,0x10(%esi)
404401:	0f 87 87 00 00 00    	ja     0x40448e
404407:	8b 4e 14             	mov    0x14(%esi),%ecx
40440a:	f7 c1 e0 ff ff ff    	test   $0xffffffe0,%ecx
404410:	75 7c                	jne    0x40448e
404412:	8b 06                	mov    (%esi),%eax
404414:	57                   	push   %edi
404415:	8b 3d a8 81 40 00    	mov    0x4081a8,%edi
40441b:	f6 c1 02             	test   $0x2,%cl
40441e:	74 03                	je     0x404423
404420:	50                   	push   %eax
404421:	ff d7                	call   *%edi
404423:	f6 46 14 01          	testb  $0x1,0x14(%esi)
404427:	74 0a                	je     0x404433
404429:	50                   	push   %eax
40442a:	ff 75 0c             	push   0xc(%ebp)
40442d:	ff 15 58 80 40 00    	call   *0x408058
404433:	ff 76 10             	push   0x10(%esi)
404436:	ff 75 0c             	push   0xc(%ebp)
404439:	ff 15 50 80 40 00    	call   *0x408050
40443f:	8b 46 04             	mov    0x4(%esi),%eax
404442:	f6 46 14 08          	testb  $0x8,0x14(%esi)
404446:	89 45 f8             	mov    %eax,-0x8(%ebp)
404449:	74 06                	je     0x404451
40444b:	50                   	push   %eax
40444c:	ff d7                	call   *%edi
40444e:	89 45 f8             	mov    %eax,-0x8(%ebp)
404451:	f6 46 14 04          	testb  $0x4,0x14(%esi)
404455:	5f                   	pop    %edi
404456:	74 0a                	je     0x404462
404458:	50                   	push   %eax
404459:	ff 75 0c             	push   0xc(%ebp)
40445c:	ff 15 68 80 40 00    	call   *0x408068
404462:	f6 46 14 10          	testb  $0x10,0x14(%esi)
404466:	74 21                	je     0x404489
404468:	8b 46 08             	mov    0x8(%esi),%eax
40446b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40446e:	8b 46 0c             	mov    0xc(%esi),%eax
404471:	85 c0                	test   %eax,%eax
404473:	74 07                	je     0x40447c
404475:	50                   	push   %eax
404476:	ff 15 5c 80 40 00    	call   *0x40805c
40447c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40447f:	50                   	push   %eax
404480:	ff 15 64 80 40 00    	call   *0x408064
404486:	89 46 0c             	mov    %eax,0xc(%esi)
404489:	8b 46 0c             	mov    0xc(%esi),%eax
40448c:	eb 02                	jmp    0x404490
40448e:	33 c0                	xor    %eax,%eax
404490:	5e                   	pop    %esi
404491:	c9                   	leave
404492:	c2 0c 00             	ret    $0xc
404495:	55                   	push   %ebp
404496:	8b ec                	mov    %esp,%ebp
404498:	8b 45 10             	mov    0x10(%ebp),%eax
40449b:	8b 0d f4 16 42 00    	mov    0x4216f4,%ecx
4044a1:	d1 e8                	shr    $1,%eax
4044a3:	50                   	push   %eax
4044a4:	8b 45 08             	mov    0x8(%ebp),%eax
4044a7:	03 c8                	add    %eax,%ecx
4044a9:	51                   	push   %ecx
4044aa:	ff 75 0c             	push   0xc(%ebp)
4044ad:	ff 15 b4 80 40 00    	call   *0x4080b4
4044b3:	ff 75 0c             	push   0xc(%ebp)
4044b6:	ff 15 b0 80 40 00    	call   *0x4080b0
4044bc:	8b 4d 14             	mov    0x14(%ebp),%ecx
4044bf:	03 c0                	add    %eax,%eax
4044c1:	89 01                	mov    %eax,(%ecx)
4044c3:	01 05 f4 16 42 00    	add    %eax,0x4216f4
4044c9:	33 c0                	xor    %eax,%eax
4044cb:	5d                   	pop    %ebp
4044cc:	c2 10 00             	ret    $0x10
4044cf:	55                   	push   %ebp
4044d0:	8b ec                	mov    %esp,%ebp
4044d2:	a1 f4 16 42 00       	mov    0x4216f4,%eax
4044d7:	56                   	push   %esi
4044d8:	8b 75 08             	mov    0x8(%ebp),%esi
4044db:	8d 04 46             	lea    (%esi,%eax,2),%eax
4044de:	50                   	push   %eax
4044df:	ff 15 b0 80 40 00    	call   *0x4080b0
4044e5:	8b 4d 10             	mov    0x10(%ebp),%ecx
4044e8:	d1 e9                	shr    $1,%ecx
4044ea:	3b c1                	cmp    %ecx,%eax
4044ec:	72 02                	jb     0x4044f0
4044ee:	8b c1                	mov    %ecx,%eax
4044f0:	33 c9                	xor    %ecx,%ecx
4044f2:	51                   	push   %ecx
4044f3:	51                   	push   %ecx
4044f4:	ff 75 10             	push   0x10(%ebp)
4044f7:	ff 75 0c             	push   0xc(%ebp)
4044fa:	50                   	push   %eax
4044fb:	a1 f4 16 42 00       	mov    0x4216f4,%eax
404500:	8d 04 46             	lea    (%esi,%eax,2),%eax
404503:	50                   	push   %eax
404504:	51                   	push   %ecx
404505:	51                   	push   %ecx
404506:	ff 15 5c 81 40 00    	call   *0x40815c
40450c:	8b 4d 14             	mov    0x14(%ebp),%ecx
40450f:	5e                   	pop    %esi
404510:	89 01                	mov    %eax,(%ecx)
404512:	01 05 f4 16 42 00    	add    %eax,0x4216f4
404518:	33 c0                	xor    %eax,%eax
40451a:	5d                   	pop    %ebp
40451b:	c2 10 00             	ret    $0x10
40451e:	55                   	push   %ebp
40451f:	8b ec                	mov    %esp,%ebp
404521:	83 ec 0c             	sub    $0xc,%esp
404524:	53                   	push   %ebx
404525:	33 db                	xor    %ebx,%ebx
404527:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
40452e:	56                   	push   %esi
40452f:	57                   	push   %edi
404530:	0f 85 1a 01 00 00    	jne    0x404650
404536:	8b 7d 14             	mov    0x14(%ebp),%edi
404539:	8b 47 30             	mov    0x30(%edi),%eax
40453c:	3b c3                	cmp    %ebx,%eax
40453e:	7d 11                	jge    0x404551
404540:	8b 0d 1c 92 42 00    	mov    0x42921c,%ecx
404546:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
40454d:	2b c8                	sub    %eax,%ecx
40454f:	8b 01                	mov    (%ecx),%eax
404551:	8b 0d 98 a2 42 00    	mov    0x42a298,%ecx
404557:	8d 04 41             	lea    (%ecx,%eax,2),%eax
40455a:	0f b7 08             	movzwl (%eax),%ecx
40455d:	40                   	inc    %eax
40455e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
404561:	40                   	inc    %eax
404562:	83 f9 02             	cmp    $0x2,%ecx
404565:	89 45 14             	mov    %eax,0x14(%ebp)
404568:	89 45 f4             	mov    %eax,-0xc(%ebp)
40456b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40456e:	c7 45 fc cf 44 40 00 	movl   $0x4044cf,-0x4(%ebp)
404575:	74 07                	je     0x40457e
404577:	c7 45 fc 95 44 40 00 	movl   $0x404495,-0x4(%ebp)
40457e:	8b 47 14             	mov    0x14(%edi),%eax
404581:	ff 77 34             	push   0x34(%edi)
404584:	8b f0                	mov    %eax,%esi
404586:	83 e0 01             	and    $0x1,%eax
404589:	f7 d6                	not    %esi
40458b:	c1 ee 05             	shr    $0x5,%esi
40458e:	6a 22                	push   $0x22
404590:	83 e6 01             	and    $0x1,%esi
404593:	ff 75 08             	push   0x8(%ebp)
404596:	0b f0                	or     %eax,%esi
404598:	e8 c2 fd ff ff       	call   0x40435f
40459d:	ff 77 38             	push   0x38(%edi)
4045a0:	6a 23                	push   $0x23
4045a2:	ff 75 08             	push   0x8(%ebp)
4045a5:	e8 b5 fd ff ff       	call   0x40435f
4045aa:	33 c0                	xor    %eax,%eax
4045ac:	3b f3                	cmp    %ebx,%esi
4045ae:	0f 94 c0             	sete   %al
4045b1:	05 0a 04 00 00       	add    $0x40a,%eax
4045b6:	6a 01                	push   $0x1
4045b8:	50                   	push   %eax
4045b9:	ff 75 08             	push   0x8(%ebp)
4045bc:	ff 15 b8 81 40 00    	call   *0x4081b8
4045c2:	56                   	push   %esi
4045c3:	e8 b9 fd ff ff       	call   0x404381
4045c8:	68 e8 03 00 00       	push   $0x3e8
4045cd:	ff 75 08             	push   0x8(%ebp)
4045d0:	ff 15 e4 81 40 00    	call   *0x4081e4
4045d6:	8b f8                	mov    %eax,%edi
4045d8:	57                   	push   %edi
4045d9:	e8 b6 fd ff ff       	call   0x404394
4045de:	8b 35 18 82 40 00    	mov    0x408218,%esi
4045e4:	53                   	push   %ebx
4045e5:	6a 01                	push   $0x1
4045e7:	68 5b 04 00 00       	push   $0x45b
4045ec:	57                   	push   %edi
4045ed:	ff d6                	call   *%esi
4045ef:	a1 54 a2 42 00       	mov    0x42a254,%eax
4045f4:	8b 40 68             	mov    0x68(%eax),%eax
4045f7:	3b c3                	cmp    %ebx,%eax
4045f9:	7d 09                	jge    0x404604
4045fb:	f7 d8                	neg    %eax
4045fd:	50                   	push   %eax
4045fe:	ff 15 a8 81 40 00    	call   *0x4081a8
404604:	50                   	push   %eax
404605:	53                   	push   %ebx
404606:	68 43 04 00 00       	push   $0x443
40460b:	57                   	push   %edi
40460c:	ff d6                	call   *%esi
40460e:	68 00 00 01 04       	push   $0x4010000
404613:	53                   	push   %ebx
404614:	68 45 04 00 00       	push   $0x445
404619:	57                   	push   %edi
40461a:	ff d6                	call   *%esi
40461c:	ff 75 14             	push   0x14(%ebp)
40461f:	e8 da 1d 00 00       	call   0x4063fe
404624:	50                   	push   %eax
404625:	53                   	push   %ebx
404626:	68 35 04 00 00       	push   $0x435
40462b:	57                   	push   %edi
40462c:	ff d6                	call   *%esi
40462e:	8d 45 f4             	lea    -0xc(%ebp),%eax
404631:	89 1d f4 16 42 00    	mov    %ebx,0x4216f4
404637:	50                   	push   %eax
404638:	ff 75 0c             	push   0xc(%ebp)
40463b:	68 49 04 00 00       	push   $0x449
404640:	57                   	push   %edi
404641:	ff d6                	call   *%esi
404643:	89 1d f4 16 42 00    	mov    %ebx,0x4216f4
404649:	33 c0                	xor    %eax,%eax
40464b:	e9 52 01 00 00       	jmp    0x4047a2
404650:	81 7d 0c 11 01 00 00 	cmpl   $0x111,0xc(%ebp)
404657:	8b 35 18 82 40 00    	mov    0x408218,%esi
40465d:	75 5b                	jne    0x4046ba
40465f:	8b 45 10             	mov    0x10(%ebp),%eax
404662:	c1 e8 10             	shr    $0x10,%eax
404665:	66 85 c0             	test   %ax,%ax
404668:	0f 85 25 01 00 00    	jne    0x404793
40466e:	39 1d f4 16 42 00    	cmp    %ebx,0x4216f4
404674:	0f 85 19 01 00 00    	jne    0x404793
40467a:	a1 00 27 42 00       	mov    0x422700,%eax
40467f:	8d 78 14             	lea    0x14(%eax),%edi
404682:	f6 07 20             	testb  $0x20,(%edi)
404685:	0f 84 08 01 00 00    	je     0x404793
40468b:	53                   	push   %ebx
40468c:	53                   	push   %ebx
40468d:	68 f0 00 00 00       	push   $0xf0
404692:	68 0a 04 00 00       	push   $0x40a
404697:	ff 75 08             	push   0x8(%ebp)
40469a:	ff 15 e4 81 40 00    	call   *0x4081e4
4046a0:	50                   	push   %eax
4046a1:	ff d6                	call   *%esi
4046a3:	8b 0f                	mov    (%edi),%ecx
4046a5:	83 e0 01             	and    $0x1,%eax
4046a8:	83 e1 fe             	and    $0xfffffffe,%ecx
4046ab:	50                   	push   %eax
4046ac:	0b c8                	or     %eax,%ecx