44d474:	83 c4 0c             	add    $0xc,%esp
44d477:	85 c0                	test   %eax,%eax
44d479:	0f 85 7f 06 00 00    	jne    0x44dafe
44d47f:	8b 55 e0             	mov    -0x20(%ebp),%edx
44d482:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44d489:	74 2e                	je     0x44d4b9
44d48b:	3b 56 7c             	cmp    0x7c(%esi),%edx
44d48e:	72 29                	jb     0x44d4b9
44d490:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
44d494:	75 23                	jne    0x44d4b9
44d496:	83 7e 1c 02          	cmpl   $0x2,0x1c(%esi)
44d49a:	75 1d                	jne    0x44d4b9
44d49c:	66 8b 07             	mov    (%edi),%ax
44d49f:	66 3b 46 34          	cmp    0x34(%esi),%ax
44d4a3:	75 14                	jne    0x44d4b9
44d4a5:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44d4ac:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44d4b3:	0f 8f 07 bc ff ff    	jg     0x4490c0
44d4b9:	83 c7 02             	add    $0x2,%edi
44d4bc:	83 c2 02             	add    $0x2,%edx
44d4bf:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d4c2:	89 55 e0             	mov    %edx,-0x20(%ebp)
44d4c5:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44d4c8:	73 21                	jae    0x44d4eb
44d4ca:	66 8b 07             	mov    (%edi),%ax
44d4cd:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44d4d2:	66 23 c1             	and    %cx,%ax
44d4d5:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44d4da:	66 3b c1             	cmp    %cx,%ax
44d4dd:	75 0c                	jne    0x44d4eb
44d4df:	83 c7 02             	add    $0x2,%edi
44d4e2:	83 c2 02             	add    $0x2,%edx
44d4e5:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d4e8:	89 55 e0             	mov    %edx,-0x20(%ebp)
44d4eb:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d4ee:	40                   	inc    %eax
44d4ef:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d4f2:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d4f5:	0f 8c 54 ff ff ff    	jl     0x44d44f
44d4fb:	e9 fe 05 00 00       	jmp    0x44dafe
44d500:	8b 56 1c             	mov    0x1c(%esi),%edx
44d503:	8d 04 12             	lea    (%edx,%edx,1),%eax
44d506:	2b c8                	sub    %eax,%ecx
44d508:	3b f9                	cmp    %ecx,%edi
44d50a:	0f 87 6f ff ff ff    	ja     0x44d47f
44d510:	66 8b 07             	mov    (%edi),%ax
44d513:	66 3b 46 34          	cmp    0x34(%esi),%ax
44d517:	0f 85 62 ff ff ff    	jne    0x44d47f
44d51d:	83 fa 01             	cmp    $0x1,%edx
44d520:	0f 84 d8 05 00 00    	je     0x44dafe
44d526:	8b 55 e0             	mov    -0x20(%ebp),%edx
44d529:	66 8b 02             	mov    (%edx),%ax
44d52c:	66 3b 46 36          	cmp    0x36(%esi),%ax
44d530:	0f 85 4c ff ff ff    	jne    0x44d482
44d536:	e9 c3 05 00 00       	jmp    0x44dafe
44d53b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
44d53e:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
44d544:	7d 4a                	jge    0x44d590
44d546:	3b d1                	cmp    %ecx,%edx
44d548:	0f 8d b0 05 00 00    	jge    0x44dafe
44d54e:	8b 4e 7c             	mov    0x7c(%esi),%ecx
44d551:	8b 45 e8             	mov    -0x18(%ebp),%eax
44d554:	3b f9                	cmp    %ecx,%edi
44d556:	73 42                	jae    0x44d59a
44d558:	83 c7 02             	add    $0x2,%edi
44d55b:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d55e:	3b f9                	cmp    %ecx,%edi
44d560:	73 24                	jae    0x44d586
44d562:	66 8b 07             	mov    (%edi),%ax
44d565:	c7 45 ec 00 fc 00 00 	movl   $0xfc00,-0x14(%ebp)
44d56c:	66 23 45 ec          	and    -0x14(%ebp),%ax
44d570:	c7 45 ec 00 dc 00 00 	movl   $0xdc00,-0x14(%ebp)
44d577:	66 3b 45 ec          	cmp    -0x14(%ebp),%ax
44d57b:	8b 45 e8             	mov    -0x18(%ebp),%eax
44d57e:	75 06                	jne    0x44d586
44d580:	83 c7 02             	add    $0x2,%edi
44d583:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d586:	42                   	inc    %edx
44d587:	3b d0                	cmp    %eax,%edx
44d589:	7c c9                	jl     0x44d554
44d58b:	e9 6e 05 00 00       	jmp    0x44dafe
44d590:	8b 7e 7c             	mov    0x7c(%esi),%edi
44d593:	eb 02                	jmp    0x44d597
44d595:	8b f9                	mov    %ecx,%edi
44d597:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d59a:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44d5a1:	0f 84 57 05 00 00    	je     0x44dafe
44d5a7:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44d5ad:	0f 86 4b 05 00 00    	jbe    0x44dafe
44d5b3:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44d5ba:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44d5c1:	0f 8e 37 05 00 00    	jle    0x44dafe
44d5c7:	e9 f4 ba ff ff       	jmp    0x4490c0
44d5cc:	8b 4e 7c             	mov    0x7c(%esi),%ecx
44d5cf:	8b c1                	mov    %ecx,%eax
44d5d1:	29 55 e8             	sub    %edx,-0x18(%ebp)
44d5d4:	2b c7                	sub    %edi,%eax
44d5d6:	8b 55 e8             	mov    -0x18(%ebp),%edx
44d5d9:	d1 f8                	sar    $1,%eax
44d5db:	3b d0                	cmp    %eax,%edx
44d5dd:	77 b6                	ja     0x44d595
44d5df:	8d 3c 57             	lea    (%edi,%edx,2),%edi
44d5e2:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d5e5:	e9 14 05 00 00       	jmp    0x44dafe
44d5ea:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d5ed:	0f 8d 0b 05 00 00    	jge    0x44dafe
44d5f3:	8b 46 7c             	mov    0x7c(%esi),%eax
44d5f6:	ba 01 00 00 00       	mov    $0x1,%edx
44d5fb:	3b f8                	cmp    %eax,%edi
44d5fd:	0f 83 a4 00 00 00    	jae    0x44d6a7
44d603:	0f b7 0f             	movzwl (%edi),%ecx
44d606:	8b c1                	mov    %ecx,%eax
44d608:	25 00 fc 00 00       	and    $0xfc00,%eax
44d60d:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d612:	75 1f                	jne    0x44d633
44d614:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d618:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d61e:	25 ff 03 00 00       	and    $0x3ff,%eax
44d623:	c1 e1 0a             	shl    $0xa,%ecx
44d626:	0b c8                	or     %eax,%ecx
44d628:	ba 02 00 00 00       	mov    $0x2,%edx
44d62d:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d633:	83 f9 0d             	cmp    $0xd,%ecx
44d636:	75 1c                	jne    0x44d654
44d638:	8b 46 7c             	mov    0x7c(%esi),%eax
44d63b:	83 c7 02             	add    $0x2,%edi
44d63e:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d641:	3b f8                	cmp    %eax,%edi
44d643:	0f 83 b5 04 00 00    	jae    0x44dafe
44d649:	66 83 3f 0a          	cmpw   $0xa,(%edi)
44d64d:	75 43                	jne    0x44d692
44d64f:	83 c7 02             	add    $0x2,%edi
44d652:	eb 3b                	jmp    0x44d68f
44d654:	83 f9 0a             	cmp    $0xa,%ecx
44d657:	74 30                	je     0x44d689
44d659:	83 7e 6c 00          	cmpl   $0x0,0x6c(%esi)
44d65d:	0f 85 9b 04 00 00    	jne    0x44dafe
44d663:	83 f9 0b             	cmp    $0xb,%ecx
44d666:	74 21                	je     0x44d689
44d668:	83 f9 0c             	cmp    $0xc,%ecx
44d66b:	74 1c                	je     0x44d689
44d66d:	81 f9 85 00 00 00    	cmp    $0x85,%ecx
44d673:	74 14                	je     0x44d689
44d675:	81 f9 28 20 00 00    	cmp    $0x2028,%ecx
44d67b:	74 0c                	je     0x44d689
44d67d:	81 f9 29 20 00 00    	cmp    $0x2029,%ecx
44d683:	0f 85 75 04 00 00    	jne    0x44dafe
44d689:	8b 46 7c             	mov    0x7c(%esi),%eax
44d68c:	8d 3c 57             	lea    (%edi,%edx,2),%edi
44d68f:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d692:	8b 4d f4             	mov    -0xc(%ebp),%ecx
44d695:	41                   	inc    %ecx
44d696:	89 4d f4             	mov    %ecx,-0xc(%ebp)
44d699:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
44d69c:	0f 8c 54 ff ff ff    	jl     0x44d5f6
44d6a2:	e9 57 04 00 00       	jmp    0x44dafe
44d6a7:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44d6ae:	0f 84 4a 04 00 00    	je     0x44dafe
44d6b4:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44d6ba:	0f 86 3e 04 00 00    	jbe    0x44dafe
44d6c0:	89 56 68             	mov    %edx,0x68(%esi)
44d6c3:	39 96 8c 00 00 00    	cmp    %edx,0x8c(%esi)
44d6c9:	0f 8e 2f 04 00 00    	jle    0x44dafe
44d6cf:	e9 ec b9 ff ff       	jmp    0x4490c0
44d6d4:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d6d7:	0f 8d 21 04 00 00    	jge    0x44dafe
44d6dd:	ba 01 00 00 00       	mov    $0x1,%edx
44d6e2:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44d6e5:	73 c0                	jae    0x44d6a7
44d6e7:	0f b7 0f             	movzwl (%edi),%ecx
44d6ea:	8b c1                	mov    %ecx,%eax
44d6ec:	25 00 fc 00 00       	and    $0xfc00,%eax
44d6f1:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d6f6:	75 1f                	jne    0x44d717
44d6f8:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d6fc:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d702:	25 ff 03 00 00       	and    $0x3ff,%eax
44d707:	c1 e1 0a             	shl    $0xa,%ecx
44d70a:	0b c8                	or     %eax,%ecx
44d70c:	ba 02 00 00 00       	mov    $0x2,%edx
44d711:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d717:	81 f9 0e 18 00 00    	cmp    $0x180e,%ecx
44d71d:	77 4d                	ja     0x44d76c
44d71f:	74 14                	je     0x44d735
44d721:	81 f9 a0 00 00 00    	cmp    $0xa0,%ecx
44d727:	77 39                	ja     0x44d762
44d729:	74 0a                	je     0x44d735
44d72b:	83 f9 09             	cmp    $0x9,%ecx
44d72e:	74 05                	je     0x44d735
44d730:	83 f9 20             	cmp    $0x20,%ecx
44d733:	75 63                	jne    0x44d798
44d735:	b9 01 00 00 00       	mov    $0x1,%ecx
44d73a:	33 c0                	xor    %eax,%eax
44d73c:	83 7d e4 12          	cmpl   $0x12,-0x1c(%ebp)
44d740:	0f 94 c0             	sete   %al
44d743:	3b c8                	cmp    %eax,%ecx
44d745:	0f 84 b3 03 00 00    	je     0x44dafe
44d74b:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d74e:	8d 3c 57             	lea    (%edi,%edx,2),%edi
44d751:	40                   	inc    %eax
44d752:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d755:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d758:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d75b:	7c 80                	jl     0x44d6dd
44d75d:	e9 9c 03 00 00       	jmp    0x44dafe
44d762:	81 f9 80 16 00 00    	cmp    $0x1680,%ecx
44d768:	75 2e                	jne    0x44d798
44d76a:	eb c9                	jmp    0x44d735
44d76c:	81 f9 5f 20 00 00    	cmp    $0x205f,%ecx
44d772:	77 1c                	ja     0x44d790
44d774:	74 bf                	je     0x44d735
44d776:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
44d77c:	72 1a                	jb     0x44d798
44d77e:	81 f9 0a 20 00 00    	cmp    $0x200a,%ecx
44d784:	76 af                	jbe    0x44d735
44d786:	81 f9 2f 20 00 00    	cmp    $0x202f,%ecx
44d78c:	75 0a                	jne    0x44d798
44d78e:	eb a5                	jmp    0x44d735
44d790:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
44d796:	74 9d                	je     0x44d735
44d798:	33 c9                	xor    %ecx,%ecx
44d79a:	eb 9e                	jmp    0x44d73a
44d79c:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d79f:	0f 8d 59 03 00 00    	jge    0x44dafe
44d7a5:	ba 01 00 00 00       	mov    $0x1,%edx
44d7aa:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44d7ad:	0f 83 f4 fe ff ff    	jae    0x44d6a7
44d7b3:	0f b7 0f             	movzwl (%edi),%ecx
44d7b6:	8b c1                	mov    %ecx,%eax
44d7b8:	25 00 fc 00 00       	and    $0xfc00,%eax
44d7bd:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d7c2:	75 1f                	jne    0x44d7e3
44d7c4:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d7c8:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d7ce:	25 ff 03 00 00       	and    $0x3ff,%eax
44d7d3:	c1 e1 0a             	shl    $0xa,%ecx
44d7d6:	0b c8                	or     %eax,%ecx
44d7d8:	ba 02 00 00 00       	mov    $0x2,%edx
44d7dd:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d7e3:	81 f9 85 00 00 00    	cmp    $0x85,%ecx
44d7e9:	77 36                	ja     0x44d821
44d7eb:	74 3f                	je     0x44d82c
44d7ed:	83 f9 0a             	cmp    $0xa,%ecx
44d7f0:	72 05                	jb     0x44d7f7
44d7f2:	83 f9 0d             	cmp    $0xd,%ecx
44d7f5:	76 35                	jbe    0x44d82c
44d7f7:	33 c9                	xor    %ecx,%ecx
44d7f9:	33 c0                	xor    %eax,%eax
44d7fb:	83 7d e4 14          	cmpl   $0x14,-0x1c(%ebp)
44d7ff:	0f 94 c0             	sete   %al
44d802:	3b c8                	cmp    %eax,%ecx
44d804:	0f 84 f4 02 00 00    	je     0x44dafe
44d80a:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d80d:	8d 3c 57             	lea    (%edi,%edx,2),%edi
44d810:	40                   	inc    %eax
44d811:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d814:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d817:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d81a:	7c 89                	jl     0x44d7a5
44d81c:	e9 dd 02 00 00       	jmp    0x44dafe
44d821:	8d 81 d8 df ff ff    	lea    -0x2028(%ecx),%eax
44d827:	83 f8 01             	cmp    $0x1,%eax
44d82a:	77 cb                	ja     0x44d7f7
44d82c:	b9 01 00 00 00       	mov    $0x1,%ecx
44d831:	eb c6                	jmp    0x44d7f9
44d833:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d836:	0f 8d c2 02 00 00    	jge    0x44dafe
44d83c:	ba 01 00 00 00       	mov    $0x1,%edx
44d841:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44d844:	0f 83 5d fe ff ff    	jae    0x44d6a7
44d84a:	0f b7 0f             	movzwl (%edi),%ecx
44d84d:	8b c1                	mov    %ecx,%eax
44d84f:	25 00 fc 00 00       	and    $0xfc00,%eax
44d854:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d859:	75 1f                	jne    0x44d87a
44d85b:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d85f:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d865:	25 ff 03 00 00       	and    $0x3ff,%eax
44d86a:	c1 e1 0a             	shl    $0xa,%ecx
44d86d:	0b c8                	or     %eax,%ecx
44d86f:	ba 02 00 00 00       	mov    $0x2,%edx
44d874:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d87a:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
44d880:	73 0d                	jae    0x44d88f
44d882:	8b 46 44             	mov    0x44(%esi),%eax
44d885:	f6 04 01 04          	testb  $0x4,(%ecx,%eax,1)
44d889:	0f 85 6f 02 00 00    	jne    0x44dafe
44d88f:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d892:	8d 3c 57             	lea    (%edi,%edx,2),%edi
44d895:	40                   	inc    %eax
44d896:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d899:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d89c:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d89f:	7c 9b                	jl     0x44d83c
44d8a1:	e9 58 02 00 00       	jmp    0x44dafe
44d8a6:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d8a9:	0f 8d 4f 02 00 00    	jge    0x44dafe
44d8af:	ba 01 00 00 00       	mov    $0x1,%edx
44d8b4:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44d8b7:	0f 83 ea fd ff ff    	jae    0x44d6a7
44d8bd:	0f b7 0f             	movzwl (%edi),%ecx
44d8c0:	8b c1                	mov    %ecx,%eax
44d8c2:	25 00 fc 00 00       	and    $0xfc00,%eax
44d8c7:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d8cc:	75 1f                	jne    0x44d8ed
44d8ce:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d8d2:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d8d8:	25 ff 03 00 00       	and    $0x3ff,%eax
44d8dd:	c1 e1 0a             	shl    $0xa,%ecx
44d8e0:	0b c8                	or     %eax,%ecx
44d8e2:	ba 02 00 00 00       	mov    $0x2,%edx
44d8e7:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d8ed:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
44d8f3:	0f 83 05 02 00 00    	jae    0x44dafe
44d8f9:	8b 46 44             	mov    0x44(%esi),%eax
44d8fc:	f6 04 01 04          	testb  $0x4,(%ecx,%eax,1)
44d900:	0f 84 f8 01 00 00    	je     0x44dafe
44d906:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d909:	8d 3c 57             	lea    (%edi,%edx,2),%edi
44d90c:	40                   	inc    %eax
44d90d:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d910:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d913:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d916:	7c 97                	jl     0x44d8af
44d918:	e9 e1 01 00 00       	jmp    0x44dafe
44d91d:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d920:	0f 8d d8 01 00 00    	jge    0x44dafe
44d926:	ba 01 00 00 00       	mov    $0x1,%edx
44d92b:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44d92e:	0f 83 73 fd ff ff    	jae    0x44d6a7
44d934:	0f b7 0f             	movzwl (%edi),%ecx
44d937:	8b c1                	mov    %ecx,%eax
44d939:	25 00 fc 00 00       	and    $0xfc00,%eax
44d93e:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d943:	75 1f                	jne    0x44d964
44d945:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d949:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d94f:	25 ff 03 00 00       	and    $0x3ff,%eax
44d954:	c1 e1 0a             	shl    $0xa,%ecx
44d957:	0b c8                	or     %eax,%ecx
44d959:	ba 02 00 00 00       	mov    $0x2,%edx
44d95e:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d964:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
44d96a:	73 0d                	jae    0x44d979
44d96c:	8b 46 44             	mov    0x44(%esi),%eax
44d96f:	f6 04 01 01          	testb  $0x1,(%ecx,%eax,1)
44d973:	0f 85 85 01 00 00    	jne    0x44dafe
44d979:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d97c:	8d 3c 57             	lea    (%edi,%edx,2),%edi
44d97f:	40                   	inc    %eax