44af47:	ff 45 d8             	incl   -0x28(%ebp)
44af4a:	83 c0 02             	add    $0x2,%eax
44af4d:	89 45 f8             	mov    %eax,-0x8(%ebp)
44af50:	39 7d d8             	cmp    %edi,-0x28(%ebp)
44af53:	7e c8                	jle    0x44af1d
44af55:	8b 45 f8             	mov    -0x8(%ebp),%eax
44af58:	3b 7d e8             	cmp    -0x18(%ebp),%edi
44af5b:	0f 84 3f 9d fc ff    	je     0x414ca0
44af61:	85 d2                	test   %edx,%edx
44af63:	0f 85 02 3b 00 00    	jne    0x44ea6b
44af69:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44af6d:	8b d0                	mov    %eax,%edx
44af6f:	89 55 f0             	mov    %edx,-0x10(%ebp)
44af72:	0f 84 fa 00 00 00    	je     0x44b072
44af78:	3b 7d e8             	cmp    -0x18(%ebp),%edi
44af7b:	7d 69                	jge    0x44afe6
44af7d:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44af84:	3b 46 7c             	cmp    0x7c(%esi),%eax
44af87:	0f 83 bb 00 00 00    	jae    0x44b048
44af8d:	0f b7 10             	movzwl (%eax),%edx
44af90:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44af93:	8b c2                	mov    %edx,%eax
44af95:	25 00 fc 00 00       	and    $0xfc00,%eax
44af9a:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44af9f:	75 21                	jne    0x44afc2
44afa1:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
44afa5:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
44afab:	25 ff 03 00 00       	and    $0x3ff,%eax
44afb0:	c1 e2 0a             	shl    $0xa,%edx
44afb3:	0b d0                	or     %eax,%edx
44afb5:	b8 02 00 00 00       	mov    $0x2,%eax
44afba:	81 c2 00 00 01 00    	add    $0x10000,%edx
44afc0:	eb 03                	jmp    0x44afc5
44afc2:	8b 45 ec             	mov    -0x14(%ebp),%eax
44afc5:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44afc8:	74 13                	je     0x44afdd
44afca:	39 55 e0             	cmp    %edx,-0x20(%ebp)
44afcd:	74 0e                	je     0x44afdd
44afcf:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
44afd2:	47                   	inc    %edi
44afd3:	8b c1                	mov    %ecx,%eax
44afd5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
44afd8:	3b 7d e8             	cmp    -0x18(%ebp),%edi
44afdb:	7c a0                	jl     0x44af7d
44afdd:	8b 45 f8             	mov    -0x8(%ebp),%eax
44afe0:	8b 55 f0             	mov    -0x10(%ebp),%edx
44afe3:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44afe6:	85 c9                	test   %ecx,%ecx
44afe8:	0f 85 b2 9c fc ff    	jne    0x414ca0
44afee:	3b c2                	cmp    %edx,%eax
44aff0:	0f 86 8f 9b fc ff    	jbe    0x414b85
44aff6:	8b 7d f8             	mov    -0x8(%ebp),%edi
44aff9:	8b 45 18             	mov    0x18(%ebp),%eax
44affc:	8b d3                	mov    %ebx,%edx
44affe:	40                   	inc    %eax
44afff:	8b cf                	mov    %edi,%ecx
44b001:	50                   	push   %eax
44b002:	ff 75 14             	push   0x14(%ebp)
44b005:	56                   	push   %esi
44b006:	ff 75 0c             	push   0xc(%ebp)
44b009:	ff 75 08             	push   0x8(%ebp)
44b00c:	e8 af 99 fc ff       	call   0x4149c0
44b011:	83 c4 14             	add    $0x14,%esp
44b014:	85 c0                	test   %eax,%eax
44b016:	0f 85 21 9b fc ff    	jne    0x414b3d
44b01c:	66 8b 47 fe          	mov    -0x2(%edi),%ax
44b020:	83 ef 02             	sub    $0x2,%edi
44b023:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44b028:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b02b:	66 23 c1             	and    %cx,%ax
44b02e:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44b033:	66 3b c1             	cmp    %cx,%ax
44b036:	75 06                	jne    0x44b03e
44b038:	83 ef 02             	sub    $0x2,%edi
44b03b:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b03e:	3b 7d f0             	cmp    -0x10(%ebp),%edi
44b041:	77 b6                	ja     0x44aff9
44b043:	e9 3d 9b fc ff       	jmp    0x414b85
44b048:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44b04f:	74 8f                	je     0x44afe0
44b051:	3b 86 88 00 00 00    	cmp    0x88(%esi),%eax
44b057:	76 87                	jbe    0x44afe0
44b059:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44b060:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44b067:	0f 8f 53 e0 ff ff    	jg     0x4490c0
44b06d:	e9 6e ff ff ff       	jmp    0x44afe0
44b072:	3b 7d e8             	cmp    -0x18(%ebp),%edi
44b075:	7d 48                	jge    0x44b0bf
44b077:	3b 46 7c             	cmp    0x7c(%esi),%eax
44b07a:	73 1b                	jae    0x44b097
44b07c:	0f b7 10             	movzwl (%eax),%edx
44b07f:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44b082:	74 38                	je     0x44b0bc
44b084:	39 55 e0             	cmp    %edx,-0x20(%ebp)
44b087:	74 33                	je     0x44b0bc
44b089:	83 c0 02             	add    $0x2,%eax
44b08c:	47                   	inc    %edi
44b08d:	89 45 f8             	mov    %eax,-0x8(%ebp)
44b090:	3b 7d e8             	cmp    -0x18(%ebp),%edi
44b093:	7c e2                	jl     0x44b077
44b095:	eb 25                	jmp    0x44b0bc
44b097:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44b09e:	74 1c                	je     0x44b0bc
44b0a0:	3b 86 88 00 00 00    	cmp    0x88(%esi),%eax
44b0a6:	76 14                	jbe    0x44b0bc
44b0a8:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44b0af:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44b0b6:	0f 8f 04 e0 ff ff    	jg     0x4490c0
44b0bc:	8b 55 f0             	mov    -0x10(%ebp),%edx
44b0bf:	85 c9                	test   %ecx,%ecx
44b0c1:	0f 85 d9 9b fc ff    	jne    0x414ca0
44b0c7:	3b c2                	cmp    %edx,%eax
44b0c9:	0f 84 b6 9a fc ff    	je     0x414b85
44b0cf:	8b 7d f8             	mov    -0x8(%ebp),%edi
44b0d2:	8b 45 18             	mov    0x18(%ebp),%eax
44b0d5:	8b d3                	mov    %ebx,%edx
44b0d7:	40                   	inc    %eax
44b0d8:	8b cf                	mov    %edi,%ecx
44b0da:	50                   	push   %eax
44b0db:	ff 75 14             	push   0x14(%ebp)
44b0de:	56                   	push   %esi
44b0df:	ff 75 0c             	push   0xc(%ebp)
44b0e2:	ff 75 08             	push   0x8(%ebp)
44b0e5:	e8 d6 98 fc ff       	call   0x4149c0
44b0ea:	83 c4 14             	add    $0x14,%esp
44b0ed:	85 c0                	test   %eax,%eax
44b0ef:	0f 85 48 9a fc ff    	jne    0x414b3d
44b0f5:	83 ef 02             	sub    $0x2,%edi
44b0f8:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b0fb:	3b 7d f0             	cmp    -0x10(%ebp),%edi
44b0fe:	75 d2                	jne    0x44b0d2
44b100:	e9 80 9a fc ff       	jmp    0x414b85
44b105:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44b109:	8b 7d f8             	mov    -0x8(%ebp),%edi
44b10c:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
44b113:	74 66                	je     0x44b17b
44b115:	83 f8 01             	cmp    $0x1,%eax
44b118:	0f 8c 88 00 00 00    	jl     0x44b1a6
44b11e:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b121:	0f 83 3f 37 00 00    	jae    0x44e866
44b127:	0f b7 07             	movzwl (%edi),%eax
44b12a:	83 c7 02             	add    $0x2,%edi
44b12d:	89 45 e0             	mov    %eax,-0x20(%ebp)
44b130:	25 00 fc 00 00       	and    $0xfc00,%eax
44b135:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b138:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44b13d:	75 23                	jne    0x44b162
44b13f:	0f b7 07             	movzwl (%edi),%eax
44b142:	81 65 e0 ff 03 00 00 	andl   $0x3ff,-0x20(%ebp)
44b149:	25 ff 03 00 00       	and    $0x3ff,%eax
44b14e:	c1 65 e0 0a          	shll   $0xa,-0x20(%ebp)
44b152:	0b 45 e0             	or     -0x20(%ebp),%eax
44b155:	05 00 00 01 00       	add    $0x10000,%eax
44b15a:	83 c7 02             	add    $0x2,%edi
44b15d:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b160:	eb 03                	jmp    0x44b165
44b162:	8b 45 e0             	mov    -0x20(%ebp),%eax
44b165:	39 45 f4             	cmp    %eax,-0xc(%ebp)
44b168:	0f 84 f0 9e fc ff    	je     0x41505e
44b16e:	ff 45 d8             	incl   -0x28(%ebp)
44b171:	8b 45 f0             	mov    -0x10(%ebp),%eax
44b174:	39 45 d8             	cmp    %eax,-0x28(%ebp)
44b177:	7e a5                	jle    0x44b11e
44b179:	eb 2b                	jmp    0x44b1a6
44b17b:	83 f8 01             	cmp    $0x1,%eax
44b17e:	7c 26                	jl     0x44b1a6
44b180:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b183:	0f 83 dd 36 00 00    	jae    0x44e866
44b189:	0f b7 07             	movzwl (%edi),%eax
44b18c:	83 c7 02             	add    $0x2,%edi
44b18f:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b192:	39 45 f4             	cmp    %eax,-0xc(%ebp)
44b195:	0f 84 c3 9e fc ff    	je     0x41505e
44b19b:	ff 45 d8             	incl   -0x28(%ebp)
44b19e:	8b 45 f0             	mov    -0x10(%ebp),%eax
44b1a1:	39 45 d8             	cmp    %eax,-0x28(%ebp)
44b1a4:	7e da                	jle    0x44b180
44b1a6:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b1a9:	0f 84 f1 9a fc ff    	je     0x414ca0
44b1af:	85 d2                	test   %edx,%edx
44b1b1:	0f 85 c0 39 00 00    	jne    0x44eb77
44b1b7:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44b1bb:	8b d7                	mov    %edi,%edx
44b1bd:	89 55 e4             	mov    %edx,-0x1c(%ebp)
44b1c0:	0f 84 ea 00 00 00    	je     0x44b2b0
44b1c6:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b1c9:	0f 8d 82 00 00 00    	jge    0x44b251
44b1cf:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44b1d6:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b1d9:	73 4e                	jae    0x44b229
44b1db:	0f b7 17             	movzwl (%edi),%edx
44b1de:	8b c2                	mov    %edx,%eax
44b1e0:	25 00 fc 00 00       	and    $0xfc00,%eax
44b1e5:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44b1ea:	75 21                	jne    0x44b20d
44b1ec:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44b1f0:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
44b1f6:	25 ff 03 00 00       	and    $0x3ff,%eax
44b1fb:	c1 e2 0a             	shl    $0xa,%edx
44b1fe:	0b d0                	or     %eax,%edx
44b200:	b8 02 00 00 00       	mov    $0x2,%eax
44b205:	81 c2 00 00 01 00    	add    $0x10000,%edx
44b20b:	eb 03                	jmp    0x44b210
44b20d:	8b 45 ec             	mov    -0x14(%ebp),%eax
44b210:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44b213:	74 39                	je     0x44b24e
44b215:	8d 3c 47             	lea    (%edi,%eax,2),%edi
44b218:	8b 45 f0             	mov    -0x10(%ebp),%eax
44b21b:	40                   	inc    %eax
44b21c:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b21f:	89 45 f0             	mov    %eax,-0x10(%ebp)
44b222:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b225:	7c a8                	jl     0x44b1cf
44b227:	eb 25                	jmp    0x44b24e
44b229:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44b230:	74 1c                	je     0x44b24e
44b232:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44b238:	76 14                	jbe    0x44b24e
44b23a:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44b241:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44b248:	0f 8f 72 de ff ff    	jg     0x4490c0
44b24e:	8b 55 e4             	mov    -0x1c(%ebp),%edx
44b251:	85 c9                	test   %ecx,%ecx
44b253:	0f 85 47 9a fc ff    	jne    0x414ca0
44b259:	3b fa                	cmp    %edx,%edi
44b25b:	0f 86 24 99 fc ff    	jbe    0x414b85
44b261:	8b 45 18             	mov    0x18(%ebp),%eax
44b264:	8b d3                	mov    %ebx,%edx
44b266:	40                   	inc    %eax
44b267:	8b cf                	mov    %edi,%ecx
44b269:	50                   	push   %eax
44b26a:	ff 75 14             	push   0x14(%ebp)
44b26d:	56                   	push   %esi
44b26e:	ff 75 0c             	push   0xc(%ebp)
44b271:	ff 75 08             	push   0x8(%ebp)
44b274:	e8 47 97 fc ff       	call   0x4149c0
44b279:	83 c4 14             	add    $0x14,%esp
44b27c:	85 c0                	test   %eax,%eax
44b27e:	0f 85 b9 98 fc ff    	jne    0x414b3d
44b284:	66 8b 47 fe          	mov    -0x2(%edi),%ax
44b288:	83 ef 02             	sub    $0x2,%edi
44b28b:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44b290:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b293:	66 23 c1             	and    %cx,%ax
44b296:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44b29b:	66 3b c1             	cmp    %cx,%ax
44b29e:	75 06                	jne    0x44b2a6
44b2a0:	83 ef 02             	sub    $0x2,%edi
44b2a3:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b2a6:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
44b2a9:	77 b6                	ja     0x44b261
44b2ab:	e9 d5 98 fc ff       	jmp    0x414b85
44b2b0:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b2b3:	7d 4b                	jge    0x44b300
44b2b5:	8b 55 f4             	mov    -0xc(%ebp),%edx
44b2b8:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b2bb:	73 1b                	jae    0x44b2d8
44b2bd:	0f b7 07             	movzwl (%edi),%eax
44b2c0:	3b d0                	cmp    %eax,%edx
44b2c2:	74 39                	je     0x44b2fd
44b2c4:	8b 45 f0             	mov    -0x10(%ebp),%eax
44b2c7:	83 c7 02             	add    $0x2,%edi
44b2ca:	40                   	inc    %eax
44b2cb:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b2ce:	89 45 f0             	mov    %eax,-0x10(%ebp)
44b2d1:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b2d4:	7c e2                	jl     0x44b2b8
44b2d6:	eb 25                	jmp    0x44b2fd
44b2d8:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44b2df:	74 1c                	je     0x44b2fd
44b2e1:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44b2e7:	76 14                	jbe    0x44b2fd
44b2e9:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44b2f0:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44b2f7:	0f 8f c3 dd ff ff    	jg     0x4490c0
44b2fd:	8b 55 e4             	mov    -0x1c(%ebp),%edx
44b300:	85 c9                	test   %ecx,%ecx
44b302:	0f 85 98 99 fc ff    	jne    0x414ca0
44b308:	3b fa                	cmp    %edx,%edi
44b30a:	0f 84 75 98 fc ff    	je     0x414b85
44b310:	8b 45 18             	mov    0x18(%ebp),%eax
44b313:	8b d3                	mov    %ebx,%edx
44b315:	40                   	inc    %eax
44b316:	8b cf                	mov    %edi,%ecx
44b318:	50                   	push   %eax
44b319:	ff 75 14             	push   0x14(%ebp)
44b31c:	56                   	push   %esi
44b31d:	ff 75 0c             	push   0xc(%ebp)
44b320:	ff 75 08             	push   0x8(%ebp)
44b323:	e8 98 96 fc ff       	call   0x4149c0
44b328:	83 c4 14             	add    $0x14,%esp
44b32b:	85 c0                	test   %eax,%eax
44b32d:	0f 85 0a 98 fc ff    	jne    0x414b3d
44b333:	83 ef 02             	sub    $0x2,%edi
44b336:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b339:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
44b33c:	75 d2                	jne    0x44b310
44b33e:	e9 42 98 fc ff       	jmp    0x414b85
44b343:	0f b7 7b 02          	movzwl 0x2(%ebx),%edi
44b347:	b8 01 00 00 00       	mov    $0x1,%eax
44b34c:	8b d7                	mov    %edi,%edx
44b34e:	89 7d e8             	mov    %edi,-0x18(%ebp)
44b351:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b354:	83 c3 04             	add    $0x4,%ebx
44b357:	89 45 d4             	mov    %eax,-0x2c(%ebp)
44b35a:	e9 3e 9d fc ff       	jmp    0x41509d
44b35f:	0f b7 7b 02          	movzwl 0x2(%ebx),%edi
44b363:	33 c0                	xor    %eax,%eax
44b365:	33 d2                	xor    %edx,%edx
44b367:	89 7d e8             	mov    %edi,-0x18(%ebp)
44b36a:	83 f9 5c             	cmp    $0x5c,%ecx
44b36d:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b370:	0f 94 c0             	sete   %al
44b373:	83 c3 04             	add    $0x4,%ebx
44b376:	89 45 d4             	mov    %eax,-0x2c(%ebp)
44b379:	e9 1f 9d fc ff       	jmp    0x41509d
44b37e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b381:	33 d2                	xor    %edx,%edx
44b383:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
44b38a:	83 c3 02             	add    $0x2,%ebx
44b38d:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b390:	e9 01 9d fc ff       	jmp    0x415096
44b395:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b398:	ba 01 00 00 00       	mov    $0x1,%edx
44b39d:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
44b3a4:	83 c3 02             	add    $0x2,%ebx
44b3a7:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b3aa:	e9 e7 9c fc ff       	jmp    0x415096
44b3af:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b3b2:	33 d2                	xor    %edx,%edx
44b3b4:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
44b3bb:	83 c3 02             	add    $0x2,%ebx
44b3be:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b3c1:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
44b3c8:	e9 d0 9c fc ff       	jmp    0x41509d
44b3cd:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
44b3d1:	33 d2                	xor    %edx,%edx
44b3d3:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b3d6:	83 c3 04             	add    $0x4,%ebx
44b3d9:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
44b3e0:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b3e3:	89 4d e8             	mov    %ecx,-0x18(%ebp)
44b3e6:	e9 b2 9c fc ff       	jmp    0x41509d
44b3eb:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
44b3f2:	eb 07                	jmp    0x44b3fb
44b3f4:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
44b3fb:	0f b7 73 02          	movzwl 0x2(%ebx),%esi
44b3ff:	0f b7 0b             	movzwl (%ebx),%ecx
44b402:	83 c3 04             	add    $0x4,%ebx
44b405:	89 75 c4             	mov    %esi,-0x3c(%ebp)