447455:	5f                   	pop    %edi
447456:	8b c3                	mov    %ebx,%eax
447458:	5b                   	pop    %ebx
447459:	5d                   	pop    %ebp
44745a:	c2 04 00             	ret    $0x4
44745d:	55                   	push   %ebp
44745e:	8b ec                	mov    %esp,%ebp
447460:	56                   	push   %esi
447461:	8b f1                	mov    %ecx,%esi
447463:	80 7e 04 01          	cmpb   $0x1,0x4(%esi)
447467:	7f 2d                	jg     0x447496
447469:	83 3e 00             	cmpl   $0x0,(%esi)
44746c:	8b 45 08             	mov    0x8(%ebp),%eax
44746f:	74 1f                	je     0x447490
447471:	83 f8 02             	cmp    $0x2,%eax
447474:	74 1a                	je     0x447490
447476:	83 f8 03             	cmp    $0x3,%eax
447479:	74 15                	je     0x447490
44747b:	85 c0                	test   %eax,%eax
44747d:	74 17                	je     0x447496
44747f:	50                   	push   %eax
447480:	e8 75 51 00 00       	call   0x44c5fa
447485:	59                   	pop    %ecx
447486:	50                   	push   %eax
447487:	8b ce                	mov    %esi,%ecx
447489:	e8 e9 00 00 00       	call   0x447577
44748e:	eb 06                	jmp    0x447496
447490:	50                   	push   %eax
447491:	e8 e8 fc ff ff       	call   0x44717e
447496:	8b c6                	mov    %esi,%eax
447498:	5e                   	pop    %esi
447499:	5d                   	pop    %ebp
44749a:	c2 04 00             	ret    $0x4
44749d:	55                   	push   %ebp
44749e:	8b ec                	mov    %esp,%ebp
4474a0:	56                   	push   %esi
4474a1:	8b f1                	mov    %ecx,%esi
4474a3:	83 3e 09             	cmpl   $0x9,(%esi)
4474a6:	74 38                	je     0x4474e0
4474a8:	57                   	push   %edi
4474a9:	8b 7d 08             	mov    0x8(%ebp),%edi
4474ac:	83 3f 00             	cmpl   $0x0,(%edi)
4474af:	74 2e                	je     0x4474df
4474b1:	6a 00                	push   $0x0
4474b3:	6a 08                	push   $0x8
4474b5:	b9 e8 b3 4b 00       	mov    $0x4bb3e8,%ecx
4474ba:	e8 77 2c 00 00       	call   0x44a136
4474bf:	8b d0                	mov    %eax,%edx
4474c1:	85 d2                	test   %edx,%edx
4474c3:	74 0c                	je     0x4474d1
4474c5:	8b 0f                	mov    (%edi),%ecx
4474c7:	89 0a                	mov    %ecx,(%edx)
4474c9:	8b 4f 04             	mov    0x4(%edi),%ecx
4474cc:	89 4a 04             	mov    %ecx,0x4(%edx)
4474cf:	eb 02                	jmp    0x4474d3
4474d1:	33 d2                	xor    %edx,%edx
4474d3:	85 d2                	test   %edx,%edx
4474d5:	74 08                	je     0x4474df
4474d7:	ff 06                	incl   (%esi)
4474d9:	8b 06                	mov    (%esi),%eax
4474db:	89 54 86 04          	mov    %edx,0x4(%esi,%eax,4)
4474df:	5f                   	pop    %edi
4474e0:	8b c6                	mov    %esi,%eax
4474e2:	5e                   	pop    %esi
4474e3:	5d                   	pop    %ebp
4474e4:	c2 04 00             	ret    $0x4
4474e7:	55                   	push   %ebp
4474e8:	8b ec                	mov    %esp,%ebp
4474ea:	80 79 04 03          	cmpb   $0x3,0x4(%ecx)
4474ee:	74 0d                	je     0x4474fd
4474f0:	8b 45 08             	mov    0x8(%ebp),%eax
4474f3:	8a 40 04             	mov    0x4(%eax),%al
4474f6:	3c 01                	cmp    $0x1,%al
4474f8:	7e 03                	jle    0x4474fd
4474fa:	88 41 04             	mov    %al,0x4(%ecx)
4474fd:	8b c1                	mov    %ecx,%eax
4474ff:	5d                   	pop    %ebp
447500:	c2 04 00             	ret    $0x4
447503:	55                   	push   %ebp
447504:	8b ec                	mov    %esp,%ebp
447506:	8b 45 08             	mov    0x8(%ebp),%eax
447509:	89 01                	mov    %eax,(%ecx)
44750b:	8b 45 0c             	mov    0xc(%ebp),%eax
44750e:	89 41 04             	mov    %eax,0x4(%ecx)
447511:	33 c0                	xor    %eax,%eax
447513:	89 41 10             	mov    %eax,0x10(%ecx)
447516:	89 41 08             	mov    %eax,0x8(%ecx)
447519:	89 41 0c             	mov    %eax,0xc(%ecx)
44751c:	5d                   	pop    %ebp
44751d:	c2 08 00             	ret    $0x8
447520:	57                   	push   %edi
447521:	8b f9                	mov    %ecx,%edi
447523:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
447527:	74 2d                	je     0x447556
447529:	8b 47 08             	mov    0x8(%edi),%eax
44752c:	89 47 0c             	mov    %eax,0xc(%edi)
44752f:	85 c0                	test   %eax,%eax
447531:	74 23                	je     0x447556
447533:	56                   	push   %esi
447534:	8b 4f 0c             	mov    0xc(%edi),%ecx
447537:	8b 77 04             	mov    0x4(%edi),%esi
44753a:	51                   	push   %ecx
44753b:	8b 01                	mov    (%ecx),%eax
44753d:	8b ce                	mov    %esi,%ecx
44753f:	89 47 08             	mov    %eax,0x8(%edi)
447542:	ff 15 54 43 49 00    	call   *0x494354
447548:	ff d6                	call   *%esi
44754a:	8b 47 08             	mov    0x8(%edi),%eax
44754d:	89 47 0c             	mov    %eax,0xc(%edi)
447550:	59                   	pop    %ecx
447551:	85 c0                	test   %eax,%eax
447553:	75 df                	jne    0x447534
447555:	5e                   	pop    %esi
447556:	5f                   	pop    %edi
447557:	c3                   	ret
447558:	55                   	push   %ebp
447559:	8b ec                	mov    %esp,%ebp
44755b:	8b 45 08             	mov    0x8(%ebp),%eax
44755e:	8b 0d d4 b3 4b 00    	mov    0x4bb3d4,%ecx
447564:	f7 d1                	not    %ecx
447566:	8b 04 85 c0 b0 49 00 	mov    0x49b0c0(,%eax,4),%eax
44756d:	f6 c1 01             	test   $0x1,%cl
447570:	75 03                	jne    0x447575
447572:	83 c0 02             	add    $0x2,%eax
447575:	5d                   	pop    %ebp
447576:	c3                   	ret
447577:	55                   	push   %ebp
447578:	8b ec                	mov    %esp,%ebp
44757a:	56                   	push   %esi
44757b:	57                   	push   %edi
44757c:	8b 7d 08             	mov    0x8(%ebp),%edi
44757f:	8b f1                	mov    %ecx,%esi
447581:	85 ff                	test   %edi,%edi
447583:	74 2e                	je     0x4475b3
447585:	6a 00                	push   $0x0
447587:	6a 10                	push   $0x10
447589:	b9 e8 b3 4b 00       	mov    $0x4bb3e8,%ecx
44758e:	e8 a3 2b 00 00       	call   0x44a136
447593:	85 c0                	test   %eax,%eax
447595:	74 14                	je     0x4475ab
447597:	8b 0e                	mov    (%esi),%ecx
447599:	83 48 0c ff          	orl    $0xffffffff,0xc(%eax)
44759d:	c7 00 78 bc 49 00    	movl   $0x49bc78,(%eax)
4475a3:	89 48 04             	mov    %ecx,0x4(%eax)
4475a6:	89 78 08             	mov    %edi,0x8(%eax)
4475a9:	eb 02                	jmp    0x4475ad
4475ab:	33 c0                	xor    %eax,%eax
4475ad:	89 06                	mov    %eax,(%esi)
4475af:	85 c0                	test   %eax,%eax
4475b1:	75 04                	jne    0x4475b7
4475b3:	c6 46 04 03          	movb   $0x3,0x4(%esi)
4475b7:	5f                   	pop    %edi
4475b8:	5e                   	pop    %esi
4475b9:	5d                   	pop    %ebp
4475ba:	c2 04 00             	ret    $0x4
4475bd:	55                   	push   %ebp
4475be:	8b ec                	mov    %esp,%ebp
4475c0:	81 ec 90 00 00 00    	sub    $0x90,%esp
4475c6:	a1 cc b3 4b 00       	mov    0x4bb3cc,%eax
4475cb:	2b 05 d0 b3 4b 00    	sub    0x4bb3d0,%eax
4475d1:	53                   	push   %ebx
4475d2:	56                   	push   %esi
4475d3:	57                   	push   %edi
4475d4:	33 ff                	xor    %edi,%edi
4475d6:	89 45 94             	mov    %eax,-0x6c(%ebp)
4475d9:	89 7d f8             	mov    %edi,-0x8(%ebp)
4475dc:	89 7d fc             	mov    %edi,-0x4(%ebp)
4475df:	e8 15 47 00 00       	call   0x44bcf9
4475e4:	8b 75 0c             	mov    0xc(%ebp),%esi
4475e7:	8b d8                	mov    %eax,%ebx
4475e9:	33 c0                	xor    %eax,%eax
4475eb:	40                   	inc    %eax
4475ec:	8b 0e                	mov    (%esi),%ecx
4475ee:	85 c9                	test   %ecx,%ecx
4475f0:	74 0c                	je     0x4475fe
4475f2:	f7 46 04 00 02 00 00 	testl  $0x200,0x4(%esi)
4475f9:	89 45 ac             	mov    %eax,-0x54(%ebp)
4475fc:	75 03                	jne    0x447601
4475fe:	89 7d ac             	mov    %edi,-0x54(%ebp)
447601:	81 fb ff ff 00 00    	cmp    $0xffff,%ebx
447607:	75 11                	jne    0x44761a
447609:	8b 45 08             	mov    0x8(%ebp),%eax
44760c:	89 78 04             	mov    %edi,0x4(%eax)
44760f:	c6 40 04 02          	movb   $0x2,0x4(%eax)
447613:	89 38                	mov    %edi,(%eax)
447615:	e9 7b 0c 00 00       	jmp    0x448295
44761a:	81 fb fe ff 00 00    	cmp    $0xfffe,%ebx
447620:	75 15                	jne    0x447637
447622:	56                   	push   %esi
447623:	50                   	push   %eax
447624:	ff 75 08             	push   0x8(%ebp)
447627:	e8 0e fc ff ff       	call   0x44723a
44762c:	83 c4 0c             	add    $0xc,%esp
44762f:	8b 45 08             	mov    0x8(%ebp),%eax
447632:	e9 5e 0c 00 00       	jmp    0x448295
447637:	81 fb fd ff 00 00    	cmp    $0xfffd,%ebx
44763d:	75 0d                	jne    0x44764c
44763f:	8b 45 08             	mov    0x8(%ebp),%eax
447642:	89 08                	mov    %ecx,(%eax)
447644:	8b 4e 04             	mov    0x4(%esi),%ecx
447647:	e9 46 0c 00 00       	jmp    0x448292
44764c:	8b f3                	mov    %ebx,%esi
44764e:	81 e6 00 80 00 00    	and    $0x8000,%esi
447654:	89 75 b0             	mov    %esi,-0x50(%ebp)
447657:	0f 84 96 06 00 00    	je     0x447cf3
44765d:	8b d3                	mov    %ebx,%edx
44765f:	8b c3                	mov    %ebx,%eax
447661:	81 e2 00 18 00 00    	and    $0x1800,%edx
447667:	8b cb                	mov    %ebx,%ecx
447669:	25 00 10 00 00       	and    $0x1000,%eax
44766e:	89 55 dc             	mov    %edx,-0x24(%ebp)
447671:	81 e1 00 04 00 00    	and    $0x400,%ecx
447677:	89 45 ec             	mov    %eax,-0x14(%ebp)
44767a:	89 4d c8             	mov    %ecx,-0x38(%ebp)
44767d:	81 fa 00 08 00 00    	cmp    $0x800,%edx
447683:	75 05                	jne    0x44768a
447685:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
447688:	eb 09                	jmp    0x447693
44768a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
44768d:	89 4d c8             	mov    %ecx,-0x38(%ebp)
447690:	89 45 ec             	mov    %eax,-0x14(%ebp)
447693:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
447696:	74 1b                	je     0x4476b3
447698:	89 45 ec             	mov    %eax,-0x14(%ebp)
44769b:	8b c3                	mov    %ebx,%eax
44769d:	25 00 1b 00 00       	and    $0x1b00,%eax
4476a2:	89 4d c8             	mov    %ecx,-0x38(%ebp)
4476a5:	3d 00 10 00 00       	cmp    $0x1000,%eax
4476aa:	0f 84 43 06 00 00    	je     0x447cf3
4476b0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4476b3:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4476b6:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4476b9:	81 fa 00 08 00 00    	cmp    $0x800,%edx
4476bf:	74 03                	je     0x4476c4
4476c1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4476c4:	8b 45 d8             	mov    -0x28(%ebp),%eax
4476c7:	25 00 1b 00 00       	and    $0x1b00,%eax
4476cc:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
4476cf:	74 16                	je     0x4476e7
4476d1:	3d 00 11 00 00       	cmp    $0x1100,%eax
4476d6:	0f 84 17 06 00 00    	je     0x447cf3
4476dc:	3d 00 12 00 00       	cmp    $0x1200,%eax
4476e1:	0f 84 0c 06 00 00    	je     0x447cf3
4476e7:	f7 c3 00 40 00 00    	test   $0x4000,%ebx
4476ed:	74 61                	je     0x447750
4476ef:	8b 0d d4 b3 4b 00    	mov    0x4bb3d4,%ecx
4476f5:	c1 e9 02             	shr    $0x2,%ecx
4476f8:	0b 0d d4 b3 4b 00    	or     0x4bb3d4,%ecx
4476fe:	d1 e9                	shr    $1,%ecx
447700:	f7 d1                	not    %ecx
447702:	f6 c1 01             	test   $0x1,%cl
447705:	74 30                	je     0x447737
447707:	8d 45 b4             	lea    -0x4c(%ebp),%eax
44770a:	50                   	push   %eax
44770b:	e8 58 10 00 00       	call   0x448768
447710:	59                   	pop    %ecx
447711:	6a 20                	push   $0x20
447713:	8d 4d 98             	lea    -0x68(%ebp),%ecx
447716:	8b f0                	mov    %eax,%esi
447718:	e8 a8 f6 ff ff       	call   0x446dc5
44771d:	56                   	push   %esi
44771e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
447721:	51                   	push   %ecx
447722:	8b c8                	mov    %eax,%ecx
447724:	e8 33 fb ff ff       	call   0x44725c
447729:	8b 45 f0             	mov    -0x10(%ebp),%eax
44772c:	89 45 f8             	mov    %eax,-0x8(%ebp)
44772f:	8b 45 f4             	mov    -0xc(%ebp),%eax
447732:	89 45 fc             	mov    %eax,-0x4(%ebp)
447735:	eb 13                	jmp    0x44774a
447737:	8d 45 f0             	lea    -0x10(%ebp),%eax
44773a:	50                   	push   %eax
44773b:	e8 28 10 00 00       	call   0x448768
447740:	59                   	pop    %ecx
447741:	50                   	push   %eax
447742:	8d 4d f8             	lea    -0x8(%ebp),%ecx
447745:	e8 9d fd ff ff       	call   0x4474e7
44774a:	8b 55 dc             	mov    -0x24(%ebp),%edx
44774d:	8b 4d c8             	mov    -0x38(%ebp),%ecx
447750:	8b 45 ec             	mov    -0x14(%ebp),%eax
447753:	8b f1                	mov    %ecx,%esi
447755:	81 fa 00 08 00 00    	cmp    $0x800,%edx
44775b:	74 02                	je     0x44775f
44775d:	8b f0                	mov    %eax,%esi
44775f:	85 f6                	test   %esi,%esi
447761:	0f 84 0a 01 00 00    	je     0x447871
447767:	81 fa 00 18 00 00    	cmp    $0x1800,%edx
44776d:	0f 85 fe 00 00 00    	jne    0x447871
447773:	8b 4d 0c             	mov    0xc(%ebp),%ecx
447776:	8d 45 b4             	lea    -0x4c(%ebp),%eax
447779:	6a 7b                	push   $0x7b
44777b:	50                   	push   %eax
44777c:	e8 fd fa ff ff       	call   0x44727e
447781:	8b f0                	mov    %eax,%esi
447783:	8d 45 f0             	lea    -0x10(%ebp),%eax
447786:	57                   	push   %edi
447787:	50                   	push   %eax
447788:	e8 3b 1f 00 00       	call   0x4496c8
44778d:	59                   	pop    %ecx
44778e:	59                   	pop    %ecx
44778f:	8d 45 f0             	lea    -0x10(%ebp),%eax
447792:	8b ce                	mov    %esi,%ecx
447794:	50                   	push   %eax
447795:	8d 45 98             	lea    -0x68(%ebp),%eax
447798:	50                   	push   %eax
447799:	e8 be fa ff ff       	call   0x44725c
44779e:	50                   	push   %eax
44779f:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4477a2:	e8 5f fb ff ff       	call   0x447306
4477a7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4477aa:	50                   	push   %eax
4477ab:	e8 35 49 00 00       	call   0x44c0e5
4477b0:	be 00 10 00 00       	mov    $0x1000,%esi
4477b5:	59                   	pop    %ecx
4477b6:	85 35 d4 b3 4b 00    	test   %esi,0x4bb3d4
4477bc:	75 33                	jne    0x4477f1
4477be:	6a 2c                	push   $0x2c
4477c0:	8d 4d 98             	lea    -0x68(%ebp),%ecx
4477c3:	e8 fd f5 ff ff       	call   0x446dc5
4477c8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4477cb:	51                   	push   %ecx
4477cc:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4477cf:	51                   	push   %ecx
4477d0:	8b c8                	mov    %eax,%ecx
4477d2:	e8 85 fa ff ff       	call   0x44725c
4477d7:	68 3c b9 49 00       	push   $0x49b93c
4477dc:	8d 45 a0             	lea    -0x60(%ebp),%eax
4477df:	50                   	push   %eax
4477e0:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4477e3:	e8 da fa ff ff       	call   0x4472c2
4477e8:	50                   	push   %eax
4477e9:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4477ec:	e8 15 fb ff ff       	call   0x447306
4477f1:	68 40 b9 49 00       	push   $0x49b940
4477f6:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4477f9:	e8 fe fb ff ff       	call   0x4473fc
4477fe:	8d 45 f0             	lea    -0x10(%ebp),%eax
447801:	50                   	push   %eax
447802:	e8 cb 14 00 00       	call   0x448cd2
447807:	59                   	pop    %ecx
447808:	8b 0d d4 b3 4b 00    	mov    0x4bb3d4,%ecx
44780e:	8b c1                	mov    %ecx,%eax
447810:	d1 e8                	shr    $1,%eax
447812:	f7 d0                	not    %eax
447814:	a8 01                	test   $0x1,%al
447816:	0f 84 cf 04 00 00    	je     0x447ceb
44781c:	8b c1                	mov    %ecx,%eax
44781e:	c1 e8 04             	shr    $0x4,%eax
447821:	f7 d0                	not    %eax
447823:	a8 01                	test   $0x1,%al