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
44ea02:	8b cf                	mov    %edi,%ecx
44ea04:	50                   	push   %eax
44ea05:	ff 75 14             	push   0x14(%ebp)
44ea08:	56                   	push   %esi
44ea09:	ff 75 0c             	push   0xc(%ebp)
44ea0c:	ff 75 08             	push   0x8(%ebp)
44ea0f:	e8 ac 5f fc ff       	call   0x4149c0
44ea14:	83 c4 14             	add    $0x14,%esp
44ea17:	85 c0                	test   %eax,%eax
44ea19:	0f 85 1e 61 fc ff    	jne    0x414b3d
44ea1f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
44ea22:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
44ea25:	0f 8d 33 66 fc ff    	jge    0x41505e
44ea2b:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44ea2e:	0f 83 32 fe ff ff    	jae    0x44e866
44ea34:	0f b7 07             	movzwl (%edi),%eax
44ea37:	83 c7 02             	add    $0x2,%edi
44ea3a:	39 45 f4             	cmp    %eax,-0xc(%ebp)
44ea3d:	0f 85 1b 66 fc ff    	jne    0x41505e
44ea43:	8b 45 18             	mov    0x18(%ebp),%eax
44ea46:	41                   	inc    %ecx
44ea47:	40                   	inc    %eax
44ea48:	89 4d f0             	mov    %ecx,-0x10(%ebp)
44ea4b:	50                   	push   %eax
44ea4c:	ff 75 14             	push   0x14(%ebp)
44ea4f:	8b d3                	mov    %ebx,%edx
44ea51:	8b cf                	mov    %edi,%ecx
44ea53:	56                   	push   %esi
44ea54:	ff 75 0c             	push   0xc(%ebp)
44ea57:	ff 75 08             	push   0x8(%ebp)
44ea5a:	e8 61 5f fc ff       	call   0x4149c0
44ea5f:	83 c4 14             	add    $0x14,%esp
44ea62:	85 c0                	test   %eax,%eax
44ea64:	74 b9                	je     0x44ea1f
44ea66:	e9 d2 60 fc ff       	jmp    0x414b3d
44ea6b:	8b 45 18             	mov    0x18(%ebp),%eax
44ea6e:	8b d3                	mov    %ebx,%edx
44ea70:	8b 7d f8             	mov    -0x8(%ebp),%edi
44ea73:	40                   	inc    %eax
44ea74:	50                   	push   %eax
44ea75:	ff 75 14             	push   0x14(%ebp)
44ea78:	8b cf                	mov    %edi,%ecx
44ea7a:	56                   	push   %esi
44ea7b:	ff 75 0c             	push   0xc(%ebp)
44ea7e:	ff 75 08             	push   0x8(%ebp)
44ea81:	e8 3a 5f fc ff       	call   0x4149c0
44ea86:	83 c4 14             	add    $0x14,%esp
44ea89:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44ea8d:	0f 84 87 00 00 00    	je     0x44eb1a
44ea93:	85 c0                	test   %eax,%eax
44ea95:	0f 85 a2 60 fc ff    	jne    0x414b3d
44ea9b:	8b 55 f0             	mov    -0x10(%ebp),%edx
44ea9e:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44eaa1:	0f 8d b7 65 fc ff    	jge    0x41505e
44eaa7:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44eaaa:	0f 83 b6 fd ff ff    	jae    0x44e866
44eab0:	0f b7 0f             	movzwl (%edi),%ecx
44eab3:	83 c7 02             	add    $0x2,%edi
44eab6:	8b c1                	mov    %ecx,%eax
44eab8:	25 00 fc 00 00       	and    $0xfc00,%eax
44eabd:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44eac2:	75 1c                	jne    0x44eae0
44eac4:	0f b7 07             	movzwl (%edi),%eax
44eac7:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44eacd:	c1 e1 0a             	shl    $0xa,%ecx
44ead0:	25 ff 03 00 00       	and    $0x3ff,%eax
44ead5:	0b c8                	or     %eax,%ecx
44ead7:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44eadd:	83 c7 02             	add    $0x2,%edi
44eae0:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
44eae3:	0f 84 75 65 fc ff    	je     0x41505e
44eae9:	39 4d e0             	cmp    %ecx,-0x20(%ebp)
44eaec:	0f 84 6c 65 fc ff    	je     0x41505e
44eaf2:	8b 45 18             	mov    0x18(%ebp),%eax
44eaf5:	42                   	inc    %edx
44eaf6:	40                   	inc    %eax
44eaf7:	89 55 f0             	mov    %edx,-0x10(%ebp)
44eafa:	50                   	push   %eax
44eafb:	ff 75 14             	push   0x14(%ebp)
44eafe:	8b d3                	mov    %ebx,%edx
44eb00:	8b cf                	mov    %edi,%ecx
44eb02:	56                   	push   %esi
44eb03:	ff 75 0c             	push   0xc(%ebp)
44eb06:	ff 75 08             	push   0x8(%ebp)
44eb09:	e8 b2 5e fc ff       	call   0x4149c0
44eb0e:	83 c4 14             	add    $0x14,%esp
44eb11:	85 c0                	test   %eax,%eax
44eb13:	74 86                	je     0x44ea9b
44eb15:	e9 23 60 fc ff       	jmp    0x414b3d
44eb1a:	85 c0                	test   %eax,%eax
44eb1c:	0f 85 1b 60 fc ff    	jne    0x414b3d
44eb22:	8b 45 f0             	mov    -0x10(%ebp),%eax
44eb25:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44eb28:	0f 8d 30 65 fc ff    	jge    0x41505e
44eb2e:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44eb31:	0f 83 2f fd ff ff    	jae    0x44e866
44eb37:	0f b7 0f             	movzwl (%edi),%ecx
44eb3a:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
44eb3d:	0f 84 1b 65 fc ff    	je     0x41505e
44eb43:	39 4d e0             	cmp    %ecx,-0x20(%ebp)
44eb46:	0f 84 12 65 fc ff    	je     0x41505e
44eb4c:	40                   	inc    %eax
44eb4d:	83 c7 02             	add    $0x2,%edi
44eb50:	89 45 f0             	mov    %eax,-0x10(%ebp)
44eb53:	8b d3                	mov    %ebx,%edx
44eb55:	8b 45 18             	mov    0x18(%ebp),%eax
44eb58:	8b cf                	mov    %edi,%ecx
44eb5a:	40                   	inc    %eax
44eb5b:	50                   	push   %eax
44eb5c:	ff 75 14             	push   0x14(%ebp)
44eb5f:	56                   	push   %esi
44eb60:	ff 75 0c             	push   0xc(%ebp)
44eb63:	ff 75 08             	push   0x8(%ebp)
44eb66:	e8 55 5e fc ff       	call   0x4149c0
44eb6b:	83 c4 14             	add    $0x14,%esp
44eb6e:	85 c0                	test   %eax,%eax
44eb70:	74 b0                	je     0x44eb22
44eb72:	e9 c6 5f fc ff       	jmp    0x414b3d
44eb77:	8b 45 18             	mov    0x18(%ebp),%eax
44eb7a:	8b d3                	mov    %ebx,%edx
44eb7c:	40                   	inc    %eax
44eb7d:	8b cf                	mov    %edi,%ecx
44eb7f:	50                   	push   %eax
44eb80:	ff 75 14             	push   0x14(%ebp)
44eb83:	56                   	push   %esi
44eb84:	ff 75 0c             	push   0xc(%ebp)
44eb87:	ff 75 08             	push   0x8(%ebp)
44eb8a:	e8 31 5e fc ff       	call   0x4149c0
44eb8f:	83 c4 14             	add    $0x14,%esp
44eb92:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44eb96:	74 7e                	je     0x44ec16
44eb98:	85 c0                	test   %eax,%eax
44eb9a:	0f 85 9d 5f fc ff    	jne    0x414b3d
44eba0:	8b 55 f0             	mov    -0x10(%ebp),%edx
44eba3:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44eba6:	0f 8d b2 64 fc ff    	jge    0x41505e
44ebac:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44ebaf:	0f 83 b1 fc ff ff    	jae    0x44e866
44ebb5:	0f b7 0f             	movzwl (%edi),%ecx
44ebb8:	83 c7 02             	add    $0x2,%edi
44ebbb:	8b c1                	mov    %ecx,%eax
44ebbd:	25 00 fc 00 00       	and    $0xfc00,%eax
44ebc2:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44ebc7:	75 1c                	jne    0x44ebe5
44ebc9:	0f b7 07             	movzwl (%edi),%eax
44ebcc:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44ebd2:	c1 e1 0a             	shl    $0xa,%ecx
44ebd5:	25 ff 03 00 00       	and    $0x3ff,%eax
44ebda:	0b c8                	or     %eax,%ecx
44ebdc:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44ebe2:	83 c7 02             	add    $0x2,%edi
44ebe5:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
44ebe8:	0f 84 70 64 fc ff    	je     0x41505e
44ebee:	8b 45 18             	mov    0x18(%ebp),%eax
44ebf1:	42                   	inc    %edx
44ebf2:	40                   	inc    %eax
44ebf3:	89 55 f0             	mov    %edx,-0x10(%ebp)
44ebf6:	50                   	push   %eax
44ebf7:	ff 75 14             	push   0x14(%ebp)
44ebfa:	8b d3                	mov    %ebx,%edx
44ebfc:	8b cf                	mov    %edi,%ecx
44ebfe:	56                   	push   %esi
44ebff:	ff 75 0c             	push   0xc(%ebp)
44ec02:	ff 75 08             	push   0x8(%ebp)
44ec05:	e8 b6 5d fc ff       	call   0x4149c0
44ec0a:	83 c4 14             	add    $0x14,%esp
44ec0d:	85 c0                	test   %eax,%eax
44ec0f:	74 8f                	je     0x44eba0
44ec11:	e9 27 5f fc ff       	jmp    0x414b3d
44ec16:	85 c0                	test   %eax,%eax
44ec18:	0f 85 1f 5f fc ff    	jne    0x414b3d
44ec1e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
44ec21:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
44ec24:	0f 8d 34 64 fc ff    	jge    0x41505e
44ec2a:	3b 7e 7c             	cmp    0x7c(%esi),%edi