42b0f7:	8a c3                	mov    %bl,%al
42b0f9:	24 e0                	and    $0xe0,%al
42b0fb:	3c c0                	cmp    $0xc0,%al
42b0fd:	75 04                	jne    0x42b103
42b0ff:	b7 02                	mov    $0x2,%bh
42b101:	eb 1a                	jmp    0x42b11d
42b103:	8a c3                	mov    %bl,%al
42b105:	24 f0                	and    $0xf0,%al
42b107:	3c e0                	cmp    $0xe0,%al
42b109:	75 04                	jne    0x42b10f
42b10b:	b7 03                	mov    $0x3,%bh
42b10d:	eb 0e                	jmp    0x42b11d
42b10f:	8a c3                	mov    %bl,%al
42b111:	24 f8                	and    $0xf8,%al
42b113:	3c f0                	cmp    $0xf0,%al
42b115:	0f 85 f1 00 00 00    	jne    0x42b20c
42b11b:	b7 04                	mov    $0x4,%bh
42b11d:	6a 07                	push   $0x7
42b11f:	0f b6 c7             	movzbl %bh,%eax
42b122:	59                   	pop    %ecx
42b123:	2b c8                	sub    %eax,%ecx
42b125:	88 7d ef             	mov    %bh,-0x11(%ebp)
42b128:	d3 e2                	shl    %cl,%edx
42b12a:	0f b6 c3             	movzbl %bl,%eax
42b12d:	4a                   	dec    %edx
42b12e:	23 d0                	and    %eax,%edx
42b130:	8a df                	mov    %bh,%bl
42b132:	eb 28                	jmp    0x42b15c
42b134:	8a 7e 04             	mov    0x4(%esi),%bh
42b137:	8a 5e 06             	mov    0x6(%esi),%bl
42b13a:	8a c7                	mov    %bh,%al
42b13c:	8b 16                	mov    (%esi),%edx
42b13e:	2c 02                	sub    $0x2,%al
42b140:	88 5d ef             	mov    %bl,-0x11(%ebp)
42b143:	3c 02                	cmp    $0x2,%al
42b145:	0f 87 c1 00 00 00    	ja     0x42b20c
42b14b:	80 fb 01             	cmp    $0x1,%bl
42b14e:	0f 82 b8 00 00 00    	jb     0x42b20c
42b154:	3a df                	cmp    %bh,%bl
42b156:	0f 83 b0 00 00 00    	jae    0x42b20c
42b15c:	8b 4d 10             	mov    0x10(%ebp),%ecx
42b15f:	0f b6 c3             	movzbl %bl,%eax
42b162:	89 45 dc             	mov    %eax,-0x24(%ebp)
42b165:	3b c1                	cmp    %ecx,%eax
42b167:	73 02                	jae    0x42b16b
42b169:	8b c8                	mov    %eax,%ecx
42b16b:	8b c7                	mov    %edi,%eax
42b16d:	2b 45 e0             	sub    -0x20(%ebp),%eax
42b170:	eb 25                	jmp    0x42b197
42b172:	8a 1f                	mov    (%edi),%bl
42b174:	47                   	inc    %edi
42b175:	40                   	inc    %eax
42b176:	88 5d ee             	mov    %bl,-0x12(%ebp)
42b179:	89 45 e0             	mov    %eax,-0x20(%ebp)
42b17c:	8a e3                	mov    %bl,%ah
42b17e:	8a 5d ef             	mov    -0x11(%ebp),%bl
42b181:	8a c4                	mov    %ah,%al
42b183:	24 c0                	and    $0xc0,%al
42b185:	3c 80                	cmp    $0x80,%al
42b187:	75 30                	jne    0x42b1b9
42b189:	0f b6 c4             	movzbl %ah,%eax
42b18c:	83 e0 3f             	and    $0x3f,%eax
42b18f:	c1 e2 06             	shl    $0x6,%edx
42b192:	0b d0                	or     %eax,%edx
42b194:	8b 45 e0             	mov    -0x20(%ebp),%eax
42b197:	3b c1                	cmp    %ecx,%eax
42b199:	72 d7                	jb     0x42b172
42b19b:	8b 7d dc             	mov    -0x24(%ebp),%edi
42b19e:	3b cf                	cmp    %edi,%ecx
42b1a0:	73 1c                	jae    0x42b1be
42b1a2:	0f b6 c7             	movzbl %bh,%eax
42b1a5:	2a d9                	sub    %cl,%bl
42b1a7:	66 89 46 04          	mov    %ax,0x4(%esi)
42b1ab:	0f b6 c3             	movzbl %bl,%eax
42b1ae:	89 16                	mov    %edx,(%esi)
42b1b0:	66 89 46 06          	mov    %ax,0x6(%esi)
42b1b4:	e9 0e ff ff ff       	jmp    0x42b0c7
42b1b9:	ff 75 e4             	push   -0x1c(%ebp)
42b1bc:	eb 4f                	jmp    0x42b20d
42b1be:	81 fa 00 d8 00 00    	cmp    $0xd800,%edx
42b1c4:	72 08                	jb     0x42b1ce
42b1c6:	81 fa ff df 00 00    	cmp    $0xdfff,%edx
42b1cc:	76 eb                	jbe    0x42b1b9
42b1ce:	81 fa ff ff 10 00    	cmp    $0x10ffff,%edx
42b1d4:	77 e3                	ja     0x42b1b9
42b1d6:	0f b6 c7             	movzbl %bh,%eax
42b1d9:	c7 45 f0 80 00 00 00 	movl   $0x80,-0x10(%ebp)
42b1e0:	c7 45 f4 00 08 00 00 	movl   $0x800,-0xc(%ebp)
42b1e7:	c7 45 f8 00 00 01 00 	movl   $0x10000,-0x8(%ebp)
42b1ee:	3b 54 85 e8          	cmp    -0x18(%ebp,%eax,4),%edx
42b1f2:	72 c5                	jb     0x42b1b9
42b1f4:	8b 4d e8             	mov    -0x18(%ebp),%ecx
42b1f7:	85 c9                	test   %ecx,%ecx
42b1f9:	74 02                	je     0x42b1fd
42b1fb:	89 11                	mov    %edx,(%ecx)
42b1fd:	f7 da                	neg    %edx
42b1ff:	56                   	push   %esi
42b200:	1b d2                	sbb    %edx,%edx
42b202:	23 d7                	and    %edi,%edx
42b204:	52                   	push   %edx
42b205:	e8 33 fe ff ff       	call   0x42b03d
42b20a:	eb 07                	jmp    0x42b213
42b20c:	51                   	push   %ecx
42b20d:	56                   	push   %esi
42b20e:	e8 3e fe ff ff       	call   0x42b051
42b213:	59                   	pop    %ecx
42b214:	59                   	pop    %ecx
42b215:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42b218:	5f                   	pop    %edi
42b219:	5e                   	pop    %esi
42b21a:	33 cd                	xor    %ebp,%ecx
42b21c:	5b                   	pop    %ebx
42b21d:	e8 85 ea fd ff       	call   0x409ca7
42b222:	c9                   	leave
42b223:	c3                   	ret
42b224:	cc                   	int3
42b225:	cc                   	int3
42b226:	cc                   	int3
42b227:	cc                   	int3
42b228:	cc                   	int3
42b229:	cc                   	int3
42b22a:	cc                   	int3
42b22b:	cc                   	int3
42b22c:	cc                   	int3
42b22d:	cc                   	int3
42b22e:	cc                   	int3
42b22f:	cc                   	int3
42b230:	55                   	push   %ebp
42b231:	8b ec                	mov    %esp,%ebp
42b233:	57                   	push   %edi
42b234:	56                   	push   %esi
42b235:	53                   	push   %ebx
42b236:	8b 4d 10             	mov    0x10(%ebp),%ecx
42b239:	0b c9                	or     %ecx,%ecx
42b23b:	74 4d                	je     0x42b28a
42b23d:	8b 75 08             	mov    0x8(%ebp),%esi
42b240:	8b 7d 0c             	mov    0xc(%ebp),%edi
42b243:	b7 41                	mov    $0x41,%bh
42b245:	b3 5a                	mov    $0x5a,%bl
42b247:	b6 20                	mov    $0x20,%dh
42b249:	8d 49 00             	lea    0x0(%ecx),%ecx
42b24c:	8a 26                	mov    (%esi),%ah
42b24e:	0a e4                	or     %ah,%ah
42b250:	8a 07                	mov    (%edi),%al
42b252:	74 27                	je     0x42b27b
42b254:	0a c0                	or     %al,%al
42b256:	74 23                	je     0x42b27b
42b258:	83 c6 01             	add    $0x1,%esi
42b25b:	83 c7 01             	add    $0x1,%edi
42b25e:	3a e7                	cmp    %bh,%ah
42b260:	72 06                	jb     0x42b268
42b262:	3a e3                	cmp    %bl,%ah
42b264:	77 02                	ja     0x42b268
42b266:	02 e6                	add    %dh,%ah
42b268:	3a c7                	cmp    %bh,%al
42b26a:	72 06                	jb     0x42b272
42b26c:	3a c3                	cmp    %bl,%al
42b26e:	77 02                	ja     0x42b272
42b270:	02 c6                	add    %dh,%al
42b272:	3a e0                	cmp    %al,%ah
42b274:	75 0b                	jne    0x42b281
42b276:	83 e9 01             	sub    $0x1,%ecx
42b279:	75 d1                	jne    0x42b24c
42b27b:	33 c9                	xor    %ecx,%ecx
42b27d:	3a e0                	cmp    %al,%ah
42b27f:	74 09                	je     0x42b28a
42b281:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
42b286:	72 02                	jb     0x42b28a
42b288:	f7 d9                	neg    %ecx
42b28a:	8b c1                	mov    %ecx,%eax
42b28c:	5b                   	pop    %ebx
42b28d:	5e                   	pop    %esi
42b28e:	5f                   	pop    %edi
42b28f:	c9                   	leave
42b290:	c3                   	ret
42b291:	8b ff                	mov    %edi,%edi
42b293:	55                   	push   %ebp
42b294:	8b ec                	mov    %esp,%ebp
42b296:	53                   	push   %ebx
42b297:	56                   	push   %esi
42b298:	8b 75 08             	mov    0x8(%ebp),%esi
42b29b:	33 db                	xor    %ebx,%ebx
42b29d:	57                   	push   %edi
42b29e:	6a 01                	push   $0x1
42b2a0:	53                   	push   %ebx
42b2a1:	53                   	push   %ebx
42b2a2:	56                   	push   %esi
42b2a3:	8b f9                	mov    %ecx,%edi
42b2a5:	e8 50 67 ff ff       	call   0x4219fa
42b2aa:	6a 02                	push   $0x2
42b2ac:	53                   	push   %ebx
42b2ad:	53                   	push   %ebx
42b2ae:	56                   	push   %esi
42b2af:	89 07                	mov    %eax,(%edi)
42b2b1:	89 57 04             	mov    %edx,0x4(%edi)
42b2b4:	e8 41 67 ff ff       	call   0x4219fa
42b2b9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42b2bc:	83 c4 20             	add    $0x20,%esp
42b2bf:	89 47 08             	mov    %eax,0x8(%edi)
42b2c2:	2b c8                	sub    %eax,%ecx
42b2c4:	8b 45 10             	mov    0x10(%ebp),%eax
42b2c7:	1b c2                	sbb    %edx,%eax
42b2c9:	89 77 18             	mov    %esi,0x18(%edi)
42b2cc:	89 47 14             	mov    %eax,0x14(%edi)
42b2cf:	8b c7                	mov    %edi,%eax
42b2d1:	89 57 0c             	mov    %edx,0xc(%edi)
42b2d4:	89 4f 10             	mov    %ecx,0x10(%edi)
42b2d7:	5f                   	pop    %edi
42b2d8:	5e                   	pop    %esi
42b2d9:	5b                   	pop    %ebx
42b2da:	5d                   	pop    %ebp
42b2db:	c2 0c 00             	ret    $0xc
42b2de:	8b ff                	mov    %edi,%edi
42b2e0:	55                   	push   %ebp
42b2e1:	8b ec                	mov    %esp,%ebp
42b2e3:	83 ec 28             	sub    $0x28,%esp
42b2e6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42b2e9:	56                   	push   %esi
42b2ea:	6a 00                	push   $0x0
42b2ec:	e8 f1 1d fe ff       	call   0x40d0e2
42b2f1:	8d 45 d8             	lea    -0x28(%ebp),%eax
42b2f4:	50                   	push   %eax
42b2f5:	ff 75 10             	push   0x10(%ebp)
42b2f8:	ff 75 0c             	push   0xc(%ebp)
42b2fb:	ff 75 08             	push   0x8(%ebp)
42b2fe:	e8 12 00 00 00       	call   0x42b315
42b303:	83 c4 10             	add    $0x10,%esp
42b306:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42b309:	8b f0                	mov    %eax,%esi
42b30b:	e8 1a 1e fe ff       	call   0x40d12a
42b310:	8b c6                	mov    %esi,%eax
42b312:	5e                   	pop    %esi
42b313:	c9                   	leave
42b314:	c3                   	ret
42b315:	8b ff                	mov    %edi,%edi
42b317:	55                   	push   %ebp
42b318:	8b ec                	mov    %esp,%ebp
42b31a:	83 ec 2c             	sub    $0x2c,%esp
42b31d:	53                   	push   %ebx
42b31e:	8b 5d 08             	mov    0x8(%ebp),%ebx
42b321:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
42b324:	56                   	push   %esi
42b325:	57                   	push   %edi
42b326:	ff 75 10             	push   0x10(%ebp)
42b329:	8b 7d 14             	mov    0x14(%ebp),%edi
42b32c:	ff 75 0c             	push   0xc(%ebp)
42b32f:	53                   	push   %ebx
42b330:	e8 5c ff ff ff       	call   0x42b291
42b335:	8b 45 d4             	mov    -0x2c(%ebp),%eax
42b338:	23 45 d8             	and    -0x28(%ebp),%eax
42b33b:	83 f8 ff             	cmp    $0xffffffff,%eax
42b33e:	0f 84 40 01 00 00    	je     0x42b484
42b344:	8b 45 dc             	mov    -0x24(%ebp),%eax
42b347:	23 45 e0             	and    -0x20(%ebp),%eax
42b34a:	83 f8 ff             	cmp    $0xffffffff,%eax
42b34d:	0f 84 31 01 00 00    	je     0x42b484
42b353:	8b 4d e8             	mov    -0x18(%ebp),%ecx
42b356:	8b 45 e4             	mov    -0x1c(%ebp),%eax
42b359:	89 4d f8             	mov    %ecx,-0x8(%ebp)
42b35c:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b35f:	85 c9                	test   %ecx,%ecx
42b361:	0f 8c d2 00 00 00    	jl     0x42b439
42b367:	7f 08                	jg     0x42b371
42b369:	85 c0                	test   %eax,%eax
42b36b:	0f 84 be 00 00 00    	je     0x42b42f
42b371:	6a 01                	push   $0x1
42b373:	68 00 10 00 00       	push   $0x1000
42b378:	e8 33 b8 fd ff       	call   0x406bb0
42b37d:	8b f0                	mov    %eax,%esi
42b37f:	59                   	pop    %ecx
42b380:	59                   	pop    %ecx
42b381:	85 f6                	test   %esi,%esi
42b383:	75 0f                	jne    0x42b394
42b385:	6a 0c                	push   $0xc
42b387:	5b                   	pop    %ebx
42b388:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
42b38c:	89 5f 18             	mov    %ebx,0x18(%edi)
42b38f:	e9 92 00 00 00       	jmp    0x42b426
42b394:	68 00 80 00 00       	push   $0x8000
42b399:	53                   	push   %ebx
42b39a:	e8 ad ed fe ff       	call   0x41a14c
42b39f:	59                   	pop    %ecx
42b3a0:	59                   	pop    %ecx
42b3a1:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
42b3a4:	89 45 f4             	mov    %eax,-0xc(%ebp)
42b3a7:	8b 45 e8             	mov    -0x18(%ebp),%eax
42b3aa:	85 c0                	test   %eax,%eax
42b3ac:	7c 0f                	jl     0x42b3bd
42b3ae:	7f 08                	jg     0x42b3b8
42b3b0:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
42b3b6:	72 05                	jb     0x42b3bd
42b3b8:	b9 00 10 00 00       	mov    $0x1000,%ecx
42b3bd:	57                   	push   %edi
42b3be:	51                   	push   %ecx
42b3bf:	56                   	push   %esi
42b3c0:	53                   	push   %ebx
42b3c1:	e8 e7 e5 ff ff       	call   0x4299ad
42b3c6:	83 c4 10             	add    $0x10,%esp
42b3c9:	83 f8 ff             	cmp    $0xffffffff,%eax
42b3cc:	74 34                	je     0x42b402
42b3ce:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42b3d1:	99                   	cltd
42b3d2:	2b c8                	sub    %eax,%ecx
42b3d4:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b3d7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
42b3da:	1b c2                	sbb    %edx,%eax
42b3dc:	89 45 f8             	mov    %eax,-0x8(%ebp)
42b3df:	85 c0                	test   %eax,%eax
42b3e1:	7f d5                	jg     0x42b3b8
42b3e3:	7c 04                	jl     0x42b3e9
42b3e5:	85 c9                	test   %ecx,%ecx
42b3e7:	75 c1                	jne    0x42b3aa
42b3e9:	ff 75 f4             	push   -0xc(%ebp)
42b3ec:	53                   	push   %ebx
42b3ed:	e8 5a ed fe ff       	call   0x41a14c
42b3f2:	56                   	push   %esi
42b3f3:	e8 18 b8 fd ff       	call   0x406c10
42b3f8:	83 c4 0c             	add    $0xc,%esp
42b3fb:	33 db                	xor    %ebx,%ebx
42b3fd:	e9 90 00 00 00       	jmp    0x42b492
42b402:	80 7f 24 00          	cmpb   $0x0,0x24(%edi)
42b406:	74 11                	je     0x42b419
42b408:	83 7f 20 05          	cmpl   $0x5,0x20(%edi)
42b40c:	75 0b                	jne    0x42b419
42b40e:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
42b412:	c7 47 18 0d 00 00 00 	movl   $0xd,0x18(%edi)
42b419:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
42b41d:	74 05                	je     0x42b424
42b41f:	8b 5f 18             	mov    0x18(%edi),%ebx
42b422:	eb 02                	jmp    0x42b426
42b424:	33 db                	xor    %ebx,%ebx
42b426:	56                   	push   %esi
42b427:	e8 e4 b7 fd ff       	call   0x406c10
42b42c:	59                   	pop    %ecx
42b42d:	eb 63                	jmp    0x42b492
42b42f:	85 c9                	test   %ecx,%ecx
42b431:	7f c8                	jg     0x42b3fb
42b433:	7c 04                	jl     0x42b439
42b435:	85 c0                	test   %eax,%eax
42b437:	73 c2                	jae    0x42b3fb
42b439:	6a 00                	push   $0x0
42b43b:	ff 75 10             	push   0x10(%ebp)
42b43e:	ff 75 0c             	push   0xc(%ebp)
42b441:	53                   	push   %ebx
42b442:	e8 b3 65 ff ff       	call   0x4219fa
42b447:	23 c2                	and    %edx,%eax
42b449:	83 c4 10             	add    $0x10,%esp
42b44c:	83 f8 ff             	cmp    $0xffffffff,%eax
42b44f:	75 08                	jne    0x42b459
42b451:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)