438467:	c9                   	leave
438468:	c3                   	ret
438469:	8b ff                	mov    %edi,%edi
43846b:	55                   	push   %ebp
43846c:	8b ec                	mov    %esp,%ebp
43846e:	51                   	push   %ecx
43846f:	51                   	push   %ecx
438470:	8b 45 0c             	mov    0xc(%ebp),%eax
438473:	57                   	push   %edi
438474:	8b 7d 08             	mov    0x8(%ebp),%edi
438477:	85 c0                	test   %eax,%eax
438479:	74 02                	je     0x43847d
43847b:	89 38                	mov    %edi,(%eax)
43847d:	85 ff                	test   %edi,%edi
43847f:	75 17                	jne    0x438498
438481:	e8 22 c5 ff ff       	call   0x4349a8
438486:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43848c:	e8 dd be ff ff       	call   0x43436e
438491:	33 c0                	xor    %eax,%eax
438493:	e9 90 01 00 00       	jmp    0x438628
438498:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
43849c:	74 0c                	je     0x4384aa
43849e:	83 7d 10 02          	cmpl   $0x2,0x10(%ebp)
4384a2:	7c dd                	jl     0x438481
4384a4:	83 7d 10 24          	cmpl   $0x24,0x10(%ebp)
4384a8:	7f d7                	jg     0x438481
4384aa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4384ae:	53                   	push   %ebx
4384af:	56                   	push   %esi
4384b0:	6a 08                	push   $0x8
4384b2:	5b                   	pop    %ebx
4384b3:	0f b7 37             	movzwl (%edi),%esi
4384b6:	53                   	push   %ebx
4384b7:	56                   	push   %esi
4384b8:	83 c7 02             	add    $0x2,%edi
4384bb:	e8 25 a3 ff ff       	call   0x4327e5
4384c0:	59                   	pop    %ecx
4384c1:	59                   	pop    %ecx
4384c2:	85 c0                	test   %eax,%eax
4384c4:	75 ed                	jne    0x4384b3
4384c6:	66 83 fe 2d          	cmp    $0x2d,%si
4384ca:	75 06                	jne    0x4384d2
4384cc:	83 4d 14 02          	orl    $0x2,0x14(%ebp)
4384d0:	eb 06                	jmp    0x4384d8
4384d2:	66 83 fe 2b          	cmp    $0x2b,%si
4384d6:	75 06                	jne    0x4384de
4384d8:	0f b7 37             	movzwl (%edi),%esi
4384db:	83 c7 02             	add    $0x2,%edi
4384de:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4384e2:	75 2d                	jne    0x438511
4384e4:	56                   	push   %esi
4384e5:	e8 46 9a 00 00       	call   0x441f30
4384ea:	59                   	pop    %ecx
4384eb:	85 c0                	test   %eax,%eax
4384ed:	74 09                	je     0x4384f8
4384ef:	c7 45 10 0a 00 00 00 	movl   $0xa,0x10(%ebp)
4384f6:	eb 3e                	jmp    0x438536
4384f8:	0f b7 07             	movzwl (%edi),%eax
4384fb:	83 f8 78             	cmp    $0x78,%eax
4384fe:	74 0a                	je     0x43850a
438500:	83 f8 58             	cmp    $0x58,%eax
438503:	74 05                	je     0x43850a
438505:	89 5d 10             	mov    %ebx,0x10(%ebp)
438508:	eb 2c                	jmp    0x438536
43850a:	c7 45 10 10 00 00 00 	movl   $0x10,0x10(%ebp)
438511:	83 7d 10 10          	cmpl   $0x10,0x10(%ebp)
438515:	75 1f                	jne    0x438536
438517:	56                   	push   %esi
438518:	e8 13 9a 00 00       	call   0x441f30
43851d:	59                   	pop    %ecx
43851e:	85 c0                	test   %eax,%eax
438520:	75 14                	jne    0x438536
438522:	0f b7 07             	movzwl (%edi),%eax
438525:	83 f8 78             	cmp    $0x78,%eax
438528:	74 05                	je     0x43852f
43852a:	83 f8 58             	cmp    $0x58,%eax
43852d:	75 07                	jne    0x438536
43852f:	0f b7 77 02          	movzwl 0x2(%edi),%esi
438533:	83 c7 04             	add    $0x4,%edi
438536:	83 c8 ff             	or     $0xffffffff,%eax
438539:	33 d2                	xor    %edx,%edx
43853b:	f7 75 10             	divl   0x10(%ebp)
43853e:	89 55 f8             	mov    %edx,-0x8(%ebp)
438541:	8b d8                	mov    %eax,%ebx
438543:	56                   	push   %esi
438544:	e8 e7 99 00 00       	call   0x441f30
438549:	59                   	pop    %ecx
43854a:	83 f8 ff             	cmp    $0xffffffff,%eax
43854d:	75 29                	jne    0x438578
43854f:	6a 41                	push   $0x41
438551:	58                   	pop    %eax
438552:	66 3b c6             	cmp    %si,%ax
438555:	77 06                	ja     0x43855d
438557:	66 83 fe 5a          	cmp    $0x5a,%si
43855b:	76 09                	jbe    0x438566
43855d:	8d 46 9f             	lea    -0x61(%esi),%eax
438560:	66 83 f8 19          	cmp    $0x19,%ax
438564:	77 31                	ja     0x438597
438566:	8d 46 9f             	lea    -0x61(%esi),%eax
438569:	66 83 f8 19          	cmp    $0x19,%ax
43856d:	0f b7 c6             	movzwl %si,%eax
438570:	77 03                	ja     0x438575
438572:	83 e8 20             	sub    $0x20,%eax
438575:	83 c0 c9             	add    $0xffffffc9,%eax
438578:	3b 45 10             	cmp    0x10(%ebp),%eax
43857b:	73 1a                	jae    0x438597
43857d:	83 4d 14 08          	orl    $0x8,0x14(%ebp)
438581:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
438584:	72 2a                	jb     0x4385b0
438586:	75 05                	jne    0x43858d
438588:	3b 45 f8             	cmp    -0x8(%ebp),%eax
43858b:	76 23                	jbe    0x4385b0
43858d:	83 4d 14 04          	orl    $0x4,0x14(%ebp)
438591:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
438595:	75 25                	jne    0x4385bc
438597:	8b 45 14             	mov    0x14(%ebp),%eax
43859a:	83 ef 02             	sub    $0x2,%edi
43859d:	a8 08                	test   $0x8,%al
43859f:	75 26                	jne    0x4385c7
4385a1:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4385a5:	74 03                	je     0x4385aa
4385a7:	8b 7d 08             	mov    0x8(%ebp),%edi
4385aa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4385ae:	eb 61                	jmp    0x438611
4385b0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4385b3:	0f af 4d 10          	imul   0x10(%ebp),%ecx
4385b7:	03 c8                	add    %eax,%ecx
4385b9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4385bc:	0f b7 37             	movzwl (%edi),%esi
4385bf:	83 c7 02             	add    $0x2,%edi
4385c2:	e9 7c ff ff ff       	jmp    0x438543
4385c7:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
4385cc:	a8 04                	test   $0x4,%al
4385ce:	75 1b                	jne    0x4385eb
4385d0:	a8 01                	test   $0x1,%al
4385d2:	75 3d                	jne    0x438611
4385d4:	83 e0 02             	and    $0x2,%eax
4385d7:	74 09                	je     0x4385e2
4385d9:	81 7d fc 00 00 00 80 	cmpl   $0x80000000,-0x4(%ebp)
4385e0:	77 09                	ja     0x4385eb
4385e2:	85 c0                	test   %eax,%eax
4385e4:	75 2b                	jne    0x438611
4385e6:	39 75 fc             	cmp    %esi,-0x4(%ebp)
4385e9:	76 26                	jbe    0x438611
4385eb:	e8 b8 c3 ff ff       	call   0x4349a8
4385f0:	f6 45 14 01          	testb  $0x1,0x14(%ebp)
4385f4:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4385fa:	74 06                	je     0x438602
4385fc:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
438600:	eb 0f                	jmp    0x438611
438602:	f6 45 14 02          	testb  $0x2,0x14(%ebp)
438606:	6a 00                	push   $0x0
438608:	58                   	pop    %eax
438609:	0f 95 c0             	setne  %al
43860c:	03 c6                	add    %esi,%eax
43860e:	89 45 fc             	mov    %eax,-0x4(%ebp)
438611:	8b 45 0c             	mov    0xc(%ebp),%eax
438614:	5e                   	pop    %esi
438615:	5b                   	pop    %ebx
438616:	85 c0                	test   %eax,%eax
438618:	74 02                	je     0x43861c
43861a:	89 38                	mov    %edi,(%eax)
43861c:	f6 45 14 02          	testb  $0x2,0x14(%ebp)
438620:	74 03                	je     0x438625
438622:	f7 5d fc             	negl   -0x4(%ebp)
438625:	8b 45 fc             	mov    -0x4(%ebp),%eax
438628:	5f                   	pop    %edi
438629:	c9                   	leave
43862a:	c3                   	ret
43862b:	8b ff                	mov    %edi,%edi
43862d:	55                   	push   %ebp
43862e:	8b ec                	mov    %esp,%ebp
438630:	6a 00                	push   $0x0
438632:	ff 75 10             	push   0x10(%ebp)
438635:	ff 75 0c             	push   0xc(%ebp)
438638:	ff 75 08             	push   0x8(%ebp)
43863b:	e8 29 fe ff ff       	call   0x438469
438640:	83 c4 10             	add    $0x10,%esp
438643:	5d                   	pop    %ebp
438644:	c3                   	ret
438645:	8b ff                	mov    %edi,%edi
438647:	55                   	push   %ebp
438648:	8b ec                	mov    %esp,%ebp
43864a:	6a 00                	push   $0x0
43864c:	ff 75 10             	push   0x10(%ebp)
43864f:	ff 75 0c             	push   0xc(%ebp)
438652:	ff 75 08             	push   0x8(%ebp)
438655:	e8 0f fe ff ff       	call   0x438469
43865a:	83 c4 10             	add    $0x10,%esp
43865d:	5d                   	pop    %ebp
43865e:	c3                   	ret
43865f:	8b ff                	mov    %edi,%edi
438661:	55                   	push   %ebp
438662:	8b ec                	mov    %esp,%ebp
438664:	6a 01                	push   $0x1
438666:	ff 75 10             	push   0x10(%ebp)
438669:	ff 75 0c             	push   0xc(%ebp)
43866c:	ff 75 08             	push   0x8(%ebp)
43866f:	e8 f5 fd ff ff       	call   0x438469
438674:	83 c4 10             	add    $0x10,%esp
438677:	5d                   	pop    %ebp
438678:	c3                   	ret
438679:	8b ff                	mov    %edi,%edi
43867b:	55                   	push   %ebp
43867c:	8b ec                	mov    %esp,%ebp
43867e:	6a 01                	push   $0x1
438680:	ff 75 10             	push   0x10(%ebp)
438683:	ff 75 0c             	push   0xc(%ebp)
438686:	ff 75 08             	push   0x8(%ebp)
438689:	e8 db fd ff ff       	call   0x438469
43868e:	83 c4 10             	add    $0x10,%esp
438691:	5d                   	pop    %ebp
438692:	c3                   	ret
438693:	8b ff                	mov    %edi,%edi
438695:	55                   	push   %ebp
438696:	8b ec                	mov    %esp,%ebp
438698:	83 ec 30             	sub    $0x30,%esp
43869b:	53                   	push   %ebx
43869c:	ff 75 08             	push   0x8(%ebp)
43869f:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4386a2:	e8 43 85 ff ff       	call   0x430bea
4386a7:	8b 45 10             	mov    0x10(%ebp),%eax
4386aa:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4386ad:	33 c9                	xor    %ecx,%ecx
4386af:	3b c1                	cmp    %ecx,%eax
4386b1:	74 02                	je     0x4386b5
4386b3:	89 18                	mov    %ebx,(%eax)
4386b5:	3b d9                	cmp    %ecx,%ebx
4386b7:	75 26                	jne    0x4386df
4386b9:	e8 ea c2 ff ff       	call   0x4349a8
4386be:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4386c4:	e8 a5 bc ff ff       	call   0x43436e
4386c9:	80 7d dc 00          	cmpb   $0x0,-0x24(%ebp)
4386cd:	74 07                	je     0x4386d6
4386cf:	8b 45 d8             	mov    -0x28(%ebp),%eax
4386d2:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
4386d6:	33 c0                	xor    %eax,%eax
4386d8:	33 d2                	xor    %edx,%edx
4386da:	e9 58 02 00 00       	jmp    0x438937
4386df:	39 4d 14             	cmp    %ecx,0x14(%ebp)
4386e2:	74 0c                	je     0x4386f0
4386e4:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
4386e8:	7c cf                	jl     0x4386b9
4386ea:	83 7d 14 24          	cmpl   $0x24,0x14(%ebp)
4386ee:	7f c9                	jg     0x4386b9
4386f0:	56                   	push   %esi
4386f1:	0f b7 33             	movzwl (%ebx),%esi
4386f4:	57                   	push   %edi
4386f5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4386f8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4386fb:	8d 7b 02             	lea    0x2(%ebx),%edi
4386fe:	eb 06                	jmp    0x438706
438700:	0f b7 37             	movzwl (%edi),%esi
438703:	83 c7 02             	add    $0x2,%edi
438706:	6a 08                	push   $0x8
438708:	56                   	push   %esi
438709:	e8 d7 a0 ff ff       	call   0x4327e5
43870e:	59                   	pop    %ecx
43870f:	59                   	pop    %ecx
438710:	85 c0                	test   %eax,%eax
438712:	75 ec                	jne    0x438700
438714:	66 83 fe 2d          	cmp    $0x2d,%si
438718:	75 06                	jne    0x438720
43871a:	83 4d 18 02          	orl    $0x2,0x18(%ebp)
43871e:	eb 06                	jmp    0x438726
438720:	66 83 fe 2b          	cmp    $0x2b,%si
438724:	75 06                	jne    0x43872c
438726:	0f b7 37             	movzwl (%edi),%esi
438729:	83 c7 02             	add    $0x2,%edi
43872c:	8b 45 14             	mov    0x14(%ebp),%eax
43872f:	85 c0                	test   %eax,%eax
438731:	0f 88 e4 01 00 00    	js     0x43891b
438737:	83 f8 01             	cmp    $0x1,%eax
43873a:	0f 84 db 01 00 00    	je     0x43891b
438740:	83 f8 24             	cmp    $0x24,%eax
438743:	0f 8f d2 01 00 00    	jg     0x43891b
438749:	6a 10                	push   $0x10
43874b:	5b                   	pop    %ebx
43874c:	85 c0                	test   %eax,%eax
43874e:	75 2d                	jne    0x43877d
438750:	56                   	push   %esi
438751:	e8 da 97 00 00       	call   0x441f30
438756:	59                   	pop    %ecx
438757:	85 c0                	test   %eax,%eax
438759:	74 09                	je     0x438764
43875b:	c7 45 14 0a 00 00 00 	movl   $0xa,0x14(%ebp)
438762:	eb 3d                	jmp    0x4387a1
438764:	0f b7 07             	movzwl (%edi),%eax
438767:	83 f8 78             	cmp    $0x78,%eax
43876a:	74 0e                	je     0x43877a
43876c:	83 f8 58             	cmp    $0x58,%eax
43876f:	74 09                	je     0x43877a
438771:	c7 45 14 08 00 00 00 	movl   $0x8,0x14(%ebp)
438778:	eb 27                	jmp    0x4387a1
43877a:	89 5d 14             	mov    %ebx,0x14(%ebp)
43877d:	39 5d 14             	cmp    %ebx,0x14(%ebp)
438780:	75 1f                	jne    0x4387a1
438782:	56                   	push   %esi
438783:	e8 a8 97 00 00       	call   0x441f30
438788:	59                   	pop    %ecx
438789:	85 c0                	test   %eax,%eax
43878b:	75 14                	jne    0x4387a1
43878d:	0f b7 07             	movzwl (%edi),%eax
438790:	83 f8 78             	cmp    $0x78,%eax
438793:	74 05                	je     0x43879a
438795:	83 f8 58             	cmp    $0x58,%eax
438798:	75 07                	jne    0x4387a1
43879a:	0f b7 77 02          	movzwl 0x2(%edi),%esi
43879e:	83 c7 04             	add    $0x4,%edi
4387a1:	8b 45 14             	mov    0x14(%ebp),%eax
4387a4:	99                   	cltd
4387a5:	52                   	push   %edx
4387a6:	50                   	push   %eax
4387a7:	6a ff                	push   $0xffffffff
4387a9:	6a ff                	push   $0xffffffff
4387ab:	89 45 e0             	mov    %eax,-0x20(%ebp)
4387ae:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4387b1:	e8 aa 6a 00 00       	call   0x43f260
4387b6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4387b9:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4387bc:	89 45 f0             	mov    %eax,-0x10(%ebp)
4387bf:	89 55 f4             	mov    %edx,-0xc(%ebp)
4387c2:	56                   	push   %esi
4387c3:	e8 68 97 00 00       	call   0x441f30
4387c8:	8b d8                	mov    %eax,%ebx
4387ca:	59                   	pop    %ecx
4387cb:	83 fb ff             	cmp    $0xffffffff,%ebx
4387ce:	75 29                	jne    0x4387f9
4387d0:	6a 41                	push   $0x41
4387d2:	58                   	pop    %eax
4387d3:	66 3b c6             	cmp    %si,%ax
4387d6:	77 06                	ja     0x4387de
4387d8:	66 83 fe 5a          	cmp    $0x5a,%si
4387dc:	76 09                	jbe    0x4387e7
4387de:	8d 46 9f             	lea    -0x61(%esi),%eax
4387e1:	66 83 f8 19          	cmp    $0x19,%ax
4387e5:	77 52                	ja     0x438839
4387e7:	8d 46 9f             	lea    -0x61(%esi),%eax
4387ea:	66 83 f8 19          	cmp    $0x19,%ax
4387ee:	0f b7 c6             	movzwl %si,%eax
4387f1:	77 03                	ja     0x4387f6
4387f3:	83 e8 20             	sub    $0x20,%eax
4387f6:	8d 58 c9             	lea    -0x37(%eax),%ebx
4387f9:	3b 5d 14             	cmp    0x14(%ebp),%ebx
4387fc:	73 3b                	jae    0x438839
4387fe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
438801:	83 4d 18 08          	orl    $0x8,0x18(%ebp)
438805:	3b 4d f4             	cmp    -0xc(%ebp),%ecx
438808:	72 4e                	jb     0x438858
43880a:	77 08                	ja     0x438814