44aaa8:	ff 75 08             	push   0x8(%ebp)
44aaab:	e8 10 9f fc ff       	call   0x4149c0
44aab0:	83 ef 02             	sub    $0x2,%edi
44aab3:	83 c4 14             	add    $0x14,%esp
44aab6:	89 7d f8             	mov    %edi,-0x8(%ebp)
44aab9:	85 c0                	test   %eax,%eax
44aabb:	0f 85 7c a0 fc ff    	jne    0x414b3d
44aac1:	3b 7d e0             	cmp    -0x20(%ebp),%edi
44aac4:	75 d2                	jne    0x44aa98
44aac6:	e9 ba a0 fc ff       	jmp    0x414b85
44aacb:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44aad2:	83 f9 01             	cmp    $0x1,%ecx
44aad5:	7d 05                	jge    0x44aadc
44aad7:	8b 7d f8             	mov    -0x8(%ebp),%edi
44aada:	eb 2c                	jmp    0x44ab08
44aadc:	8b 45 f8             	mov    -0x8(%ebp),%eax
44aadf:	3b 46 7c             	cmp    0x7c(%esi),%eax
44aae2:	0f 83 d7 39 00 00    	jae    0x44e4bf
44aae8:	8b 7d f8             	mov    -0x8(%ebp),%edi
44aaeb:	0f b7 00             	movzwl (%eax),%eax
44aaee:	83 c7 02             	add    $0x2,%edi
44aaf1:	89 7d f8             	mov    %edi,-0x8(%ebp)
44aaf4:	39 45 f4             	cmp    %eax,-0xc(%ebp)
44aaf7:	0f 85 61 a5 fc ff    	jne    0x41505e
44aafd:	8b 45 ec             	mov    -0x14(%ebp),%eax
44ab00:	40                   	inc    %eax
44ab01:	89 45 ec             	mov    %eax,-0x14(%ebp)
44ab04:	3b c1                	cmp    %ecx,%eax
44ab06:	7e d4                	jle    0x44aadc
44ab08:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
44ab0b:	0f 84 8f a1 fc ff    	je     0x414ca0
44ab11:	85 d2                	test   %edx,%edx
44ab13:	0f 85 e3 3e 00 00    	jne    0x44e9fc
44ab19:	8b 45 f8             	mov    -0x8(%ebp),%eax
44ab1c:	8b d0                	mov    %eax,%edx
44ab1e:	8b 7d e8             	mov    -0x18(%ebp),%edi
44ab21:	89 55 e0             	mov    %edx,-0x20(%ebp)
44ab24:	3b cf                	cmp    %edi,%ecx
44ab26:	7d 21                	jge    0x44ab49
44ab28:	8b 55 f4             	mov    -0xc(%ebp),%edx
44ab2b:	3b 46 7c             	cmp    0x7c(%esi),%eax
44ab2e:	73 61                	jae    0x44ab91
44ab30:	0f b7 00             	movzwl (%eax),%eax
44ab33:	3b d0                	cmp    %eax,%edx
44ab35:	75 0c                	jne    0x44ab43
44ab37:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
44ab3b:	41                   	inc    %ecx
44ab3c:	8b 45 f8             	mov    -0x8(%ebp),%eax
44ab3f:	3b cf                	cmp    %edi,%ecx
44ab41:	7c e8                	jl     0x44ab2b
44ab43:	8b 45 f8             	mov    -0x8(%ebp),%eax
44ab46:	8b 55 e0             	mov    -0x20(%ebp),%edx
44ab49:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
44ab4d:	0f 85 4d a1 fc ff    	jne    0x414ca0
44ab53:	3b c2                	cmp    %edx,%eax
44ab55:	0f 84 2a a0 fc ff    	je     0x414b85
44ab5b:	8b 7d f8             	mov    -0x8(%ebp),%edi
44ab5e:	8b 45 18             	mov    0x18(%ebp),%eax
44ab61:	8b d3                	mov    %ebx,%edx
44ab63:	40                   	inc    %eax
44ab64:	8b cf                	mov    %edi,%ecx
44ab66:	50                   	push   %eax
44ab67:	ff 75 14             	push   0x14(%ebp)
44ab6a:	56                   	push   %esi
44ab6b:	ff 75 0c             	push   0xc(%ebp)
44ab6e:	ff 75 08             	push   0x8(%ebp)
44ab71:	e8 4a 9e fc ff       	call   0x4149c0
44ab76:	83 ef 02             	sub    $0x2,%edi
44ab79:	83 c4 14             	add    $0x14,%esp
44ab7c:	89 7d f8             	mov    %edi,-0x8(%ebp)
44ab7f:	85 c0                	test   %eax,%eax
44ab81:	0f 85 b6 9f fc ff    	jne    0x414b3d
44ab87:	3b 7d e0             	cmp    -0x20(%ebp),%edi
44ab8a:	75 d2                	jne    0x44ab5e
44ab8c:	e9 f4 9f fc ff       	jmp    0x414b85
44ab91:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44ab98:	74 ac                	je     0x44ab46
44ab9a:	3b 86 88 00 00 00    	cmp    0x88(%esi),%eax
44aba0:	76 a4                	jbe    0x44ab46
44aba2:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44aba9:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44abb0:	0f 8f 0a e5 ff ff    	jg     0x4490c0
44abb6:	eb 8e                	jmp    0x44ab46
44abb8:	8b 45 f8             	mov    -0x8(%ebp),%eax
44abbb:	3b 46 7c             	cmp    0x7c(%esi),%eax
44abbe:	0f 83 fb 38 00 00    	jae    0x44e4bf
44abc4:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44abc8:	0f 84 fa 00 00 00    	je     0x44acc8
44abce:	0f b7 53 02          	movzwl 0x2(%ebx),%edx
44abd2:	83 c3 04             	add    $0x4,%ebx
44abd5:	8b c2                	mov    %edx,%eax
44abd7:	89 55 ec             	mov    %edx,-0x14(%ebp)
44abda:	25 00 fc 00 00       	and    $0xfc00,%eax
44abdf:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44abe2:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44abe7:	75 22                	jne    0x44ac0b
44abe9:	0f b7 03             	movzwl (%ebx),%eax
44abec:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
44abf2:	c1 e2 0a             	shl    $0xa,%edx
44abf5:	25 ff 03 00 00       	and    $0x3ff,%eax
44abfa:	0b d0                	or     %eax,%edx
44abfc:	81 c2 00 00 01 00    	add    $0x10000,%edx
44ac02:	83 c3 02             	add    $0x2,%ebx
44ac05:	89 55 ec             	mov    %edx,-0x14(%ebp)
44ac08:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44ac0b:	8b 45 f8             	mov    -0x8(%ebp),%eax
44ac0e:	0f b7 08             	movzwl (%eax),%ecx
44ac11:	83 c0 02             	add    $0x2,%eax
44ac14:	89 45 f8             	mov    %eax,-0x8(%ebp)
44ac17:	8b c1                	mov    %ecx,%eax
44ac19:	25 00 fc 00 00       	and    $0xfc00,%eax
44ac1e:	89 4d d8             	mov    %ecx,-0x28(%ebp)
44ac21:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44ac26:	75 23                	jne    0x44ac4b
44ac28:	8b 45 f8             	mov    -0x8(%ebp),%eax
44ac2b:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44ac31:	c1 e1 0a             	shl    $0xa,%ecx
44ac34:	0f b7 00             	movzwl (%eax),%eax
44ac37:	25 ff 03 00 00       	and    $0x3ff,%eax
44ac3c:	0b c8                	or     %eax,%ecx
44ac3e:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44ac44:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
44ac48:	89 4d d8             	mov    %ecx,-0x28(%ebp)
44ac4b:	83 ff 1f             	cmp    $0x1f,%edi
44ac4e:	75 0d                	jne    0x44ac5d
44ac50:	3b d1                	cmp    %ecx,%edx
44ac52:	0f 84 06 a4 fc ff    	je     0x41505e
44ac58:	e9 43 a0 fc ff       	jmp    0x414ca0
44ac5d:	83 fa 7f             	cmp    $0x7f,%edx
44ac60:	76 3e                	jbe    0x44aca0
44ac62:	8b c2                	mov    %edx,%eax
44ac64:	99                   	cltd
44ac65:	83 e2 7f             	and    $0x7f,%edx
44ac68:	03 c2                	add    %edx,%eax
44ac6a:	8b 55 ec             	mov    -0x14(%ebp),%edx
44ac6d:	c1 f8 07             	sar    $0x7,%eax
44ac70:	0f b6 88 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%ecx
44ac77:	8b c2                	mov    %edx,%eax
44ac79:	c1 e1 07             	shl    $0x7,%ecx
44ac7c:	25 7f 00 00 80       	and    $0x8000007f,%eax
44ac81:	79 05                	jns    0x44ac88
44ac83:	48                   	dec    %eax
44ac84:	83 c8 80             	or     $0xffffff80,%eax
44ac87:	40                   	inc    %eax
44ac88:	03 c8                	add    %eax,%ecx
44ac8a:	0f b7 04 4d 40 58 4a 	movzwl 0x4a5840(,%ecx,2),%eax
44ac91:	00
44ac92:	8b 4d d8             	mov    -0x28(%ebp),%ecx
44ac95:	8b 04 c5 54 2f 4a 00 	mov    0x4a2f54(,%eax,8),%eax
44ac9c:	03 c2                	add    %edx,%eax
44ac9e:	eb 13                	jmp    0x44acb3
44aca0:	81 fa ff 00 00 00    	cmp    $0xff,%edx
44aca6:	77 09                	ja     0x44acb1
44aca8:	8b 46 40             	mov    0x40(%esi),%eax
44acab:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
44acaf:	eb 02                	jmp    0x44acb3
44acb1:	8b c2                	mov    %edx,%eax
44acb3:	3b d1                	cmp    %ecx,%edx
44acb5:	0f 84 a3 a3 fc ff    	je     0x41505e
44acbb:	3b c1                	cmp    %ecx,%eax
44acbd:	0f 84 9b a3 fc ff    	je     0x41505e
44acc3:	e9 d8 9f fc ff       	jmp    0x414ca0
44acc8:	0f b7 10             	movzwl (%eax),%edx
44accb:	83 c0 02             	add    $0x2,%eax
44acce:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
44acd2:	89 45 f8             	mov    %eax,-0x8(%ebp)
44acd5:	3b ca                	cmp    %edx,%ecx
44acd7:	0f 84 81 a3 fc ff    	je     0x41505e
44acdd:	83 ff 20             	cmp    $0x20,%edi
44ace0:	0f 85 a8 dc ff ff    	jne    0x44898e
44ace6:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
44acec:	77 07                	ja     0x44acf5
44acee:	8b 46 40             	mov    0x40(%esi),%eax
44acf1:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
44acf5:	3b ca                	cmp    %edx,%ecx
44acf7:	0f 84 61 a3 fc ff    	je     0x41505e
44acfd:	83 c3 04             	add    $0x4,%ebx
44ad00:	e9 98 9f fc ff       	jmp    0x414c9d
44ad05:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
44ad09:	83 c3 04             	add    $0x4,%ebx
44ad0c:	8b 55 d4             	mov    -0x2c(%ebp),%edx
44ad0f:	89 45 e8             	mov    %eax,-0x18(%ebp)
44ad12:	89 45 f0             	mov    %eax,-0x10(%ebp)
44ad15:	e9 a5 00 00 00       	jmp    0x44adbf
44ad1a:	0f b7 53 02          	movzwl 0x2(%ebx),%edx
44ad1e:	33 c0                	xor    %eax,%eax
44ad20:	89 45 f0             	mov    %eax,-0x10(%ebp)
44ad23:	89 55 e8             	mov    %edx,-0x18(%ebp)
44ad26:	83 f9 42             	cmp    $0x42,%ecx
44ad29:	74 09                	je     0x44ad34
44ad2b:	83 f9 4f             	cmp    $0x4f,%ecx
44ad2e:	74 04                	je     0x44ad34
44ad30:	33 d2                	xor    %edx,%edx
44ad32:	eb 05                	jmp    0x44ad39
44ad34:	ba 01 00 00 00       	mov    $0x1,%edx
44ad39:	89 55 d4             	mov    %edx,-0x2c(%ebp)
44ad3c:	83 c3 04             	add    $0x4,%ebx
44ad3f:	eb 7e                	jmp    0x44adbf
44ad41:	b9 01 00 00 00       	mov    $0x1,%ecx
44ad46:	33 c0                	xor    %eax,%eax
44ad48:	eb 07                	jmp    0x44ad51
44ad4a:	b9 01 00 00 00       	mov    $0x1,%ecx
44ad4f:	8b c1                	mov    %ecx,%eax
44ad51:	c7 45 e8 ff ff ff 7f 	movl   $0x7fffffff,-0x18(%ebp)
44ad58:	eb 0a                	jmp    0x44ad64
44ad5a:	b9 01 00 00 00       	mov    $0x1,%ecx
44ad5f:	33 c0                	xor    %eax,%eax
44ad61:	89 4d e8             	mov    %ecx,-0x18(%ebp)
44ad64:	83 c3 02             	add    $0x2,%ebx
44ad67:	eb 11                	jmp    0x44ad7a
44ad69:	0f b7 53 02          	movzwl 0x2(%ebx),%edx
44ad6d:	33 c0                	xor    %eax,%eax
44ad6f:	b9 01 00 00 00       	mov    $0x1,%ecx
44ad74:	89 55 e8             	mov    %edx,-0x18(%ebp)
44ad77:	83 c3 04             	add    $0x4,%ebx
44ad7a:	8b 55 d4             	mov    -0x2c(%ebp),%edx
44ad7d:	89 4d cc             	mov    %ecx,-0x34(%ebp)
44ad80:	89 45 f0             	mov    %eax,-0x10(%ebp)
44ad83:	eb 3d                	jmp    0x44adc2
44ad85:	83 ff 48             	cmp    $0x48,%edi
44ad88:	8b cf                	mov    %edi,%ecx
44ad8a:	1b c0                	sbb    %eax,%eax
44ad8c:	83 c3 02             	add    $0x2,%ebx
44ad8f:	83 e0 f3             	and    $0xfffffff3,%eax
44ad92:	83 c0 48             	add    $0x48,%eax
44ad95:	2b c8                	sub    %eax,%ecx
44ad97:	0f b6 d1             	movzbl %cl,%edx
44ad9a:	83 e2 01             	and    $0x1,%edx
44ad9d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
44ada0:	0f be 81 30 57 4a 00 	movsbl 0x4a5730(%ecx),%eax
44ada7:	0f be 89 3c 57 4a 00 	movsbl 0x4a573c(%ecx),%ecx
44adae:	89 45 f0             	mov    %eax,-0x10(%ebp)
44adb1:	89 4d e8             	mov    %ecx,-0x18(%ebp)
44adb4:	85 c9                	test   %ecx,%ecx
44adb6:	75 07                	jne    0x44adbf
44adb8:	c7 45 e8 ff ff ff 7f 	movl   $0x7fffffff,-0x18(%ebp)
44adbf:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44adc2:	0f b7 33             	movzwl (%ebx),%esi
44adc5:	83 c3 02             	add    $0x2,%ebx
44adc8:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44adcc:	89 75 f4             	mov    %esi,-0xc(%ebp)
44adcf:	8b 75 10             	mov    0x10(%ebp),%esi
44add2:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44add5:	74 39                	je     0x44ae10
44add7:	8b 45 f4             	mov    -0xc(%ebp),%eax
44adda:	25 00 fc 00 00       	and    $0xfc00,%eax
44addf:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44ade4:	75 27                	jne    0x44ae0d
44ade6:	8b 75 f4             	mov    -0xc(%ebp),%esi
44ade9:	0f b7 03             	movzwl (%ebx),%eax
44adec:	81 e6 ff 03 00 00    	and    $0x3ff,%esi
44adf2:	25 ff 03 00 00       	and    $0x3ff,%eax
44adf7:	c1 e6 0a             	shl    $0xa,%esi
44adfa:	0b c6                	or     %esi,%eax
44adfc:	8b 75 10             	mov    0x10(%ebp),%esi
44adff:	05 00 00 01 00       	add    $0x10000,%eax
44ae04:	83 c3 02             	add    $0x2,%ebx
44ae07:	89 45 f4             	mov    %eax,-0xc(%ebp)
44ae0a:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44ae0d:	8b 45 f0             	mov    -0x10(%ebp),%eax
44ae10:	83 ff 48             	cmp    $0x48,%edi
44ae13:	0f 82 ec 02 00 00    	jb     0x44b105
44ae19:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44ae1d:	8b 7d f4             	mov    -0xc(%ebp),%edi
44ae20:	74 49                	je     0x44ae6b
44ae22:	83 ff 7f             	cmp    $0x7f,%edi
44ae25:	76 44                	jbe    0x44ae6b
44ae27:	8b c7                	mov    %edi,%eax
44ae29:	99                   	cltd
44ae2a:	83 e2 7f             	and    $0x7f,%edx
44ae2d:	03 c2                	add    %edx,%eax
44ae2f:	c1 f8 07             	sar    $0x7,%eax
44ae32:	0f b6 88 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%ecx
44ae39:	8b c7                	mov    %edi,%eax
44ae3b:	c1 e1 07             	shl    $0x7,%ecx
44ae3e:	25 7f 00 00 80       	and    $0x8000007f,%eax
44ae43:	79 05                	jns    0x44ae4a
44ae45:	48                   	dec    %eax
44ae46:	83 c8 80             	or     $0xffffff80,%eax
44ae49:	40                   	inc    %eax
44ae4a:	8b 55 d4             	mov    -0x2c(%ebp),%edx
44ae4d:	03 c8                	add    %eax,%ecx
44ae4f:	0f b7 04 4d 40 58 4a 	movzwl 0x4a5840(,%ecx,2),%eax
44ae56:	00
44ae57:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44ae5a:	8b 04 c5 54 2f 4a 00 	mov    0x4a2f54(,%eax,8),%eax
44ae61:	03 c7                	add    %edi,%eax
44ae63:	89 45 e0             	mov    %eax,-0x20(%ebp)
44ae66:	8b 45 f0             	mov    -0x10(%ebp),%eax
44ae69:	eb 15                	jmp    0x44ae80
44ae6b:	81 ff ff 00 00 00    	cmp    $0xff,%edi
44ae71:	77 0a                	ja     0x44ae7d
44ae73:	8b 46 40             	mov    0x40(%esi),%eax
44ae76:	0f b6 3c 38          	movzbl (%eax,%edi,1),%edi
44ae7a:	8b 45 f0             	mov    -0x10(%ebp),%eax
44ae7d:	89 7d e0             	mov    %edi,-0x20(%ebp)
44ae80:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44ae84:	8b 7d f0             	mov    -0x10(%ebp),%edi
44ae87:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
44ae8e:	0f 84 81 00 00 00    	je     0x44af15
44ae94:	83 f8 01             	cmp    $0x1,%eax
44ae97:	0f 8c b8 00 00 00    	jl     0x44af55
44ae9d:	8b 45 f8             	mov    -0x8(%ebp),%eax
44aea0:	3b 46 7c             	cmp    0x7c(%esi),%eax
44aea3:	0f 83 16 36 00 00    	jae    0x44e4bf
44aea9:	0f b7 08             	movzwl (%eax),%ecx
44aeac:	83 c0 02             	add    $0x2,%eax
44aeaf:	89 45 f8             	mov    %eax,-0x8(%ebp)
44aeb2:	8b c1                	mov    %ecx,%eax
44aeb4:	25 00 fc 00 00       	and    $0xfc00,%eax
44aeb9:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
44aebc:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44aec1:	8b 45 f8             	mov    -0x8(%ebp),%eax
44aec4:	75 27                	jne    0x44aeed
44aec6:	0f b7 00             	movzwl (%eax),%eax
44aec9:	81 65 e4 ff 03 00 00 	andl   $0x3ff,-0x1c(%ebp)
44aed0:	25 ff 03 00 00       	and    $0x3ff,%eax
44aed5:	c1 65 e4 0a          	shll   $0xa,-0x1c(%ebp)
44aed9:	0b 45 e4             	or     -0x1c(%ebp),%eax
44aedc:	05 00 00 01 00       	add    $0x10000,%eax
44aee1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
44aee4:	8b 45 f8             	mov    -0x8(%ebp),%eax
44aee7:	83 c0 02             	add    $0x2,%eax
44aeea:	89 45 f8             	mov    %eax,-0x8(%ebp)
44aeed:	8b 75 f4             	mov    -0xc(%ebp),%esi
44aef0:	3b 75 e4             	cmp    -0x1c(%ebp),%esi
44aef3:	8b 75 10             	mov    0x10(%ebp),%esi
44aef6:	0f 84 62 a1 fc ff    	je     0x41505e
44aefc:	8b 4d e0             	mov    -0x20(%ebp),%ecx
44aeff:	3b 4d e4             	cmp    -0x1c(%ebp),%ecx
44af02:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44af05:	0f 84 53 a1 fc ff    	je     0x41505e
44af0b:	ff 45 d8             	incl   -0x28(%ebp)
44af0e:	39 7d d8             	cmp    %edi,-0x28(%ebp)
44af11:	7e 8a                	jle    0x44ae9d
44af13:	eb 43                	jmp    0x44af58
44af15:	83 f8 01             	cmp    $0x1,%eax
44af18:	8b 45 f8             	mov    -0x8(%ebp),%eax
44af1b:	7c 3b                	jl     0x44af58
44af1d:	3b 46 7c             	cmp    0x7c(%esi),%eax
44af20:	0f 83 99 35 00 00    	jae    0x44e4bf
44af26:	0f b7 08             	movzwl (%eax),%ecx
44af29:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
44af2c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44af2f:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44af32:	0f 84 26 a1 fc ff    	je     0x41505e
44af38:	8b 75 e0             	mov    -0x20(%ebp),%esi
44af3b:	3b 75 ec             	cmp    -0x14(%ebp),%esi
44af3e:	8b 75 10             	mov    0x10(%ebp),%esi
44af41:	0f 84 17 a1 fc ff    	je     0x41505e