58341f:	83 c4 f4             	add    $0xfffffff4,%esp
583422:	db 3c 24             	fstpt  (%esp)
583425:	9b                   	fwait
583426:	e8 d5 f2 06 00       	call   0x5f2700
58342b:	88 44 24 08          	mov    %al,0x8(%esp)
58342f:	eb 04                	jmp    0x583435
583431:	88 5c 24 08          	mov    %bl,0x8(%esp)
583435:	8d 4c 24 08          	lea    0x8(%esp),%ecx
583439:	8b 2c 24             	mov    (%esp),%ebp
58343c:	ba 01 00 00 00       	mov    $0x1,%edx
583441:	8b c7                	mov    %edi,%eax
583443:	ff 95 fc 03 00 00    	call   *0x3fc(%ebp)
583449:	43                   	inc    %ebx
58344a:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
583450:	75 a8                	jne    0x5833fa
583452:	ff 44 24 04          	incl   0x4(%esp)
583456:	ff 4c 24 0c          	decl   0xc(%esp)
58345a:	75 9c                	jne    0x5833f8
58345c:	8b 56 28             	mov    0x28(%esi),%edx
58345f:	8b 46 38             	mov    0x38(%esi),%eax
583462:	e8 d1 c3 ff ff       	call   0x57f838
583467:	f7 6e 2c             	imull  0x2c(%esi)
58346a:	48                   	dec    %eax
58346b:	85 c0                	test   %eax,%eax
58346d:	7c 50                	jl     0x5834bf
58346f:	40                   	inc    %eax
583470:	89 44 24 0c          	mov    %eax,0xc(%esp)
583474:	33 db                	xor    %ebx,%ebx
583476:	8b 86 bc 00 00 00    	mov    0xbc(%esi),%eax
58347c:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
583480:	89 44 24 3c          	mov    %eax,0x3c(%esp)
583484:	db 44 24 3c          	fildl  0x3c(%esp)
583488:	d8 35 44 35 58 00    	fdivs  0x583544
58348e:	d8 05 48 35 58 00    	fadds  0x583548
583494:	83 c4 f4             	add    $0xfffffff4,%esp
583497:	db 3c 24             	fstpt  (%esp)
58349a:	9b                   	fwait
58349b:	e8 60 f2 06 00       	call   0x5f2700
5834a0:	88 44 24 08          	mov    %al,0x8(%esp)
5834a4:	8d 4c 24 08          	lea    0x8(%esp),%ecx
5834a8:	8b 2c 24             	mov    (%esp),%ebp
5834ab:	ba 01 00 00 00       	mov    $0x1,%edx
5834b0:	8b c7                	mov    %edi,%eax
5834b2:	ff 95 fc 03 00 00    	call   *0x3fc(%ebp)
5834b8:	43                   	inc    %ebx
5834b9:	ff 4c 24 0c          	decl   0xc(%esp)
5834bd:	75 b7                	jne    0x583476
5834bf:	8b 46 2c             	mov    0x2c(%esi),%eax
5834c2:	48                   	dec    %eax
5834c3:	85 c0                	test   %eax,%eax
5834c5:	7c 71                	jl     0x583538
5834c7:	40                   	inc    %eax
5834c8:	89 44 24 0c          	mov    %eax,0xc(%esp)
5834cc:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
5834d3:	00
5834d4:	33 db                	xor    %ebx,%ebx
5834d6:	f6 06 08             	testb  $0x8,(%esi)
5834d9:	74 32                	je     0x58350d
5834db:	8b 44 24 04          	mov    0x4(%esp),%eax
5834df:	8b 44 86 7c          	mov    0x7c(%esi,%eax,4),%eax
5834e3:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
5834e7:	89 44 24 3c          	mov    %eax,0x3c(%esp)
5834eb:	db 44 24 3c          	fildl  0x3c(%esp)
5834ef:	d8 35 44 35 58 00    	fdivs  0x583544
5834f5:	d8 05 48 35 58 00    	fadds  0x583548
5834fb:	83 c4 f4             	add    $0xfffffff4,%esp
5834fe:	db 3c 24             	fstpt  (%esp)
583501:	9b                   	fwait
583502:	e8 f9 f1 06 00       	call   0x5f2700
583507:	88 44 24 08          	mov    %al,0x8(%esp)
58350b:	eb 04                	jmp    0x583511
58350d:	88 5c 24 08          	mov    %bl,0x8(%esp)
583511:	8d 4c 24 08          	lea    0x8(%esp),%ecx
583515:	8b 2c 24             	mov    (%esp),%ebp
583518:	ba 01 00 00 00       	mov    $0x1,%edx
58351d:	8b c7                	mov    %edi,%eax
58351f:	ff 95 fc 03 00 00    	call   *0x3fc(%ebp)
583525:	43                   	inc    %ebx
583526:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
58352c:	75 a8                	jne    0x5834d6
58352e:	ff 44 24 04          	incl   0x4(%esp)
583532:	ff 4c 24 0c          	decl   0xc(%esp)
583536:	75 9c                	jne    0x5834d4
583538:	83 c8 ff             	or     $0xffffffff,%eax
58353b:	83 c4 40             	add    $0x40,%esp
58353e:	5d                   	pop    %ebp
58353f:	5f                   	pop    %edi
583540:	5e                   	pop    %esi
583541:	5b                   	pop    %ebx
583542:	c3                   	ret
583543:	00 00                	add    %al,(%eax)
583545:	80 80 43 00 00 00 3f 	addb   $0x3f,0x43(%eax)
58354c:	55                   	push   %ebp
58354d:	8b ec                	mov    %esp,%ebp
58354f:	83 c4 f8             	add    $0xfffffff8,%esp
583552:	53                   	push   %ebx
583553:	56                   	push   %esi
583554:	57                   	push   %edi
583555:	89 4d f8             	mov    %ecx,-0x8(%ebp)
583558:	8b fa                	mov    %edx,%edi
58355a:	89 45 fc             	mov    %eax,-0x4(%ebp)
58355d:	8b f7                	mov    %edi,%esi
58355f:	03 f6                	add    %esi,%esi
583561:	8b c6                	mov    %esi,%eax
583563:	e8 44 f2 e7 ff       	call   0x4027ac
583568:	8b d8                	mov    %eax,%ebx
58356a:	85 db                	test   %ebx,%ebx
58356c:	75 04                	jne    0x583572
58356e:	33 c0                	xor    %eax,%eax
583570:	eb 2f                	jmp    0x5835a1
583572:	8b ce                	mov    %esi,%ecx
583574:	8b 55 f8             	mov    -0x8(%ebp),%edx
583577:	8b c3                	mov    %ebx,%eax
583579:	e8 42 49 e8 ff       	call   0x407ec0
58357e:	8b d7                	mov    %edi,%edx
583580:	8b c3                	mov    %ebx,%eax
583582:	e8 f1 d6 ff ff       	call   0x580c78
583587:	8b 7d 08             	mov    0x8(%ebp),%edi
58358a:	8b cb                	mov    %ebx,%ecx
58358c:	8b d6                	mov    %esi,%edx
58358e:	8b 45 fc             	mov    -0x4(%ebp),%eax
583591:	ff 97 fc 03 00 00    	call   *0x3fc(%edi)
583597:	8b c3                	mov    %ebx,%eax
583599:	e8 2e f2 e7 ff       	call   0x4027cc
58359e:	83 c8 ff             	or     $0xffffffff,%eax
5835a1:	5f                   	pop    %edi
5835a2:	5e                   	pop    %esi
5835a3:	5b                   	pop    %ebx
5835a4:	59                   	pop    %ecx
5835a5:	59                   	pop    %ecx
5835a6:	5d                   	pop    %ebp
5835a7:	c2 04 00             	ret    $0x4
5835aa:	8b c0                	mov    %eax,%eax
5835ac:	53                   	push   %ebx
5835ad:	56                   	push   %esi
5835ae:	57                   	push   %edi
5835af:	55                   	push   %ebp
5835b0:	83 c4 c8             	add    $0xffffffc8,%esp
5835b3:	89 4c 24 04          	mov    %ecx,0x4(%esp)
5835b7:	8b da                	mov    %edx,%ebx
5835b9:	89 04 24             	mov    %eax,(%esp)
5835bc:	8d 74 24 08          	lea    0x8(%esp),%esi
5835c0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5835c4:	ba 32 74 66 6d       	mov    $0x6d667432,%edx
5835c9:	8b 04 24             	mov    (%esp),%eax
5835cc:	e8 f7 f8 ff ff       	call   0x582ec8
5835d1:	85 c0                	test   %eax,%eax
5835d3:	75 07                	jne    0x5835dc
5835d5:	33 c0                	xor    %eax,%eax
5835d7:	e9 42 02 00 00       	jmp    0x58381e
5835dc:	8a 43 38             	mov    0x38(%ebx),%al
5835df:	88 46 02             	mov    %al,0x2(%esi)
5835e2:	8a 43 28             	mov    0x28(%ebx),%al
5835e5:	88 06                	mov    %al,(%esi)
5835e7:	8a 43 2c             	mov    0x2c(%ebx),%al
5835ea:	88 46 01             	mov    %al,0x1(%esi)
5835ed:	f6 03 02             	testb  $0x2,(%ebx)
5835f0:	74 0f                	je     0x583601
5835f2:	66 8b 43 30          	mov    0x30(%ebx),%ax
5835f6:	e8 01 f6 ff ff       	call   0x582bfc
5835fb:	66 89 46 28          	mov    %ax,0x28(%esi)
5835ff:	eb 0d                	jmp    0x58360e
583601:	66 b8 02 00          	mov    $0x2,%ax
583605:	e8 f2 f5 ff ff       	call   0x582bfc
58360a:	66 89 46 28          	mov    %ax,0x28(%esi)
58360e:	f6 03 08             	testb  $0x8,(%ebx)
583611:	74 0f                	je     0x583622
583613:	66 8b 43 34          	mov    0x34(%ebx),%ax
583617:	e8 e0 f5 ff ff       	call   0x582bfc
58361c:	66 89 46 2a          	mov    %ax,0x2a(%esi)
583620:	eb 0d                	jmp    0x58362f
583622:	66 b8 02 00          	mov    $0x2,%ax
583626:	e8 d1 f5 ff ff       	call   0x582bfc
58362b:	66 89 46 2a          	mov    %ax,0x2a(%esi)
58362f:	f6 03 01             	testb  $0x1,(%ebx)
583632:	74 68                	je     0x58369c
583634:	8b 43 04             	mov    0x4(%ebx),%eax
583637:	e8 b0 f5 ff ff       	call   0x582bec
58363c:	89 46 04             	mov    %eax,0x4(%esi)
58363f:	8b 43 08             	mov    0x8(%ebx),%eax
583642:	e8 a5 f5 ff ff       	call   0x582bec
583647:	89 46 08             	mov    %eax,0x8(%esi)
58364a:	8b 43 0c             	mov    0xc(%ebx),%eax
58364d:	e8 9a f5 ff ff       	call   0x582bec
583652:	89 46 0c             	mov    %eax,0xc(%esi)
583655:	8b 43 10             	mov    0x10(%ebx),%eax
583658:	e8 8f f5 ff ff       	call   0x582bec
58365d:	89 46 10             	mov    %eax,0x10(%esi)
583660:	8b 43 14             	mov    0x14(%ebx),%eax
583663:	e8 84 f5 ff ff       	call   0x582bec
583668:	89 46 14             	mov    %eax,0x14(%esi)
58366b:	8b 43 18             	mov    0x18(%ebx),%eax
58366e:	e8 79 f5 ff ff       	call   0x582bec
583673:	89 46 18             	mov    %eax,0x18(%esi)
583676:	8b 43 1c             	mov    0x1c(%ebx),%eax
583679:	e8 6e f5 ff ff       	call   0x582bec
58367e:	89 46 1c             	mov    %eax,0x1c(%esi)
583681:	8b 43 20             	mov    0x20(%ebx),%eax
583684:	e8 63 f5 ff ff       	call   0x582bec
583689:	89 46 20             	mov    %eax,0x20(%esi)
58368c:	8b 43 24             	mov    0x24(%ebx),%eax
58368f:	e8 58 f5 ff ff       	call   0x582bec
583694:	89 46 24             	mov    %eax,0x24(%esi)
583697:	e9 a2 00 00 00       	jmp    0x58373e
58369c:	68 00 00 f0 3f       	push   $0x3ff00000
5836a1:	6a 00                	push   $0x0
5836a3:	e8 00 80 ff ff       	call   0x57b6a8
5836a8:	e8 3f f5 ff ff       	call   0x582bec
5836ad:	89 46 04             	mov    %eax,0x4(%esi)
5836b0:	6a 00                	push   $0x0
5836b2:	6a 00                	push   $0x0
5836b4:	e8 ef 7f ff ff       	call   0x57b6a8
5836b9:	e8 2e f5 ff ff       	call   0x582bec
5836be:	89 46 08             	mov    %eax,0x8(%esi)
5836c1:	6a 00                	push   $0x0
5836c3:	6a 00                	push   $0x0
5836c5:	e8 de 7f ff ff       	call   0x57b6a8
5836ca:	e8 1d f5 ff ff       	call   0x582bec
5836cf:	89 46 0c             	mov    %eax,0xc(%esi)
5836d2:	6a 00                	push   $0x0
5836d4:	6a 00                	push   $0x0
5836d6:	e8 cd 7f ff ff       	call   0x57b6a8
5836db:	e8 0c f5 ff ff       	call   0x582bec
5836e0:	89 46 10             	mov    %eax,0x10(%esi)
5836e3:	68 00 00 f0 3f       	push   $0x3ff00000
5836e8:	6a 00                	push   $0x0
5836ea:	e8 b9 7f ff ff       	call   0x57b6a8
5836ef:	e8 f8 f4 ff ff       	call   0x582bec
5836f4:	89 46 14             	mov    %eax,0x14(%esi)
5836f7:	6a 00                	push   $0x0
5836f9:	6a 00                	push   $0x0
5836fb:	e8 a8 7f ff ff       	call   0x57b6a8
583700:	e8 e7 f4 ff ff       	call   0x582bec
583705:	89 46 18             	mov    %eax,0x18(%esi)
583708:	6a 00                	push   $0x0
58370a:	6a 00                	push   $0x0
58370c:	e8 97 7f ff ff       	call   0x57b6a8
583711:	e8 d6 f4 ff ff       	call   0x582bec
583716:	89 46 1c             	mov    %eax,0x1c(%esi)
583719:	6a 00                	push   $0x0
58371b:	6a 00                	push   $0x0
58371d:	e8 86 7f ff ff       	call   0x57b6a8
583722:	e8 c5 f4 ff ff       	call   0x582bec
583727:	89 46 20             	mov    %eax,0x20(%esi)
58372a:	68 00 00 f0 3f       	push   $0x3ff00000
58372f:	6a 00                	push   $0x0
583731:	e8 72 7f ff ff       	call   0x57b6a8
583736:	e8 b1 f4 ff ff       	call   0x582bec
58373b:	89 46 24             	mov    %eax,0x24(%esi)
58373e:	e8 75 d4 ff ff       	call   0x580bb8
583743:	ba 2e 00 00 00       	mov    $0x2e,%edx
583748:	2b d0                	sub    %eax,%edx
58374a:	8b ce                	mov    %esi,%ecx
58374c:	8b 74 24 04          	mov    0x4(%esp),%esi
583750:	8b 04 24             	mov    (%esp),%eax
583753:	ff 96 fc 03 00 00    	call   *0x3fc(%esi)
583759:	8b 73 28             	mov    0x28(%ebx),%esi
58375c:	4e                   	dec    %esi
58375d:	85 f6                	test   %esi,%esi
58375f:	72 43                	jb     0x5837a4
583761:	46                   	inc    %esi
583762:	33 ff                	xor    %edi,%edi
583764:	f6 03 02             	testb  $0x2,(%ebx)
583767:	74 20                	je     0x583789
583769:	8b 44 24 04          	mov    0x4(%esp),%eax
58376d:	50                   	push   %eax
58376e:	8b 4c bb 3c          	mov    0x3c(%ebx,%edi,4),%ecx
583772:	8b 53 30             	mov    0x30(%ebx),%edx
583775:	8b 44 24 04          	mov    0x4(%esp),%eax
583779:	e8 ce fd ff ff       	call   0x58354c
58377e:	85 c0                	test   %eax,%eax
583780:	75 1e                	jne    0x5837a0
583782:	33 c0                	xor    %eax,%eax
583784:	e9 95 00 00 00       	jmp    0x58381e
583789:	b9 d0 34 6a 00       	mov    $0x6a34d0,%ecx
58378e:	8b 6c 24 04          	mov    0x4(%esp),%ebp
583792:	ba 04 00 00 00       	mov    $0x4,%edx
583797:	8b 04 24             	mov    (%esp),%eax
58379a:	ff 95 fc 03 00 00    	call   *0x3fc(%ebp)
5837a0:	47                   	inc    %edi
5837a1:	4e                   	dec    %esi
5837a2:	75 c0                	jne    0x583764
5837a4:	8b 53 28             	mov    0x28(%ebx),%edx
5837a7:	8b 43 38             	mov    0x38(%ebx),%eax
5837aa:	e8 89 c0 ff ff       	call   0x57f838
5837af:	8b f0                	mov    %eax,%esi
5837b1:	0f af 73 2c          	imul   0x2c(%ebx),%esi
5837b5:	8b 44 24 04          	mov    0x4(%esp),%eax
5837b9:	50                   	push   %eax
5837ba:	8b 8b bc 00 00 00    	mov    0xbc(%ebx),%ecx
5837c0:	8b d6                	mov    %esi,%edx
5837c2:	8b 44 24 04          	mov    0x4(%esp),%eax
5837c6:	e8 81 fd ff ff       	call   0x58354c
5837cb:	85 c0                	test   %eax,%eax
5837cd:	75 04                	jne    0x5837d3
5837cf:	33 c0                	xor    %eax,%eax
5837d1:	eb 4b                	jmp    0x58381e
5837d3:	8b 73 2c             	mov    0x2c(%ebx),%esi
5837d6:	4e                   	dec    %esi
5837d7:	85 f6                	test   %esi,%esi
5837d9:	72 40                	jb     0x58381b
5837db:	46                   	inc    %esi
5837dc:	33 ff                	xor    %edi,%edi
5837de:	f6 03 08             	testb  $0x8,(%ebx)
5837e1:	74 1d                	je     0x583800
5837e3:	8b 44 24 04          	mov    0x4(%esp),%eax
5837e7:	50                   	push   %eax
5837e8:	8b 4c bb 7c          	mov    0x7c(%ebx,%edi,4),%ecx
5837ec:	8b 53 34             	mov    0x34(%ebx),%edx
5837ef:	8b 44 24 04          	mov    0x4(%esp),%eax
5837f3:	e8 54 fd ff ff       	call   0x58354c
5837f8:	85 c0                	test   %eax,%eax
5837fa:	75 1b                	jne    0x583817
5837fc:	33 c0                	xor    %eax,%eax
5837fe:	eb 1e                	jmp    0x58381e
583800:	b9 d0 34 6a 00       	mov    $0x6a34d0,%ecx
583805:	8b 6c 24 04          	mov    0x4(%esp),%ebp
583809:	ba 04 00 00 00       	mov    $0x4,%edx
58380e:	8b 04 24             	mov    (%esp),%eax
583811:	ff 95 fc 03 00 00    	call   *0x3fc(%ebp)
583817:	47                   	inc    %edi
583818:	4e                   	dec    %esi
583819:	75 c3                	jne    0x5837de
58381b:	83 c8 ff             	or     $0xffffffff,%eax
58381e:	83 c4 38             	add    $0x38,%esp
583821:	5d                   	pop    %ebp
583822:	5f                   	pop    %edi
583823:	5e                   	pop    %esi
583824:	5b                   	pop    %ebx
583825:	c3                   	ret
583826:	8b c0                	mov    %eax,%eax
583828:	53                   	push   %ebx
583829:	56                   	push   %esi
58382a:	57                   	push   %edi
58382b:	83 c4 d4             	add    $0xffffffd4,%esp
58382e:	8b f9                	mov    %ecx,%edi
583830:	89 14 24             	mov    %edx,(%esp)
583833:	8b f0                	mov    %eax,%esi
583835:	8b 04 24             	mov    (%esp),%eax
583838:	8b 18                	mov    (%eax),%ebx
58383a:	8b 04 24             	mov    (%esp),%eax
58383d:	83 c0 04             	add    $0x4,%eax
583840:	89 44 24 0c          	mov    %eax,0xc(%esp)
583844:	8b cf                	mov    %edi,%ecx
583846:	ba 71 65 73 70       	mov    $0x70736571,%edx
58384b:	8b c6                	mov    %esi,%eax
58384d:	e8 76 f6 ff ff       	call   0x582ec8
583852:	85 c0                	test   %eax,%eax
583854:	75 07                	jne    0x58385d
583856:	33 c0                	xor    %eax,%eax