4374c6:	e9 1b fe ff ff       	jmp    0x4372e6
4374cb:	0f be c2             	movsbl %dl,%eax
4374ce:	83 e8 2b             	sub    $0x2b,%eax
4374d1:	74 22                	je     0x4374f5
4374d3:	48                   	dec    %eax
4374d4:	48                   	dec    %eax
4374d5:	74 10                	je     0x4374e7
4374d7:	83 e8 03             	sub    $0x3,%eax
4374da:	0f 85 d2 fe ff ff    	jne    0x4373b2
4374e0:	6a 08                	push   $0x8
4374e2:	e9 16 fe ff ff       	jmp    0x4372fd
4374e7:	6a 07                	push   $0x7
4374e9:	83 ca ff             	or     $0xffffffff,%edx
4374ec:	58                   	pop    %eax
4374ed:	89 55 a0             	mov    %edx,-0x60(%ebp)
4374f0:	e9 d5 fd ff ff       	jmp    0x4372ca
4374f5:	6a 07                	push   $0x7
4374f7:	e9 01 fe ff ff       	jmp    0x4372fd
4374fc:	33 c0                	xor    %eax,%eax
4374fe:	40                   	inc    %eax
4374ff:	89 45 a4             	mov    %eax,-0x5c(%ebp)
437502:	eb 03                	jmp    0x437507
437504:	8a 11                	mov    (%ecx),%dl
437506:	41                   	inc    %ecx
437507:	80 fa 30             	cmp    $0x30,%dl
43750a:	74 f8                	je     0x437504
43750c:	80 ea 31             	sub    $0x31,%dl
43750f:	80 fa 08             	cmp    $0x8,%dl
437512:	0f 87 84 00 00 00    	ja     0x43759c
437518:	eb aa                	jmp    0x4374c4
43751a:	8d 42 cf             	lea    -0x31(%edx),%eax
43751d:	3c 08                	cmp    $0x8,%al
43751f:	76 a3                	jbe    0x4374c4
437521:	80 fa 30             	cmp    $0x30,%dl
437524:	eb b4                	jmp    0x4374da
437526:	39 5d 20             	cmp    %ebx,0x20(%ebp)
437529:	74 22                	je     0x43754d
43752b:	8d 41 ff             	lea    -0x1(%ecx),%eax
43752e:	89 45 b0             	mov    %eax,-0x50(%ebp)
437531:	0f be c2             	movsbl %dl,%eax
437534:	83 e8 2b             	sub    $0x2b,%eax
437537:	74 bc                	je     0x4374f5
437539:	48                   	dec    %eax
43753a:	48                   	dec    %eax
43753b:	0f 85 71 fe ff ff    	jne    0x4373b2
437541:	83 4d a0 ff          	orl    $0xffffffff,-0x60(%ebp)
437545:	6a 07                	push   $0x7
437547:	58                   	pop    %eax
437548:	e9 7d fd ff ff       	jmp    0x4372ca
43754d:	6a 0a                	push   $0xa
43754f:	58                   	pop    %eax
437550:	49                   	dec    %ecx
437551:	83 f8 0a             	cmp    $0xa,%eax
437554:	0f 85 70 fd ff ff    	jne    0x4372ca
43755a:	eb 41                	jmp    0x43759d
43755c:	33 c0                	xor    %eax,%eax
43755e:	40                   	inc    %eax
43755f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
437562:	8b f3                	mov    %ebx,%esi
437564:	eb 1b                	jmp    0x437581
437566:	80 fa 39             	cmp    $0x39,%dl
437569:	7f 2c                	jg     0x437597
43756b:	6b f6 0a             	imul   $0xa,%esi,%esi
43756e:	0f be c2             	movsbl %dl,%eax
437571:	83 c6 d0             	add    $0xffffffd0,%esi
437574:	03 f0                	add    %eax,%esi
437576:	81 fe 50 14 00 00    	cmp    $0x1450,%esi
43757c:	7f 0a                	jg     0x437588
43757e:	8a 11                	mov    (%ecx),%dl
437580:	41                   	inc    %ecx
437581:	80 fa 30             	cmp    $0x30,%dl
437584:	7d e0                	jge    0x437566
437586:	eb 0f                	jmp    0x437597
437588:	be 51 14 00 00       	mov    $0x1451,%esi
43758d:	eb 08                	jmp    0x437597
43758f:	80 fa 39             	cmp    $0x39,%dl
437592:	7f 08                	jg     0x43759c
437594:	8a 11                	mov    (%ecx),%dl
437596:	41                   	inc    %ecx
437597:	80 fa 30             	cmp    $0x30,%dl
43759a:	7d f3                	jge    0x43758f
43759c:	49                   	dec    %ecx
43759d:	8b 45 b4             	mov    -0x4c(%ebp),%eax
4375a0:	8b 55 98             	mov    -0x68(%ebp),%edx
4375a3:	89 0a                	mov    %ecx,(%edx)
4375a5:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4375a8:	85 c9                	test   %ecx,%ecx
4375aa:	0f 84 b9 03 00 00    	je     0x437969
4375b0:	83 f8 18             	cmp    $0x18,%eax
4375b3:	76 19                	jbe    0x4375ce
4375b5:	8a 45 f7             	mov    -0x9(%ebp),%al
4375b8:	3c 05                	cmp    $0x5,%al
4375ba:	7c 05                	jl     0x4375c1
4375bc:	fe c0                	inc    %al
4375be:	88 45 f7             	mov    %al,-0x9(%ebp)
4375c1:	8b 4d ac             	mov    -0x54(%ebp),%ecx
4375c4:	4f                   	dec    %edi
4375c5:	6a 18                	push   $0x18
4375c7:	41                   	inc    %ecx
4375c8:	58                   	pop    %eax
4375c9:	89 4d ac             	mov    %ecx,-0x54(%ebp)
4375cc:	eb 03                	jmp    0x4375d1
4375ce:	8b 4d ac             	mov    -0x54(%ebp),%ecx
4375d1:	85 c0                	test   %eax,%eax
4375d3:	0f 84 86 03 00 00    	je     0x43795f
4375d9:	4f                   	dec    %edi
4375da:	38 1f                	cmp    %bl,(%edi)
4375dc:	75 0a                	jne    0x4375e8
4375de:	48                   	dec    %eax
4375df:	41                   	inc    %ecx
4375e0:	4f                   	dec    %edi
4375e1:	38 1f                	cmp    %bl,(%edi)
4375e3:	74 f9                	je     0x4375de
4375e5:	89 4d ac             	mov    %ecx,-0x54(%ebp)
4375e8:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
4375eb:	51                   	push   %ecx
4375ec:	50                   	push   %eax
4375ed:	8d 45 e0             	lea    -0x20(%ebp),%eax
4375f0:	50                   	push   %eax
4375f1:	e8 f9 d5 ff ff       	call   0x434bef
4375f6:	8b 55 a0             	mov    -0x60(%ebp),%edx
4375f9:	83 c4 0c             	add    $0xc,%esp
4375fc:	85 d2                	test   %edx,%edx
4375fe:	79 02                	jns    0x437602
437600:	f7 de                	neg    %esi
437602:	8b 45 a4             	mov    -0x5c(%ebp),%eax
437605:	03 75 ac             	add    -0x54(%ebp),%esi
437608:	85 c0                	test   %eax,%eax
43760a:	75 03                	jne    0x43760f
43760c:	03 75 18             	add    0x18(%ebp),%esi
43760f:	8b 45 a8             	mov    -0x58(%ebp),%eax
437612:	85 c0                	test   %eax,%eax
437614:	75 03                	jne    0x437619
437616:	2b 75 1c             	sub    0x1c(%ebp),%esi
437619:	81 fe 50 14 00 00    	cmp    $0x1450,%esi
43761f:	0f 8f 2c 03 00 00    	jg     0x437951
437625:	81 fe b0 eb ff ff    	cmp    $0xffffebb0,%esi
43762b:	0f 8c 11 03 00 00    	jl     0x437942
437631:	b8 b0 b1 4b 00       	mov    $0x4bb1b0,%eax
437636:	83 e8 60             	sub    $0x60,%eax
437639:	85 f6                	test   %esi,%esi
43763b:	0f 84 ef 02 00 00    	je     0x437930
437641:	79 0a                	jns    0x43764d
437643:	b8 10 b3 4b 00       	mov    $0x4bb310,%eax
437648:	f7 de                	neg    %esi
43764a:	83 e8 60             	sub    $0x60,%eax
43764d:	39 5d 14             	cmp    %ebx,0x14(%ebp)
437650:	0f 85 d2 02 00 00    	jne    0x437928
437656:	33 c9                	xor    %ecx,%ecx
437658:	66 89 4d c4          	mov    %cx,-0x3c(%ebp)
43765c:	e9 c7 02 00 00       	jmp    0x437928
437661:	8b ce                	mov    %esi,%ecx
437663:	83 c0 54             	add    $0x54,%eax
437666:	c1 fe 03             	sar    $0x3,%esi
437669:	89 45 b4             	mov    %eax,-0x4c(%ebp)
43766c:	89 75 ac             	mov    %esi,-0x54(%ebp)
43766f:	83 e1 07             	and    $0x7,%ecx
437672:	0f 84 b0 02 00 00    	je     0x437928
437678:	6b c9 0c             	imul   $0xc,%ecx,%ecx
43767b:	03 c8                	add    %eax,%ecx
43767d:	b8 00 80 00 00       	mov    $0x8000,%eax
437682:	89 4d b0             	mov    %ecx,-0x50(%ebp)
437685:	66 39 01             	cmp    %ax,(%ecx)
437688:	72 11                	jb     0x43769b
43768a:	8b f1                	mov    %ecx,%esi
43768c:	8d 7d b8             	lea    -0x48(%ebp),%edi
43768f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437690:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437691:	8d 4d b8             	lea    -0x48(%ebp),%ecx
437694:	a5                   	movsl  %ds:(%esi),%es:(%edi)
437695:	ff 4d ba             	decl   -0x46(%ebp)
437698:	89 4d b0             	mov    %ecx,-0x50(%ebp)
43769b:	0f b7 79 0a          	movzwl 0xa(%ecx),%edi
43769f:	8b 55 ce             	mov    -0x32(%ebp),%edx
4376a2:	8b c7                	mov    %edi,%eax
4376a4:	33 c2                	xor    %edx,%eax
4376a6:	25 00 80 00 00       	and    $0x8000,%eax
4376ab:	89 45 a0             	mov    %eax,-0x60(%ebp)
4376ae:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
4376b3:	23 d0                	and    %eax,%edx
4376b5:	23 f8                	and    %eax,%edi
4376b7:	89 5d 88             	mov    %ebx,-0x78(%ebp)
4376ba:	8d 04 17             	lea    (%edi,%edx,1),%eax
4376bd:	0f b7 f0             	movzwl %ax,%esi
4376c0:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
4376c5:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
4376c8:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4376cb:	89 5d dc             	mov    %ebx,-0x24(%ebp)
4376ce:	89 75 a4             	mov    %esi,-0x5c(%ebp)
4376d1:	66 3b d0             	cmp    %ax,%dx
4376d4:	0f 83 2b 02 00 00    	jae    0x437905
4376da:	66 3b f8             	cmp    %ax,%di
4376dd:	0f 83 22 02 00 00    	jae    0x437905
4376e3:	b8 fd bf 00 00       	mov    $0xbffd,%eax
4376e8:	66 3b f0             	cmp    %ax,%si
4376eb:	0f 87 14 02 00 00    	ja     0x437905
4376f1:	b8 bf 3f 00 00       	mov    $0x3fbf,%eax
4376f6:	66 3b f0             	cmp    %ax,%si
4376f9:	77 08                	ja     0x437703
4376fb:	89 5d cc             	mov    %ebx,-0x34(%ebp)
4376fe:	e9 19 02 00 00       	jmp    0x43791c
437703:	66 85 d2             	test   %dx,%dx
437706:	75 24                	jne    0x43772c
437708:	46                   	inc    %esi
437709:	f7 45 cc ff ff ff 7f 	testl  $0x7fffffff,-0x34(%ebp)
437710:	89 75 a4             	mov    %esi,-0x5c(%ebp)
437713:	75 17                	jne    0x43772c
437715:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
437719:	75 11                	jne    0x43772c
43771b:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
43771f:	75 0b                	jne    0x43772c
437721:	33 c0                	xor    %eax,%eax
437723:	66 89 45 ce          	mov    %ax,-0x32(%ebp)
437727:	e9 f6 01 00 00       	jmp    0x437922
43772c:	66 85 ff             	test   %di,%di
43772f:	75 16                	jne    0x437747
437731:	46                   	inc    %esi
437732:	f7 41 08 ff ff ff 7f 	testl  $0x7fffffff,0x8(%ecx)
437739:	89 75 a4             	mov    %esi,-0x5c(%ebp)
43773c:	75 09                	jne    0x437747
43773e:	39 59 04             	cmp    %ebx,0x4(%ecx)
437741:	75 04                	jne    0x437747
437743:	39 19                	cmp    %ebx,(%ecx)
437745:	74 b4                	je     0x4376fb
437747:	6a 05                	push   $0x5
437749:	8b c3                	mov    %ebx,%eax
43774b:	5f                   	pop    %edi
43774c:	89 45 90             	mov    %eax,-0x70(%ebp)
43774f:	8d 55 d8             	lea    -0x28(%ebp),%edx
437752:	89 7d 98             	mov    %edi,-0x68(%ebp)
437755:	89 7d a8             	mov    %edi,-0x58(%ebp)
437758:	85 ff                	test   %edi,%edi
43775a:	7e 5c                	jle    0x4377b8
43775c:	8d 75 c4             	lea    -0x3c(%ebp),%esi
43775f:	8d 34 46             	lea    (%esi,%eax,2),%esi
437762:	8d 41 08             	lea    0x8(%ecx),%eax
437765:	89 45 9c             	mov    %eax,-0x64(%ebp)
437768:	8b cf                	mov    %edi,%ecx
43776a:	0f b7 00             	movzwl (%eax),%eax
43776d:	89 45 a8             	mov    %eax,-0x58(%ebp)
437770:	0f b7 06             	movzwl (%esi),%eax
437773:	8b 7d a8             	mov    -0x58(%ebp),%edi
437776:	0f af f8             	imul   %eax,%edi
437779:	89 7d a8             	mov    %edi,-0x58(%ebp)
43777c:	03 7a fc             	add    -0x4(%edx),%edi
43777f:	89 5d 84             	mov    %ebx,-0x7c(%ebp)
437782:	3b 7a fc             	cmp    -0x4(%edx),%edi
437785:	72 05                	jb     0x43778c
437787:	3b 7d a8             	cmp    -0x58(%ebp),%edi
43778a:	73 05                	jae    0x437791
43778c:	33 c0                	xor    %eax,%eax
43778e:	40                   	inc    %eax
43778f:	eb 03                	jmp    0x437794
437791:	8b 45 84             	mov    -0x7c(%ebp),%eax
437794:	89 7a fc             	mov    %edi,-0x4(%edx)
437797:	85 c0                	test   %eax,%eax
437799:	74 03                	je     0x43779e
43779b:	66 ff 02             	incw   (%edx)
43779e:	8b 45 9c             	mov    -0x64(%ebp),%eax
4377a1:	83 e8 02             	sub    $0x2,%eax
4377a4:	83 c6 02             	add    $0x2,%esi
4377a7:	49                   	dec    %ecx
4377a8:	89 45 9c             	mov    %eax,-0x64(%ebp)
4377ab:	85 c9                	test   %ecx,%ecx
4377ad:	7f bb                	jg     0x43776a
4377af:	8b 4d b0             	mov    -0x50(%ebp),%ecx
4377b2:	8b 7d 98             	mov    -0x68(%ebp),%edi
4377b5:	8b 45 90             	mov    -0x70(%ebp),%eax
4377b8:	83 c2 02             	add    $0x2,%edx
4377bb:	40                   	inc    %eax
4377bc:	4f                   	dec    %edi
4377bd:	89 45 90             	mov    %eax,-0x70(%ebp)
4377c0:	89 7d 98             	mov    %edi,-0x68(%ebp)
4377c3:	85 ff                	test   %edi,%edi
4377c5:	7f 8e                	jg     0x437755
4377c7:	8b 75 a4             	mov    -0x5c(%ebp),%esi
4377ca:	8b 55 dc             	mov    -0x24(%ebp),%edx
4377cd:	8b 7d d4             	mov    -0x2c(%ebp),%edi
4377d0:	81 c6 02 c0 00 00    	add    $0xc002,%esi
4377d6:	89 55 b0             	mov    %edx,-0x50(%ebp)
4377d9:	66 85 f6             	test   %si,%si
4377dc:	7e 3b                	jle    0x437819
4377de:	85 d2                	test   %edx,%edx
4377e0:	78 32                	js     0x437814
4377e2:	8b 45 d8             	mov    -0x28(%ebp),%eax
4377e5:	8b c8                	mov    %eax,%ecx
4377e7:	8b d7                	mov    %edi,%edx
4377e9:	c1 ea 1f             	shr    $0x1f,%edx
4377ec:	03 c0                	add    %eax,%eax
4377ee:	0b c2                	or     %edx,%eax
4377f0:	8b 55 b0             	mov    -0x50(%ebp),%edx
4377f3:	89 45 d8             	mov    %eax,-0x28(%ebp)
4377f6:	c1 e9 1f             	shr    $0x1f,%ecx
4377f9:	03 d2                	add    %edx,%edx
4377fb:	b8 ff ff 00 00       	mov    $0xffff,%eax
437800:	0b d1                	or     %ecx,%edx
437802:	03 ff                	add    %edi,%edi
437804:	03 f0                	add    %eax,%esi
437806:	89 7d d4             	mov    %edi,-0x2c(%ebp)
437809:	89 55 b0             	mov    %edx,-0x50(%ebp)
43780c:	89 55 dc             	mov    %edx,-0x24(%ebp)
43780f:	66 85 f6             	test   %si,%si
437812:	7f ca                	jg     0x4377de
437814:	66 85 f6             	test   %si,%si
437817:	7f 69                	jg     0x437882
437819:	b8 ff ff 00 00       	mov    $0xffff,%eax
43781e:	03 f0                	add    %eax,%esi
437820:	66 85 f6             	test   %si,%si
437823:	79 5d                	jns    0x437882
437825:	8b 5d 88             	mov    -0x78(%ebp),%ebx
437828:	8b c6                	mov    %esi,%eax
43782a:	f7 d8                	neg    %eax
43782c:	0f b7 c0             	movzwl %ax,%eax
43782f:	89 45 98             	mov    %eax,-0x68(%ebp)
437832:	03 f0                	add    %eax,%esi
437834:	f6 45 d4 01          	testb  $0x1,-0x2c(%ebp)
437838:	74 01                	je     0x43783b
43783a:	43                   	inc    %ebx
43783b:	8b 4d d8             	mov    -0x28(%ebp),%ecx
43783e:	8b c2                	mov    %edx,%eax
437840:	c1 e0 1f             	shl    $0x1f,%eax
437843:	89 4d b0             	mov    %ecx,-0x50(%ebp)
437846:	d1 6d b0             	shrl   $1,-0x50(%ebp)
437849:	09 45 b0             	or     %eax,-0x50(%ebp)
43784c:	8b 45 b0             	mov    -0x50(%ebp),%eax
43784f:	c1 e1 1f             	shl    $0x1f,%ecx
437852:	d1 ef                	shr    $1,%edi
437854:	d1 ea                	shr    $1,%edx
437856:	0b f9                	or     %ecx,%edi
437858:	ff 4d 98             	decl   -0x68(%ebp)
43785b:	89 55 dc             	mov    %edx,-0x24(%ebp)
43785e:	89 45 d8             	mov    %eax,-0x28(%ebp)
437861:	89 7d d4             	mov    %edi,-0x2c(%ebp)
437864:	75 ce                	jne    0x437834
437866:	6a 00                	push   $0x0
437868:	85 db                	test   %ebx,%ebx
43786a:	89 55 b0             	mov    %edx,-0x50(%ebp)
43786d:	5b                   	pop    %ebx
43786e:	74 12                	je     0x437882
437870:	66 8b c7             	mov    %di,%ax
437873:	33 ff                	xor    %edi,%edi
437875:	47                   	inc    %edi
437876:	66 0b c7             	or     %di,%ax
437879:	66 89 45 d4          	mov    %ax,-0x2c(%ebp)
43787d:	8b 7d d4             	mov    -0x2c(%ebp),%edi
437880:	eb 04                	jmp    0x437886
437882:	66 8b 45 d4          	mov    -0x2c(%ebp),%ax
437886:	ba 00 80 00 00       	mov    $0x8000,%edx
43788b:	66 3b c2             	cmp    %dx,%ax
43788e:	77 0e                	ja     0x43789e