415180:	8b c2                	mov    %edx,%eax
415182:	bf 26 9a 41 00       	mov    $0x419a26,%edi
415187:	89 45 10             	mov    %eax,0x10(%ebp)
41518a:	8b c3                	mov    %ebx,%eax
41518c:	89 45 e8             	mov    %eax,-0x18(%ebp)
41518f:	eb 12                	jmp    0x4151a3
415191:	8b f8                	mov    %eax,%edi
415193:	39 5d 10             	cmp    %ebx,0x10(%ebp)
415196:	75 08                	jne    0x4151a0
415198:	6a fe                	push   $0xfffffffe
41519a:	58                   	pop    %eax
41519b:	e9 46 01 00 00       	jmp    0x4152e6
4151a0:	8b 45 e8             	mov    -0x18(%ebp),%eax
4151a3:	66 39 5e 06          	cmp    %bx,0x6(%esi)
4151a7:	75 5c                	jne    0x415205
4151a9:	8a 1f                	mov    (%edi),%bl
4151ab:	47                   	inc    %edi
4151ac:	84 db                	test   %bl,%bl
4151ae:	78 18                	js     0x4151c8
4151b0:	85 c0                	test   %eax,%eax
4151b2:	74 08                	je     0x4151bc
4151b4:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4151b7:	0f b6 c3             	movzbl %bl,%eax
4151ba:	89 01                	mov    %eax,(%ecx)
4151bc:	33 c0                	xor    %eax,%eax
4151be:	84 db                	test   %bl,%bl
4151c0:	0f 95 c0             	setne  %al
4151c3:	e9 1e 01 00 00       	jmp    0x4152e6
4151c8:	8a c3                	mov    %bl,%al
4151ca:	24 e0                	and    $0xe0,%al
4151cc:	3c c0                	cmp    $0xc0,%al
4151ce:	75 04                	jne    0x4151d4
4151d0:	b7 02                	mov    $0x2,%bh
4151d2:	eb 1a                	jmp    0x4151ee
4151d4:	8a c3                	mov    %bl,%al
4151d6:	24 f0                	and    $0xf0,%al
4151d8:	3c e0                	cmp    $0xe0,%al
4151da:	75 04                	jne    0x4151e0
4151dc:	b7 03                	mov    $0x3,%bh
4151de:	eb 0e                	jmp    0x4151ee
4151e0:	8a c3                	mov    %bl,%al
4151e2:	24 f8                	and    $0xf8,%al
4151e4:	3c f0                	cmp    $0xf0,%al
4151e6:	0f 85 f1 00 00 00    	jne    0x4152dd
4151ec:	b7 04                	mov    $0x4,%bh
4151ee:	6a 07                	push   $0x7
4151f0:	0f b6 c7             	movzbl %bh,%eax
4151f3:	59                   	pop    %ecx
4151f4:	2b c8                	sub    %eax,%ecx
4151f6:	88 7d ef             	mov    %bh,-0x11(%ebp)
4151f9:	d3 e2                	shl    %cl,%edx
4151fb:	0f b6 c3             	movzbl %bl,%eax
4151fe:	4a                   	dec    %edx
4151ff:	23 d0                	and    %eax,%edx
415201:	8a df                	mov    %bh,%bl
415203:	eb 28                	jmp    0x41522d
415205:	8a 7e 04             	mov    0x4(%esi),%bh
415208:	8a 5e 06             	mov    0x6(%esi),%bl
41520b:	8a c7                	mov    %bh,%al
41520d:	8b 16                	mov    (%esi),%edx
41520f:	2c 02                	sub    $0x2,%al
415211:	88 5d ef             	mov    %bl,-0x11(%ebp)
415214:	3c 02                	cmp    $0x2,%al
415216:	0f 87 c1 00 00 00    	ja     0x4152dd
41521c:	80 fb 01             	cmp    $0x1,%bl
41521f:	0f 82 b8 00 00 00    	jb     0x4152dd
415225:	3a df                	cmp    %bh,%bl
415227:	0f 83 b0 00 00 00    	jae    0x4152dd
41522d:	8b 4d 10             	mov    0x10(%ebp),%ecx
415230:	0f b6 c3             	movzbl %bl,%eax
415233:	89 45 dc             	mov    %eax,-0x24(%ebp)
415236:	3b c1                	cmp    %ecx,%eax
415238:	73 02                	jae    0x41523c
41523a:	8b c8                	mov    %eax,%ecx
41523c:	8b c7                	mov    %edi,%eax
41523e:	2b 45 e0             	sub    -0x20(%ebp),%eax
415241:	eb 25                	jmp    0x415268
415243:	8a 1f                	mov    (%edi),%bl
415245:	47                   	inc    %edi
415246:	40                   	inc    %eax
415247:	88 5d ee             	mov    %bl,-0x12(%ebp)
41524a:	89 45 e0             	mov    %eax,-0x20(%ebp)
41524d:	8a e3                	mov    %bl,%ah
41524f:	8a 5d ef             	mov    -0x11(%ebp),%bl
415252:	8a c4                	mov    %ah,%al
415254:	24 c0                	and    $0xc0,%al
415256:	3c 80                	cmp    $0x80,%al
415258:	75 30                	jne    0x41528a
41525a:	0f b6 c4             	movzbl %ah,%eax
41525d:	83 e0 3f             	and    $0x3f,%eax
415260:	c1 e2 06             	shl    $0x6,%edx
415263:	0b d0                	or     %eax,%edx
415265:	8b 45 e0             	mov    -0x20(%ebp),%eax
415268:	3b c1                	cmp    %ecx,%eax
41526a:	72 d7                	jb     0x415243
41526c:	8b 7d dc             	mov    -0x24(%ebp),%edi
41526f:	3b cf                	cmp    %edi,%ecx
415271:	73 1c                	jae    0x41528f
415273:	0f b6 c7             	movzbl %bh,%eax
415276:	2a d9                	sub    %cl,%bl
415278:	66 89 46 04          	mov    %ax,0x4(%esi)
41527c:	0f b6 c3             	movzbl %bl,%eax
41527f:	89 16                	mov    %edx,(%esi)
415281:	66 89 46 06          	mov    %ax,0x6(%esi)
415285:	e9 0e ff ff ff       	jmp    0x415198
41528a:	ff 75 e4             	push   -0x1c(%ebp)
41528d:	eb 4f                	jmp    0x4152de
41528f:	81 fa 00 d8 00 00    	cmp    $0xd800,%edx
415295:	72 08                	jb     0x41529f
415297:	81 fa ff df 00 00    	cmp    $0xdfff,%edx
41529d:	76 eb                	jbe    0x41528a
41529f:	81 fa ff ff 10 00    	cmp    $0x10ffff,%edx
4152a5:	77 e3                	ja     0x41528a
4152a7:	0f b6 c7             	movzbl %bh,%eax
4152aa:	c7 45 f0 80 00 00 00 	movl   $0x80,-0x10(%ebp)
4152b1:	c7 45 f4 00 08 00 00 	movl   $0x800,-0xc(%ebp)
4152b8:	c7 45 f8 00 00 01 00 	movl   $0x10000,-0x8(%ebp)
4152bf:	3b 54 85 e8          	cmp    -0x18(%ebp,%eax,4),%edx
4152c3:	72 c5                	jb     0x41528a
4152c5:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4152c8:	85 c9                	test   %ecx,%ecx
4152ca:	74 02                	je     0x4152ce
4152cc:	89 11                	mov    %edx,(%ecx)
4152ce:	f7 da                	neg    %edx
4152d0:	56                   	push   %esi
4152d1:	1b d2                	sbb    %edx,%edx
4152d3:	23 d7                	and    %edi,%edx
4152d5:	52                   	push   %edx
4152d6:	e8 9e 0c 00 00       	call   0x415f79
4152db:	eb 07                	jmp    0x4152e4
4152dd:	51                   	push   %ecx
4152de:	56                   	push   %esi
4152df:	e8 a9 0c 00 00       	call   0x415f8d
4152e4:	59                   	pop    %ecx
4152e5:	59                   	pop    %ecx
4152e6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4152e9:	5f                   	pop    %edi
4152ea:	5e                   	pop    %esi
4152eb:	33 cd                	xor    %ebp,%ecx
4152ed:	5b                   	pop    %ebx
4152ee:	e8 d5 ed fe ff       	call   0x4040c8
4152f3:	c9                   	leave
4152f4:	c3                   	ret
4152f5:	33 c0                	xor    %eax,%eax
4152f7:	50                   	push   %eax
4152f8:	50                   	push   %eax
4152f9:	6a 03                	push   $0x3
4152fb:	50                   	push   %eax
4152fc:	6a 03                	push   $0x3
4152fe:	68 00 00 00 40       	push   $0x40000000
415303:	68 70 e2 41 00       	push   $0x41e270
415308:	ff 15 7c 90 41 00    	call   *0x41907c
41530e:	a3 74 19 42 00       	mov    %eax,0x421974
415313:	c3                   	ret
415314:	8b 0d 74 19 42 00    	mov    0x421974,%ecx
41531a:	83 f9 fe             	cmp    $0xfffffffe,%ecx
41531d:	75 0b                	jne    0x41532a
41531f:	e8 d1 ff ff ff       	call   0x4152f5
415324:	8b 0d 74 19 42 00    	mov    0x421974,%ecx
41532a:	33 c0                	xor    %eax,%eax
41532c:	83 f9 ff             	cmp    $0xffffffff,%ecx
41532f:	0f 95 c0             	setne  %al
415332:	c3                   	ret
415333:	a1 74 19 42 00       	mov    0x421974,%eax
415338:	83 f8 ff             	cmp    $0xffffffff,%eax
41533b:	74 0c                	je     0x415349
41533d:	83 f8 fe             	cmp    $0xfffffffe,%eax
415340:	74 07                	je     0x415349
415342:	50                   	push   %eax
415343:	ff 15 2c 90 41 00    	call   *0x41902c
415349:	c3                   	ret
41534a:	8b ff                	mov    %edi,%edi
41534c:	55                   	push   %ebp
41534d:	8b ec                	mov    %esp,%ebp
41534f:	56                   	push   %esi
415350:	6a 00                	push   $0x0
415352:	ff 75 10             	push   0x10(%ebp)
415355:	ff 75 0c             	push   0xc(%ebp)
415358:	ff 75 08             	push   0x8(%ebp)
41535b:	ff 35 74 19 42 00    	push   0x421974
415361:	ff 15 08 90 41 00    	call   *0x419008
415367:	8b f0                	mov    %eax,%esi
415369:	85 f6                	test   %esi,%esi
41536b:	75 2d                	jne    0x41539a
41536d:	ff 15 28 90 41 00    	call   *0x419028
415373:	83 f8 06             	cmp    $0x6,%eax
415376:	75 22                	jne    0x41539a
415378:	e8 b6 ff ff ff       	call   0x415333
41537d:	e8 73 ff ff ff       	call   0x4152f5
415382:	56                   	push   %esi
415383:	ff 75 10             	push   0x10(%ebp)
415386:	ff 75 0c             	push   0xc(%ebp)
415389:	ff 75 08             	push   0x8(%ebp)
41538c:	ff 35 74 19 42 00    	push   0x421974
415392:	ff 15 08 90 41 00    	call   *0x419008
415398:	8b f0                	mov    %eax,%esi
41539a:	8b c6                	mov    %esi,%eax
41539c:	5e                   	pop    %esi
41539d:	5d                   	pop    %ebp
41539e:	c3                   	ret
41539f:	8b ff                	mov    %edi,%edi
4153a1:	55                   	push   %ebp
4153a2:	8b ec                	mov    %esp,%ebp
4153a4:	b8 ff ff 00 00       	mov    $0xffff,%eax
4153a9:	83 ec 14             	sub    $0x14,%esp
4153ac:	66 39 45 08          	cmp    %ax,0x8(%ebp)
4153b0:	0f 84 bb 00 00 00    	je     0x415471
4153b6:	56                   	push   %esi
4153b7:	ff 75 0c             	push   0xc(%ebp)
4153ba:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4153bd:	e8 60 91 ff ff       	call   0x40e522
4153c2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4153c5:	be 00 01 00 00       	mov    $0x100,%esi
4153ca:	66 8b 45 08          	mov    0x8(%ebp),%ax
4153ce:	81 79 08 e9 fd 00 00 	cmpl   $0xfde9,0x8(%ecx)
4153d5:	75 29                	jne    0x415400
4153d7:	8d 56 80             	lea    -0x80(%esi),%edx
4153da:	66 3b c2             	cmp    %dx,%ax
4153dd:	73 55                	jae    0x415434
4153df:	0f b6 d0             	movzbl %al,%edx
4153e2:	f6 04 55 f2 b5 41 00 	testb  $0x1,0x41b5f2(,%edx,2)
4153e9:	01
4153ea:	74 0c                	je     0x4153f8
4153ec:	8b 81 94 00 00 00    	mov    0x94(%ecx),%eax
4153f2:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
4153f6:	eb 03                	jmp    0x4153fb
4153f8:	0f b6 c0             	movzbl %al,%eax
4153fb:	0f b7 c0             	movzwl %ax,%eax
4153fe:	eb 2c                	jmp    0x41542c
415400:	66 3b c6             	cmp    %si,%ax
415403:	73 1e                	jae    0x415423
415405:	0f b6 d0             	movzbl %al,%edx
415408:	f6 04 55 f2 b5 41 00 	testb  $0x1,0x41b5f2(,%edx,2)
41540f:	01
415410:	74 0c                	je     0x41541e
415412:	8b 81 94 00 00 00    	mov    0x94(%ecx),%eax
415418:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
41541c:	eb 0e                	jmp    0x41542c
41541e:	0f b6 c0             	movzbl %al,%eax
415421:	eb 09                	jmp    0x41542c
415423:	83 b9 a8 00 00 00 00 	cmpl   $0x0,0xa8(%ecx)
41542a:	75 08                	jne    0x415434
41542c:	0f b7 c0             	movzwl %ax,%eax
41542f:	0f b7 c0             	movzwl %ax,%eax
415432:	eb 23                	jmp    0x415457
415434:	6a 01                	push   $0x1
415436:	8d 45 fc             	lea    -0x4(%ebp),%eax
415439:	50                   	push   %eax
41543a:	6a 01                	push   $0x1
41543c:	8d 45 08             	lea    0x8(%ebp),%eax
41543f:	50                   	push   %eax
415440:	56                   	push   %esi
415441:	ff b1 a8 00 00 00    	push   0xa8(%ecx)
415447:	e8 e4 0b 00 00       	call   0x416030
41544c:	83 c4 18             	add    $0x18,%esp
41544f:	85 c0                	test   %eax,%eax
415451:	75 09                	jne    0x41545c
415453:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
415457:	0f b7 c0             	movzwl %ax,%eax
41545a:	eb 04                	jmp    0x415460
41545c:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
415460:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
415464:	5e                   	pop    %esi
415465:	74 0a                	je     0x415471
415467:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41546a:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
415471:	c9                   	leave
415472:	c3                   	ret
415473:	cc                   	int3
415474:	cc                   	int3
415475:	cc                   	int3
415476:	cc                   	int3
415477:	cc                   	int3
415478:	cc                   	int3
415479:	cc                   	int3
41547a:	cc                   	int3
41547b:	cc                   	int3
41547c:	cc                   	int3
41547d:	cc                   	int3
41547e:	cc                   	int3
41547f:	cc                   	int3
415480:	55                   	push   %ebp
415481:	8b ec                	mov    %esp,%ebp
415483:	57                   	push   %edi
415484:	56                   	push   %esi
415485:	53                   	push   %ebx
415486:	8b 4d 10             	mov    0x10(%ebp),%ecx
415489:	0b c9                	or     %ecx,%ecx
41548b:	74 4d                	je     0x4154da
41548d:	8b 75 08             	mov    0x8(%ebp),%esi
415490:	8b 7d 0c             	mov    0xc(%ebp),%edi
415493:	b7 41                	mov    $0x41,%bh
415495:	b3 5a                	mov    $0x5a,%bl
415497:	b6 20                	mov    $0x20,%dh
415499:	8d 49 00             	lea    0x0(%ecx),%ecx
41549c:	8a 26                	mov    (%esi),%ah
41549e:	0a e4                	or     %ah,%ah
4154a0:	8a 07                	mov    (%edi),%al
4154a2:	74 27                	je     0x4154cb
4154a4:	0a c0                	or     %al,%al
4154a6:	74 23                	je     0x4154cb
4154a8:	83 c6 01             	add    $0x1,%esi
4154ab:	83 c7 01             	add    $0x1,%edi
4154ae:	3a e7                	cmp    %bh,%ah
4154b0:	72 06                	jb     0x4154b8
4154b2:	3a e3                	cmp    %bl,%ah
4154b4:	77 02                	ja     0x4154b8
4154b6:	02 e6                	add    %dh,%ah
4154b8:	3a c7                	cmp    %bh,%al
4154ba:	72 06                	jb     0x4154c2
4154bc:	3a c3                	cmp    %bl,%al
4154be:	77 02                	ja     0x4154c2
4154c0:	02 c6                	add    %dh,%al
4154c2:	3a e0                	cmp    %al,%ah
4154c4:	75 0b                	jne    0x4154d1
4154c6:	83 e9 01             	sub    $0x1,%ecx
4154c9:	75 d1                	jne    0x41549c
4154cb:	33 c9                	xor    %ecx,%ecx
4154cd:	3a e0                	cmp    %al,%ah
4154cf:	74 09                	je     0x4154da
4154d1:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4154d6:	72 02                	jb     0x4154da
4154d8:	f7 d9                	neg    %ecx
4154da:	8b c1                	mov    %ecx,%eax
4154dc:	5b                   	pop    %ebx
4154dd:	5e                   	pop    %esi
4154de:	5f                   	pop    %edi
4154df:	c9                   	leave
4154e0:	c3                   	ret
4154e1:	8b ff                	mov    %edi,%edi
4154e3:	55                   	push   %ebp
4154e4:	8b ec                	mov    %esp,%ebp
4154e6:	53                   	push   %ebx
4154e7:	56                   	push   %esi
4154e8:	8b 75 08             	mov    0x8(%ebp),%esi
4154eb:	33 db                	xor    %ebx,%ebx
4154ed:	57                   	push   %edi
4154ee:	6a 01                	push   $0x1
4154f0:	53                   	push   %ebx
4154f1:	53                   	push   %ebx
4154f2:	56                   	push   %esi
4154f3:	8b f9                	mov    %ecx,%edi
4154f5:	e8 45 b9 ff ff       	call   0x410e3f
4154fa:	6a 02                	push   $0x2
4154fc:	53                   	push   %ebx
4154fd:	53                   	push   %ebx
4154fe:	56                   	push   %esi
4154ff:	89 07                	mov    %eax,(%edi)
415501:	89 57 04             	mov    %edx,0x4(%edi)
415504:	e8 36 b9 ff ff       	call   0x410e3f