4703bc:	8b c3                	mov    %ebx,%eax
4703be:	5b                   	pop    %ebx
4703bf:	8b e5                	mov    %ebp,%esp
4703c1:	5d                   	pop    %ebp
4703c2:	c3                   	ret
4703c3:	56                   	push   %esi
4703c4:	ff 75 08             	push   0x8(%ebp)
4703c7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4703ca:	e8 39 ec fd ff       	call   0x44f008
4703cf:	8b 45 0c             	mov    0xc(%ebp),%eax
4703d2:	33 f6                	xor    %esi,%esi
4703d4:	89 75 f4             	mov    %esi,-0xc(%ebp)
4703d7:	89 45 e8             	mov    %eax,-0x18(%ebp)
4703da:	eb 03                	jmp    0x4703df
4703dc:	8b 45 0c             	mov    0xc(%ebp),%eax
4703df:	8a 18                	mov    (%eax),%bl
4703e1:	40                   	inc    %eax
4703e2:	89 45 0c             	mov    %eax,0xc(%ebp)
4703e5:	8d 45 dc             	lea    -0x24(%ebp),%eax
4703e8:	50                   	push   %eax
4703e9:	0f b6 c3             	movzbl %bl,%eax
4703ec:	6a 08                	push   $0x8
4703ee:	50                   	push   %eax
4703ef:	88 5d fc             	mov    %bl,-0x4(%ebp)
4703f2:	e8 36 32 fe ff       	call   0x45362d
4703f7:	83 c4 0c             	add    $0xc,%esp
4703fa:	85 c0                	test   %eax,%eax
4703fc:	75 de                	jne    0x4703dc
4703fe:	38 45 18             	cmp    %al,0x18(%ebp)
470401:	0f 95 c0             	setne  %al
470404:	89 45 f8             	mov    %eax,-0x8(%ebp)
470407:	80 fb 2d             	cmp    $0x2d,%bl
47040a:	75 08                	jne    0x470414
47040c:	83 c8 02             	or     $0x2,%eax
47040f:	89 45 f8             	mov    %eax,-0x8(%ebp)
470412:	eb 05                	jmp    0x470419
470414:	80 fb 2b             	cmp    $0x2b,%bl
470417:	75 0e                	jne    0x470427
470419:	8b 75 0c             	mov    0xc(%ebp),%esi
47041c:	8a 1e                	mov    (%esi),%bl
47041e:	46                   	inc    %esi
47041f:	88 5d fc             	mov    %bl,-0x4(%ebp)
470422:	89 75 0c             	mov    %esi,0xc(%ebp)
470425:	eb 03                	jmp    0x47042a
470427:	8b 75 0c             	mov    0xc(%ebp),%esi
47042a:	85 ff                	test   %edi,%edi
47042c:	74 05                	je     0x470433
47042e:	83 ff 10             	cmp    $0x10,%edi
470431:	75 78                	jne    0x4704ab
470433:	8a c3                	mov    %bl,%al
470435:	2c 30                	sub    $0x30,%al
470437:	3c 09                	cmp    $0x9,%al
470439:	77 08                	ja     0x470443
47043b:	0f be c3             	movsbl %bl,%eax
47043e:	83 c0 d0             	add    $0xffffffd0,%eax
470441:	eb 23                	jmp    0x470466
470443:	8a c3                	mov    %bl,%al
470445:	2c 61                	sub    $0x61,%al
470447:	3c 19                	cmp    $0x19,%al
470449:	77 08                	ja     0x470453
47044b:	0f be c3             	movsbl %bl,%eax
47044e:	83 c0 a9             	add    $0xffffffa9,%eax
470451:	eb 13                	jmp    0x470466
470453:	8a c3                	mov    %bl,%al
470455:	2c 41                	sub    $0x41,%al
470457:	3c 19                	cmp    $0x19,%al
470459:	77 08                	ja     0x470463
47045b:	0f be c3             	movsbl %bl,%eax
47045e:	83 c0 c9             	add    $0xffffffc9,%eax
470461:	eb 03                	jmp    0x470466
470463:	83 c8 ff             	or     $0xffffffff,%eax
470466:	85 c0                	test   %eax,%eax
470468:	74 09                	je     0x470473
47046a:	85 ff                	test   %edi,%edi
47046c:	75 3d                	jne    0x4704ab
47046e:	6a 0a                	push   $0xa
470470:	5f                   	pop    %edi
470471:	eb 38                	jmp    0x4704ab
470473:	8a 06                	mov    (%esi),%al
470475:	46                   	inc    %esi
470476:	88 45 f0             	mov    %al,-0x10(%ebp)
470479:	89 75 0c             	mov    %esi,0xc(%ebp)
47047c:	3c 78                	cmp    $0x78,%al
47047e:	74 1b                	je     0x47049b
470480:	3c 58                	cmp    $0x58,%al
470482:	74 17                	je     0x47049b
470484:	85 ff                	test   %edi,%edi
470486:	75 03                	jne    0x47048b
470488:	6a 08                	push   $0x8
47048a:	5f                   	pop    %edi
47048b:	ff 75 f0             	push   -0x10(%ebp)
47048e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
470491:	e8 2a 2f fe ff       	call   0x4533c0
470496:	8b 75 0c             	mov    0xc(%ebp),%esi
470499:	eb 10                	jmp    0x4704ab
47049b:	85 ff                	test   %edi,%edi
47049d:	75 03                	jne    0x4704a2
47049f:	6a 10                	push   $0x10
4704a1:	5f                   	pop    %edi
4704a2:	8a 1e                	mov    (%esi),%bl
4704a4:	46                   	inc    %esi
4704a5:	88 5d fc             	mov    %bl,-0x4(%ebp)
4704a8:	89 75 0c             	mov    %esi,0xc(%ebp)
4704ab:	33 d2                	xor    %edx,%edx
4704ad:	83 c8 ff             	or     $0xffffffff,%eax
4704b0:	f7 f7                	div    %edi
4704b2:	89 55 ec             	mov    %edx,-0x14(%ebp)
4704b5:	8b 55 f8             	mov    -0x8(%ebp),%edx
4704b8:	89 45 f0             	mov    %eax,-0x10(%ebp)
4704bb:	8d 4b d0             	lea    -0x30(%ebx),%ecx
4704be:	80 f9 09             	cmp    $0x9,%cl
4704c1:	77 08                	ja     0x4704cb
4704c3:	0f be cb             	movsbl %bl,%ecx
4704c6:	83 c1 d0             	add    $0xffffffd0,%ecx
4704c9:	eb 23                	jmp    0x4704ee
4704cb:	8a c3                	mov    %bl,%al
4704cd:	2c 61                	sub    $0x61,%al
4704cf:	3c 19                	cmp    $0x19,%al
4704d1:	77 08                	ja     0x4704db
4704d3:	0f be cb             	movsbl %bl,%ecx
4704d6:	83 c1 a9             	add    $0xffffffa9,%ecx
4704d9:	eb 13                	jmp    0x4704ee
4704db:	8a c3                	mov    %bl,%al
4704dd:	2c 41                	sub    $0x41,%al
4704df:	3c 19                	cmp    $0x19,%al
4704e1:	77 08                	ja     0x4704eb
4704e3:	0f be cb             	movsbl %bl,%ecx
4704e6:	83 c1 c9             	add    $0xffffffc9,%ecx
4704e9:	eb 03                	jmp    0x4704ee
4704eb:	83 c9 ff             	or     $0xffffffff,%ecx
4704ee:	83 f9 ff             	cmp    $0xffffffff,%ecx
4704f1:	74 30                	je     0x470523
4704f3:	3b cf                	cmp    %edi,%ecx
4704f5:	73 2c                	jae    0x470523
4704f7:	8b 45 f4             	mov    -0xc(%ebp),%eax
4704fa:	83 ca 08             	or     $0x8,%edx
4704fd:	8b 5d f0             	mov    -0x10(%ebp),%ebx
470500:	3b c3                	cmp    %ebx,%eax
470502:	72 0c                	jb     0x470510
470504:	75 05                	jne    0x47050b
470506:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
470509:	76 05                	jbe    0x470510
47050b:	83 ca 04             	or     $0x4,%edx
47050e:	eb 08                	jmp    0x470518
470510:	0f af c7             	imul   %edi,%eax
470513:	03 c1                	add    %ecx,%eax
470515:	89 45 f4             	mov    %eax,-0xc(%ebp)
470518:	8a 1e                	mov    (%esi),%bl
47051a:	46                   	inc    %esi
47051b:	88 5d fc             	mov    %bl,-0x4(%ebp)
47051e:	89 75 0c             	mov    %esi,0xc(%ebp)
470521:	eb 98                	jmp    0x4704bb
470523:	ff 75 fc             	push   -0x4(%ebp)
470526:	8d 4d 0c             	lea    0xc(%ebp),%ecx
470529:	89 55 f8             	mov    %edx,-0x8(%ebp)
47052c:	e8 8f 2e fe ff       	call   0x4533c0
470531:	8b 5d f8             	mov    -0x8(%ebp),%ebx
470534:	f6 c3 08             	test   $0x8,%bl
470537:	75 0a                	jne    0x470543
470539:	8b 45 e8             	mov    -0x18(%ebp),%eax
47053c:	33 db                	xor    %ebx,%ebx
47053e:	89 45 0c             	mov    %eax,0xc(%ebp)
470541:	eb 41                	jmp    0x470584
470543:	8b 75 f4             	mov    -0xc(%ebp),%esi
470546:	56                   	push   %esi
470547:	53                   	push   %ebx
470548:	e8 7d fd ff ff       	call   0x4702ca
47054d:	59                   	pop    %ecx
47054e:	59                   	pop    %ecx
47054f:	84 c0                	test   %al,%al
470551:	74 28                	je     0x47057b
470553:	e8 d7 c8 fd ff       	call   0x44ce2f
470558:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
47055e:	f6 c3 01             	test   $0x1,%bl
470561:	75 05                	jne    0x470568
470563:	83 ce ff             	or     $0xffffffff,%esi
470566:	eb 1a                	jmp    0x470582
470568:	f6 c3 02             	test   $0x2,%bl
47056b:	74 07                	je     0x470574
47056d:	bb 00 00 00 80       	mov    $0x80000000,%ebx
470572:	eb 10                	jmp    0x470584
470574:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
470579:	eb 09                	jmp    0x470584
47057b:	f6 c3 02             	test   $0x2,%bl
47057e:	74 02                	je     0x470582
470580:	f7 de                	neg    %esi
470582:	8b de                	mov    %esi,%ebx
470584:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
470588:	5e                   	pop    %esi
470589:	0f 84 20 fe ff ff    	je     0x4703af
47058f:	8b 45 d8             	mov    -0x28(%ebp),%eax
470592:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
470599:	e9 11 fe ff ff       	jmp    0x4703af
47059e:	8b ff                	mov    %edi,%edi
4705a0:	55                   	push   %ebp
4705a1:	8b ec                	mov    %esp,%ebp
4705a3:	83 ec 1c             	sub    $0x1c,%esp
4705a6:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4705a9:	53                   	push   %ebx
4705aa:	57                   	push   %edi
4705ab:	e8 7f 2e fe ff       	call   0x45342f
4705b0:	84 c0                	test   %al,%al
4705b2:	74 23                	je     0x4705d7
4705b4:	8b 45 14             	mov    0x14(%ebp),%eax
4705b7:	6a 02                	push   $0x2
4705b9:	5f                   	pop    %edi
4705ba:	85 c0                	test   %eax,%eax
4705bc:	74 2f                	je     0x4705ed
4705be:	3b c7                	cmp    %edi,%eax
4705c0:	7c 05                	jl     0x4705c7
4705c2:	83 f8 24             	cmp    $0x24,%eax
4705c5:	7e 26                	jle    0x4705ed
4705c7:	e8 63 c8 fd ff       	call   0x44ce2f
4705cc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4705d2:	e8 ff c6 fd ff       	call   0x44ccd6
4705d7:	33 db                	xor    %ebx,%ebx
4705d9:	8b 55 10             	mov    0x10(%ebp),%edx
4705dc:	85 d2                	test   %edx,%edx
4705de:	74 05                	je     0x4705e5
4705e0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4705e3:	89 0a                	mov    %ecx,(%edx)
4705e5:	5f                   	pop    %edi
4705e6:	8b c3                	mov    %ebx,%eax
4705e8:	5b                   	pop    %ebx
4705e9:	8b e5                	mov    %ebp,%esp
4705eb:	5d                   	pop    %ebp
4705ec:	c3                   	ret
4705ed:	56                   	push   %esi
4705ee:	ff 75 08             	push   0x8(%ebp)
4705f1:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4705f4:	e8 0f ea fd ff       	call   0x44f008
4705f9:	8b 45 0c             	mov    0xc(%ebp),%eax
4705fc:	33 f6                	xor    %esi,%esi
4705fe:	89 75 f8             	mov    %esi,-0x8(%ebp)
470601:	89 45 f4             	mov    %eax,-0xc(%ebp)
470604:	eb 03                	jmp    0x470609
470606:	8b 45 0c             	mov    0xc(%ebp),%eax
470609:	0f b7 30             	movzwl (%eax),%esi
47060c:	03 c7                	add    %edi,%eax
47060e:	6a 08                	push   $0x8
470610:	56                   	push   %esi
470611:	89 45 0c             	mov    %eax,0xc(%ebp)
470614:	e8 d7 1d 00 00       	call   0x4723f0
470619:	59                   	pop    %ecx
47061a:	59                   	pop    %ecx
47061b:	85 c0                	test   %eax,%eax
47061d:	75 e7                	jne    0x470606
47061f:	33 db                	xor    %ebx,%ebx
470621:	38 5d 18             	cmp    %bl,0x18(%ebp)
470624:	0f 95 c3             	setne  %bl
470627:	66 83 fe 2d          	cmp    $0x2d,%si
47062b:	75 04                	jne    0x470631
47062d:	0b df                	or     %edi,%ebx
47062f:	eb 06                	jmp    0x470637
470631:	66 83 fe 2b          	cmp    $0x2b,%si
470635:	75 0e                	jne    0x470645
470637:	8b 7d 0c             	mov    0xc(%ebp),%edi
47063a:	0f b7 37             	movzwl (%edi),%esi
47063d:	83 c7 02             	add    $0x2,%edi
470640:	89 7d 0c             	mov    %edi,0xc(%ebp)
470643:	eb 03                	jmp    0x470648
470645:	8b 7d 0c             	mov    0xc(%ebp),%edi
470648:	8b 4d 14             	mov    0x14(%ebp),%ecx
47064b:	c7 45 fc 19 00 00 00 	movl   $0x19,-0x4(%ebp)
470652:	6a 30                	push   $0x30
470654:	58                   	pop    %eax
470655:	6a 10                	push   $0x10
470657:	5a                   	pop    %edx
470658:	85 c9                	test   %ecx,%ecx
47065a:	74 08                	je     0x470664
47065c:	3b ca                	cmp    %edx,%ecx
47065e:	0f 85 db 02 00 00    	jne    0x47093f
470664:	66 3b f0             	cmp    %ax,%si
470667:	0f 82 55 02 00 00    	jb     0x4708c2
47066d:	6a 3a                	push   $0x3a
47066f:	58                   	pop    %eax
470670:	66 3b f0             	cmp    %ax,%si
470673:	73 0b                	jae    0x470680
470675:	0f b7 c6             	movzwl %si,%eax
470678:	83 e8 30             	sub    $0x30,%eax
47067b:	e9 3d 02 00 00       	jmp    0x4708bd
470680:	b8 10 ff 00 00       	mov    $0xff10,%eax
470685:	66 3b f0             	cmp    %ax,%si
470688:	0f 83 18 02 00 00    	jae    0x4708a6
47068e:	b8 60 06 00 00       	mov    $0x660,%eax
470693:	66 3b f0             	cmp    %ax,%si
470696:	0f 82 26 02 00 00    	jb     0x4708c2
47069c:	83 c0 0a             	add    $0xa,%eax
47069f:	66 3b f0             	cmp    %ax,%si
4706a2:	73 0d                	jae    0x4706b1
4706a4:	0f b7 c6             	movzwl %si,%eax
4706a7:	2d 60 06 00 00       	sub    $0x660,%eax
4706ac:	e9 0c 02 00 00       	jmp    0x4708bd
4706b1:	b8 f0 06 00 00       	mov    $0x6f0,%eax
4706b6:	66 3b f0             	cmp    %ax,%si
4706b9:	0f 82 03 02 00 00    	jb     0x4708c2
4706bf:	83 c0 0a             	add    $0xa,%eax
4706c2:	66 3b f0             	cmp    %ax,%si
4706c5:	73 0d                	jae    0x4706d4
4706c7:	0f b7 c6             	movzwl %si,%eax
4706ca:	2d f0 06 00 00       	sub    $0x6f0,%eax
4706cf:	e9 e9 01 00 00       	jmp    0x4708bd
4706d4:	b8 66 09 00 00       	mov    $0x966,%eax
4706d9:	66 3b f0             	cmp    %ax,%si
4706dc:	0f 82 e0 01 00 00    	jb     0x4708c2
4706e2:	83 c0 0a             	add    $0xa,%eax
4706e5:	66 3b f0             	cmp    %ax,%si
4706e8:	73 0d                	jae    0x4706f7
4706ea:	0f b7 c6             	movzwl %si,%eax
4706ed:	2d 66 09 00 00       	sub    $0x966,%eax
4706f2:	e9 c6 01 00 00       	jmp    0x4708bd
4706f7:	b8 e6 09 00 00       	mov    $0x9e6,%eax
4706fc:	66 3b f0             	cmp    %ax,%si
4706ff:	0f 82 bd 01 00 00    	jb     0x4708c2
470705:	83 c0 0a             	add    $0xa,%eax
470708:	66 3b f0             	cmp    %ax,%si
47070b:	73 0d                	jae    0x47071a
47070d:	0f b7 c6             	movzwl %si,%eax
470710:	2d e6 09 00 00       	sub    $0x9e6,%eax
470715:	e9 a3 01 00 00       	jmp    0x4708bd
47071a:	b8 66 0a 00 00       	mov    $0xa66,%eax
47071f:	66 3b f0             	cmp    %ax,%si
470722:	0f 82 9a 01 00 00    	jb     0x4708c2
470728:	83 c0 0a             	add    $0xa,%eax
47072b:	66 3b f0             	cmp    %ax,%si
47072e:	73 0d                	jae    0x47073d
470730:	0f b7 c6             	movzwl %si,%eax
470733:	2d 66 0a 00 00       	sub    $0xa66,%eax
470738:	e9 80 01 00 00       	jmp    0x4708bd
47073d:	b8 e6 0a 00 00       	mov    $0xae6,%eax
470742:	66 3b f0             	cmp    %ax,%si
470745:	0f 82 77 01 00 00    	jb     0x4708c2
47074b:	83 c0 0a             	add    $0xa,%eax
47074e:	66 3b f0             	cmp    %ax,%si
470751:	73 0d                	jae    0x470760
470753:	0f b7 c6             	movzwl %si,%eax
470756:	2d e6 0a 00 00       	sub    $0xae6,%eax
47075b:	e9 5d 01 00 00       	jmp    0x4708bd
470760:	b8 66 0b 00 00       	mov    $0xb66,%eax
470765:	66 3b f0             	cmp    %ax,%si
470768:	0f 82 54 01 00 00    	jb     0x4708c2
47076e:	83 c0 0a             	add    $0xa,%eax
470771:	66 3b f0             	cmp    %ax,%si
470774:	73 0d                	jae    0x470783
470776:	0f b7 c6             	movzwl %si,%eax
470779:	2d 66 0b 00 00       	sub    $0xb66,%eax
47077e:	e9 3a 01 00 00       	jmp    0x4708bd
470783:	b8 66 0c 00 00       	mov    $0xc66,%eax
470788:	66 3b f0             	cmp    %ax,%si
47078b:	0f 82 31 01 00 00    	jb     0x4708c2