5012a0:	5f                   	pop    %edi
5012a1:	5e                   	pop    %esi
5012a2:	89 08                	mov    %ecx,(%eax)
5012a4:	c7 40 04 fe ff ff ff 	movl   $0xfffffffe,0x4(%eax)
5012ab:	b8 01 00 00 00       	mov    $0x1,%eax
5012b0:	5b                   	pop    %ebx
5012b1:	5d                   	pop    %ebp
5012b2:	c3                   	ret
5012b3:	cc                   	int3
5012b4:	cc                   	int3
5012b5:	cc                   	int3
5012b6:	cc                   	int3
5012b7:	cc                   	int3
5012b8:	cc                   	int3
5012b9:	cc                   	int3
5012ba:	cc                   	int3
5012bb:	cc                   	int3
5012bc:	cc                   	int3
5012bd:	cc                   	int3
5012be:	cc                   	int3
5012bf:	cc                   	int3
5012c0:	55                   	push   %ebp
5012c1:	8b ec                	mov    %esp,%ebp
5012c3:	56                   	push   %esi
5012c4:	8b 75 0c             	mov    0xc(%ebp),%esi
5012c7:	57                   	push   %edi
5012c8:	8b 7d 08             	mov    0x8(%ebp),%edi
5012cb:	0f b7 4f 14          	movzwl 0x14(%edi),%ecx
5012cf:	83 f9 02             	cmp    $0x2,%ecx
5012d2:	75 06                	jne    0x5012da
5012d4:	f6 46 04 01          	testb  $0x1,0x4(%esi)
5012d8:	75 7a                	jne    0x501354
5012da:	0f b6 06             	movzbl (%esi),%eax
5012dd:	83 c0 c5             	add    $0xffffffc5,%eax
5012e0:	83 f8 75             	cmp    $0x75,%eax
5012e3:	0f 87 8d 00 00 00    	ja     0x501376
5012e9:	0f b6 80 94 13 50 00 	movzbl 0x501394(%eax),%eax
5012f0:	ff 24 85 7c 13 50 00 	jmp    *0x50137c(,%eax,4)
5012f7:	83 f9 04             	cmp    $0x4,%ecx
5012fa:	73 09                	jae    0x501305
5012fc:	f7 46 04 00 00 08 00 	testl  $0x80000,0x4(%esi)
501303:	74 4f                	je     0x501354
501305:	8b 46 04             	mov    0x4(%esi),%eax
501308:	a9 00 00 00 01       	test   $0x1000000,%eax
50130d:	75 45                	jne    0x501354
50130f:	83 f9 05             	cmp    $0x5,%ecx
501312:	75 62                	jne    0x501376
501314:	0d 00 00 00 40       	or     $0x40000000,%eax
501319:	89 46 04             	mov    %eax,0x4(%esi)
50131c:	33 c0                	xor    %eax,%eax
50131e:	5f                   	pop    %edi
50131f:	5e                   	pop    %esi
501320:	5d                   	pop    %ebp
501321:	c3                   	ret
501322:	56                   	push   %esi
501323:	e8 18 57 02 00       	call   0x526a40
501328:	83 c4 04             	add    $0x4,%esp
50132b:	85 c0                	test   %eax,%eax
50132d:	74 09                	je     0x501338
50132f:	5f                   	pop    %edi
501330:	b8 01 00 00 00       	mov    $0x1,%eax
501335:	5e                   	pop    %esi
501336:	5d                   	pop    %ebp
501337:	c3                   	ret
501338:	f6 46 04 08          	testb  $0x8,0x4(%esi)
50133c:	74 07                	je     0x501345
50133e:	66 83 7f 14 02       	cmpw   $0x2,0x14(%edi)
501343:	75 31                	jne    0x501376
501345:	66 83 7f 14 03       	cmpw   $0x3,0x14(%edi)
50134a:	75 08                	jne    0x501354
50134c:	8b 46 1c             	mov    0x1c(%esi),%eax
50134f:	3b 47 18             	cmp    0x18(%edi),%eax
501352:	74 22                	je     0x501376
501354:	33 c0                	xor    %eax,%eax
501356:	66 89 47 14          	mov    %ax,0x14(%edi)
50135a:	b8 02 00 00 00       	mov    $0x2,%eax
50135f:	5f                   	pop    %edi
501360:	5e                   	pop    %esi
501361:	5d                   	pop    %ebp
501362:	c3                   	ret
501363:	83 f9 05             	cmp    $0x5,%ecx
501366:	75 09                	jne    0x501371
501368:	5f                   	pop    %edi
501369:	c6 06 77             	movb   $0x77,(%esi)
50136c:	33 c0                	xor    %eax,%eax
50136e:	5e                   	pop    %esi
50136f:	5d                   	pop    %ebp
501370:	c3                   	ret
501371:	83 f9 04             	cmp    $0x4,%ecx
501374:	74 de                	je     0x501354
501376:	5f                   	pop    %edi
501377:	33 c0                	xor    %eax,%eax
501379:	5e                   	pop    %esi
50137a:	5d                   	pop    %ebp
50137b:	c3                   	ret
50137c:	22 13                	and    (%ebx),%dl
50137e:	50                   	push   %eax
50137f:	00 63 13             	add    %ah,0x13(%ebx)
501382:	50                   	push   %eax
501383:	00 38                	add    %bh,(%eax)
501385:	13 50 00             	adc    0x0(%eax),%edx
501388:	f7 12                	notl   (%edx)
50138a:	50                   	push   %eax
50138b:	00 54 13 50          	add    %dl,0x50(%ebx,%edx,1)
50138f:	00 76 13             	add    %dh,0x13(%esi)
501392:	50                   	push   %eax
501393:	00 00                	add    %al,(%eax)
501395:	05 05 05 05 05       	add    $0x5050505,%eax
50139a:	05 05 05 05 05       	add    $0x5050505,%eax
50139f:	05 05 05 05 05       	add    $0x5050505,%eax
5013a4:	05 05 05 05 05       	add    $0x5050505,%eax
5013a9:	05 05 05 05 05       	add    $0x5050505,%eax
5013ae:	05 05 05 05 05       	add    $0x5050505,%eax
5013b3:	05 05 05 05 05       	add    $0x5050505,%eax
5013b8:	05 05 05 05 05       	add    $0x5050505,%eax
5013bd:	05 05 05 05 05       	add    $0x5050505,%eax
5013c2:	05 05 05 05 05       	add    $0x5050505,%eax
5013c7:	05 05 05 05 05       	add    $0x5050505,%eax
5013cc:	05 05 05 05 05       	add    $0x5050505,%eax
5013d1:	05 05 05 05 05       	add    $0x5050505,%eax
5013d6:	05 05 05 05 05       	add    $0x5050505,%eax
5013db:	05 05 05 05 05       	add    $0x5050505,%eax
5013e0:	05 05 05 05 05       	add    $0x5050505,%eax
5013e5:	05 05 05 05 05       	add    $0x5050505,%eax
5013ea:	05 05 05 05 05       	add    $0x5050505,%eax
5013ef:	05 05 05 01 05       	add    $0x5010505,%eax
5013f4:	05 05 05 05 05       	add    $0x5050505,%eax
5013f9:	05 05 05 05 02       	add    $0x2050505,%eax
5013fe:	02 02                	add    (%edx),%al
501400:	05 05 03 05 05       	add    $0x5050305,%eax
501405:	05 04 05 05 04       	add    $0x4050504,%eax
50140a:	cc                   	int3
50140b:	cc                   	int3
50140c:	cc                   	int3
50140d:	cc                   	int3
50140e:	cc                   	int3
50140f:	cc                   	int3
501410:	55                   	push   %ebp
501411:	8b ec                	mov    %esp,%ebp
501413:	83 ec 08             	sub    $0x8,%esp
501416:	8b 4d 08             	mov    0x8(%ebp),%ecx
501419:	53                   	push   %ebx
50141a:	56                   	push   %esi
50141b:	33 f6                	xor    %esi,%esi
50141d:	8b 41 18             	mov    0x18(%ecx),%eax
501420:	57                   	push   %edi
501421:	89 45 f8             	mov    %eax,-0x8(%ebp)
501424:	39 30                	cmp    %esi,(%eax)
501426:	7e 58                	jle    0x501480
501428:	8d 78 04             	lea    0x4(%eax),%edi
50142b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
501430:	8b 1f                	mov    (%edi),%ebx
501432:	6a ff                	push   $0xffffffff
501434:	53                   	push   %ebx
501435:	ff 75 0c             	push   0xc(%ebp)
501438:	6a 00                	push   $0x0
50143a:	e8 91 50 02 00       	call   0x5264d0
50143f:	83 c4 10             	add    $0x10,%esp
501442:	83 f8 02             	cmp    $0x2,%eax
501445:	7d 2b                	jge    0x501472
501447:	8b 45 08             	mov    0x8(%ebp),%eax
50144a:	53                   	push   %ebx
50144b:	8b 00                	mov    (%eax),%eax
50144d:	50                   	push   %eax
50144e:	89 45 fc             	mov    %eax,-0x4(%ebp)
501451:	e8 8a 4e 02 00       	call   0x5262e0
501456:	83 c4 08             	add    $0x8,%esp
501459:	85 c0                	test   %eax,%eax
50145b:	75 0c                	jne    0x501469
50145d:	8b 45 fc             	mov    -0x4(%ebp),%eax
501460:	8b 00                	mov    (%eax),%eax
501462:	8b 40 08             	mov    0x8(%eax),%eax
501465:	85 c0                	test   %eax,%eax
501467:	74 35                	je     0x50149e
501469:	81 78 0c 30 5e 4f 00 	cmpl   $0x4f5e30,0xc(%eax)
501470:	74 2c                	je     0x50149e
501472:	8b 45 f8             	mov    -0x8(%ebp),%eax
501475:	46                   	inc    %esi
501476:	83 c7 14             	add    $0x14,%edi
501479:	3b 30                	cmp    (%eax),%esi
50147b:	7c b3                	jl     0x501430
50147d:	8b 4d 08             	mov    0x8(%ebp),%ecx
501480:	8b 45 0c             	mov    0xc(%ebp),%eax
501483:	f7 40 04 00 08 00 00 	testl  $0x800,0x4(%eax)
50148a:	74 1e                	je     0x5014aa
50148c:	5f                   	pop    %edi
50148d:	33 c0                	xor    %eax,%eax
50148f:	5e                   	pop    %esi
501490:	66 89 41 14          	mov    %ax,0x14(%ecx)
501494:	b8 02 00 00 00       	mov    $0x2,%eax
501499:	5b                   	pop    %ebx
50149a:	8b e5                	mov    %ebp,%esp
50149c:	5d                   	pop    %ebp
50149d:	c3                   	ret
50149e:	5f                   	pop    %edi
50149f:	5e                   	pop    %esi
5014a0:	b8 01 00 00 00       	mov    $0x1,%eax
5014a5:	5b                   	pop    %ebx
5014a6:	8b e5                	mov    %ebp,%esp
5014a8:	5d                   	pop    %ebp
5014a9:	c3                   	ret
5014aa:	50                   	push   %eax
5014ab:	51                   	push   %ecx
5014ac:	e8 0f fe ff ff       	call   0x5012c0
5014b1:	83 c4 08             	add    $0x8,%esp
5014b4:	5f                   	pop    %edi
5014b5:	5e                   	pop    %esi
5014b6:	5b                   	pop    %ebx
5014b7:	8b e5                	mov    %ebp,%esp
5014b9:	5d                   	pop    %ebp
5014ba:	c3                   	ret
5014bb:	cc                   	int3
5014bc:	cc                   	int3
5014bd:	cc                   	int3
5014be:	cc                   	int3
5014bf:	cc                   	int3
5014c0:	55                   	push   %ebp
5014c1:	8b ec                	mov    %esp,%ebp
5014c3:	8b 45 0c             	mov    0xc(%ebp),%eax
5014c6:	80 38 a9             	cmpb   $0xa9,(%eax)
5014c9:	75 19                	jne    0x5014e4
5014cb:	f7 40 04 00 00 08 00 	testl  $0x80000,0x4(%eax)
5014d2:	75 10                	jne    0x5014e4
5014d4:	8b 45 08             	mov    0x8(%ebp),%eax
5014d7:	33 c9                	xor    %ecx,%ecx
5014d9:	66 89 48 14          	mov    %cx,0x14(%eax)
5014dd:	b8 02 00 00 00       	mov    $0x2,%eax
5014e2:	5d                   	pop    %ebp
5014e3:	c3                   	ret
5014e4:	33 c0                	xor    %eax,%eax
5014e6:	5d                   	pop    %ebp
5014e7:	c3                   	ret
5014e8:	cc                   	int3
5014e9:	cc                   	int3
5014ea:	cc                   	int3
5014eb:	cc                   	int3
5014ec:	cc                   	int3
5014ed:	cc                   	int3
5014ee:	cc                   	int3
5014ef:	cc                   	int3
5014f0:	55                   	push   %ebp
5014f1:	8b ec                	mov    %esp,%ebp
5014f3:	83 ec 08             	sub    $0x8,%esp
5014f6:	8b 45 08             	mov    0x8(%ebp),%eax
5014f9:	f2 0f 10 05 38 c6 6b 	movsd  0x6bc638,%xmm0
501500:	00
501501:	f2 0f 11 45 f8       	movsd  %xmm0,-0x8(%ebp)
501506:	80 38 96             	cmpb   $0x96,(%eax)
501509:	74 07                	je     0x501512
50150b:	83 c8 ff             	or     $0xffffffff,%eax
50150e:	8b e5                	mov    %ebp,%esp
501510:	5d                   	pop    %ebp
501511:	c3                   	ret
501512:	8b 50 08             	mov    0x8(%eax),%edx
501515:	85 d2                	test   %edx,%edx
501517:	75 04                	jne    0x50151d
501519:	33 c9                	xor    %ecx,%ecx
50151b:	eb 16                	jmp    0x501533
50151d:	8b ca                	mov    %edx,%ecx
50151f:	56                   	push   %esi
501520:	8d 71 01             	lea    0x1(%ecx),%esi
501523:	8a 01                	mov    (%ecx),%al
501525:	41                   	inc    %ecx
501526:	84 c0                	test   %al,%al
501528:	75 f9                	jne    0x501523
50152a:	2b ce                	sub    %esi,%ecx
50152c:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
501532:	5e                   	pop    %esi
501533:	6a 01                	push   $0x1
501535:	51                   	push   %ecx
501536:	8d 45 f8             	lea    -0x8(%ebp),%eax
501539:	50                   	push   %eax
50153a:	52                   	push   %edx
50153b:	e8 20 7b 01 00       	call   0x519060
501540:	f2 0f 10 45 f8       	movsd  -0x8(%ebp),%xmm0
501545:	83 c4 10             	add    $0x10,%esp
501548:	66 0f 2f 05 00 9c 6a 	comisd 0x6a9c00,%xmm0
50154f:	00
501550:	77 b9                	ja     0x50150b
501552:	f2 0f 59 05 d0 c5 6b 	mulsd  0x6bc5d0,%xmm0
501559:	00
50155a:	f2 0f 2c c0          	cvttsd2si %xmm0,%eax
50155e:	8b e5                	mov    %ebp,%esp
501560:	5d                   	pop    %ebp
501561:	c3                   	ret
501562:	cc                   	int3
501563:	cc                   	int3
501564:	cc                   	int3
501565:	cc                   	int3
501566:	cc                   	int3
501567:	cc                   	int3
501568:	cc                   	int3
501569:	cc                   	int3
50156a:	cc                   	int3
50156b:	cc                   	int3
50156c:	cc                   	int3
50156d:	cc                   	int3
50156e:	cc                   	int3
50156f:	cc                   	int3
501570:	55                   	push   %ebp
501571:	8b ec                	mov    %esp,%ebp
501573:	83 ec 18             	sub    $0x18,%esp
501576:	8b 4d 0c             	mov    0xc(%ebp),%ecx
501579:	0f 57 c0             	xorps  %xmm0,%xmm0
50157c:	66 0f 13 45 f0       	movlpd %xmm0,-0x10(%ebp)
501581:	85 c9                	test   %ecx,%ecx
501583:	0f 84 2a 01 00 00    	je     0x5016b3
501589:	53                   	push   %ebx
50158a:	8b 5d 08             	mov    0x8(%ebp),%ebx
50158d:	56                   	push   %esi
50158e:	8b 75 f0             	mov    -0x10(%ebp),%esi
501591:	57                   	push   %edi
501592:	8b 7d f4             	mov    -0xc(%ebp),%edi
501595:	ff 71 1c             	push   0x1c(%ecx)
501598:	8b 41 20             	mov    0x20(%ecx),%eax
50159b:	53                   	push   %ebx
50159c:	89 45 f4             	mov    %eax,-0xc(%ebp)
50159f:	e8 6c 25 05 00       	call   0x553b10
5015a4:	0b f0                	or     %eax,%esi
5015a6:	0b fa                	or     %edx,%edi
5015a8:	8b 45 0c             	mov    0xc(%ebp),%eax
5015ab:	ff 70 28             	push   0x28(%eax)
5015ae:	53                   	push   %ebx
5015af:	e8 5c 25 05 00       	call   0x553b10
5015b4:	0b f0                	or     %eax,%esi
5015b6:	0b fa                	or     %edx,%edi
5015b8:	8b 45 0c             	mov    0xc(%ebp),%eax
5015bb:	ff 70 30             	push   0x30(%eax)
5015be:	53                   	push   %ebx
5015bf:	e8 4c 25 05 00       	call   0x553b10
5015c4:	0b f0                	or     %eax,%esi
5015c6:	83 c4 18             	add    $0x18,%esp
5015c9:	8b 45 0c             	mov    0xc(%ebp),%eax
5015cc:	0b fa                	or     %edx,%edi
5015ce:	8b 48 24             	mov    0x24(%eax),%ecx
5015d1:	85 c9                	test   %ecx,%ecx
5015d3:	74 11                	je     0x5015e6
5015d5:	51                   	push   %ecx
5015d6:	53                   	push   %ebx
5015d7:	e8 c4 25 05 00       	call   0x553ba0
5015dc:	8b c8                	mov    %eax,%ecx
5015de:	83 c4 08             	add    $0x8,%esp
5015e1:	8b 45 0c             	mov    0xc(%ebp),%eax
5015e4:	eb 0e                	jmp    0x5015f4
5015e6:	0f 57 c0             	xorps  %xmm0,%xmm0
5015e9:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
5015ee:	8b 55 fc             	mov    -0x4(%ebp),%edx
5015f1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5015f4:	8b 40 2c             	mov    0x2c(%eax),%eax
5015f7:	0b f1                	or     %ecx,%esi