40429d:	0f 84 70 01 00 00    	je     0x404413
4042a3:	81 ff e9 fd 00 00    	cmp    $0xfde9,%edi
4042a9:	0f 84 64 01 00 00    	je     0x404413
4042af:	0f b7 c7             	movzwl %di,%eax
4042b2:	50                   	push   %eax
4042b3:	ff 15 f0 10 40 00    	call   *0x4010f0
4042b9:	85 c0                	test   %eax,%eax
4042bb:	0f 84 52 01 00 00    	je     0x404413
4042c1:	8d 45 e8             	lea    -0x18(%ebp),%eax
4042c4:	50                   	push   %eax
4042c5:	57                   	push   %edi
4042c6:	ff 15 e4 10 40 00    	call   *0x4010e4
4042cc:	85 c0                	test   %eax,%eax
4042ce:	0f 84 33 01 00 00    	je     0x404407
4042d4:	68 01 01 00 00       	push   $0x101
4042d9:	8d 43 1c             	lea    0x1c(%ebx),%eax
4042dc:	56                   	push   %esi
4042dd:	50                   	push   %eax
4042de:	e8 3d 26 00 00       	call   0x406920
4042e3:	33 d2                	xor    %edx,%edx
4042e5:	42                   	inc    %edx
4042e6:	83 c4 0c             	add    $0xc,%esp
4042e9:	89 7b 04             	mov    %edi,0x4(%ebx)
4042ec:	89 73 0c             	mov    %esi,0xc(%ebx)
4042ef:	39 55 e8             	cmp    %edx,-0x18(%ebp)
4042f2:	0f 86 f8 00 00 00    	jbe    0x4043f0
4042f8:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
4042fc:	0f 84 cf 00 00 00    	je     0x4043d1
404302:	8d 75 ef             	lea    -0x11(%ebp),%esi
404305:	8a 0e                	mov    (%esi),%cl
404307:	84 c9                	test   %cl,%cl
404309:	0f 84 c2 00 00 00    	je     0x4043d1
40430f:	0f b6 46 ff          	movzbl -0x1(%esi),%eax
404313:	0f b6 c9             	movzbl %cl,%ecx
404316:	e9 a6 00 00 00       	jmp    0x4043c1
40431b:	68 01 01 00 00       	push   $0x101
404320:	8d 43 1c             	lea    0x1c(%ebx),%eax
404323:	56                   	push   %esi
404324:	50                   	push   %eax
404325:	e8 f6 25 00 00       	call   0x406920
40432a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40432d:	83 c4 0c             	add    $0xc,%esp
404330:	6b c9 30             	imul   $0x30,%ecx,%ecx
404333:	89 75 e0             	mov    %esi,-0x20(%ebp)
404336:	8d b1 68 b5 40 00    	lea    0x40b568(%ecx),%esi
40433c:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40433f:	eb 2a                	jmp    0x40436b
404341:	8a 46 01             	mov    0x1(%esi),%al
404344:	84 c0                	test   %al,%al
404346:	74 28                	je     0x404370
404348:	0f b6 3e             	movzbl (%esi),%edi
40434b:	0f b6 c0             	movzbl %al,%eax
40434e:	eb 12                	jmp    0x404362
404350:	8b 45 e0             	mov    -0x20(%ebp),%eax
404353:	8a 80 54 b5 40 00    	mov    0x40b554(%eax),%al
404359:	08 44 3b 1d          	or     %al,0x1d(%ebx,%edi,1)
40435d:	0f b6 46 01          	movzbl 0x1(%esi),%eax
404361:	47                   	inc    %edi
404362:	3b f8                	cmp    %eax,%edi
404364:	76 ea                	jbe    0x404350
404366:	8b 7d 08             	mov    0x8(%ebp),%edi
404369:	46                   	inc    %esi
40436a:	46                   	inc    %esi
40436b:	80 3e 00             	cmpb   $0x0,(%esi)
40436e:	75 d1                	jne    0x404341
404370:	8b 75 e4             	mov    -0x1c(%ebp),%esi
404373:	ff 45 e0             	incl   -0x20(%ebp)
404376:	83 c6 08             	add    $0x8,%esi
404379:	83 7d e0 04          	cmpl   $0x4,-0x20(%ebp)
40437d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404380:	72 e9                	jb     0x40436b
404382:	8b c7                	mov    %edi,%eax
404384:	89 7b 04             	mov    %edi,0x4(%ebx)
404387:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)
40438e:	e8 67 fb ff ff       	call   0x403efa
404393:	6a 06                	push   $0x6
404395:	89 43 0c             	mov    %eax,0xc(%ebx)
404398:	8d 43 10             	lea    0x10(%ebx),%eax
40439b:	8d 89 5c b5 40 00    	lea    0x40b55c(%ecx),%ecx
4043a1:	5a                   	pop    %edx
4043a2:	66 8b 31             	mov    (%ecx),%si
4043a5:	41                   	inc    %ecx
4043a6:	66 89 30             	mov    %si,(%eax)
4043a9:	41                   	inc    %ecx
4043aa:	40                   	inc    %eax
4043ab:	40                   	inc    %eax
4043ac:	4a                   	dec    %edx
4043ad:	75 f3                	jne    0x4043a2
4043af:	8b f3                	mov    %ebx,%esi
4043b1:	e8 d7 fb ff ff       	call   0x403f8d
4043b6:	e9 b7 fe ff ff       	jmp    0x404272
4043bb:	80 4c 03 1d 04       	orb    $0x4,0x1d(%ebx,%eax,1)
4043c0:	40                   	inc    %eax
4043c1:	3b c1                	cmp    %ecx,%eax
4043c3:	76 f6                	jbe    0x4043bb
4043c5:	46                   	inc    %esi
4043c6:	46                   	inc    %esi
4043c7:	80 7e ff 00          	cmpb   $0x0,-0x1(%esi)
4043cb:	0f 85 34 ff ff ff    	jne    0x404305
4043d1:	8d 43 1e             	lea    0x1e(%ebx),%eax
4043d4:	b9 fe 00 00 00       	mov    $0xfe,%ecx
4043d9:	80 08 08             	orb    $0x8,(%eax)
4043dc:	40                   	inc    %eax
4043dd:	49                   	dec    %ecx
4043de:	75 f9                	jne    0x4043d9
4043e0:	8b 43 04             	mov    0x4(%ebx),%eax
4043e3:	e8 12 fb ff ff       	call   0x403efa
4043e8:	89 43 0c             	mov    %eax,0xc(%ebx)
4043eb:	89 53 08             	mov    %edx,0x8(%ebx)
4043ee:	eb 03                	jmp    0x4043f3
4043f0:	89 73 08             	mov    %esi,0x8(%ebx)
4043f3:	33 c0                	xor    %eax,%eax
4043f5:	0f b7 c8             	movzwl %ax,%ecx
4043f8:	8b c1                	mov    %ecx,%eax
4043fa:	c1 e1 10             	shl    $0x10,%ecx
4043fd:	0b c1                	or     %ecx,%eax
4043ff:	8d 7b 10             	lea    0x10(%ebx),%edi
404402:	ab                   	stos   %eax,%es:(%edi)
404403:	ab                   	stos   %eax,%es:(%edi)
404404:	ab                   	stos   %eax,%es:(%edi)
404405:	eb a8                	jmp    0x4043af
404407:	39 35 e0 cd 45 00    	cmp    %esi,0x45cde0
40440d:	0f 85 58 fe ff ff    	jne    0x40426b
404413:	83 c8 ff             	or     $0xffffffff,%eax
404416:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404419:	5f                   	pop    %edi
40441a:	5e                   	pop    %esi
40441b:	33 cd                	xor    %ebp,%ecx
40441d:	5b                   	pop    %ebx
40441e:	e8 cd df ff ff       	call   0x4023f0
404423:	c9                   	leave
404424:	c3                   	ret
404425:	6a 14                	push   $0x14
404427:	68 78 a5 40 00       	push   $0x40a578
40442c:	e8 43 f8 ff ff       	call   0x403c74
404431:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
404435:	e8 31 f5 ff ff       	call   0x40396b
40443a:	8b f8                	mov    %eax,%edi
40443c:	89 7d dc             	mov    %edi,-0x24(%ebp)
40443f:	e8 dc fc ff ff       	call   0x404120
404444:	8b 5f 68             	mov    0x68(%edi),%ebx
404447:	8b 75 08             	mov    0x8(%ebp),%esi
40444a:	e8 75 fd ff ff       	call   0x4041c4
40444f:	89 45 08             	mov    %eax,0x8(%ebp)
404452:	3b 43 04             	cmp    0x4(%ebx),%eax
404455:	0f 84 57 01 00 00    	je     0x4045b2
40445b:	68 20 02 00 00       	push   $0x220
404460:	e8 36 14 00 00       	call   0x40589b
404465:	59                   	pop    %ecx
404466:	8b d8                	mov    %eax,%ebx
404468:	85 db                	test   %ebx,%ebx
40446a:	0f 84 46 01 00 00    	je     0x4045b6
404470:	b9 88 00 00 00       	mov    $0x88,%ecx
404475:	8b 77 68             	mov    0x68(%edi),%esi
404478:	8b fb                	mov    %ebx,%edi
40447a:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40447c:	83 23 00             	andl   $0x0,(%ebx)
40447f:	53                   	push   %ebx
404480:	ff 75 08             	push   0x8(%ebp)
404483:	e8 b8 fd ff ff       	call   0x404240
404488:	59                   	pop    %ecx
404489:	59                   	pop    %ecx
40448a:	89 45 e0             	mov    %eax,-0x20(%ebp)
40448d:	85 c0                	test   %eax,%eax
40448f:	0f 85 fc 00 00 00    	jne    0x404591
404495:	8b 75 dc             	mov    -0x24(%ebp),%esi
404498:	ff 76 68             	push   0x68(%esi)
40449b:	ff 15 cc 10 40 00    	call   *0x4010cc
4044a1:	85 c0                	test   %eax,%eax
4044a3:	75 11                	jne    0x4044b6
4044a5:	8b 46 68             	mov    0x68(%esi),%eax
4044a8:	3d 28 b1 40 00       	cmp    $0x40b128,%eax
4044ad:	74 07                	je     0x4044b6
4044af:	50                   	push   %eax
4044b0:	e8 e9 12 00 00       	call   0x40579e
4044b5:	59                   	pop    %ecx
4044b6:	89 5e 68             	mov    %ebx,0x68(%esi)
4044b9:	53                   	push   %ebx
4044ba:	8b 3d 5c 10 40 00    	mov    0x40105c,%edi
4044c0:	ff d7                	call   *%edi
4044c2:	f6 46 70 02          	testb  $0x2,0x70(%esi)
4044c6:	0f 85 ea 00 00 00    	jne    0x4045b6
4044cc:	f6 05 4c b6 40 00 01 	testb  $0x1,0x40b64c
4044d3:	0f 85 dd 00 00 00    	jne    0x4045b6
4044d9:	6a 0d                	push   $0xd
4044db:	e8 2b 09 00 00       	call   0x404e0b
4044e0:	59                   	pop    %ecx
4044e1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4044e5:	8b 43 04             	mov    0x4(%ebx),%eax
4044e8:	a3 f0 cd 45 00       	mov    %eax,0x45cdf0
4044ed:	8b 43 08             	mov    0x8(%ebx),%eax
4044f0:	a3 f4 cd 45 00       	mov    %eax,0x45cdf4
4044f5:	8b 43 0c             	mov    0xc(%ebx),%eax
4044f8:	a3 f8 cd 45 00       	mov    %eax,0x45cdf8
4044fd:	33 c0                	xor    %eax,%eax
4044ff:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404502:	83 f8 05             	cmp    $0x5,%eax
404505:	7d 10                	jge    0x404517
404507:	66 8b 4c 43 10       	mov    0x10(%ebx,%eax,2),%cx
40450c:	66 89 0c 45 e4 cd 45 	mov    %cx,0x45cde4(,%eax,2)
404513:	00
404514:	40                   	inc    %eax
404515:	eb e8                	jmp    0x4044ff
404517:	33 c0                	xor    %eax,%eax
404519:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40451c:	3d 01 01 00 00       	cmp    $0x101,%eax
404521:	7d 0d                	jge    0x404530
404523:	8a 4c 18 1c          	mov    0x1c(%eax,%ebx,1),%cl
404527:	88 88 48 b3 40 00    	mov    %cl,0x40b348(%eax)
40452d:	40                   	inc    %eax
40452e:	eb e9                	jmp    0x404519
404530:	33 c0                	xor    %eax,%eax
404532:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404535:	3d 00 01 00 00       	cmp    $0x100,%eax
40453a:	7d 10                	jge    0x40454c
40453c:	8a 8c 18 1d 01 00 00 	mov    0x11d(%eax,%ebx,1),%cl
404543:	88 88 50 b4 40 00    	mov    %cl,0x40b450(%eax)
404549:	40                   	inc    %eax
40454a:	eb e6                	jmp    0x404532
40454c:	ff 35 50 b5 40 00    	push   0x40b550
404552:	ff 15 cc 10 40 00    	call   *0x4010cc
404558:	85 c0                	test   %eax,%eax
40455a:	75 13                	jne    0x40456f
40455c:	a1 50 b5 40 00       	mov    0x40b550,%eax
404561:	3d 28 b1 40 00       	cmp    $0x40b128,%eax
404566:	74 07                	je     0x40456f
404568:	50                   	push   %eax
404569:	e8 30 12 00 00       	call   0x40579e
40456e:	59                   	pop    %ecx
40456f:	89 1d 50 b5 40 00    	mov    %ebx,0x40b550
404575:	53                   	push   %ebx
404576:	ff d7                	call   *%edi
404578:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40457f:	e8 02 00 00 00       	call   0x404586
404584:	eb 30                	jmp    0x4045b6
404586:	6a 0d                	push   $0xd
404588:	e8 a4 07 00 00       	call   0x404d31
40458d:	59                   	pop    %ecx
40458e:	c3                   	ret
40458f:	eb 25                	jmp    0x4045b6
404591:	83 f8 ff             	cmp    $0xffffffff,%eax
404594:	75 20                	jne    0x4045b6
404596:	81 fb 28 b1 40 00    	cmp    $0x40b128,%ebx
40459c:	74 07                	je     0x4045a5
40459e:	53                   	push   %ebx
40459f:	e8 fa 11 00 00       	call   0x40579e
4045a4:	59                   	pop    %ecx
4045a5:	e8 af 05 00 00       	call   0x404b59
4045aa:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4045b0:	eb 04                	jmp    0x4045b6
4045b2:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
4045b6:	8b 45 e0             	mov    -0x20(%ebp),%eax
4045b9:	e8 fb f6 ff ff       	call   0x403cb9
4045be:	c3                   	ret
4045bf:	83 3d 0c 0c 89 00 00 	cmpl   $0x0,0x890c0c
4045c6:	75 12                	jne    0x4045da
4045c8:	6a fd                	push   $0xfffffffd
4045ca:	e8 56 fe ff ff       	call   0x404425
4045cf:	59                   	pop    %ecx
4045d0:	c7 05 0c 0c 89 00 01 	movl   $0x1,0x890c0c
4045d7:	00 00 00
4045da:	33 c0                	xor    %eax,%eax
4045dc:	c3                   	ret
4045dd:	8b ff                	mov    %edi,%edi
4045df:	55                   	push   %ebp
4045e0:	8b ec                	mov    %esp,%ebp
4045e2:	53                   	push   %ebx
4045e3:	56                   	push   %esi
4045e4:	8b 75 08             	mov    0x8(%ebp),%esi
4045e7:	8b 86 bc 00 00 00    	mov    0xbc(%esi),%eax
4045ed:	33 db                	xor    %ebx,%ebx
4045ef:	57                   	push   %edi
4045f0:	3b c3                	cmp    %ebx,%eax
4045f2:	74 6f                	je     0x404663
4045f4:	3d c8 ba 40 00       	cmp    $0x40bac8,%eax
4045f9:	74 68                	je     0x404663
4045fb:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
404601:	3b c3                	cmp    %ebx,%eax
404603:	74 5e                	je     0x404663
404605:	39 18                	cmp    %ebx,(%eax)
404607:	75 5a                	jne    0x404663
404609:	8b 86 b8 00 00 00    	mov    0xb8(%esi),%eax
40460f:	3b c3                	cmp    %ebx,%eax
404611:	74 17                	je     0x40462a
404613:	39 18                	cmp    %ebx,(%eax)
404615:	75 13                	jne    0x40462a
404617:	50                   	push   %eax
404618:	e8 81 11 00 00       	call   0x40579e
40461d:	ff b6 bc 00 00 00    	push   0xbc(%esi)
404623:	e8 52 2b 00 00       	call   0x40717a
404628:	59                   	pop    %ecx
404629:	59                   	pop    %ecx
40462a:	8b 86 b4 00 00 00    	mov    0xb4(%esi),%eax
404630:	3b c3                	cmp    %ebx,%eax
404632:	74 17                	je     0x40464b
404634:	39 18                	cmp    %ebx,(%eax)
404636:	75 13                	jne    0x40464b
404638:	50                   	push   %eax
404639:	e8 60 11 00 00       	call   0x40579e
40463e:	ff b6 bc 00 00 00    	push   0xbc(%esi)
404644:	e8 ec 2a 00 00       	call   0x407135
404649:	59                   	pop    %ecx
40464a:	59                   	pop    %ecx
40464b:	ff b6 b0 00 00 00    	push   0xb0(%esi)
404651:	e8 48 11 00 00       	call   0x40579e
404656:	ff b6 bc 00 00 00    	push   0xbc(%esi)
40465c:	e8 3d 11 00 00       	call   0x40579e
404661:	59                   	pop    %ecx
404662:	59                   	pop    %ecx
404663:	8b 86 c0 00 00 00    	mov    0xc0(%esi),%eax
404669:	3b c3                	cmp    %ebx,%eax
40466b:	74 44                	je     0x4046b1
40466d:	39 18                	cmp    %ebx,(%eax)
40466f:	75 40                	jne    0x4046b1
404671:	8b 86 c4 00 00 00    	mov    0xc4(%esi),%eax
404677:	2d fe 00 00 00       	sub    $0xfe,%eax
40467c:	50                   	push   %eax
40467d:	e8 1c 11 00 00       	call   0x40579e
404682:	8b 86 cc 00 00 00    	mov    0xcc(%esi),%eax
404688:	bf 80 00 00 00       	mov    $0x80,%edi
40468d:	2b c7                	sub    %edi,%eax
40468f:	50                   	push   %eax
404690:	e8 09 11 00 00       	call   0x40579e
404695:	8b 86 d0 00 00 00    	mov    0xd0(%esi),%eax
40469b:	2b c7                	sub    %edi,%eax
40469d:	50                   	push   %eax
40469e:	e8 fb 10 00 00       	call   0x40579e
4046a3:	ff b6 c0 00 00 00    	push   0xc0(%esi)
4046a9:	e8 f0 10 00 00       	call   0x40579e
4046ae:	83 c4 10             	add    $0x10,%esp
4046b1:	8d be d4 00 00 00    	lea    0xd4(%esi),%edi
4046b7:	8b 07                	mov    (%edi),%eax
4046b9:	3d 08 ba 40 00       	cmp    $0x40ba08,%eax
4046be:	74 17                	je     0x4046d7
4046c0:	39 98 b4 00 00 00    	cmp    %ebx,0xb4(%eax)
4046c6:	75 0f                	jne    0x4046d7
4046c8:	50                   	push   %eax
4046c9:	e8 d2 28 00 00       	call   0x406fa0
4046ce:	ff 37                	push   (%edi)
4046d0:	e8 c9 10 00 00       	call   0x40579e
4046d5:	59                   	pop    %ecx
4046d6:	59                   	pop    %ecx
4046d7:	8d 7e 50             	lea    0x50(%esi),%edi
4046da:	c7 45 08 06 00 00 00 	movl   $0x6,0x8(%ebp)
4046e1:	81 7f f8 50 b6 40 00 	cmpl   $0x40b650,-0x8(%edi)
4046e8:	74 11                	je     0x4046fb
4046ea:	8b 07                	mov    (%edi),%eax
4046ec:	3b c3                	cmp    %ebx,%eax
4046ee:	74 0b                	je     0x4046fb
4046f0:	39 18                	cmp    %ebx,(%eax)