58a33d:	8b c4                	mov    %esp,%eax
58a33f:	80 38 00             	cmpb   $0x0,(%eax)
58a342:	74 07                	je     0x58a34b
58a344:	b8 01 00 00 00       	mov    $0x1,%eax
58a349:	eb 06                	jmp    0x58a351
58a34b:	40                   	inc    %eax
58a34c:	4a                   	dec    %edx
58a34d:	75 f0                	jne    0x58a33f
58a34f:	33 c0                	xor    %eax,%eax
58a351:	81 c4 a8 01 00 00    	add    $0x1a8,%esp
58a357:	5e                   	pop    %esi
58a358:	5b                   	pop    %ebx
58a359:	c3                   	ret
58a35a:	8b c0                	mov    %eax,%eax
58a35c:	53                   	push   %ebx
58a35d:	56                   	push   %esi
58a35e:	57                   	push   %edi
58a35f:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
58a365:	50                   	push   %eax
58a366:	81 c4 ac f0 ff ff    	add    $0xfffff0ac,%esp
58a36c:	89 04 24             	mov    %eax,(%esp)
58a36f:	8b 04 24             	mov    (%esp),%eax
58a372:	89 44 24 08          	mov    %eax,0x8(%esp)
58a376:	8b 44 24 08          	mov    0x8(%esp),%eax
58a37a:	db 80 f8 00 00 00    	fildl  0xf8(%eax)
58a380:	d8 3d 88 a5 58 00    	fdivrs 0x58a588
58a386:	d8 35 8c a5 58 00    	fdivs  0x58a58c
58a38c:	8b 44 24 08          	mov    0x8(%esp),%eax
58a390:	dd 98 c0 f4 00 00    	fstpl  0xf4c0(%eax)
58a396:	9b                   	fwait
58a397:	33 c0                	xor    %eax,%eax
58a399:	89 44 24 04          	mov    %eax,0x4(%esp)
58a39d:	e9 c5 01 00 00       	jmp    0x58a567
58a3a2:	8b 44 24 08          	mov    0x8(%esp),%eax
58a3a6:	8d 98 a8 f4 00 00    	lea    0xf4a8(%eax),%ebx
58a3ac:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
58a3b1:	74 16                	je     0x58a3c9
58a3b3:	db 44 24 04          	fildl  0x4(%esp)
58a3b7:	dc 4b 18             	fmull  0x18(%ebx)
58a3ba:	e8 0d 89 e7 ff       	call   0x402ccc
58a3bf:	8b c8                	mov    %eax,%ecx
58a3c1:	8b 53 08             	mov    0x8(%ebx),%edx
58a3c4:	8b 43 04             	mov    0x4(%ebx),%eax
58a3c7:	ff 13                	call   *(%ebx)
58a3c9:	8b 44 24 08          	mov    0x8(%esp),%eax
58a3cd:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58a3d3:	3b 44 24 04          	cmp    0x4(%esp),%eax
58a3d7:	75 4c                	jne    0x58a425
58a3d9:	8b 44 24 08          	mov    0x8(%esp),%eax
58a3dd:	81 b8 fc 00 00 00 50 	cmpl   $0x650,0xfc(%eax)
58a3e4:	06 00 00
58a3e7:	0f 94 c0             	sete   %al
58a3ea:	b9 a8 01 00 00       	mov    $0x1a8,%ecx
58a3ef:	ba 58 22 00 00       	mov    $0x2258,%edx
58a3f4:	e8 0f a5 07 00       	call   0x604908
58a3f9:	99                   	cltd
58a3fa:	52                   	push   %edx
58a3fb:	50                   	push   %eax
58a3fc:	8b 44 24 10          	mov    0x10(%esp),%eax
58a400:	8b 58 04             	mov    0x4(%eax),%ebx
58a403:	8b c3                	mov    %ebx,%eax
58a405:	e8 ae 42 e9 ff       	call   0x41e6b8
58a40a:	03 04 24             	add    (%esp),%eax
58a40d:	13 54 24 04          	adc    0x4(%esp),%edx
58a411:	83 c4 08             	add    $0x8,%esp
58a414:	52                   	push   %edx
58a415:	50                   	push   %eax
58a416:	8b c3                	mov    %ebx,%eax
58a418:	e8 bb 42 e9 ff       	call   0x41e6d8
58a41d:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
58a424:	00
58a425:	8b 44 24 08          	mov    0x8(%esp),%eax
58a429:	8b 88 fc 00 00 00    	mov    0xfc(%eax),%ecx
58a42f:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
58a432:	d1 f9                	sar    $1,%ecx
58a434:	79 03                	jns    0x58a439
58a436:	83 d1 00             	adc    $0x0,%ecx
58a439:	8d 54 24 0c          	lea    0xc(%esp),%edx
58a43d:	8b 44 24 08          	mov    0x8(%esp),%eax
58a441:	8b 40 04             	mov    0x4(%eax),%eax
58a444:	8b 18                	mov    (%eax),%ebx
58a446:	ff 53 08             	call   *0x8(%ebx)
58a449:	8d 44 24 0c          	lea    0xc(%esp),%eax
58a44d:	8d 94 24 74 0d 00 00 	lea    0xd74(%esp),%edx
58a454:	e9 b0 00 00 00       	jmp    0x58a509
58a459:	33 c9                	xor    %ecx,%ecx
58a45b:	8a 48 02             	mov    0x2(%eax),%cl
58a45e:	c1 e9 04             	shr    $0x4,%ecx
58a461:	33 db                	xor    %ebx,%ebx
58a463:	8a 58 03             	mov    0x3(%eax),%bl
58a466:	c1 e3 04             	shl    $0x4,%ebx
58a469:	66 03 cb             	add    %bx,%cx
58a46c:	66 89 0a             	mov    %cx,(%edx)
58a46f:	33 c9                	xor    %ecx,%ecx
58a471:	8a 48 02             	mov    0x2(%eax),%cl
58a474:	c1 e1 08             	shl    $0x8,%ecx
58a477:	33 db                	xor    %ebx,%ebx
58a479:	8a 58 01             	mov    0x1(%eax),%bl
58a47c:	66 03 cb             	add    %bx,%cx
58a47f:	66 89 4a 02          	mov    %cx,0x2(%edx)
58a483:	33 c9                	xor    %ecx,%ecx
58a485:	8a 48 07             	mov    0x7(%eax),%cl
58a488:	c1 e9 04             	shr    $0x4,%ecx
58a48b:	33 db                	xor    %ebx,%ebx
58a48d:	8a 18                	mov    (%eax),%bl
58a48f:	c1 e3 04             	shl    $0x4,%ebx
58a492:	66 03 cb             	add    %bx,%cx
58a495:	66 89 4a 04          	mov    %cx,0x4(%edx)
58a499:	33 c9                	xor    %ecx,%ecx
58a49b:	8a 48 07             	mov    0x7(%eax),%cl
58a49e:	c1 e1 08             	shl    $0x8,%ecx
58a4a1:	33 db                	xor    %ebx,%ebx
58a4a3:	8a 58 06             	mov    0x6(%eax),%bl
58a4a6:	66 03 cb             	add    %bx,%cx
58a4a9:	66 89 4a 06          	mov    %cx,0x6(%edx)
58a4ad:	33 c9                	xor    %ecx,%ecx
58a4af:	8a 48 04             	mov    0x4(%eax),%cl
58a4b2:	c1 e9 04             	shr    $0x4,%ecx
58a4b5:	33 db                	xor    %ebx,%ebx
58a4b7:	8a 58 05             	mov    0x5(%eax),%bl
58a4ba:	c1 e3 04             	shl    $0x4,%ebx
58a4bd:	66 03 cb             	add    %bx,%cx
58a4c0:	66 89 4a 08          	mov    %cx,0x8(%edx)
58a4c4:	33 c9                	xor    %ecx,%ecx
58a4c6:	8a 48 04             	mov    0x4(%eax),%cl
58a4c9:	c1 e1 08             	shl    $0x8,%ecx
58a4cc:	33 db                	xor    %ebx,%ebx
58a4ce:	8a 58 0b             	mov    0xb(%eax),%bl
58a4d1:	66 03 cb             	add    %bx,%cx
58a4d4:	66 89 4a 0a          	mov    %cx,0xa(%edx)
58a4d8:	33 c9                	xor    %ecx,%ecx
58a4da:	8a 48 09             	mov    0x9(%eax),%cl
58a4dd:	c1 e9 04             	shr    $0x4,%ecx
58a4e0:	33 db                	xor    %ebx,%ebx
58a4e2:	8a 58 0a             	mov    0xa(%eax),%bl
58a4e5:	c1 e3 04             	shl    $0x4,%ebx
58a4e8:	66 03 cb             	add    %bx,%cx
58a4eb:	66 89 4a 0c          	mov    %cx,0xc(%edx)
58a4ef:	33 c9                	xor    %ecx,%ecx
58a4f1:	8a 48 09             	mov    0x9(%eax),%cl
58a4f4:	c1 e1 08             	shl    $0x8,%ecx
58a4f7:	33 db                	xor    %ebx,%ebx
58a4f9:	8a 58 08             	mov    0x8(%eax),%bl
58a4fc:	66 03 cb             	add    %bx,%cx
58a4ff:	66 89 4a 0e          	mov    %cx,0xe(%edx)
58a503:	83 c0 0c             	add    $0xc,%eax
58a506:	83 c2 10             	add    $0x10,%edx
58a509:	8d 8c 24 74 0d 00 00 	lea    0xd74(%esp),%ecx
58a510:	8b 5c 24 08          	mov    0x8(%esp),%ebx
58a514:	8b 9b fc 00 00 00    	mov    0xfc(%ebx),%ebx
58a51a:	03 db                	add    %ebx,%ebx
58a51c:	03 cb                	add    %ebx,%ecx
58a51e:	3b ca                	cmp    %edx,%ecx
58a520:	0f 8f 33 ff ff ff    	jg     0x58a459
58a526:	8b 44 24 08          	mov    0x8(%esp),%eax
58a52a:	8b b0 fc 00 00 00    	mov    0xfc(%eax),%esi
58a530:	4e                   	dec    %esi
58a531:	85 f6                	test   %esi,%esi
58a533:	7c 2d                	jl     0x58a562
58a535:	46                   	inc    %esi
58a536:	33 ff                	xor    %edi,%edi
58a538:	8d 9c 24 74 0d 00 00 	lea    0xd74(%esp),%ebx
58a53f:	8b 04 24             	mov    (%esp),%eax
58a542:	8b cf                	mov    %edi,%ecx
58a544:	8b 54 24 04          	mov    0x4(%esp),%edx
58a548:	e8 af e4 ff ff       	call   0x5889fc
58a54d:	66 8b 13             	mov    (%ebx),%dx
58a550:	66 81 e2 ff 0f       	and    $0xfff,%dx
58a555:	c1 e2 02             	shl    $0x2,%edx
58a558:	66 89 10             	mov    %dx,(%eax)
58a55b:	47                   	inc    %edi
58a55c:	83 c3 02             	add    $0x2,%ebx
58a55f:	4e                   	dec    %esi
58a560:	75 dd                	jne    0x58a53f
58a562:	83 44 24 04 02       	addl   $0x2,0x4(%esp)
58a567:	8b 44 24 08          	mov    0x8(%esp),%eax
58a56b:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58a571:	3b 44 24 04          	cmp    0x4(%esp),%eax
58a575:	0f 8d 27 fe ff ff    	jge    0x58a3a2
58a57b:	81 c4 54 1f 00 00    	add    $0x1f54,%esp
58a581:	5f                   	pop    %edi
58a582:	5e                   	pop    %esi
58a583:	5b                   	pop    %ebx
58a584:	c3                   	ret
58a585:	00 00                	add    %al,(%eax)
58a587:	00 00                	add    %al,(%eax)
58a589:	00 c8                	add    %cl,%al
58a58b:	42                   	inc    %edx
58a58c:	00 00                	add    %al,(%eax)
58a58e:	00 40 53             	add    %al,0x53(%eax)
58a591:	56                   	push   %esi
58a592:	57                   	push   %edi
58a593:	55                   	push   %ebp
58a594:	83 c4 f0             	add    $0xfffffff0,%esp
58a597:	8b f0                	mov    %eax,%esi
58a599:	8b c6                	mov    %esi,%eax
58a59b:	89 44 24 08          	mov    %eax,0x8(%esp)
58a59f:	83 ca ff             	or     $0xffffffff,%edx
58a5a2:	e8 75 eb ff ff       	call   0x58911c
58a5a7:	8b 44 24 08          	mov    0x8(%esp),%eax
58a5ab:	db 80 f8 00 00 00    	fildl  0xf8(%eax)
58a5b1:	d8 3d 88 a6 58 00    	fdivrs 0x58a688
58a5b7:	d8 35 8c a6 58 00    	fdivs  0x58a68c
58a5bd:	8b 44 24 08          	mov    0x8(%esp),%eax
58a5c1:	dd 98 c0 f4 00 00    	fstpl  0xf4c0(%eax)
58a5c7:	9b                   	fwait
58a5c8:	8b 44 24 08          	mov    0x8(%esp),%eax
58a5cc:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58a5d2:	48                   	dec    %eax
58a5d3:	85 c0                	test   %eax,%eax
58a5d5:	0f 8c a4 00 00 00    	jl     0x58a67f
58a5db:	40                   	inc    %eax
58a5dc:	89 44 24 0c          	mov    %eax,0xc(%esp)
58a5e0:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
58a5e7:	8b 44 24 08          	mov    0x8(%esp),%eax
58a5eb:	8d 98 a8 f4 00 00    	lea    0xf4a8(%eax),%ebx
58a5f1:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
58a5f6:	74 15                	je     0x58a60d
58a5f8:	db 04 24             	fildl  (%esp)
58a5fb:	dc 4b 18             	fmull  0x18(%ebx)
58a5fe:	e8 c9 86 e7 ff       	call   0x402ccc
58a603:	8b c8                	mov    %eax,%ecx
58a605:	8b 53 08             	mov    0x8(%ebx),%edx
58a608:	8b 43 04             	mov    0x4(%ebx),%eax
58a60b:	ff 13                	call   *(%ebx)
58a60d:	8b 04 24             	mov    (%esp),%eax
58a610:	03 c0                	add    %eax,%eax
58a612:	8b 54 24 08          	mov    0x8(%esp),%edx
58a616:	8b 8a f8 00 00 00    	mov    0xf8(%edx),%ecx
58a61c:	99                   	cltd
58a61d:	f7 f9                	idiv   %ecx
58a61f:	89 54 24 04          	mov    %edx,0x4(%esp)
58a623:	8b 44 24 08          	mov    0x8(%esp),%eax
58a627:	8b b8 fc 00 00 00    	mov    0xfc(%eax),%edi
58a62d:	4f                   	dec    %edi
58a62e:	85 ff                	test   %edi,%edi
58a630:	7c 2a                	jl     0x58a65c
58a632:	47                   	inc    %edi
58a633:	33 db                	xor    %ebx,%ebx
58a635:	8b ee                	mov    %esi,%ebp
58a637:	8b c5                	mov    %ebp,%eax
58a639:	8b cb                	mov    %ebx,%ecx
58a63b:	8b 54 24 04          	mov    0x4(%esp),%edx
58a63f:	e8 b8 e3 ff ff       	call   0x5889fc
58a644:	50                   	push   %eax
58a645:	8b c5                	mov    %ebp,%eax
58a647:	ba 0a 00 00 00       	mov    $0xa,%edx
58a64c:	e8 cb ea ff ff       	call   0x58911c
58a651:	c1 e0 04             	shl    $0x4,%eax
58a654:	5a                   	pop    %edx
58a655:	66 89 02             	mov    %ax,(%edx)
58a658:	43                   	inc    %ebx
58a659:	4f                   	dec    %edi
58a65a:	75 d9                	jne    0x58a635
58a65c:	bb 1c 00 00 00       	mov    $0x1c,%ebx
58a661:	8b c6                	mov    %esi,%eax
58a663:	ba 08 00 00 00       	mov    $0x8,%edx
58a668:	e8 af ea ff ff       	call   0x58911c
58a66d:	4b                   	dec    %ebx
58a66e:	85 db                	test   %ebx,%ebx
58a670:	75 ef                	jne    0x58a661
58a672:	ff 04 24             	incl   (%esp)
58a675:	ff 4c 24 0c          	decl   0xc(%esp)
58a679:	0f 85 68 ff ff ff    	jne    0x58a5e7
58a67f:	83 c4 10             	add    $0x10,%esp
58a682:	5d                   	pop    %ebp
58a683:	5f                   	pop    %edi
58a684:	5e                   	pop    %esi
58a685:	5b                   	pop    %ebx
58a686:	c3                   	ret
58a687:	00 00                	add    %al,(%eax)
58a689:	00 c8                	add    %cl,%al
58a68b:	42                   	inc    %edx
58a68c:	00 00                	add    %al,(%eax)
58a68e:	00 40 e8             	add    %al,-0x18(%eax)
58a691:	53                   	push   %ebx
58a692:	66 06                	pushw  %es
58a694:	00 c3                	add    %al,%bl
58a696:	8b c0                	mov    %eax,%eax
58a698:	e8 53 66 06 00       	call   0x5f0cf0
58a69d:	c3                   	ret
58a69e:	8b c0                	mov    %eax,%eax
58a6a0:	53                   	push   %ebx
58a6a1:	56                   	push   %esi
58a6a2:	57                   	push   %edi
58a6a3:	55                   	push   %ebp
58a6a4:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
58a6aa:	50                   	push   %eax
58a6ab:	81 c4 f4 f8 ff ff    	add    $0xfffff8f4,%esp
58a6b1:	8b d8                	mov    %eax,%ebx
58a6b3:	8b 73 04             	mov    0x4(%ebx),%esi
58a6b6:	8b c6                	mov    %esi,%eax
58a6b8:	e8 fb 3f e9 ff       	call   0x41e6b8
58a6bd:	05 40 28 02 00       	add    $0x22840,%eax
58a6c2:	83 d2 00             	adc    $0x0,%edx
58a6c5:	52                   	push   %edx
58a6c6:	50                   	push   %eax
58a6c7:	8b c6                	mov    %esi,%eax
58a6c9:	e8 0a 40 e9 ff       	call   0x41e6d8
58a6ce:	c7 83 c0 f4 00 00 49 	movl   $0xce540f49,0xf4c0(%ebx)
58a6d5:	0f 54 ce
58a6d8:	c7 83 c4 f4 00 00 6e 	movl   $0x3f97e16e,0xf4c4(%ebx)
58a6df:	e1 97 3f
58a6e2:	33 c0                	xor    %eax,%eax
58a6e4:	89 04 24             	mov    %eax,(%esp)
58a6e7:	8d b3 a8 f4 00 00    	lea    0xf4a8(%ebx),%esi
58a6ed:	66 83 7e 02 00       	cmpw   $0x0,0x2(%esi)
58a6f2:	74 15                	je     0x58a709
58a6f4:	db 04 24             	fildl  (%esp)
58a6f7:	dc 4e 18             	fmull  0x18(%esi)
58a6fa:	e8 cd 85 e7 ff       	call   0x402ccc
58a6ff:	8b c8                	mov    %eax,%ecx
58a701:	8b 56 08             	mov    0x8(%esi),%edx
58a704:	8b 46 04             	mov    0x4(%esi),%eax
58a707:	ff 16                	call   *(%esi)
58a709:	8d 54 24 0c          	lea    0xc(%esp),%edx
58a70d:	b9 00 17 00 00       	mov    $0x1700,%ecx
58a712:	8b 43 04             	mov    0x4(%ebx),%eax
58a715:	8b 30                	mov    (%eax),%esi
58a717:	ff 56 08             	call   *0x8(%esi)
58a71a:	33 f6                	xor    %esi,%esi
58a71c:	8d 7c 24 0c          	lea    0xc(%esp),%edi
58a720:	8d 46 01             	lea    0x1(%esi),%eax
58a723:	d1 e8                	shr    $1,%eax
58a725:	03 04 24             	add    (%esp),%eax
58a728:	89 44 24 04          	mov    %eax,0x4(%esp)
58a72c:	b8 5f 08 00 00       	mov    $0x85f,%eax
58a731:	2b 04 24             	sub    (%esp),%eax
58a734:	8b d6                	mov    %esi,%edx
58a736:	d1 ea                	shr    $1,%edx
58a738:	03 c2                	add    %edx,%eax
58a73a:	89 44 24 08          	mov    %eax,0x8(%esp)
58a73e:	66 8b 07             	mov    (%edi),%ax
58a741:	e8 4a ff ff ff       	call   0x58a690
58a746:	c1 e0 02             	shl    $0x2,%eax
58a749:	50                   	push   %eax
58a74a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58a74e:	03 c9                	add    %ecx,%ecx
58a750:	83 e1 0e             	and    $0xe,%ecx
58a753:	8b 44 24 0c          	mov    0xc(%esp),%eax
58a757:	83 e0 01             	and    $0x1,%eax
58a75a:	03 c8                	add    %eax,%ecx
58a75c:	03 c9                	add    %ecx,%ecx
58a75e:	8b 83 3c 01 00 00    	mov    0x13c(%ebx),%eax
58a764:	d3 e8                	shr    %cl,%eax
58a766:	83 e0 03             	and    $0x3,%eax
58a769:	8b 8b 14 01 00 00    	mov    0x114(%ebx),%ecx
58a76f:	8b 54 24 08          	mov    0x8(%esp),%edx
58a773:	d3 ea                	shr    %cl,%edx
58a775:	0f af 93 10 01 00 00 	imul   0x110(%ebx),%edx