44e5a1:	8b 45 18             	mov    0x18(%ebp),%eax
44e5a4:	8b d3                	mov    %ebx,%edx
44e5a6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44e5a9:	40                   	inc    %eax
44e5aa:	50                   	push   %eax
44e5ab:	ff 75 14             	push   0x14(%ebp)
44e5ae:	56                   	push   %esi
44e5af:	ff 75 0c             	push   0xc(%ebp)
44e5b2:	ff 75 08             	push   0x8(%ebp)
44e5b5:	e8 06 64 fc ff       	call   0x4149c0
44e5ba:	83 c4 14             	add    $0x14,%esp
44e5bd:	85 c0                	test   %eax,%eax
44e5bf:	0f 85 78 65 fc ff    	jne    0x414b3d
44e5c5:	8b 45 e0             	mov    -0x20(%ebp),%eax
44e5c8:	8b 55 f8             	mov    -0x8(%ebp),%edx
44e5cb:	f7 d8                	neg    %eax
44e5cd:	8d 14 42             	lea    (%edx,%eax,2),%edx
44e5d0:	89 55 f8             	mov    %edx,-0x8(%ebp)
44e5d3:	3b d7                	cmp    %edi,%edx
44e5d5:	73 ca                	jae    0x44e5a1
44e5d7:	33 c0                	xor    %eax,%eax
44e5d9:	e9 5f 65 fc ff       	jmp    0x414b3d
44e5de:	83 f9 fe             	cmp    $0xfffffffe,%ecx
44e5e1:	75 05                	jne    0x44e5e8
44e5e3:	8b 46 7c             	mov    0x7c(%esi),%eax
44e5e6:	eb 03                	jmp    0x44e5eb
44e5e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
44e5eb:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44e5f2:	0f 84 66 6a fc ff    	je     0x41505e
44e5f8:	3b 46 7c             	cmp    0x7c(%esi),%eax
44e5fb:	0f 82 5d 6a fc ff    	jb     0x41505e
44e601:	e9 c6 fe ff ff       	jmp    0x44e4cc
44e606:	8b c7                	mov    %edi,%eax
44e608:	83 ef 02             	sub    $0x2,%edi
44e60b:	3b 45 d4             	cmp    -0x2c(%ebp),%eax
44e60e:	0f 84 4a 6a fc ff    	je     0x41505e
44e614:	66 8b 07             	mov    (%edi),%ax
44e617:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44e61c:	66 23 c1             	and    %cx,%ax
44e61f:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44e624:	66 3b c1             	cmp    %cx,%ax
44e627:	75 03                	jne    0x44e62c
44e629:	83 ef 02             	sub    $0x2,%edi
44e62c:	8b 45 18             	mov    0x18(%ebp),%eax
44e62f:	8b d3                	mov    %ebx,%edx
44e631:	40                   	inc    %eax
44e632:	8b cf                	mov    %edi,%ecx
44e634:	50                   	push   %eax
44e635:	ff 75 14             	push   0x14(%ebp)
44e638:	56                   	push   %esi
44e639:	ff 75 0c             	push   0xc(%ebp)
44e63c:	ff 75 08             	push   0x8(%ebp)
44e63f:	e8 7c 63 fc ff       	call   0x4149c0
44e644:	83 c4 14             	add    $0x14,%esp
44e647:	85 c0                	test   %eax,%eax
44e649:	74 bb                	je     0x44e606
44e64b:	e9 ed 64 fc ff       	jmp    0x414b3d
44e650:	8b 45 18             	mov    0x18(%ebp),%eax
44e653:	8b d3                	mov    %ebx,%edx
44e655:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44e658:	40                   	inc    %eax
44e659:	50                   	push   %eax
44e65a:	ff 75 14             	push   0x14(%ebp)
44e65d:	56                   	push   %esi
44e65e:	ff 75 0c             	push   0xc(%ebp)
44e661:	ff 75 08             	push   0x8(%ebp)
44e664:	e8 57 63 fc ff       	call   0x4149c0
44e669:	83 c4 14             	add    $0x14,%esp
44e66c:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44e670:	0f 84 c8 00 00 00    	je     0x44e73e
44e676:	85 c0                	test   %eax,%eax
44e678:	0f 85 bf 64 fc ff    	jne    0x414b3d
44e67e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
44e681:	39 45 f0             	cmp    %eax,-0x10(%ebp)
44e684:	0f 8d d4 69 fc ff    	jge    0x41505e
44e68a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44e68d:	3b 4e 7c             	cmp    0x7c(%esi),%ecx
44e690:	0f 83 90 00 00 00    	jae    0x44e726
44e696:	0f b7 11             	movzwl (%ecx),%edx
44e699:	83 c1 02             	add    $0x2,%ecx
44e69c:	8b c2                	mov    %edx,%eax
44e69e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
44e6a1:	25 00 fc 00 00       	and    $0xfc00,%eax
44e6a6:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44e6ab:	75 1f                	jne    0x44e6cc
44e6ad:	0f b7 01             	movzwl (%ecx),%eax
44e6b0:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
44e6b6:	c1 e2 0a             	shl    $0xa,%edx
44e6b9:	25 ff 03 00 00       	and    $0x3ff,%eax
44e6be:	0b d0                	or     %eax,%edx
44e6c0:	81 c2 00 00 01 00    	add    $0x10000,%edx
44e6c6:	83 c1 02             	add    $0x2,%ecx
44e6c9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
44e6cc:	81 fa ff 00 00 00    	cmp    $0xff,%edx
44e6d2:	76 0b                	jbe    0x44e6df
44e6d4:	83 ff 6e             	cmp    $0x6e,%edi
44e6d7:	0f 84 81 69 fc ff    	je     0x41505e
44e6dd:	eb 1e                	jmp    0x44e6fd
44e6df:	8b ca                	mov    %edx,%ecx
44e6e1:	b8 01 00 00 00       	mov    $0x1,%eax
44e6e6:	83 e1 07             	and    $0x7,%ecx
44e6e9:	c1 ea 03             	shr    $0x3,%edx
44e6ec:	d3 e0                	shl    %cl,%eax
44e6ee:	8b 4d e0             	mov    -0x20(%ebp),%ecx
44e6f1:	84 04 0a             	test   %al,(%edx,%ecx,1)
44e6f4:	0f 84 64 69 fc ff    	je     0x41505e
44e6fa:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44e6fd:	8b 45 18             	mov    0x18(%ebp),%eax
44e700:	8b d3                	mov    %ebx,%edx
44e702:	ff 45 f0             	incl   -0x10(%ebp)
44e705:	40                   	inc    %eax
44e706:	50                   	push   %eax
44e707:	ff 75 14             	push   0x14(%ebp)
44e70a:	56                   	push   %esi
44e70b:	ff 75 0c             	push   0xc(%ebp)
44e70e:	ff 75 08             	push   0x8(%ebp)
44e711:	e8 aa 62 fc ff       	call   0x4149c0
44e716:	83 c4 14             	add    $0x14,%esp
44e719:	85 c0                	test   %eax,%eax
44e71b:	0f 84 5d ff ff ff    	je     0x44e67e
44e721:	e9 17 64 fc ff       	jmp    0x414b3d
44e726:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44e72d:	0f 84 2b 69 fc ff    	je     0x41505e
44e733:	3b 8e 88 00 00 00    	cmp    0x88(%esi),%ecx
44e739:	e9 9c fd ff ff       	jmp    0x44e4da
44e73e:	85 c0                	test   %eax,%eax
44e740:	0f 85 f7 63 fc ff    	jne    0x414b3d
44e746:	8b 45 e4             	mov    -0x1c(%ebp),%eax
44e749:	39 45 f0             	cmp    %eax,-0x10(%ebp)
44e74c:	0f 8d 0c 69 fc ff    	jge    0x41505e
44e752:	8b 45 f8             	mov    -0x8(%ebp),%eax
44e755:	3b 46 7c             	cmp    0x7c(%esi),%eax
44e758:	0f 83 61 fd ff ff    	jae    0x44e4bf
44e75e:	0f b7 10             	movzwl (%eax),%edx
44e761:	83 c0 02             	add    $0x2,%eax
44e764:	89 45 f8             	mov    %eax,-0x8(%ebp)
44e767:	81 fa ff 00 00 00    	cmp    $0xff,%edx
44e76d:	76 0b                	jbe    0x44e77a
44e76f:	83 ff 6e             	cmp    $0x6e,%edi
44e772:	0f 84 e6 68 fc ff    	je     0x41505e
44e778:	eb 1b                	jmp    0x44e795
44e77a:	8b ca                	mov    %edx,%ecx
44e77c:	b8 01 00 00 00       	mov    $0x1,%eax
44e781:	83 e1 07             	and    $0x7,%ecx
44e784:	c1 ea 03             	shr    $0x3,%edx
44e787:	d3 e0                	shl    %cl,%eax
44e789:	8b 4d e0             	mov    -0x20(%ebp),%ecx
44e78c:	84 04 0a             	test   %al,(%edx,%ecx,1)
44e78f:	0f 84 c9 68 fc ff    	je     0x41505e
44e795:	8b 45 18             	mov    0x18(%ebp),%eax
44e798:	8b d3                	mov    %ebx,%edx
44e79a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44e79d:	40                   	inc    %eax
44e79e:	ff 45 f0             	incl   -0x10(%ebp)
44e7a1:	50                   	push   %eax
44e7a2:	ff 75 14             	push   0x14(%ebp)
44e7a5:	56                   	push   %esi
44e7a6:	ff 75 0c             	push   0xc(%ebp)
44e7a9:	ff 75 08             	push   0x8(%ebp)
44e7ac:	e8 0f 62 fc ff       	call   0x4149c0
44e7b1:	83 c4 14             	add    $0x14,%esp
44e7b4:	85 c0                	test   %eax,%eax
44e7b6:	74 8e                	je     0x44e746
44e7b8:	e9 80 63 fc ff       	jmp    0x414b3d
44e7bd:	8b 45 18             	mov    0x18(%ebp),%eax
44e7c0:	8b d3                	mov    %ebx,%edx
44e7c2:	8b 7d f8             	mov    -0x8(%ebp),%edi
44e7c5:	40                   	inc    %eax
44e7c6:	50                   	push   %eax
44e7c7:	ff 75 14             	push   0x14(%ebp)
44e7ca:	8b cf                	mov    %edi,%ecx
44e7cc:	56                   	push   %esi
44e7cd:	ff 75 0c             	push   0xc(%ebp)
44e7d0:	ff 75 08             	push   0x8(%ebp)
44e7d3:	e8 e8 61 fc ff       	call   0x4149c0
44e7d8:	83 c4 14             	add    $0x14,%esp
44e7db:	85 c0                	test   %eax,%eax
44e7dd:	0f 85 5a 63 fc ff    	jne    0x414b3d
44e7e3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
44e7e6:	39 45 e0             	cmp    %eax,-0x20(%ebp)
44e7e9:	0f 8d 6f 68 fc ff    	jge    0x41505e
44e7ef:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44e7f2:	73 72                	jae    0x44e866
44e7f4:	0f b7 0f             	movzwl (%edi),%ecx
44e7f7:	83 c7 02             	add    $0x2,%edi
44e7fa:	8b 55 dc             	mov    -0x24(%ebp),%edx
44e7fd:	85 d2                	test   %edx,%edx
44e7ff:	74 2a                	je     0x44e82b
44e801:	8b c1                	mov    %ecx,%eax
44e803:	25 00 fc 00 00       	and    $0xfc00,%eax
44e808:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44e80d:	75 1c                	jne    0x44e82b
44e80f:	0f b7 07             	movzwl (%edi),%eax
44e812:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44e818:	c1 e1 0a             	shl    $0xa,%ecx
44e81b:	25 ff 03 00 00       	and    $0x3ff,%eax
44e820:	0b c8                	or     %eax,%ecx
44e822:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44e828:	83 c7 02             	add    $0x2,%edi
44e82b:	52                   	push   %edx
44e82c:	8b 55 d8             	mov    -0x28(%ebp),%edx
44e82f:	e8 b2 02 04 00       	call   0x48eae6
44e834:	83 c4 04             	add    $0x4,%esp
44e837:	85 c0                	test   %eax,%eax
44e839:	0f 84 1f 68 fc ff    	je     0x41505e
44e83f:	8b 45 18             	mov    0x18(%ebp),%eax
44e842:	8b d3                	mov    %ebx,%edx
44e844:	ff 45 e0             	incl   -0x20(%ebp)
44e847:	40                   	inc    %eax
44e848:	50                   	push   %eax
44e849:	ff 75 14             	push   0x14(%ebp)
44e84c:	8b cf                	mov    %edi,%ecx
44e84e:	56                   	push   %esi
44e84f:	ff 75 0c             	push   0xc(%ebp)
44e852:	ff 75 08             	push   0x8(%ebp)
44e855:	e8 66 61 fc ff       	call   0x4149c0
44e85a:	83 c4 14             	add    $0x14,%esp
44e85d:	85 c0                	test   %eax,%eax
44e85f:	74 82                	je     0x44e7e3
44e861:	e9 d7 62 fc ff       	jmp    0x414b3d
44e866:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44e86d:	0f 84 eb 67 fc ff    	je     0x41505e
44e873:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44e879:	e9 5c fc ff ff       	jmp    0x44e4da
44e87e:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44e885:	0f 84 d3 67 fc ff    	je     0x41505e
44e88b:	3b 56 7c             	cmp    0x7c(%esi),%edx
44e88e:	0f 82 ca 67 fc ff    	jb     0x41505e
44e894:	3b 96 88 00 00 00    	cmp    0x88(%esi),%edx
44e89a:	e9 3b fc ff ff       	jmp    0x44e4da
44e89f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44e8a2:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44e8a9:	0f 84 af 67 fc ff    	je     0x41505e
44e8af:	3b 4e 7c             	cmp    0x7c(%esi),%ecx
44e8b2:	0f 82 a6 67 fc ff    	jb     0x41505e
44e8b8:	e9 17 fc ff ff       	jmp    0x44e4d4
44e8bd:	8b 45 18             	mov    0x18(%ebp),%eax
44e8c0:	8b d3                	mov    %ebx,%edx
44e8c2:	8b 7d f8             	mov    -0x8(%ebp),%edi
44e8c5:	40                   	inc    %eax
44e8c6:	50                   	push   %eax
44e8c7:	ff 75 14             	push   0x14(%ebp)
44e8ca:	8b cf                	mov    %edi,%ecx
44e8cc:	56                   	push   %esi
44e8cd:	ff 75 0c             	push   0xc(%ebp)
44e8d0:	ff 75 08             	push   0x8(%ebp)
44e8d3:	e8 e8 60 fc ff       	call   0x4149c0
44e8d8:	83 c4 14             	add    $0x14,%esp
44e8db:	85 c0                	test   %eax,%eax
44e8dd:	0f 85 5a 62 fc ff    	jne    0x414b3d
44e8e3:	8b 55 e4             	mov    -0x1c(%ebp),%edx
44e8e6:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
44e8e9:	89 4d d8             	mov    %ecx,-0x28(%ebp)
44e8ec:	8b 45 f0             	mov    -0x10(%ebp),%eax
44e8ef:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44e8f2:	0f 8d 66 67 fc ff    	jge    0x41505e
44e8f8:	8b 46 7c             	mov    0x7c(%esi),%eax
44e8fb:	2b c1                	sub    %ecx,%eax
44e8fd:	3b f8                	cmp    %eax,%edi
44e8ff:	77 19                	ja     0x44e91a
44e901:	8d 04 12             	lea    (%edx,%edx,1),%eax
44e904:	50                   	push   %eax
44e905:	ff 75 ec             	push   -0x14(%ebp)
44e908:	57                   	push   %edi
44e909:	e8 b6 2d fd ff       	call   0x4216c4
44e90e:	83 c4 0c             	add    $0xc,%esp
44e911:	85 c0                	test   %eax,%eax
44e913:	75 05                	jne    0x44e91a
44e915:	03 7d d8             	add    -0x28(%ebp),%edi
44e918:	eb 3a                	jmp    0x44e954
44e91a:	8b 55 e0             	mov    -0x20(%ebp),%edx
44e91d:	85 d2                	test   %edx,%edx
44e91f:	0f 8e eb fb ff ff    	jle    0x44e510
44e925:	8b 46 7c             	mov    0x7c(%esi),%eax
44e928:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
44e92b:	2b c1                	sub    %ecx,%eax
44e92d:	3b f8                	cmp    %eax,%edi
44e92f:	0f 87 db fb ff ff    	ja     0x44e510
44e935:	8d 04 12             	lea    (%edx,%edx,1),%eax
44e938:	50                   	push   %eax
44e939:	8d 45 98             	lea    -0x68(%ebp),%eax
44e93c:	50                   	push   %eax
44e93d:	57                   	push   %edi
44e93e:	e8 81 2d fd ff       	call   0x4216c4
44e943:	83 c4 0c             	add    $0xc,%esp
44e946:	85 c0                	test   %eax,%eax
44e948:	0f 85 c2 fb ff ff    	jne    0x44e510
44e94e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
44e951:	8d 3c 4f             	lea    (%edi,%ecx,2),%edi
44e954:	8b 45 18             	mov    0x18(%ebp),%eax
44e957:	8b d3                	mov    %ebx,%edx
44e959:	ff 45 f0             	incl   -0x10(%ebp)
44e95c:	40                   	inc    %eax
44e95d:	50                   	push   %eax
44e95e:	ff 75 14             	push   0x14(%ebp)
44e961:	8b cf                	mov    %edi,%ecx
44e963:	56                   	push   %esi
44e964:	ff 75 0c             	push   0xc(%ebp)
44e967:	ff 75 08             	push   0x8(%ebp)
44e96a:	e8 51 60 fc ff       	call   0x4149c0
44e96f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
44e972:	83 c4 14             	add    $0x14,%esp
44e975:	8b 55 e4             	mov    -0x1c(%ebp),%edx
44e978:	85 c0                	test   %eax,%eax
44e97a:	0f 84 6c ff ff ff    	je     0x44e8ec
44e980:	e9 b8 61 fc ff       	jmp    0x414b3d
44e985:	8b 45 18             	mov    0x18(%ebp),%eax
44e988:	8b d3                	mov    %ebx,%edx
44e98a:	8b 7d f8             	mov    -0x8(%ebp),%edi
44e98d:	40                   	inc    %eax
44e98e:	50                   	push   %eax
44e98f:	ff 75 14             	push   0x14(%ebp)
44e992:	8b cf                	mov    %edi,%ecx
44e994:	56                   	push   %esi
44e995:	ff 75 0c             	push   0xc(%ebp)
44e998:	ff 75 08             	push   0x8(%ebp)
44e99b:	e8 20 60 fc ff       	call   0x4149c0
44e9a0:	83 c4 14             	add    $0x14,%esp
44e9a3:	85 c0                	test   %eax,%eax
44e9a5:	0f 85 92 61 fc ff    	jne    0x414b3d
44e9ab:	8b 45 f0             	mov    -0x10(%ebp),%eax
44e9ae:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44e9b1:	0f 8d a7 66 fc ff    	jge    0x41505e
44e9b7:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44e9ba:	0f 83 a6 fe ff ff    	jae    0x44e866
44e9c0:	0f b7 0f             	movzwl (%edi),%ecx
44e9c3:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
44e9c6:	74 09                	je     0x44e9d1
44e9c8:	39 4d e4             	cmp    %ecx,-0x1c(%ebp)
44e9cb:	0f 85 8d 66 fc ff    	jne    0x41505e
44e9d1:	40                   	inc    %eax
44e9d2:	83 c7 02             	add    $0x2,%edi
44e9d5:	89 45 f0             	mov    %eax,-0x10(%ebp)
44e9d8:	8b d3                	mov    %ebx,%edx
44e9da:	8b 45 18             	mov    0x18(%ebp),%eax
44e9dd:	8b cf                	mov    %edi,%ecx
44e9df:	40                   	inc    %eax
44e9e0:	50                   	push   %eax
44e9e1:	ff 75 14             	push   0x14(%ebp)
44e9e4:	56                   	push   %esi
44e9e5:	ff 75 0c             	push   0xc(%ebp)
44e9e8:	ff 75 08             	push   0x8(%ebp)
44e9eb:	e8 d0 5f fc ff       	call   0x4149c0
44e9f0:	83 c4 14             	add    $0x14,%esp
44e9f3:	85 c0                	test   %eax,%eax
44e9f5:	74 b4                	je     0x44e9ab
44e9f7:	e9 41 61 fc ff       	jmp    0x414b3d
44e9fc:	8b 45 18             	mov    0x18(%ebp),%eax
44e9ff:	8b d3                	mov    %ebx,%edx
44ea01:	40                   	inc    %eax