4043f1:	c3                   	ret
4043f2:	3b f3                	cmp    %ebx,%esi
4043f4:	74 07                	je     0x4043fd
4043f6:	8b 7d 0c             	mov    0xc(%ebp),%edi
4043f9:	3b fb                	cmp    %ebx,%edi
4043fb:	77 1b                	ja     0x404418
4043fd:	e8 4a ea ff ff       	call   0x402e4c
404402:	6a 16                	push   $0x16
404404:	5e                   	pop    %esi
404405:	89 30                	mov    %esi,(%eax)
404407:	53                   	push   %ebx
404408:	53                   	push   %ebx
404409:	53                   	push   %ebx
40440a:	53                   	push   %ebx
40440b:	53                   	push   %ebx
40440c:	e8 30 f8 ff ff       	call   0x403c41
404411:	83 c4 14             	add    $0x14,%esp
404414:	8b c6                	mov    %esi,%eax
404416:	eb d5                	jmp    0x4043ed
404418:	39 5d 14             	cmp    %ebx,0x14(%ebp)
40441b:	75 04                	jne    0x404421
40441d:	88 1e                	mov    %bl,(%esi)
40441f:	eb ca                	jmp    0x4043eb
404421:	8b 55 10             	mov    0x10(%ebp),%edx
404424:	3b d3                	cmp    %ebx,%edx
404426:	75 04                	jne    0x40442c
404428:	88 1e                	mov    %bl,(%esi)
40442a:	eb d1                	jmp    0x4043fd
40442c:	83 7d 14 ff          	cmpl   $0xffffffff,0x14(%ebp)
404430:	8b c6                	mov    %esi,%eax
404432:	75 0f                	jne    0x404443
404434:	8a 0a                	mov    (%edx),%cl
404436:	88 08                	mov    %cl,(%eax)
404438:	40                   	inc    %eax
404439:	42                   	inc    %edx
40443a:	3a cb                	cmp    %bl,%cl
40443c:	74 1e                	je     0x40445c
40443e:	4f                   	dec    %edi
40443f:	75 f3                	jne    0x404434
404441:	eb 19                	jmp    0x40445c
404443:	8a 0a                	mov    (%edx),%cl
404445:	88 08                	mov    %cl,(%eax)
404447:	40                   	inc    %eax
404448:	42                   	inc    %edx
404449:	3a cb                	cmp    %bl,%cl
40444b:	74 08                	je     0x404455
40444d:	4f                   	dec    %edi
40444e:	74 05                	je     0x404455
404450:	ff 4d 14             	decl   0x14(%ebp)
404453:	75 ee                	jne    0x404443
404455:	39 5d 14             	cmp    %ebx,0x14(%ebp)
404458:	75 02                	jne    0x40445c
40445a:	88 18                	mov    %bl,(%eax)
40445c:	3b fb                	cmp    %ebx,%edi
40445e:	75 8b                	jne    0x4043eb
404460:	83 7d 14 ff          	cmpl   $0xffffffff,0x14(%ebp)
404464:	75 0f                	jne    0x404475
404466:	8b 45 0c             	mov    0xc(%ebp),%eax
404469:	6a 50                	push   $0x50
40446b:	88 5c 06 ff          	mov    %bl,-0x1(%esi,%eax,1)
40446f:	58                   	pop    %eax
404470:	e9 78 ff ff ff       	jmp    0x4043ed
404475:	88 1e                	mov    %bl,(%esi)
404477:	e8 d0 e9 ff ff       	call   0x402e4c
40447c:	6a 22                	push   $0x22
40447e:	59                   	pop    %ecx
40447f:	89 08                	mov    %ecx,(%eax)
404481:	8b f1                	mov    %ecx,%esi
404483:	eb 82                	jmp    0x404407
404485:	cc                   	int3
404486:	cc                   	int3
404487:	cc                   	int3
404488:	cc                   	int3
404489:	cc                   	int3
40448a:	cc                   	int3
40448b:	cc                   	int3
40448c:	cc                   	int3
40448d:	cc                   	int3
40448e:	cc                   	int3
40448f:	cc                   	int3
404490:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404494:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40449a:	74 24                	je     0x4044c0
40449c:	8a 01                	mov    (%ecx),%al
40449e:	83 c1 01             	add    $0x1,%ecx
4044a1:	84 c0                	test   %al,%al
4044a3:	74 4e                	je     0x4044f3
4044a5:	f7 c1 03 00 00 00    	test   $0x3,%ecx
4044ab:	75 ef                	jne    0x40449c
4044ad:	05 00 00 00 00       	add    $0x0,%eax
4044b2:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4044b9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4044c0:	8b 01                	mov    (%ecx),%eax
4044c2:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
4044c7:	03 d0                	add    %eax,%edx
4044c9:	83 f0 ff             	xor    $0xffffffff,%eax
4044cc:	33 c2                	xor    %edx,%eax
4044ce:	83 c1 04             	add    $0x4,%ecx
4044d1:	a9 00 01 01 81       	test   $0x81010100,%eax
4044d6:	74 e8                	je     0x4044c0
4044d8:	8b 41 fc             	mov    -0x4(%ecx),%eax
4044db:	84 c0                	test   %al,%al
4044dd:	74 32                	je     0x404511
4044df:	84 e4                	test   %ah,%ah
4044e1:	74 24                	je     0x404507
4044e3:	a9 00 00 ff 00       	test   $0xff0000,%eax
4044e8:	74 13                	je     0x4044fd
4044ea:	a9 00 00 00 ff       	test   $0xff000000,%eax
4044ef:	74 02                	je     0x4044f3
4044f1:	eb cd                	jmp    0x4044c0
4044f3:	8d 41 ff             	lea    -0x1(%ecx),%eax
4044f6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4044fa:	2b c1                	sub    %ecx,%eax
4044fc:	c3                   	ret
4044fd:	8d 41 fe             	lea    -0x2(%ecx),%eax
404500:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404504:	2b c1                	sub    %ecx,%eax
404506:	c3                   	ret
404507:	8d 41 fd             	lea    -0x3(%ecx),%eax
40450a:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40450e:	2b c1                	sub    %ecx,%eax
404510:	c3                   	ret
404511:	8d 41 fc             	lea    -0x4(%ecx),%eax
404514:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404518:	2b c1                	sub    %ecx,%eax
40451a:	c3                   	ret
40451b:	8b ff                	mov    %edi,%edi
40451d:	55                   	push   %ebp
40451e:	8b ec                	mov    %esp,%ebp
404520:	8b 4d 08             	mov    0x8(%ebp),%ecx
404523:	53                   	push   %ebx
404524:	33 db                	xor    %ebx,%ebx
404526:	56                   	push   %esi
404527:	57                   	push   %edi
404528:	3b cb                	cmp    %ebx,%ecx
40452a:	74 07                	je     0x404533
40452c:	8b 7d 0c             	mov    0xc(%ebp),%edi
40452f:	3b fb                	cmp    %ebx,%edi
404531:	77 1b                	ja     0x40454e
404533:	e8 14 e9 ff ff       	call   0x402e4c
404538:	6a 16                	push   $0x16
40453a:	5e                   	pop    %esi
40453b:	89 30                	mov    %esi,(%eax)
40453d:	53                   	push   %ebx
40453e:	53                   	push   %ebx
40453f:	53                   	push   %ebx
404540:	53                   	push   %ebx
404541:	53                   	push   %ebx
404542:	e8 fa f6 ff ff       	call   0x403c41
404547:	83 c4 14             	add    $0x14,%esp
40454a:	8b c6                	mov    %esi,%eax
40454c:	eb 30                	jmp    0x40457e
40454e:	8b 75 10             	mov    0x10(%ebp),%esi
404551:	3b f3                	cmp    %ebx,%esi
404553:	75 04                	jne    0x404559
404555:	88 19                	mov    %bl,(%ecx)
404557:	eb da                	jmp    0x404533
404559:	8b d1                	mov    %ecx,%edx
40455b:	8a 06                	mov    (%esi),%al
40455d:	88 02                	mov    %al,(%edx)
40455f:	42                   	inc    %edx
404560:	46                   	inc    %esi
404561:	3a c3                	cmp    %bl,%al
404563:	74 03                	je     0x404568
404565:	4f                   	dec    %edi
404566:	75 f3                	jne    0x40455b
404568:	3b fb                	cmp    %ebx,%edi
40456a:	75 10                	jne    0x40457c
40456c:	88 19                	mov    %bl,(%ecx)
40456e:	e8 d9 e8 ff ff       	call   0x402e4c
404573:	6a 22                	push   $0x22
404575:	59                   	pop    %ecx
404576:	89 08                	mov    %ecx,(%eax)
404578:	8b f1                	mov    %ecx,%esi
40457a:	eb c1                	jmp    0x40453d
40457c:	33 c0                	xor    %eax,%eax
40457e:	5f                   	pop    %edi
40457f:	5e                   	pop    %esi
404580:	5b                   	pop    %ebx
404581:	5d                   	pop    %ebp
404582:	c3                   	ret
404583:	8b ff                	mov    %edi,%edi
404585:	55                   	push   %ebp
404586:	8b ec                	mov    %esp,%ebp
404588:	8b 4d 08             	mov    0x8(%ebp),%ecx
40458b:	56                   	push   %esi
40458c:	33 f6                	xor    %esi,%esi
40458e:	3b ce                	cmp    %esi,%ecx
404590:	7c 1e                	jl     0x4045b0
404592:	83 f9 02             	cmp    $0x2,%ecx
404595:	7e 0c                	jle    0x4045a3
404597:	83 f9 03             	cmp    $0x3,%ecx
40459a:	75 14                	jne    0x4045b0
40459c:	a1 88 06 43 00       	mov    0x430688,%eax
4045a1:	eb 28                	jmp    0x4045cb
4045a3:	a1 88 06 43 00       	mov    0x430688,%eax
4045a8:	89 0d 88 06 43 00    	mov    %ecx,0x430688
4045ae:	eb 1b                	jmp    0x4045cb
4045b0:	e8 97 e8 ff ff       	call   0x402e4c
4045b5:	56                   	push   %esi
4045b6:	56                   	push   %esi
4045b7:	56                   	push   %esi
4045b8:	56                   	push   %esi
4045b9:	56                   	push   %esi
4045ba:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4045c0:	e8 7c f6 ff ff       	call   0x403c41
4045c5:	83 c4 14             	add    $0x14,%esp
4045c8:	83 c8 ff             	or     $0xffffffff,%eax
4045cb:	5e                   	pop    %esi
4045cc:	5d                   	pop    %ebp
4045cd:	c3                   	ret
4045ce:	8b ff                	mov    %edi,%edi
4045d0:	55                   	push   %ebp
4045d1:	8b ec                	mov    %esp,%ebp
4045d3:	8b 45 08             	mov    0x8(%ebp),%eax
4045d6:	56                   	push   %esi
4045d7:	8b f1                	mov    %ecx,%esi
4045d9:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
4045dd:	85 c0                	test   %eax,%eax
4045df:	75 63                	jne    0x404644
4045e1:	e8 94 e2 ff ff       	call   0x40287a
4045e6:	89 46 08             	mov    %eax,0x8(%esi)
4045e9:	8b 48 6c             	mov    0x6c(%eax),%ecx
4045ec:	89 0e                	mov    %ecx,(%esi)
4045ee:	8b 48 68             	mov    0x68(%eax),%ecx
4045f1:	89 4e 04             	mov    %ecx,0x4(%esi)
4045f4:	8b 0e                	mov    (%esi),%ecx
4045f6:	3b 0d 38 fb 41 00    	cmp    0x41fb38,%ecx
4045fc:	74 12                	je     0x404610
4045fe:	8b 0d 50 fb 41 00    	mov    0x41fb50,%ecx
404604:	85 48 70             	test   %ecx,0x70(%eax)
404607:	75 07                	jne    0x404610
404609:	e8 16 0f 00 00       	call   0x405524
40460e:	89 06                	mov    %eax,(%esi)
404610:	8b 46 04             	mov    0x4(%esi),%eax
404613:	3b 05 58 f9 41 00    	cmp    0x41f958,%eax
404619:	74 16                	je     0x404631
40461b:	8b 46 08             	mov    0x8(%esi),%eax
40461e:	8b 0d 50 fb 41 00    	mov    0x41fb50,%ecx
404624:	85 48 70             	test   %ecx,0x70(%eax)
404627:	75 08                	jne    0x404631
404629:	e8 b8 02 00 00       	call   0x4048e6
40462e:	89 46 04             	mov    %eax,0x4(%esi)
404631:	8b 46 08             	mov    0x8(%esi),%eax
404634:	f6 40 70 02          	testb  $0x2,0x70(%eax)
404638:	75 14                	jne    0x40464e
40463a:	83 48 70 02          	orl    $0x2,0x70(%eax)
40463e:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
404642:	eb 0a                	jmp    0x40464e
404644:	8b 08                	mov    (%eax),%ecx
404646:	89 0e                	mov    %ecx,(%esi)
404648:	8b 40 04             	mov    0x4(%eax),%eax
40464b:	89 46 04             	mov    %eax,0x4(%esi)
40464e:	8b c6                	mov    %esi,%eax
404650:	5e                   	pop    %esi
404651:	5d                   	pop    %ebp
404652:	c2 04 00             	ret    $0x4
404655:	8b ff                	mov    %edi,%edi
404657:	55                   	push   %ebp
404658:	8b ec                	mov    %esp,%ebp
40465a:	83 ec 10             	sub    $0x10,%esp
40465d:	ff 75 08             	push   0x8(%ebp)
404660:	8d 4d f0             	lea    -0x10(%ebp),%ecx
404663:	e8 66 ff ff ff       	call   0x4045ce
404668:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
40466c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40466f:	8a 55 14             	mov    0x14(%ebp),%dl
404672:	84 54 01 1d          	test   %dl,0x1d(%ecx,%eax,1)
404676:	75 1e                	jne    0x404696
404678:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40467c:	74 12                	je     0x404690
40467e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404681:	8b 89 c8 00 00 00    	mov    0xc8(%ecx),%ecx
404687:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
40468b:	23 45 10             	and    0x10(%ebp),%eax
40468e:	eb 02                	jmp    0x404692
404690:	33 c0                	xor    %eax,%eax
404692:	85 c0                	test   %eax,%eax
404694:	74 03                	je     0x404699
404696:	33 c0                	xor    %eax,%eax
404698:	40                   	inc    %eax
404699:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40469d:	74 07                	je     0x4046a6
40469f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4046a2:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4046a6:	c9                   	leave
4046a7:	c3                   	ret
4046a8:	8b ff                	mov    %edi,%edi
4046aa:	55                   	push   %ebp
4046ab:	8b ec                	mov    %esp,%ebp
4046ad:	6a 04                	push   $0x4
4046af:	6a 00                	push   $0x0
4046b1:	ff 75 08             	push   0x8(%ebp)
4046b4:	6a 00                	push   $0x0
4046b6:	e8 9a ff ff ff       	call   0x404655
4046bb:	83 c4 10             	add    $0x10,%esp
4046be:	5d                   	pop    %ebp
4046bf:	c3                   	ret
4046c0:	2d a4 03 00 00       	sub    $0x3a4,%eax
4046c5:	74 22                	je     0x4046e9
4046c7:	83 e8 04             	sub    $0x4,%eax
4046ca:	74 17                	je     0x4046e3
4046cc:	83 e8 0d             	sub    $0xd,%eax
4046cf:	74 0c                	je     0x4046dd
4046d1:	48                   	dec    %eax
4046d2:	74 03                	je     0x4046d7
4046d4:	33 c0                	xor    %eax,%eax
4046d6:	c3                   	ret
4046d7:	b8 04 04 00 00       	mov    $0x404,%eax
4046dc:	c3                   	ret
4046dd:	b8 12 04 00 00       	mov    $0x412,%eax
4046e2:	c3                   	ret
4046e3:	b8 04 08 00 00       	mov    $0x804,%eax
4046e8:	c3                   	ret
4046e9:	b8 11 04 00 00       	mov    $0x411,%eax
4046ee:	c3                   	ret
4046ef:	8b ff                	mov    %edi,%edi
4046f1:	56                   	push   %esi
4046f2:	57                   	push   %edi
4046f3:	8b f0                	mov    %eax,%esi
4046f5:	68 01 01 00 00       	push   $0x101
4046fa:	33 ff                	xor    %edi,%edi
4046fc:	8d 46 1c             	lea    0x1c(%esi),%eax
4046ff:	57                   	push   %edi
404700:	50                   	push   %eax
404701:	e8 3a 27 00 00       	call   0x406e40
404706:	33 c0                	xor    %eax,%eax
404708:	0f b7 c8             	movzwl %ax,%ecx
40470b:	8b c1                	mov    %ecx,%eax
40470d:	89 7e 04             	mov    %edi,0x4(%esi)
404710:	89 7e 08             	mov    %edi,0x8(%esi)
404713:	89 7e 0c             	mov    %edi,0xc(%esi)
404716:	c1 e1 10             	shl    $0x10,%ecx
404719:	0b c1                	or     %ecx,%eax
40471b:	8d 7e 10             	lea    0x10(%esi),%edi
40471e:	ab                   	stos   %eax,%es:(%edi)
40471f:	ab                   	stos   %eax,%es:(%edi)
404720:	ab                   	stos   %eax,%es:(%edi)
404721:	b9 30 f5 41 00       	mov    $0x41f530,%ecx
404726:	83 c4 0c             	add    $0xc,%esp
404729:	8d 46 1c             	lea    0x1c(%esi),%eax
40472c:	2b ce                	sub    %esi,%ecx
40472e:	bf 01 01 00 00       	mov    $0x101,%edi
404733:	8a 14 01             	mov    (%ecx,%eax,1),%dl
404736:	88 10                	mov    %dl,(%eax)
404738:	40                   	inc    %eax
404739:	4f                   	dec    %edi
40473a:	75 f7                	jne    0x404733
40473c:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
404742:	be 00 01 00 00       	mov    $0x100,%esi