590327:	d8 1d d4 05 59 00    	fcomps 0x5905d4
59032d:	df e0                	fnstsw %ax
59032f:	9e                   	sahf
590330:	0f 84 2b ff ff ff    	je     0x590261
590336:	81 fe a9 10 00 00    	cmp    $0x10a9,%esi
59033c:	0f 85 b3 00 00 00    	jne    0x5903f5
590342:	ba d8 05 59 00       	mov    $0x5905d8,%edx
590347:	8d 43 4a             	lea    0x4a(%ebx),%eax
59034a:	e8 5d 86 ff ff       	call   0x5889ac
59034f:	85 c0                	test   %eax,%eax
590351:	75 0f                	jne    0x590362
590353:	8b 44 24 10          	mov    0x10(%esp),%eax
590357:	8b 04 85 b0 48 6a 00 	mov    0x6a48b0(,%eax,4),%eax
59035e:	89 44 24 10          	mov    %eax,0x10(%esp)
590362:	8d 47 02             	lea    0x2(%edi),%eax
590365:	8b 54 24 10          	mov    0x10(%esp),%edx
590369:	c1 e2 03             	shl    $0x3,%edx
59036c:	03 c2                	add    %edx,%eax
59036e:	99                   	cltd
59036f:	52                   	push   %edx
590370:	50                   	push   %eax
590371:	8b 43 04             	mov    0x4(%ebx),%eax
590374:	e8 5f e3 e8 ff       	call   0x41e6d8
590379:	8b 53 04             	mov    0x4(%ebx),%edx
59037c:	8b c3                	mov    %ebx,%eax
59037e:	e8 d1 87 ff ff       	call   0x588b54
590383:	0f b7 c0             	movzwl %ax,%eax
590386:	89 44 24 18          	mov    %eax,0x18(%esp)
59038a:	db 44 24 18          	fildl  0x18(%esp)
59038e:	d9 9b ec 01 00 00    	fstps  0x1ec(%ebx)
590394:	9b                   	fwait
590395:	8b 53 04             	mov    0x4(%ebx),%edx
590398:	8b c3                	mov    %ebx,%eax
59039a:	e8 b5 87 ff ff       	call   0x588b54
59039f:	0f b7 c0             	movzwl %ax,%eax
5903a2:	89 44 24 18          	mov    %eax,0x18(%esp)
5903a6:	db 44 24 18          	fildl  0x18(%esp)
5903aa:	d8 bb ec 01 00 00    	fdivrs 0x1ec(%ebx)
5903b0:	d9 9b ec 01 00 00    	fstps  0x1ec(%ebx)
5903b6:	9b                   	fwait
5903b7:	8b 53 04             	mov    0x4(%ebx),%edx
5903ba:	8b c3                	mov    %ebx,%eax
5903bc:	e8 93 87 ff ff       	call   0x588b54
5903c1:	0f b7 c0             	movzwl %ax,%eax
5903c4:	89 44 24 18          	mov    %eax,0x18(%esp)
5903c8:	db 44 24 18          	fildl  0x18(%esp)
5903cc:	d9 9b f0 01 00 00    	fstps  0x1f0(%ebx)
5903d2:	9b                   	fwait
5903d3:	8b 53 04             	mov    0x4(%ebx),%edx
5903d6:	8b c3                	mov    %ebx,%eax
5903d8:	e8 77 87 ff ff       	call   0x588b54
5903dd:	0f b7 c0             	movzwl %ax,%eax
5903e0:	89 44 24 18          	mov    %eax,0x18(%esp)
5903e4:	db 44 24 18          	fildl  0x18(%esp)
5903e8:	d8 b3 f0 01 00 00    	fdivs  0x1f0(%ebx)
5903ee:	d9 9b f0 01 00 00    	fstps  0x1f0(%ebx)
5903f4:	9b                   	fwait
5903f5:	81 fe 30 10 00 00    	cmp    $0x1030,%esi
5903fb:	75 1b                	jne    0x590418
5903fd:	83 7c 24 10 0e       	cmpl   $0xe,0x10(%esp)
590402:	7e 14                	jle    0x590418
590404:	8b c7                	mov    %edi,%eax
590406:	99                   	cltd
590407:	52                   	push   %edx
590408:	50                   	push   %eax
590409:	8b 43 04             	mov    0x4(%ebx),%eax
59040c:	e8 c7 e2 e8 ff       	call   0x41e6d8
590411:	8b c3                	mov    %ebx,%eax
590413:	e8 f8 fa ff ff       	call   0x58ff10
590418:	81 fe 31 10 00 00    	cmp    $0x1031,%esi
59041e:	75 34                	jne    0x590454
590420:	8d 47 02             	lea    0x2(%edi),%eax
590423:	99                   	cltd
590424:	52                   	push   %edx
590425:	50                   	push   %eax
590426:	8b 43 04             	mov    0x4(%ebx),%eax
590429:	e8 aa e2 e8 ff       	call   0x41e6d8
59042e:	8b 53 04             	mov    0x4(%ebx),%edx
590431:	8b c3                	mov    %ebx,%eax
590433:	e8 1c 87 ff ff       	call   0x588b54
590438:	0f b7 c0             	movzwl %ax,%eax
59043b:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
590441:	8b 53 04             	mov    0x4(%ebx),%edx
590444:	8b c3                	mov    %ebx,%eax
590446:	e8 09 87 ff ff       	call   0x588b54
59044b:	0f b7 c0             	movzwl %ax,%eax
59044e:	89 83 e8 00 00 00    	mov    %eax,0xe8(%ebx)
590454:	81 fe 0e 18 00 00    	cmp    $0x180e,%esi
59045a:	75 1d                	jne    0x590479
59045c:	8b c7                	mov    %edi,%eax
59045e:	99                   	cltd
59045f:	52                   	push   %edx
590460:	50                   	push   %eax
590461:	8b 43 04             	mov    0x4(%ebx),%eax
590464:	e8 6f e2 e8 ff       	call   0x41e6d8
590469:	8b 53 04             	mov    0x4(%ebx),%edx
59046c:	8b c3                	mov    %ebx,%eax
59046e:	e8 39 87 ff ff       	call   0x588bac
590473:	89 83 cc 00 00 00    	mov    %eax,0xcc(%ebx)
590479:	81 fe 0e 58 00 00    	cmp    $0x580e,%esi
59047f:	75 0a                	jne    0x59048b
590481:	8b 44 24 08          	mov    0x8(%esp),%eax
590485:	89 83 cc 00 00 00    	mov    %eax,0xcc(%ebx)
59048b:	81 fe 10 18 00 00    	cmp    $0x1810,%esi
590491:	75 49                	jne    0x5904dc
590493:	8d 47 0c             	lea    0xc(%edi),%eax
590496:	99                   	cltd
590497:	52                   	push   %edx
590498:	50                   	push   %eax
590499:	8b 43 04             	mov    0x4(%ebx),%eax
59049c:	e8 37 e2 e8 ff       	call   0x41e6d8
5904a1:	8b 53 04             	mov    0x4(%ebx),%edx
5904a4:	8b c3                	mov    %ebx,%eax
5904a6:	e8 01 87 ff ff       	call   0x588bac
5904ab:	83 e8 5a             	sub    $0x5a,%eax
5904ae:	74 22                	je     0x5904d2
5904b0:	83 e8 5a             	sub    $0x5a,%eax
5904b3:	74 11                	je     0x5904c6
5904b5:	83 e8 5a             	sub    $0x5a,%eax
5904b8:	75 22                	jne    0x5904dc
5904ba:	c7 83 2c 01 00 00 05 	movl   $0x5,0x12c(%ebx)
5904c1:	00 00 00
5904c4:	eb 16                	jmp    0x5904dc
5904c6:	c7 83 2c 01 00 00 03 	movl   $0x3,0x12c(%ebx)
5904cd:	00 00 00
5904d0:	eb 0a                	jmp    0x5904dc
5904d2:	c7 83 2c 01 00 00 06 	movl   $0x6,0x12c(%ebx)
5904d9:	00 00 00
5904dc:	81 fe 35 18 00 00    	cmp    $0x1835,%esi
5904e2:	75 20                	jne    0x590504
5904e4:	8b c7                	mov    %edi,%eax
5904e6:	99                   	cltd
5904e7:	52                   	push   %edx
5904e8:	50                   	push   %eax
5904e9:	8b 43 04             	mov    0x4(%ebx),%eax
5904ec:	e8 e7 e1 e8 ff       	call   0x41e6d8
5904f1:	8b 53 04             	mov    0x4(%ebx),%edx
5904f4:	8b c3                	mov    %ebx,%eax
5904f6:	e8 b1 86 ff ff       	call   0x588bac
5904fb:	8b d0                	mov    %eax,%edx
5904fd:	8b c3                	mov    %ebx,%eax
5904ff:	e8 e8 8d ff ff       	call   0x5892ec
590504:	8b c6                	mov    %esi,%eax
590506:	c1 e8 08             	shr    $0x8,%eax
590509:	83 f8 28             	cmp    $0x28,%eax
59050c:	74 05                	je     0x590513
59050e:	83 f8 30             	cmp    $0x30,%eax
590511:	75 0d                	jne    0x590520
590513:	8b c3                	mov    %ebx,%eax
590515:	8b 4c 24 08          	mov    0x8(%esp),%ecx
590519:	8b d7                	mov    %edi,%edx
59051b:	e8 fc fa ff ff       	call   0x59001c
590520:	8b 44 24 0c          	mov    0xc(%esp),%eax
590524:	99                   	cltd
590525:	52                   	push   %edx
590526:	50                   	push   %eax
590527:	8b 43 04             	mov    0x4(%ebx),%eax
59052a:	e8 a9 e1 e8 ff       	call   0x41e6d8
59052f:	ff 4c 24 14          	decl   0x14(%esp)
590533:	0f 85 49 fb ff ff    	jne    0x590082
590539:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
59053e:	75 1b                	jne    0x59055b
590540:	ba c4 05 59 00       	mov    $0x5905c4,%edx
590545:	8d 43 4a             	lea    0x4a(%ebx),%eax
590548:	e8 5f 84 ff ff       	call   0x5889ac
59054d:	85 c0                	test   %eax,%eax
59054f:	75 0a                	jne    0x59055b
590551:	c7 83 ec 01 00 00 00 	movl   $0xbf800000,0x1ec(%ebx)
590558:	00 80 bf
59055b:	83 c4 1c             	add    $0x1c,%esp
59055e:	5d                   	pop    %ebp
59055f:	5f                   	pop    %edi
590560:	5e                   	pop    %esi
590561:	5b                   	pop    %ebx
590562:	c3                   	ret
590563:	00 43 61             	add    %al,0x61(%ebx)
590566:	6e                   	outsb  %ds:(%esi),(%dx)
590567:	6f                   	outsl  %ds:(%esi),(%dx)
590568:	6e                   	outsb  %ds:(%esi),(%dx)
590569:	20 45 4f             	and    %al,0x4f(%ebp)
59056c:	53                   	push   %ebx
59056d:	20 44 49 47          	and    %al,0x47(%ecx,%ecx,2)
590571:	49                   	dec    %ecx
590572:	54                   	push   %esp
590573:	41                   	inc    %ecx
590574:	4c                   	dec    %esp
590575:	20 52 45             	and    %dl,0x45(%edx)
590578:	42                   	inc    %edx
590579:	45                   	inc    %ebp
59057a:	4c                   	dec    %esp
59057b:	00 43 61             	add    %al,0x61(%ebx)
59057e:	6e                   	outsb  %ds:(%esi),(%dx)
59057f:	6f                   	outsl  %ds:(%esi),(%dx)
590580:	6e                   	outsb  %ds:(%esi),(%dx)
590581:	20 45 4f             	and    %al,0x4f(%ebp)
590584:	53                   	push   %ebx
590585:	20 33                	and    %dh,(%ebx)
590587:	30 30                	xor    %dh,(%eax)
590589:	44                   	inc    %esp
59058a:	20 44 49 47          	and    %al,0x47(%ecx,%ecx,2)
59058e:	49                   	dec    %ecx
59058f:	54                   	push   %esp
590590:	41                   	inc    %ecx
590591:	4c                   	dec    %esp
590592:	00 00                	add    %al,(%eax)
590594:	43                   	inc    %ebx
590595:	61                   	popa
590596:	6e                   	outsb  %ds:(%esi),(%dx)
590597:	6f                   	outsl  %ds:(%esi),(%dx)
590598:	6e                   	outsb  %ds:(%esi),(%dx)
590599:	20 50 6f             	and    %dl,0x6f(%eax)
59059c:	77 65                	ja     0x590603
59059e:	72 53                	jb     0x5905f3
5905a0:	68 6f 74 20 47       	push   $0x4720746f
5905a5:	31 00                	xor    %eax,(%eax)
5905a7:	00 43 61             	add    %al,0x61(%ebx)
5905aa:	6e                   	outsb  %ds:(%esi),(%dx)
5905ab:	6f                   	outsl  %ds:(%esi),(%dx)
5905ac:	6e                   	outsb  %ds:(%esi),(%dx)
5905ad:	20 50 6f             	and    %dl,0x6f(%eax)
5905b0:	77 65                	ja     0x590617
5905b2:	72 53                	jb     0x590607
5905b4:	68 6f 74 20 50       	push   $0x5020746f
5905b9:	72 6f                	jb     0x59062a
5905bb:	39 30                	cmp    %esi,(%eax)
5905bd:	20 49 53             	and    %cl,0x53(%ecx)
5905c0:	00 00                	add    %al,(%eax)
5905c2:	00 00                	add    %al,(%eax)
5905c4:	43                   	inc    %ebx
5905c5:	61                   	popa
5905c6:	6e                   	outsb  %ds:(%esi),(%dx)
5905c7:	6f                   	outsl  %ds:(%esi),(%dx)
5905c8:	6e                   	outsb  %ds:(%esi),(%dx)
5905c9:	20 45 4f             	and    %al,0x4f(%ebp)
5905cc:	53                   	push   %ebx
5905cd:	20 44 33 30          	and    %al,0x30(%ebx,%esi,1)
5905d1:	00 00                	add    %al,(%eax)
5905d3:	00 00                	add    %al,(%eax)
5905d5:	00 00                	add    %al,(%eax)
5905d7:	00 43 61             	add    %al,0x61(%ebx)
5905da:	6e                   	outsb  %ds:(%esi),(%dx)
5905db:	6f                   	outsl  %ds:(%esi),(%dx)
5905dc:	6e                   	outsb  %ds:(%esi),(%dx)
5905dd:	20 45 4f             	and    %al,0x4f(%ebp)
5905e0:	53                   	push   %ebx
5905e1:	20 31                	and    %dh,(%ecx)
5905e3:	30 44 00 00          	xor    %al,0x0(%eax,%eax,1)
5905e7:	00 e8                	add    %ch,%al
5905e9:	db 99 e7 ff c3 8b    	fistpl -0x743c0019(%ecx)
5905ef:	c0 55 8b ec          	rclb   $0xec,-0x75(%ebp)
5905f3:	81 c4 64 ff ff ff    	add    $0xffffff64,%esp
5905f9:	53                   	push   %ebx
5905fa:	56                   	push   %esi
5905fb:	33 d2                	xor    %edx,%edx
5905fd:	89 95 64 ff ff ff    	mov    %edx,-0x9c(%ebp)
590603:	89 95 68 ff ff ff    	mov    %edx,-0x98(%ebp)
590609:	89 95 6c ff ff ff    	mov    %edx,-0x94(%ebp)
59060f:	89 95 70 ff ff ff    	mov    %edx,-0x90(%ebp)
590615:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
59061b:	8b f0                	mov    %eax,%esi
59061d:	33 c0                	xor    %eax,%eax
59061f:	55                   	push   %ebp
590620:	68 0a 08 59 00       	push   $0x59080a
590625:	64 ff 30             	push   %fs:(%eax)
590628:	64 89 20             	mov    %esp,%fs:(%eax)
59062b:	33 c0                	xor    %eax,%eax
59062d:	89 45 fc             	mov    %eax,-0x4(%ebp)
590630:	33 c0                	xor    %eax,%eax
590632:	89 45 f8             	mov    %eax,-0x8(%ebp)
590635:	6a 00                	push   $0x0
590637:	6a 00                	push   $0x0
590639:	8b 46 04             	mov    0x4(%esi),%eax
59063c:	e8 97 e0 e8 ff       	call   0x41e6d8
590641:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
590647:	8b 46 04             	mov    0x4(%esi),%eax
59064a:	b9 80 00 00 00       	mov    $0x80,%ecx
59064f:	8b 18                	mov    (%eax),%ebx
590651:	ff 53 08             	call   *0x8(%ebx)
590654:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
59065a:	ba 3d 00 00 00       	mov    $0x3d,%edx
59065f:	e8 84 ff ff ff       	call   0x5905e8
590664:	8b d8                	mov    %eax,%ebx
590666:	85 db                	test   %ebx,%ebx
590668:	74 06                	je     0x590670
59066a:	c6 03 00             	movb   $0x0,(%ebx)
59066d:	43                   	inc    %ebx
59066e:	eb 15                	jmp    0x590685
590670:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590676:	e8 75 97 e7 ff       	call   0x409df0
59067b:	8b d8                	mov    %eax,%ebx
59067d:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590683:	03 d8                	add    %eax,%ebx
590685:	ba 18 08 59 00       	mov    $0x590818,%edx
59068a:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590690:	e8 17 83 ff ff       	call   0x5889ac
590695:	85 c0                	test   %eax,%eax
590697:	ba 1c 08 59 00       	mov    $0x59081c,%edx
59069c:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
5906a2:	e8 05 83 ff ff       	call   0x5889ac
5906a7:	85 c0                	test   %eax,%eax
5906a9:	ba 20 08 59 00       	mov    $0x590820,%edx
5906ae:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
5906b4:	e8 f3 82 ff ff       	call   0x5889ac
5906b9:	85 c0                	test   %eax,%eax
5906bb:	75 20                	jne    0x5906dd
5906bd:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
5906c3:	8b d3                	mov    %ebx,%edx
5906c5:	e8 8e 43 e7 ff       	call   0x404a58
5906ca:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
5906d0:	33 d2                	xor    %edx,%edx
5906d2:	e8 09 90 e7 ff       	call   0x4096e0
5906d7:	89 86 d4 00 00 00    	mov    %eax,0xd4(%esi)
5906dd:	ba 24 08 59 00       	mov    $0x590824,%edx
5906e2:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
5906e8:	e8 bf 82 ff ff       	call   0x5889ac
5906ed:	85 c0                	test   %eax,%eax
5906ef:	75 20                	jne    0x590711
5906f1:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
5906f7:	8b d3                	mov    %ebx,%edx
5906f9:	e8 5a 43 e7 ff       	call   0x404a58
5906fe:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
590704:	33 d2                	xor    %edx,%edx
590706:	e8 d5 8f e7 ff       	call   0x4096e0
59070b:	89 86 ec 00 00 00    	mov    %eax,0xec(%esi)
590711:	ba 28 08 59 00       	mov    $0x590828,%edx
590716:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
59071c:	e8 8b 82 ff ff       	call   0x5889ac
590721:	85 c0                	test   %eax,%eax
590723:	75 20                	jne    0x590745
590725:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
59072b:	8b d3                	mov    %ebx,%edx
59072d:	e8 26 43 e7 ff       	call   0x404a58
590732:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
590738:	33 d2                	xor    %edx,%edx
59073a:	e8 a1 8f e7 ff       	call   0x4096e0
59073f:	89 86 e8 00 00 00    	mov    %eax,0xe8(%esi)
590745:	ba 2c 08 59 00       	mov    $0x59082c,%edx
59074a:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
590750:	e8 57 82 ff ff       	call   0x5889ac
590755:	85 c0                	test   %eax,%eax
590757:	75 1d                	jne    0x590776
590759:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
59075f:	8b d3                	mov    %ebx,%edx
590761:	e8 f2 42 e7 ff       	call   0x404a58
590766:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
59076c:	33 d2                	xor    %edx,%edx
59076e:	e8 6d 8f e7 ff       	call   0x4096e0
590773:	89 45 fc             	mov    %eax,-0x4(%ebp)
590776:	ba 30 08 59 00       	mov    $0x590830,%edx
59077b:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax