5f9456:	8b 75 14             	mov    0x14(%ebp),%esi
5f9459:	85 f6                	test   %esi,%esi
5f945b:	74 04                	je     0x5f9461
5f945d:	85 c0                	test   %eax,%eax
5f945f:	75 15                	jne    0x5f9476
5f9461:	e8 93 3b ff ff       	call   0x5ecff9
5f9466:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f946c:	e8 ae 3a ff ff       	call   0x5ecf1f
5f9471:	33 c0                	xor    %eax,%eax
5f9473:	40                   	inc    %eax
5f9474:	eb 22                	jmp    0x5f9498
5f9476:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
5f947c:	51                   	push   %ecx
5f947d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
5f9480:	51                   	push   %ecx
5f9481:	50                   	push   %eax
5f9482:	e8 9e 00 00 00       	call   0x5f9525
5f9487:	56                   	push   %esi
5f9488:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
5f948e:	51                   	push   %ecx
5f948f:	50                   	push   %eax
5f9490:	e8 fd 91 ff ff       	call   0x5f2692
5f9495:	83 c4 18             	add    $0x18,%esp
5f9498:	8b 55 10             	mov    0x10(%ebp),%edx
5f949b:	5e                   	pop    %esi
5f949c:	85 d2                	test   %edx,%edx
5f949e:	74 05                	je     0x5f94a5
5f94a0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f94a3:	89 0a                	mov    %ecx,(%edx)
5f94a5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f94a8:	33 cd                	xor    %ebp,%ecx
5f94aa:	e8 2b 80 fe ff       	call   0x5e14da
5f94af:	c9                   	leave
5f94b0:	c3                   	ret
5f94b1:	8b ff                	mov    %edi,%edi
5f94b3:	55                   	push   %ebp
5f94b4:	8b ec                	mov    %esp,%ebp
5f94b6:	81 ec 10 03 00 00    	sub    $0x310,%esp
5f94bc:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5f94c1:	33 c5                	xor    %ebp,%eax
5f94c3:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f94c6:	8b 45 08             	mov    0x8(%ebp),%eax
5f94c9:	56                   	push   %esi
5f94ca:	8b 75 14             	mov    0x14(%ebp),%esi
5f94cd:	85 f6                	test   %esi,%esi
5f94cf:	74 04                	je     0x5f94d5
5f94d1:	85 c0                	test   %eax,%eax
5f94d3:	75 15                	jne    0x5f94ea
5f94d5:	e8 1f 3b ff ff       	call   0x5ecff9
5f94da:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f94e0:	e8 3a 3a ff ff       	call   0x5ecf1f
5f94e5:	33 c0                	xor    %eax,%eax
5f94e7:	40                   	inc    %eax
5f94e8:	eb 22                	jmp    0x5f950c
5f94ea:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
5f94f0:	51                   	push   %ecx
5f94f1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
5f94f4:	51                   	push   %ecx
5f94f5:	50                   	push   %eax
5f94f6:	e8 2a 00 00 00       	call   0x5f9525
5f94fb:	56                   	push   %esi
5f94fc:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
5f9502:	51                   	push   %ecx
5f9503:	50                   	push   %eax
5f9504:	e8 f5 92 ff ff       	call   0x5f27fe
5f9509:	83 c4 18             	add    $0x18,%esp
5f950c:	8b 55 10             	mov    0x10(%ebp),%edx
5f950f:	5e                   	pop    %esi
5f9510:	85 d2                	test   %edx,%edx
5f9512:	74 05                	je     0x5f9519
5f9514:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f9517:	89 0a                	mov    %ecx,(%edx)
5f9519:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f951c:	33 cd                	xor    %ebp,%ecx
5f951e:	e8 b7 7f fe ff       	call   0x5e14da
5f9523:	c9                   	leave
5f9524:	c3                   	ret
5f9525:	8b ff                	mov    %edi,%edi
5f9527:	55                   	push   %ebp
5f9528:	8b ec                	mov    %esp,%ebp
5f952a:	83 ec 1c             	sub    $0x1c,%esp
5f952d:	53                   	push   %ebx
5f952e:	56                   	push   %esi
5f952f:	8b 75 0c             	mov    0xc(%ebp),%esi
5f9532:	8b ce                	mov    %esi,%ecx
5f9534:	57                   	push   %edi
5f9535:	e8 3d 47 ff ff       	call   0x5edc77
5f953a:	84 c0                	test   %al,%al
5f953c:	0f 84 e9 01 00 00    	je     0x5f972b
5f9542:	8b 1e                	mov    (%esi),%ebx
5f9544:	8b 7d 08             	mov    0x8(%ebp),%edi
5f9547:	89 5d ec             	mov    %ebx,-0x14(%ebp)
5f954a:	8a 0b                	mov    (%ebx),%cl
5f954c:	8d 43 01             	lea    0x1(%ebx),%eax
5f954f:	eb 05                	jmp    0x5f9556
5f9551:	8b 06                	mov    (%esi),%eax
5f9553:	8a 08                	mov    (%eax),%cl
5f9555:	40                   	inc    %eax
5f9556:	57                   	push   %edi
5f9557:	89 06                	mov    %eax,(%esi)
5f9559:	0f b6 c1             	movzbl %cl,%eax
5f955c:	6a 08                	push   $0x8
5f955e:	50                   	push   %eax
5f955f:	88 4d fb             	mov    %cl,-0x5(%ebp)
5f9562:	e8 4d 47 ff ff       	call   0x5edcb4
5f9567:	83 c4 0c             	add    $0xc,%esp
5f956a:	85 c0                	test   %eax,%eax
5f956c:	75 e3                	jne    0x5f9551
5f956e:	8b 55 10             	mov    0x10(%ebp),%edx
5f9571:	8a 4d fb             	mov    -0x5(%ebp),%cl
5f9574:	81 c2 08 03 00 00    	add    $0x308,%edx
5f957a:	80 f9 2d             	cmp    $0x2d,%cl
5f957d:	89 55 f0             	mov    %edx,-0x10(%ebp)
5f9580:	0f 94 c0             	sete   %al
5f9583:	88 02                	mov    %al,(%edx)
5f9585:	74 05                	je     0x5f958c
5f9587:	80 f9 2b             	cmp    $0x2b,%cl
5f958a:	75 0a                	jne    0x5f9596
5f958c:	8b 06                	mov    (%esi),%eax
5f958e:	8a 08                	mov    (%eax),%cl
5f9590:	40                   	inc    %eax
5f9591:	88 4d fb             	mov    %cl,-0x5(%ebp)
5f9594:	89 06                	mov    %eax,(%esi)
5f9596:	80 f9 49             	cmp    $0x49,%cl
5f9599:	0f 84 62 03 00 00    	je     0x5f9901
5f959f:	80 f9 69             	cmp    $0x69,%cl
5f95a2:	0f 84 59 03 00 00    	je     0x5f9901
5f95a8:	80 f9 4e             	cmp    $0x4e,%cl
5f95ab:	0f 84 3d 03 00 00    	je     0x5f98ee
5f95b1:	80 f9 6e             	cmp    $0x6e,%cl
5f95b4:	0f 84 34 03 00 00    	je     0x5f98ee
5f95ba:	33 db                	xor    %ebx,%ebx
5f95bc:	88 5d ff             	mov    %bl,-0x1(%ebp)
5f95bf:	80 f9 30             	cmp    $0x30,%cl
5f95c2:	75 34                	jne    0x5f95f8
5f95c4:	8b 3e                	mov    (%esi),%edi
5f95c6:	8a 07                	mov    (%edi),%al
5f95c8:	8d 57 01             	lea    0x1(%edi),%edx
5f95cb:	88 45 e8             	mov    %al,-0x18(%ebp)
5f95ce:	89 16                	mov    %edx,(%esi)
5f95d0:	3c 78                	cmp    $0x78,%al
5f95d2:	74 13                	je     0x5f95e7
5f95d4:	3c 58                	cmp    $0x58,%al
5f95d6:	74 0f                	je     0x5f95e7
5f95d8:	ff 75 e8             	push   -0x18(%ebp)
5f95db:	8b ce                	mov    %esi,%ecx
5f95dd:	e8 3e 46 ff ff       	call   0x5edc20
5f95e2:	8a 4d fb             	mov    -0x5(%ebp),%cl
5f95e5:	eb 11                	jmp    0x5f95f8
5f95e7:	8a 0a                	mov    (%edx),%cl
5f95e9:	8d 42 01             	lea    0x1(%edx),%eax
5f95ec:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
5f95f0:	88 4d fb             	mov    %cl,-0x5(%ebp)
5f95f3:	89 06                	mov    %eax,(%esi)
5f95f5:	89 7d ec             	mov    %edi,-0x14(%ebp)
5f95f8:	8b 45 10             	mov    0x10(%ebp),%eax
5f95fb:	8a eb                	mov    %bl,%ch
5f95fd:	83 c0 08             	add    $0x8,%eax
5f9600:	89 45 e8             	mov    %eax,-0x18(%ebp)
5f9603:	8b f8                	mov    %eax,%edi
5f9605:	80 f9 30             	cmp    $0x30,%cl
5f9608:	75 11                	jne    0x5f961b
5f960a:	b5 01                	mov    $0x1,%ch
5f960c:	8b 06                	mov    (%esi),%eax
5f960e:	8a 08                	mov    (%eax),%cl
5f9610:	40                   	inc    %eax
5f9611:	88 4d fb             	mov    %cl,-0x5(%ebp)
5f9614:	89 06                	mov    %eax,(%esi)
5f9616:	80 f9 30             	cmp    $0x30,%cl
5f9619:	74 f1                	je     0x5f960c
5f961b:	33 d2                	xor    %edx,%edx
5f961d:	38 55 ff             	cmp    %dl,-0x1(%ebp)
5f9620:	0f 94 c2             	sete   %dl
5f9623:	4a                   	dec    %edx
5f9624:	83 e2 06             	and    $0x6,%edx
5f9627:	83 c2 09             	add    $0x9,%edx
5f962a:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5f962d:	8a c1                	mov    %cl,%al
5f962f:	2c 30                	sub    $0x30,%al
5f9631:	3c 09                	cmp    $0x9,%al
5f9633:	77 08                	ja     0x5f963d
5f9635:	0f be c1             	movsbl %cl,%eax
5f9638:	83 e8 30             	sub    $0x30,%eax
5f963b:	eb 23                	jmp    0x5f9660
5f963d:	8a c1                	mov    %cl,%al
5f963f:	2c 61                	sub    $0x61,%al
5f9641:	3c 19                	cmp    $0x19,%al
5f9643:	77 08                	ja     0x5f964d
5f9645:	0f be c1             	movsbl %cl,%eax
5f9648:	83 e8 57             	sub    $0x57,%eax
5f964b:	eb 13                	jmp    0x5f9660
5f964d:	8a c1                	mov    %cl,%al
5f964f:	2c 41                	sub    $0x41,%al
5f9651:	3c 19                	cmp    $0x19,%al
5f9653:	77 08                	ja     0x5f965d
5f9655:	0f be c1             	movsbl %cl,%eax
5f9658:	83 e8 37             	sub    $0x37,%eax
5f965b:	eb 03                	jmp    0x5f9660
5f965d:	83 c8 ff             	or     $0xffffffff,%eax
5f9660:	3b c2                	cmp    %edx,%eax
5f9662:	77 17                	ja     0x5f967b
5f9664:	b5 01                	mov    $0x1,%ch
5f9666:	3b 7d f0             	cmp    -0x10(%ebp),%edi
5f9669:	74 03                	je     0x5f966e
5f966b:	88 07                	mov    %al,(%edi)
5f966d:	47                   	inc    %edi
5f966e:	8b 06                	mov    (%esi),%eax
5f9670:	43                   	inc    %ebx
5f9671:	8a 08                	mov    (%eax),%cl
5f9673:	40                   	inc    %eax
5f9674:	88 4d fb             	mov    %cl,-0x5(%ebp)
5f9677:	89 06                	mov    %eax,(%esi)
5f9679:	eb b2                	jmp    0x5f962d
5f967b:	8b 45 08             	mov    0x8(%ebp),%eax
5f967e:	6a 00                	push   $0x0
5f9680:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5f9683:	5b                   	pop    %ebx
5f9684:	8b 00                	mov    (%eax),%eax
5f9686:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
5f968c:	8b 00                	mov    (%eax),%eax
5f968e:	3a 08                	cmp    (%eax),%cl
5f9690:	75 7c                	jne    0x5f970e
5f9692:	8b 06                	mov    (%esi),%eax
5f9694:	8a 10                	mov    (%eax),%dl
5f9696:	40                   	inc    %eax
5f9697:	8a ca                	mov    %dl,%cl
5f9699:	88 55 fb             	mov    %dl,-0x5(%ebp)
5f969c:	89 06                	mov    %eax,(%esi)
5f969e:	3b 7d e8             	cmp    -0x18(%ebp),%edi
5f96a1:	75 1b                	jne    0x5f96be
5f96a3:	80 fa 30             	cmp    $0x30,%dl
5f96a6:	75 16                	jne    0x5f96be
5f96a8:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f96ab:	b5 01                	mov    $0x1,%ch
5f96ad:	8a 08                	mov    (%eax),%cl
5f96af:	4a                   	dec    %edx
5f96b0:	40                   	inc    %eax
5f96b1:	88 4d fb             	mov    %cl,-0x5(%ebp)
5f96b4:	89 06                	mov    %eax,(%esi)
5f96b6:	80 f9 30             	cmp    $0x30,%cl
5f96b9:	74 f2                	je     0x5f96ad
5f96bb:	89 55 f4             	mov    %edx,-0xc(%ebp)
5f96be:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5f96c1:	8a c1                	mov    %cl,%al
5f96c3:	2c 30                	sub    $0x30,%al
5f96c5:	3c 09                	cmp    $0x9,%al
5f96c7:	77 08                	ja     0x5f96d1
5f96c9:	0f be c1             	movsbl %cl,%eax
5f96cc:	83 e8 30             	sub    $0x30,%eax
5f96cf:	eb 23                	jmp    0x5f96f4
5f96d1:	8a c1                	mov    %cl,%al
5f96d3:	2c 61                	sub    $0x61,%al
5f96d5:	3c 19                	cmp    $0x19,%al
5f96d7:	77 08                	ja     0x5f96e1
5f96d9:	0f be c1             	movsbl %cl,%eax
5f96dc:	83 e8 57             	sub    $0x57,%eax
5f96df:	eb 13                	jmp    0x5f96f4
5f96e1:	8a c1                	mov    %cl,%al
5f96e3:	2c 41                	sub    $0x41,%al
5f96e5:	3c 19                	cmp    $0x19,%al
5f96e7:	77 08                	ja     0x5f96f1
5f96e9:	0f be c1             	movsbl %cl,%eax
5f96ec:	83 e8 37             	sub    $0x37,%eax
5f96ef:	eb 03                	jmp    0x5f96f4
5f96f1:	83 c8 ff             	or     $0xffffffff,%eax
5f96f4:	3b c2                	cmp    %edx,%eax
5f96f6:	77 16                	ja     0x5f970e
5f96f8:	b5 01                	mov    $0x1,%ch
5f96fa:	3b 7d f0             	cmp    -0x10(%ebp),%edi
5f96fd:	74 03                	je     0x5f9702
5f96ff:	88 07                	mov    %al,(%edi)
5f9701:	47                   	inc    %edi
5f9702:	8b 06                	mov    (%esi),%eax
5f9704:	8a 08                	mov    (%eax),%cl
5f9706:	40                   	inc    %eax
5f9707:	88 4d fb             	mov    %cl,-0x5(%ebp)
5f970a:	89 06                	mov    %eax,(%esi)
5f970c:	eb b3                	jmp    0x5f96c1
5f970e:	ff 75 fb             	push   -0x5(%ebp)
5f9711:	84 ed                	test   %ch,%ch
5f9713:	8b ce                	mov    %esi,%ecx
5f9715:	75 1c                	jne    0x5f9733
5f9717:	e8 04 45 ff ff       	call   0x5edc20
5f971c:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
5f9720:	8b 45 ec             	mov    -0x14(%ebp),%eax
5f9723:	89 06                	mov    %eax,(%esi)
5f9725:	0f 85 bc 01 00 00    	jne    0x5f98e7
5f972b:	6a 07                	push   $0x7
5f972d:	58                   	pop    %eax
5f972e:	5f                   	pop    %edi
5f972f:	5e                   	pop    %esi
5f9730:	5b                   	pop    %ebx
5f9731:	c9                   	leave
5f9732:	c3                   	ret
5f9733:	e8 e8 44 ff ff       	call   0x5edc20
5f9738:	8b 06                	mov    (%esi),%eax
5f973a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f973d:	8a 08                	mov    (%eax),%cl
5f973f:	8d 50 01             	lea    0x1(%eax),%edx
5f9742:	88 4d fb             	mov    %cl,-0x5(%ebp)
5f9745:	8a c3                	mov    %bl,%al
5f9747:	89 55 ec             	mov    %edx,-0x14(%ebp)
5f974a:	89 16                	mov    %edx,(%esi)
5f974c:	80 f9 45             	cmp    $0x45,%cl
5f974f:	74 14                	je     0x5f9765
5f9751:	80 f9 50             	cmp    $0x50,%cl
5f9754:	74 0a                	je     0x5f9760
5f9756:	80 f9 65             	cmp    $0x65,%cl
5f9759:	74 0a                	je     0x5f9765
5f975b:	80 f9 70             	cmp    $0x70,%cl
5f975e:	75 0a                	jne    0x5f976a
5f9760:	8a 45 ff             	mov    -0x1(%ebp),%al
5f9763:	eb 05                	jmp    0x5f976a
5f9765:	8a 45 ff             	mov    -0x1(%ebp),%al
5f9768:	34 01                	xor    $0x1,%al
5f976a:	84 c0                	test   %al,%al
5f976c:	0f 84 03 01 00 00    	je     0x5f9875
5f9772:	8a 2a                	mov    (%edx),%ch
5f9774:	8b 45 ec             	mov    -0x14(%ebp),%eax
5f9777:	8a d5                	mov    %ch,%dl
5f9779:	40                   	inc    %eax
5f977a:	88 55 fb             	mov    %dl,-0x5(%ebp)
5f977d:	89 06                	mov    %eax,(%esi)
5f977f:	80 fd 2b             	cmp    $0x2b,%ch
5f9782:	74 07                	je     0x5f978b
5f9784:	8a cd                	mov    %ch,%cl
5f9786:	80 fd 2d             	cmp    $0x2d,%ch
5f9789:	75 0a                	jne    0x5f9795
5f978b:	8a 10                	mov    (%eax),%dl
5f978d:	40                   	inc    %eax
5f978e:	88 55 fb             	mov    %dl,-0x5(%ebp)
5f9791:	8a ca                	mov    %dl,%cl
5f9793:	89 06                	mov    %eax,(%esi)
5f9795:	8a f3                	mov    %bl,%dh
5f9797:	80 f9 30             	cmp    $0x30,%cl
5f979a:	75 13                	jne    0x5f97af
5f979c:	b6 01                	mov    $0x1,%dh
5f979e:	8b 06                	mov    (%esi),%eax
5f97a0:	8a 10                	mov    (%eax),%dl
5f97a2:	40                   	inc    %eax
5f97a3:	88 55 fb             	mov    %dl,-0x5(%ebp)
5f97a6:	8a ca                	mov    %dl,%cl
5f97a8:	89 06                	mov    %eax,(%esi)
5f97aa:	80 fa 30             	cmp    $0x30,%dl
5f97ad:	74 ef                	je     0x5f979e
5f97af:	8a c1                	mov    %cl,%al
5f97b1:	2c 30                	sub    $0x30,%al
5f97b3:	3c 09                	cmp    $0x9,%al
5f97b5:	77 08                	ja     0x5f97bf
5f97b7:	0f be c1             	movsbl %cl,%eax