404270:	75 ce                	jne    0x404240
404272:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
404276:	74 24                	je     0x40429c
404278:	8b 06                	mov    (%esi),%eax
40427a:	83 f8 fe             	cmp    $0xfffffffe,%eax
40427d:	74 0d                	je     0x40428c
40427f:	8b 4e 04             	mov    0x4(%esi),%ecx
404282:	03 cf                	add    %edi,%ecx
404284:	33 0c 38             	xor    (%eax,%edi,1),%ecx
404287:	e8 18 db ff ff       	call   0x401da4
40428c:	8b 4e 0c             	mov    0xc(%esi),%ecx
40428f:	8b 56 08             	mov    0x8(%esi),%edx
404292:	03 cf                	add    %edi,%ecx
404294:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
404297:	e8 08 db ff ff       	call   0x401da4
40429c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40429f:	5f                   	pop    %edi
4042a0:	5e                   	pop    %esi
4042a1:	5b                   	pop    %ebx
4042a2:	8b e5                	mov    %ebp,%esp
4042a4:	5d                   	pop    %ebp
4042a5:	c3                   	ret
4042a6:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4042ad:	eb c9                	jmp    0x404278
4042af:	8b 4d 08             	mov    0x8(%ebp),%ecx
4042b2:	81 39 63 73 6d e0    	cmpl   $0xe06d7363,(%ecx)
4042b8:	75 29                	jne    0x4042e3
4042ba:	83 3d 38 47 41 00 00 	cmpl   $0x0,0x414738
4042c1:	74 20                	je     0x4042e3
4042c3:	68 38 47 41 00       	push   $0x414738
4042c8:	e8 83 64 00 00       	call   0x40a750
4042cd:	83 c4 04             	add    $0x4,%esp
4042d0:	85 c0                	test   %eax,%eax
4042d2:	74 0f                	je     0x4042e3
4042d4:	8b 55 08             	mov    0x8(%ebp),%edx
4042d7:	6a 01                	push   $0x1
4042d9:	52                   	push   %edx
4042da:	ff 15 38 47 41 00    	call   *0x414738
4042e0:	83 c4 08             	add    $0x8,%esp
4042e3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4042e6:	8b 55 08             	mov    0x8(%ebp),%edx
4042e9:	e8 94 01 00 00       	call   0x404482
4042ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4042f1:	39 58 0c             	cmp    %ebx,0xc(%eax)
4042f4:	74 12                	je     0x404308
4042f6:	68 84 22 41 00       	push   $0x412284
4042fb:	57                   	push   %edi
4042fc:	8b d3                	mov    %ebx,%edx
4042fe:	8b c8                	mov    %eax,%ecx
404300:	e8 96 01 00 00       	call   0x40449b
404305:	8b 45 0c             	mov    0xc(%ebp),%eax
404308:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40430b:	89 48 0c             	mov    %ecx,0xc(%eax)
40430e:	8b 06                	mov    (%esi),%eax
404310:	83 f8 fe             	cmp    $0xfffffffe,%eax
404313:	74 0d                	je     0x404322
404315:	8b 4e 04             	mov    0x4(%esi),%ecx
404318:	03 cf                	add    %edi,%ecx
40431a:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40431d:	e8 82 da ff ff       	call   0x401da4
404322:	8b 4e 0c             	mov    0xc(%esi),%ecx
404325:	8b 56 08             	mov    0x8(%esi),%edx
404328:	03 cf                	add    %edi,%ecx
40432a:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
40432d:	e8 72 da ff ff       	call   0x401da4
404332:	8b 45 f0             	mov    -0x10(%ebp),%eax
404335:	8b 48 08             	mov    0x8(%eax),%ecx
404338:	8b d7                	mov    %edi,%edx
40433a:	e8 2a 01 00 00       	call   0x404469
40433f:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
404344:	39 53 0c             	cmp    %edx,0xc(%ebx)
404347:	0f 84 4f ff ff ff    	je     0x40429c
40434d:	68 84 22 41 00       	push   $0x412284
404352:	57                   	push   %edi
404353:	8b cb                	mov    %ebx,%ecx
404355:	e8 41 01 00 00       	call   0x40449b
40435a:	e9 19 ff ff ff       	jmp    0x404278
40435f:	cc                   	int3
404360:	53                   	push   %ebx
404361:	56                   	push   %esi
404362:	57                   	push   %edi
404363:	8b 54 24 10          	mov    0x10(%esp),%edx
404367:	8b 44 24 14          	mov    0x14(%esp),%eax
40436b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40436f:	55                   	push   %ebp
404370:	52                   	push   %edx
404371:	50                   	push   %eax
404372:	51                   	push   %ecx
404373:	51                   	push   %ecx
404374:	68 f0 43 40 00       	push   $0x4043f0
404379:	64 ff 35 00 00 00 00 	push   %fs:0x0
404380:	a1 84 22 41 00       	mov    0x412284,%eax
404385:	33 c4                	xor    %esp,%eax
404387:	89 44 24 08          	mov    %eax,0x8(%esp)
40438b:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
404392:	8b 44 24 30          	mov    0x30(%esp),%eax
404396:	8b 58 08             	mov    0x8(%eax),%ebx
404399:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40439d:	33 19                	xor    (%ecx),%ebx
40439f:	8b 70 0c             	mov    0xc(%eax),%esi
4043a2:	83 fe fe             	cmp    $0xfffffffe,%esi
4043a5:	74 3b                	je     0x4043e2
4043a7:	8b 54 24 34          	mov    0x34(%esp),%edx
4043ab:	83 fa fe             	cmp    $0xfffffffe,%edx
4043ae:	74 04                	je     0x4043b4
4043b0:	3b f2                	cmp    %edx,%esi
4043b2:	76 2e                	jbe    0x4043e2
4043b4:	8d 34 76             	lea    (%esi,%esi,2),%esi
4043b7:	8d 5c b3 10          	lea    0x10(%ebx,%esi,4),%ebx
4043bb:	8b 0b                	mov    (%ebx),%ecx
4043bd:	89 48 0c             	mov    %ecx,0xc(%eax)
4043c0:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
4043c4:	75 cc                	jne    0x404392
4043c6:	68 01 01 00 00       	push   $0x101
4043cb:	8b 43 08             	mov    0x8(%ebx),%eax
4043ce:	e8 52 65 00 00       	call   0x40a925
4043d3:	b9 01 00 00 00       	mov    $0x1,%ecx
4043d8:	8b 43 08             	mov    0x8(%ebx),%eax
4043db:	e8 64 65 00 00       	call   0x40a944
4043e0:	eb b0                	jmp    0x404392
4043e2:	64 8f 05 00 00 00 00 	pop    %fs:0x0
4043e9:	83 c4 18             	add    $0x18,%esp
4043ec:	5f                   	pop    %edi
4043ed:	5e                   	pop    %esi
4043ee:	5b                   	pop    %ebx
4043ef:	c3                   	ret
4043f0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4043f4:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
4043fb:	b8 01 00 00 00       	mov    $0x1,%eax
404400:	74 33                	je     0x404435
404402:	8b 44 24 08          	mov    0x8(%esp),%eax
404406:	8b 48 08             	mov    0x8(%eax),%ecx
404409:	33 c8                	xor    %eax,%ecx
40440b:	e8 94 d9 ff ff       	call   0x401da4
404410:	55                   	push   %ebp
404411:	8b 68 18             	mov    0x18(%eax),%ebp
404414:	ff 70 0c             	push   0xc(%eax)
404417:	ff 70 10             	push   0x10(%eax)
40441a:	ff 70 14             	push   0x14(%eax)
40441d:	e8 3e ff ff ff       	call   0x404360
404422:	83 c4 0c             	add    $0xc,%esp
404425:	5d                   	pop    %ebp
404426:	8b 44 24 08          	mov    0x8(%esp),%eax
40442a:	8b 54 24 10          	mov    0x10(%esp),%edx
40442e:	89 02                	mov    %eax,(%edx)
404430:	b8 03 00 00 00       	mov    $0x3,%eax
404435:	c3                   	ret
404436:	55                   	push   %ebp
404437:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40443b:	8b 29                	mov    (%ecx),%ebp
40443d:	ff 71 1c             	push   0x1c(%ecx)
404440:	ff 71 18             	push   0x18(%ecx)
404443:	ff 71 28             	push   0x28(%ecx)
404446:	e8 15 ff ff ff       	call   0x404360
40444b:	83 c4 0c             	add    $0xc,%esp
40444e:	5d                   	pop    %ebp
40444f:	c2 04 00             	ret    $0x4
404452:	55                   	push   %ebp
404453:	56                   	push   %esi
404454:	57                   	push   %edi
404455:	53                   	push   %ebx
404456:	8b ea                	mov    %edx,%ebp
404458:	33 c0                	xor    %eax,%eax
40445a:	33 db                	xor    %ebx,%ebx
40445c:	33 d2                	xor    %edx,%edx
40445e:	33 f6                	xor    %esi,%esi
404460:	33 ff                	xor    %edi,%edi
404462:	ff d1                	call   *%ecx
404464:	5b                   	pop    %ebx
404465:	5f                   	pop    %edi
404466:	5e                   	pop    %esi
404467:	5d                   	pop    %ebp
404468:	c3                   	ret
404469:	8b ea                	mov    %edx,%ebp
40446b:	8b f1                	mov    %ecx,%esi
40446d:	8b c1                	mov    %ecx,%eax
40446f:	6a 01                	push   $0x1
404471:	e8 af 64 00 00       	call   0x40a925
404476:	33 c0                	xor    %eax,%eax
404478:	33 db                	xor    %ebx,%ebx
40447a:	33 c9                	xor    %ecx,%ecx
40447c:	33 d2                	xor    %edx,%edx
40447e:	33 ff                	xor    %edi,%edi
404480:	ff e6                	jmp    *%esi
404482:	55                   	push   %ebp
404483:	8b ec                	mov    %esp,%ebp
404485:	53                   	push   %ebx
404486:	56                   	push   %esi
404487:	57                   	push   %edi
404488:	6a 00                	push   $0x0
40448a:	52                   	push   %edx
40448b:	68 96 44 40 00       	push   $0x404496
404490:	51                   	push   %ecx
404491:	e8 7e a2 00 00       	call   0x40e714
404496:	5f                   	pop    %edi
404497:	5e                   	pop    %esi
404498:	5b                   	pop    %ebx
404499:	5d                   	pop    %ebp
40449a:	c3                   	ret
40449b:	55                   	push   %ebp
40449c:	8b 6c 24 08          	mov    0x8(%esp),%ebp
4044a0:	52                   	push   %edx
4044a1:	51                   	push   %ecx
4044a2:	ff 74 24 14          	push   0x14(%esp)
4044a6:	e8 b5 fe ff ff       	call   0x404360
4044ab:	83 c4 0c             	add    $0xc,%esp
4044ae:	5d                   	pop    %ebp
4044af:	c2 08 00             	ret    $0x8
4044b2:	8b ff                	mov    %edi,%edi
4044b4:	55                   	push   %ebp
4044b5:	8b ec                	mov    %esp,%ebp
4044b7:	56                   	push   %esi
4044b8:	8b 75 08             	mov    0x8(%ebp),%esi
4044bb:	56                   	push   %esi
4044bc:	e8 ef e5 ff ff       	call   0x402ab0
4044c1:	50                   	push   %eax
4044c2:	e8 80 64 00 00       	call   0x40a947
4044c7:	59                   	pop    %ecx
4044c8:	59                   	pop    %ecx
4044c9:	85 c0                	test   %eax,%eax
4044cb:	74 7c                	je     0x404549
4044cd:	e8 b1 dd ff ff       	call   0x402283
4044d2:	83 c0 20             	add    $0x20,%eax
4044d5:	3b f0                	cmp    %eax,%esi
4044d7:	75 04                	jne    0x4044dd
4044d9:	33 c0                	xor    %eax,%eax
4044db:	eb 0f                	jmp    0x4044ec
4044dd:	e8 a1 dd ff ff       	call   0x402283
4044e2:	83 c0 40             	add    $0x40,%eax
4044e5:	3b f0                	cmp    %eax,%esi
4044e7:	75 60                	jne    0x404549
4044e9:	33 c0                	xor    %eax,%eax
4044eb:	40                   	inc    %eax
4044ec:	ff 05 e0 2e 41 00    	incl   0x412ee0
4044f2:	f7 46 0c 0c 01 00 00 	testl  $0x10c,0xc(%esi)
4044f9:	75 4e                	jne    0x404549
4044fb:	53                   	push   %ebx
4044fc:	57                   	push   %edi
4044fd:	8d 3c 85 1c 32 41 00 	lea    0x41321c(,%eax,4),%edi
404504:	83 3f 00             	cmpl   $0x0,(%edi)
404507:	bb 00 10 00 00       	mov    $0x1000,%ebx
40450c:	75 20                	jne    0x40452e
40450e:	53                   	push   %ebx
40450f:	e8 ab 23 00 00       	call   0x4068bf
404514:	59                   	pop    %ecx
404515:	89 07                	mov    %eax,(%edi)
404517:	85 c0                	test   %eax,%eax
404519:	75 13                	jne    0x40452e
40451b:	8d 46 14             	lea    0x14(%esi),%eax
40451e:	6a 02                	push   $0x2
404520:	89 46 08             	mov    %eax,0x8(%esi)
404523:	89 06                	mov    %eax,(%esi)
404525:	58                   	pop    %eax
404526:	89 46 18             	mov    %eax,0x18(%esi)
404529:	89 46 04             	mov    %eax,0x4(%esi)
40452c:	eb 0d                	jmp    0x40453b
40452e:	8b 3f                	mov    (%edi),%edi
404530:	89 7e 08             	mov    %edi,0x8(%esi)
404533:	89 3e                	mov    %edi,(%esi)
404535:	89 5e 18             	mov    %ebx,0x18(%esi)
404538:	89 5e 04             	mov    %ebx,0x4(%esi)
40453b:	81 4e 0c 02 11 00 00 	orl    $0x1102,0xc(%esi)
404542:	33 c0                	xor    %eax,%eax
404544:	5f                   	pop    %edi
404545:	40                   	inc    %eax
404546:	5b                   	pop    %ebx
404547:	eb 02                	jmp    0x40454b
404549:	33 c0                	xor    %eax,%eax
40454b:	5e                   	pop    %esi
40454c:	5d                   	pop    %ebp
40454d:	c3                   	ret
40454e:	8b ff                	mov    %edi,%edi
404550:	55                   	push   %ebp
404551:	8b ec                	mov    %esp,%ebp
404553:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
404557:	74 27                	je     0x404580
404559:	56                   	push   %esi
40455a:	8b 75 0c             	mov    0xc(%ebp),%esi
40455d:	f7 46 0c 00 10 00 00 	testl  $0x1000,0xc(%esi)
404564:	74 19                	je     0x40457f
404566:	56                   	push   %esi
404567:	e8 20 25 00 00       	call   0x406a8c
40456c:	81 66 0c ff ee ff ff 	andl   $0xffffeeff,0xc(%esi)
404573:	83 66 18 00          	andl   $0x0,0x18(%esi)
404577:	83 26 00             	andl   $0x0,(%esi)
40457a:	83 66 08 00          	andl   $0x0,0x8(%esi)
40457e:	59                   	pop    %ecx
40457f:	5e                   	pop    %esi
404580:	5d                   	pop    %ebp
404581:	c3                   	ret
404582:	8b ff                	mov    %edi,%edi
404584:	55                   	push   %ebp
404585:	8b ec                	mov    %esp,%ebp
404587:	f6 40 0c 40          	testb  $0x40,0xc(%eax)
40458b:	74 06                	je     0x404593
40458d:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
404591:	74 1a                	je     0x4045ad
404593:	50                   	push   %eax
404594:	ff 75 08             	push   0x8(%ebp)
404597:	e8 01 64 00 00       	call   0x40a99d
40459c:	59                   	pop    %ecx
40459d:	59                   	pop    %ecx
40459e:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4045a3:	66 3b c1             	cmp    %cx,%ax
4045a6:	75 05                	jne    0x4045ad
4045a8:	83 0e ff             	orl    $0xffffffff,(%esi)
4045ab:	5d                   	pop    %ebp
4045ac:	c3                   	ret
4045ad:	ff 06                	incl   (%esi)
4045af:	5d                   	pop    %ebp
4045b0:	c3                   	ret
4045b1:	8b ff                	mov    %edi,%edi
4045b3:	55                   	push   %ebp
4045b4:	8b ec                	mov    %esp,%ebp
4045b6:	81 ec 78 04 00 00    	sub    $0x478,%esp
4045bc:	a1 84 22 41 00       	mov    0x412284,%eax
4045c1:	33 c5                	xor    %ebp,%eax
4045c3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4045c6:	8b 45 08             	mov    0x8(%ebp),%eax
4045c9:	53                   	push   %ebx
4045ca:	56                   	push   %esi
4045cb:	8b 75 0c             	mov    0xc(%ebp),%esi
4045ce:	33 db                	xor    %ebx,%ebx
4045d0:	57                   	push   %edi
4045d1:	8b 7d 14             	mov    0x14(%ebp),%edi
4045d4:	ff 75 10             	push   0x10(%ebp)
4045d7:	8d 8d a8 fb ff ff    	lea    -0x458(%ebp),%ecx
4045dd:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
4045e3:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
4045e9:	89 9d bc fb ff ff    	mov    %ebx,-0x444(%ebp)
4045ef:	89 9d f8 fb ff ff    	mov    %ebx,-0x408(%ebp)
4045f5:	89 9d d0 fb ff ff    	mov    %ebx,-0x430(%ebp)
4045fb:	89 9d f4 fb ff ff    	mov    %ebx,-0x40c(%ebp)
404601:	89 9d d8 fb ff ff    	mov    %ebx,-0x428(%ebp)
404607:	89 9d b8 fb ff ff    	mov    %ebx,-0x448(%ebp)
40460d:	89 9d d4 fb ff ff    	mov    %ebx,-0x42c(%ebp)
404613:	e8 cd d9 ff ff       	call   0x401fe5
404618:	e8 0a fb ff ff       	call   0x404127
40461d:	89 85 9c fb ff ff    	mov    %eax,-0x464(%ebp)
404623:	39 9d dc fb ff ff    	cmp    %ebx,-0x424(%ebp)
404629:	75 2a                	jne    0x404655
40462b:	e8 f7 fa ff ff       	call   0x404127
404630:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
404636:	e8 4c e6 ff ff       	call   0x402c87
40463b:	38 9d b4 fb ff ff    	cmp    %bl,-0x44c(%ebp)
404641:	74 0a                	je     0x40464d
404643:	8b 85 b0 fb ff ff    	mov    -0x450(%ebp),%eax
404649:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40464d:	83 c8 ff             	or     $0xffffffff,%eax
404650:	e9 f4 0a 00 00       	jmp    0x405149