40945e:	8b c2                	mov    %edx,%eax
409460:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
409466:	72 10                	jb     0x409478
409468:	8b 50 fc             	mov    -0x4(%eax),%edx
40946b:	83 c1 23             	add    $0x23,%ecx
40946e:	2b c2                	sub    %edx,%eax
409470:	83 c0 fc             	add    $0xfffffffc,%eax
409473:	83 f8 1f             	cmp    $0x1f,%eax
409476:	77 2d                	ja     0x4094a5
409478:	51                   	push   %ecx
409479:	52                   	push   %edx
40947a:	e8 39 07 01 00       	call   0x419bb8
40947f:	83 c4 08             	add    $0x8,%esp
409482:	8b c6                	mov    %esi,%eax
409484:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409487:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40948e:	59                   	pop    %ecx
40948f:	5f                   	pop    %edi
409490:	5e                   	pop    %esi
409491:	5b                   	pop    %ebx
409492:	8b 4d f0             	mov    -0x10(%ebp),%ecx
409495:	33 cd                	xor    %ebp,%ecx
409497:	e8 0e 07 01 00       	call   0x419baa
40949c:	8b e5                	mov    %ebp,%esp
40949e:	5d                   	pop    %ebp
40949f:	c3                   	ret
4094a0:	e8 5b bb ff ff       	call   0x405000
4094a5:	e8 e9 64 01 00       	call   0x41f993
4094aa:	cc                   	int3
4094ab:	cc                   	int3
4094ac:	cc                   	int3
4094ad:	cc                   	int3
4094ae:	cc                   	int3
4094af:	cc                   	int3
4094b0:	55                   	push   %ebp
4094b1:	8b ec                	mov    %esp,%ebp
4094b3:	6a ff                	push   $0xffffffff
4094b5:	68 a5 bf 43 00       	push   $0x43bfa5
4094ba:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4094c0:	50                   	push   %eax
4094c1:	83 ec 60             	sub    $0x60,%esp
4094c4:	a1 14 50 45 00       	mov    0x455014,%eax
4094c9:	33 c5                	xor    %ebp,%eax
4094cb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4094ce:	53                   	push   %ebx
4094cf:	56                   	push   %esi
4094d0:	57                   	push   %edi
4094d1:	50                   	push   %eax
4094d2:	8d 45 f4             	lea    -0xc(%ebp),%eax
4094d5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4094db:	8b 55 24             	mov    0x24(%ebp),%edx
4094de:	8b 45 0c             	mov    0xc(%ebp),%eax
4094e1:	8b 7d 18             	mov    0x18(%ebp),%edi
4094e4:	8b 5d 20             	mov    0x20(%ebp),%ebx
4094e7:	89 45 94             	mov    %eax,-0x6c(%ebp)
4094ea:	89 7d 9c             	mov    %edi,-0x64(%ebp)
4094ed:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
4094f0:	89 55 98             	mov    %edx,-0x68(%ebp)
4094f3:	85 d2                	test   %edx,%edx
4094f5:	74 11                	je     0x409508
4094f7:	8a 03                	mov    (%ebx),%al
4094f9:	3c 2b                	cmp    $0x2b,%al
4094fb:	74 04                	je     0x409501
4094fd:	3c 2d                	cmp    $0x2d,%al
4094ff:	75 07                	jne    0x409508
409501:	b9 01 00 00 00       	mov    $0x1,%ecx
409506:	eb 02                	jmp    0x40950a
409508:	33 c9                	xor    %ecx,%ecx
40950a:	8b 47 14             	mov    0x14(%edi),%eax
40950d:	25 00 30 00 00       	and    $0x3000,%eax
409512:	89 4d b8             	mov    %ecx,-0x48(%ebp)
409515:	3d 00 30 00 00       	cmp    $0x3000,%eax
40951a:	74 07                	je     0x409523
40951c:	b8 a4 ee 44 00       	mov    $0x44eea4,%eax
409521:	eb 21                	jmp    0x409544
409523:	8d 71 02             	lea    0x2(%ecx),%esi
409526:	3b f2                	cmp    %edx,%esi
409528:	77 15                	ja     0x40953f
40952a:	80 3c 0b 30          	cmpb   $0x30,(%ebx,%ecx,1)
40952e:	75 0f                	jne    0x40953f
409530:	8a 44 0b 01          	mov    0x1(%ebx,%ecx,1),%al
409534:	3c 78                	cmp    $0x78,%al
409536:	74 04                	je     0x40953c
409538:	3c 58                	cmp    $0x58,%al
40953a:	75 03                	jne    0x40953f
40953c:	89 75 b8             	mov    %esi,-0x48(%ebp)
40953f:	b8 a8 ee 44 00       	mov    $0x44eea8,%eax
409544:	50                   	push   %eax
409545:	53                   	push   %ebx
409546:	e8 25 b3 01 00       	call   0x424870
40954b:	89 45 a8             	mov    %eax,-0x58(%ebp)
40954e:	b8 2e 00 00 00       	mov    $0x2e,%eax
409553:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
409557:	e8 de b3 01 00       	call   0x42493a
40955c:	8b 00                	mov    (%eax),%eax
40955e:	8a 00                	mov    (%eax),%al
409560:	88 45 ec             	mov    %al,-0x14(%ebp)
409563:	8d 45 ec             	lea    -0x14(%ebp),%eax
409566:	50                   	push   %eax
409567:	53                   	push   %ebx
409568:	e8 03 b3 01 00       	call   0x424870
40956d:	8b d8                	mov    %eax,%ebx
40956f:	83 c4 10             	add    $0x10,%esp
409572:	8b 47 30             	mov    0x30(%edi),%eax
409575:	8b 78 04             	mov    0x4(%eax),%edi
409578:	89 7d a4             	mov    %edi,-0x5c(%ebp)
40957b:	8b 07                	mov    (%edi),%eax
40957d:	8b 70 04             	mov    0x4(%eax),%esi
409580:	8b ce                	mov    %esi,%ecx
409582:	ff 15 5c e2 43 00    	call   *0x43e25c
409588:	8b cf                	mov    %edi,%ecx
40958a:	ff d6                	call   *%esi
40958c:	8d 45 a0             	lea    -0x60(%ebp),%eax
40958f:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409596:	50                   	push   %eax
409597:	e8 44 0f 00 00       	call   0x40a4e0
40959c:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4095a3:	83 c4 04             	add    $0x4,%esp
4095a6:	8b 7d a4             	mov    -0x5c(%ebp),%edi
4095a9:	89 45 ac             	mov    %eax,-0x54(%ebp)
4095ac:	85 ff                	test   %edi,%edi
4095ae:	74 29                	je     0x4095d9
4095b0:	8b 07                	mov    (%edi),%eax
4095b2:	8b 70 08             	mov    0x8(%eax),%esi
4095b5:	8b ce                	mov    %esi,%ecx
4095b7:	ff 15 5c e2 43 00    	call   *0x43e25c
4095bd:	8b cf                	mov    %edi,%ecx
4095bf:	ff d6                	call   *%esi
4095c1:	8b f8                	mov    %eax,%edi
4095c3:	85 ff                	test   %edi,%edi
4095c5:	74 12                	je     0x4095d9
4095c7:	8b 07                	mov    (%edi),%eax
4095c9:	6a 01                	push   $0x1
4095cb:	8b 30                	mov    (%eax),%esi
4095cd:	8b ce                	mov    %esi,%ecx
4095cf:	ff 15 5c e2 43 00    	call   *0x43e25c
4095d5:	8b cf                	mov    %edi,%ecx
4095d7:	ff d6                	call   *%esi
4095d9:	8b 75 98             	mov    -0x68(%ebp),%esi
4095dc:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4095df:	6a 00                	push   $0x0
4095e1:	56                   	push   %esi
4095e2:	e8 39 e8 ff ff       	call   0x407e20
4095e7:	8b 7d ac             	mov    -0x54(%ebp),%edi
4095ea:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4095ed:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4095f4:	8b 55 b4             	mov    -0x4c(%ebp),%edx
4095f7:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
4095fb:	8b 0f                	mov    (%edi),%ecx
4095fd:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
409601:	50                   	push   %eax
409602:	8d 04 16             	lea    (%esi,%edx,1),%eax
409605:	8b 71 2c             	mov    0x2c(%ecx),%esi
409608:	8b ce                	mov    %esi,%ecx
40960a:	50                   	push   %eax
40960b:	52                   	push   %edx
40960c:	ff 15 5c e2 43 00    	call   *0x43e25c
409612:	8b cf                	mov    %edi,%ecx
409614:	ff d6                	call   *%esi
409616:	8b 55 9c             	mov    -0x64(%ebp),%edx
409619:	8b 42 30             	mov    0x30(%edx),%eax
40961c:	8b 78 04             	mov    0x4(%eax),%edi
40961f:	89 7d b4             	mov    %edi,-0x4c(%ebp)
409622:	8b 07                	mov    (%edi),%eax
409624:	8b 70 04             	mov    0x4(%eax),%esi
409627:	8b ce                	mov    %esi,%ecx
409629:	ff 15 5c e2 43 00    	call   *0x43e25c
40962f:	8b cf                	mov    %edi,%ecx
409631:	ff d6                	call   *%esi
409633:	8d 45 b0             	lea    -0x50(%ebp),%eax
409636:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40963a:	50                   	push   %eax
40963b:	e8 60 0d 00 00       	call   0x40a3a0
409640:	8b f8                	mov    %eax,%edi
409642:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
409646:	8b 45 b4             	mov    -0x4c(%ebp),%eax
409649:	83 c4 04             	add    $0x4,%esp
40964c:	89 7d ac             	mov    %edi,-0x54(%ebp)
40964f:	85 c0                	test   %eax,%eax
409651:	74 2c                	je     0x40967f
409653:	8b 00                	mov    (%eax),%eax
409655:	8b 70 08             	mov    0x8(%eax),%esi
409658:	8b ce                	mov    %esi,%ecx
40965a:	ff 15 5c e2 43 00    	call   *0x43e25c
409660:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
409663:	ff d6                	call   *%esi
409665:	89 45 b4             	mov    %eax,-0x4c(%ebp)
409668:	85 c0                	test   %eax,%eax
40966a:	74 13                	je     0x40967f
40966c:	8b 00                	mov    (%eax),%eax
40966e:	6a 01                	push   $0x1
409670:	8b 30                	mov    (%eax),%esi
409672:	8b ce                	mov    %esi,%ecx
409674:	ff 15 5c e2 43 00    	call   *0x43e25c
40967a:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
40967d:	ff d6                	call   *%esi
40967f:	8b 07                	mov    (%edi),%eax
409681:	8d 4d bc             	lea    -0x44(%ebp),%ecx
409684:	51                   	push   %ecx
409685:	8b 70 14             	mov    0x14(%eax),%esi
409688:	8b ce                	mov    %esi,%ecx
40968a:	ff 15 5c e2 43 00    	call   *0x43e25c
409690:	8b cf                	mov    %edi,%ecx
409692:	ff d6                	call   *%esi
409694:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
409698:	8b 07                	mov    (%edi),%eax
40969a:	8b 70 10             	mov    0x10(%eax),%esi
40969d:	8b ce                	mov    %esi,%ecx
40969f:	ff 15 5c e2 43 00    	call   *0x43e25c
4096a5:	8b cf                	mov    %edi,%ecx
4096a7:	ff d6                	call   *%esi
4096a9:	8b 7d 98             	mov    -0x68(%ebp),%edi
4096ac:	0f b7 f0             	movzwl %ax,%esi
4096af:	89 75 b4             	mov    %esi,-0x4c(%ebp)
4096b2:	3b df                	cmp    %edi,%ebx
4096b4:	74 2c                	je     0x4096e2
4096b6:	8b 45 ac             	mov    -0x54(%ebp),%eax
4096b9:	8b 00                	mov    (%eax),%eax
4096bb:	8b 70 0c             	mov    0xc(%eax),%esi
4096be:	8b ce                	mov    %esi,%ecx
4096c0:	ff 15 5c e2 43 00    	call   *0x43e25c
4096c6:	8b 4d ac             	mov    -0x54(%ebp),%ecx
4096c9:	ff d6                	call   *%esi
4096cb:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
4096cf:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4096d2:	0f b7 c8             	movzwl %ax,%ecx
4096d5:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4096d8:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
4096dc:	3b df                	cmp    %edi,%ebx
4096de:	66 89 0c 58          	mov    %cx,(%eax,%ebx,2)
4096e2:	0f 44 5d a8          	cmove  -0x58(%ebp),%ebx
4096e6:	8d 7d bc             	lea    -0x44(%ebp),%edi
4096e9:	83 7d d0 10          	cmpl   $0x10,-0x30(%ebp)
4096ed:	0f 43 7d bc          	cmovae -0x44(%ebp),%edi
4096f1:	8a 07                	mov    (%edi),%al
4096f3:	3c 7f                	cmp    $0x7f,%al
4096f5:	0f 84 91 00 00 00    	je     0x40978c
4096fb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
409700:	8b 55 b8             	mov    -0x48(%ebp),%edx
409703:	84 c0                	test   %al,%al
409705:	0f 8e 84 00 00 00    	jle    0x40978f
40970b:	0f be c8             	movsbl %al,%ecx
40970e:	8b c3                	mov    %ebx,%eax
409710:	2b c2                	sub    %edx,%eax
409712:	3b c8                	cmp    %eax,%ecx
409714:	73 79                	jae    0x40978f
409716:	2b d9                	sub    %ecx,%ebx
409718:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40971b:	3b cb                	cmp    %ebx,%ecx
40971d:	0f 82 3d 02 00 00    	jb     0x409960
409723:	8b 55 e8             	mov    -0x18(%ebp),%edx
409726:	8b c2                	mov    %edx,%eax
409728:	2b c1                	sub    %ecx,%eax
40972a:	83 f8 01             	cmp    $0x1,%eax
40972d:	72 34                	jb     0x409763
40972f:	8d 41 01             	lea    0x1(%ecx),%eax
409732:	83 fa 08             	cmp    $0x8,%edx
409735:	89 45 e4             	mov    %eax,-0x1c(%ebp)
409738:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40973b:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40973f:	2b cb                	sub    %ebx,%ecx
409741:	8d 34 58             	lea    (%eax,%ebx,2),%esi
409744:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
40974b:	50                   	push   %eax
40974c:	8d 46 02             	lea    0x2(%esi),%eax
40974f:	56                   	push   %esi
409750:	50                   	push   %eax
409751:	e8 2a 1f 01 00       	call   0x41b680
409756:	8b 45 b4             	mov    -0x4c(%ebp),%eax
409759:	83 c4 0c             	add    $0xc,%esp
40975c:	66 89 06             	mov    %ax,(%esi)
40975f:	8b f0                	mov    %eax,%esi
409761:	eb 15                	jmp    0x409778
409763:	56                   	push   %esi
409764:	6a 01                	push   $0x1
409766:	53                   	push   %ebx
409767:	c6 45 a8 00          	movb   $0x0,-0x58(%ebp)
40976b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40976e:	ff 75 a8             	push   -0x58(%ebp)
409771:	6a 01                	push   $0x1
409773:	e8 a8 0e 00 00       	call   0x40a620
409778:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
40977c:	8d 47 01             	lea    0x1(%edi),%eax
40977f:	0f 4f f8             	cmovg  %eax,%edi
409782:	8a 07                	mov    (%edi),%al
409784:	3c 7f                	cmp    $0x7f,%al
409786:	0f 85 74 ff ff ff    	jne    0x409700
40978c:	8b 55 b8             	mov    -0x48(%ebp),%edx
40978f:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
409792:	8b 45 e4             	mov    -0x1c(%ebp),%eax
409795:	89 45 b4             	mov    %eax,-0x4c(%ebp)
409798:	83 79 24 00          	cmpl   $0x0,0x24(%ecx)
40979c:	8b 79 20             	mov    0x20(%ecx),%edi
40979f:	7c 0e                	jl     0x4097af
4097a1:	7f 04                	jg     0x4097a7
4097a3:	85 ff                	test   %edi,%edi
4097a5:	74 08                	je     0x4097af
4097a7:	3b f8                	cmp    %eax,%edi
4097a9:	76 04                	jbe    0x4097af
4097ab:	2b f8                	sub    %eax,%edi
4097ad:	eb 02                	jmp    0x4097b1
4097af:	33 ff                	xor    %edi,%edi
4097b1:	8b 41 14             	mov    0x14(%ecx),%eax
4097b4:	8b 75 1c             	mov    0x1c(%ebp),%esi
4097b7:	25 c0 01 00 00       	and    $0x1c0,%eax
4097bc:	8b 5d 08             	mov    0x8(%ebp),%ebx
4097bf:	83 f8 40             	cmp    $0x40,%eax
4097c2:	0f 84 84 00 00 00    	je     0x40984c
4097c8:	3d 00 01 00 00       	cmp    $0x100,%eax
4097cd:	74 40                	je     0x40980f
4097cf:	57                   	push   %edi
4097d0:	56                   	push   %esi
4097d1:	ff 75 14             	push   0x14(%ebp)
4097d4:	8d 45 a0             	lea    -0x60(%ebp),%eax
4097d7:	ff 75 10             	push   0x10(%ebp)
4097da:	50                   	push   %eax
4097db:	53                   	push   %ebx
4097dc:	e8 3f f7 ff ff       	call   0x408f20
4097e1:	8b 75 b8             	mov    -0x48(%ebp),%esi
4097e4:	33 ff                	xor    %edi,%edi
4097e6:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
4097ea:	56                   	push   %esi
4097eb:	8b 10                	mov    (%eax),%edx
4097ed:	8b 48 04             	mov    0x4(%eax),%ecx
4097f0:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4097f3:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
4097f7:	50                   	push   %eax
4097f8:	51                   	push   %ecx
4097f9:	52                   	push   %edx
4097fa:	8d 45 a0             	lea    -0x60(%ebp),%eax
4097fd:	89 55 10             	mov    %edx,0x10(%ebp)
409800:	50                   	push   %eax
409801:	53                   	push   %ebx
409802:	89 4d 14             	mov    %ecx,0x14(%ebp)
409805:	e8 a6 f7 ff ff       	call   0x408fb0
40980a:	83 c4 30             	add    $0x30,%esp
40980d:	eb 60                	jmp    0x40986f
40980f:	83 7d e8 08          	cmpl   $0x8,-0x18(%ebp)
409813:	8d 45 d4             	lea    -0x2c(%ebp),%eax
409816:	52                   	push   %edx
409817:	0f 43 45 d4          	cmovae -0x2c(%ebp),%eax
40981b:	50                   	push   %eax
40981c:	ff 75 14             	push   0x14(%ebp)
40981f:	8d 45 a0             	lea    -0x60(%ebp),%eax
409822:	ff 75 10             	push   0x10(%ebp)
409825:	50                   	push   %eax
409826:	53                   	push   %ebx
409827:	e8 84 f7 ff ff       	call   0x408fb0
40982c:	57                   	push   %edi
40982d:	56                   	push   %esi