600579:	8b ec                	mov    %esp,%ebp
60057b:	81 c4 54 ff ff ff    	add    $0xffffff54,%esp
600581:	53                   	push   %ebx
600582:	56                   	push   %esi
600583:	57                   	push   %edi
600584:	89 4d f4             	mov    %ecx,-0xc(%ebp)
600587:	89 55 f8             	mov    %edx,-0x8(%ebp)
60058a:	89 45 fc             	mov    %eax,-0x4(%ebp)
60058d:	8b 75 20             	mov    0x20(%ebp),%esi
600590:	8b 5d 24             	mov    0x24(%ebp),%ebx
600593:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
600597:	0f 84 7a 02 00 00    	je     0x600817
60059d:	3b 5d 14             	cmp    0x14(%ebp),%ebx
6005a0:	75 09                	jne    0x6005ab
6005a2:	3b 75 10             	cmp    0x10(%ebp),%esi
6005a5:	0f 84 6c 02 00 00    	je     0x600817
6005ab:	3b 5d 14             	cmp    0x14(%ebp),%ebx
6005ae:	0f 8f ab 00 00 00    	jg     0x60065f
6005b4:	8b 45 fc             	mov    -0x4(%ebp),%eax
6005b7:	8b 10                	mov    (%eax),%edx
6005b9:	ff 52 10             	call   *0x10(%edx)
6005bc:	3c 01                	cmp    $0x1,%al
6005be:	0f 85 9b 00 00 00    	jne    0x60065f
6005c4:	8b 45 fc             	mov    -0x4(%ebp),%eax
6005c7:	e8 3c 73 ff ff       	call   0x5f7908
6005cc:	84 c0                	test   %al,%al
6005ce:	0f 85 8b 00 00 00    	jne    0x60065f
6005d4:	85 db                	test   %ebx,%ebx
6005d6:	0f 8e 7d 08 00 00    	jle    0x600e59
6005dc:	85 f6                	test   %esi,%esi
6005de:	0f 8e 75 08 00 00    	jle    0x600e59
6005e4:	b2 01                	mov    $0x1,%dl
6005e6:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
6005eb:	e8 b4 6f ff ff       	call   0x5f75a4
6005f0:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
6005f6:	6a 05                	push   $0x5
6005f8:	8b ce                	mov    %esi,%ecx
6005fa:	8b d3                	mov    %ebx,%edx
6005fc:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
600602:	8b 38                	mov    (%eax),%edi
600604:	ff 57 24             	call   *0x24(%edi)
600607:	8b 45 1c             	mov    0x1c(%ebp),%eax
60060a:	03 45 14             	add    0x14(%ebp),%eax
60060d:	48                   	dec    %eax
60060e:	50                   	push   %eax
60060f:	8b 45 18             	mov    0x18(%ebp),%eax
600612:	03 45 10             	add    0x10(%ebp),%eax
600615:	48                   	dec    %eax
600616:	50                   	push   %eax
600617:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
60061d:	50                   	push   %eax
60061e:	8b 4d 18             	mov    0x18(%ebp),%ecx
600621:	8b 55 1c             	mov    0x1c(%ebp),%edx
600624:	8b 45 fc             	mov    -0x4(%ebp),%eax
600627:	e8 c0 86 fb ff       	call   0x5b8cec
60062c:	8b 45 28             	mov    0x28(%ebp),%eax
60062f:	50                   	push   %eax
600630:	53                   	push   %ebx
600631:	56                   	push   %esi
600632:	6a 00                	push   $0x0
600634:	6a 00                	push   $0x0
600636:	53                   	push   %ebx
600637:	56                   	push   %esi
600638:	6a 00                	push   $0x0
60063a:	8b 45 08             	mov    0x8(%ebp),%eax
60063d:	50                   	push   %eax
60063e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
600641:	8b 55 f8             	mov    -0x8(%ebp),%edx
600644:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
60064a:	e8 29 ff ff ff       	call   0x600578
60064f:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
600655:	e8 1e 34 e0 ff       	call   0x403a78
60065a:	e9 fa 07 00 00       	jmp    0x600e59
60065f:	b2 01                	mov    $0x1,%dl
600661:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
600666:	e8 39 6f ff ff       	call   0x5f75a4
60066b:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
600671:	8b 45 fc             	mov    -0x4(%ebp),%eax
600674:	8b 10                	mov    (%eax),%edx
600676:	ff 52 10             	call   *0x10(%edx)
600679:	50                   	push   %eax
60067a:	8b 4d 10             	mov    0x10(%ebp),%ecx
60067d:	8b 55 14             	mov    0x14(%ebp),%edx
600680:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
600686:	8b 38                	mov    (%eax),%edi
600688:	ff 57 24             	call   *0x24(%edi)
60068b:	8b 45 18             	mov    0x18(%ebp),%eax
60068e:	50                   	push   %eax
60068f:	6a 00                	push   $0x0
600691:	6a 00                	push   $0x0
600693:	8b 45 14             	mov    0x14(%ebp),%eax
600696:	50                   	push   %eax
600697:	8b 45 10             	mov    0x10(%ebp),%eax
60069a:	50                   	push   %eax
60069b:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
60069e:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
6006a4:	8b 45 fc             	mov    -0x4(%ebp),%eax
6006a7:	e8 7c a4 ff ff       	call   0x5fab28
6006ac:	8b 45 fc             	mov    -0x4(%ebp),%eax
6006af:	e8 54 72 ff ff       	call   0x5f7908
6006b4:	84 c0                	test   %al,%al
6006b6:	74 48                	je     0x600700
6006b8:	8b 45 18             	mov    0x18(%ebp),%eax
6006bb:	50                   	push   %eax
6006bc:	6a 00                	push   $0x0
6006be:	6a 00                	push   $0x0
6006c0:	8b 45 14             	mov    0x14(%ebp),%eax
6006c3:	50                   	push   %eax
6006c4:	8b 45 10             	mov    0x10(%ebp),%eax
6006c7:	50                   	push   %eax
6006c8:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
6006ce:	e8 05 72 ff ff       	call   0x5f78d8
6006d3:	50                   	push   %eax
6006d4:	8b 45 fc             	mov    -0x4(%ebp),%eax
6006d7:	e8 fc 71 ff ff       	call   0x5f78d8
6006dc:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
6006df:	5a                   	pop    %edx
6006e0:	e8 43 a4 ff ff       	call   0x5fab28
6006e5:	8b 45 fc             	mov    -0x4(%ebp),%eax
6006e8:	e8 eb 71 ff ff       	call   0x5f78d8
6006ed:	8a 40 43             	mov    0x43(%eax),%al
6006f0:	50                   	push   %eax
6006f1:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
6006f7:	e8 dc 71 ff ff       	call   0x5f78d8
6006fc:	5a                   	pop    %edx
6006fd:	88 50 43             	mov    %dl,0x43(%eax)
600700:	b2 01                	mov    $0x1,%dl
600702:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
600707:	e8 98 6e ff ff       	call   0x5f75a4
60070c:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
600712:	8b 45 fc             	mov    -0x4(%ebp),%eax
600715:	8b 10                	mov    (%eax),%edx
600717:	ff 52 10             	call   *0x10(%edx)
60071a:	3c 01                	cmp    $0x1,%al
60071c:	75 46                	jne    0x600764
60071e:	80 7d 0c 0c          	cmpb   $0xc,0xc(%ebp)
600722:	74 06                	je     0x60072a
600724:	80 7d 0c 0d          	cmpb   $0xd,0xc(%ebp)
600728:	75 13                	jne    0x60073d
60072a:	6a 01                	push   $0x1
60072c:	8b ce                	mov    %esi,%ecx
60072e:	8b d3                	mov    %ebx,%edx
600730:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
600736:	8b 38                	mov    (%eax),%edi
600738:	ff 57 24             	call   *0x24(%edi)
60073b:	eb 11                	jmp    0x60074e
60073d:	6a 05                	push   $0x5
60073f:	8b ce                	mov    %esi,%ecx
600741:	8b d3                	mov    %ebx,%edx
600743:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
600749:	8b 38                	mov    (%eax),%edi
60074b:	ff 57 24             	call   *0x24(%edi)
60074e:	8a 4d 0c             	mov    0xc(%ebp),%cl
600751:	8b 95 58 ff ff ff    	mov    -0xa8(%ebp),%edx
600757:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
60075d:	e8 4e 58 fb ff       	call   0x5b5fb0
600762:	eb 2b                	jmp    0x60078f
600764:	6a 05                	push   $0x5
600766:	8b ce                	mov    %esi,%ecx
600768:	8b d3                	mov    %ebx,%edx
60076a:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
600770:	8b 38                	mov    (%eax),%edi
600772:	ff 57 24             	call   *0x24(%edi)
600775:	6a 00                	push   $0x0
600777:	6a 00                	push   $0x0
600779:	6a 00                	push   $0x0
60077b:	8a 4d 0c             	mov    0xc(%ebp),%cl
60077e:	8b 95 58 ff ff ff    	mov    -0xa8(%ebp),%edx
600784:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
60078a:	e8 c9 61 fb ff       	call   0x5b6958
60078f:	8b 45 fc             	mov    -0x4(%ebp),%eax
600792:	e8 71 71 ff ff       	call   0x5f7908
600797:	84 c0                	test   %al,%al
600799:	74 3e                	je     0x6007d9
60079b:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
6007a1:	e8 32 71 ff ff       	call   0x5f78d8
6007a6:	50                   	push   %eax
6007a7:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
6007ad:	e8 26 71 ff ff       	call   0x5f78d8
6007b2:	8a 4d 0c             	mov    0xc(%ebp),%cl
6007b5:	5a                   	pop    %edx
6007b6:	e8 99 4e fb ff       	call   0x5b5654
6007bb:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
6007c1:	e8 12 71 ff ff       	call   0x5f78d8
6007c6:	8a 40 43             	mov    0x43(%eax),%al
6007c9:	50                   	push   %eax
6007ca:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
6007d0:	e8 03 71 ff ff       	call   0x5f78d8
6007d5:	5a                   	pop    %edx
6007d6:	88 50 43             	mov    %dl,0x43(%eax)
6007d9:	8b 45 28             	mov    0x28(%ebp),%eax
6007dc:	50                   	push   %eax
6007dd:	53                   	push   %ebx
6007de:	56                   	push   %esi
6007df:	6a 00                	push   $0x0
6007e1:	6a 00                	push   $0x0
6007e3:	53                   	push   %ebx
6007e4:	56                   	push   %esi
6007e5:	6a 00                	push   $0x0
6007e7:	8b 45 08             	mov    0x8(%ebp),%eax
6007ea:	50                   	push   %eax
6007eb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
6007ee:	8b 55 f8             	mov    -0x8(%ebp),%edx
6007f1:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
6007f7:	e8 7c fd ff ff       	call   0x600578
6007fc:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
600802:	e8 71 32 e0 ff       	call   0x403a78
600807:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
60080d:	e8 66 32 e0 ff       	call   0x403a78
600812:	e9 42 06 00 00       	jmp    0x600e59
600817:	8b 45 f4             	mov    -0xc(%ebp),%eax
60081a:	89 45 8c             	mov    %eax,-0x74(%ebp)
60081d:	8b 45 28             	mov    0x28(%ebp),%eax
600820:	89 45 88             	mov    %eax,-0x78(%ebp)
600823:	89 5d 84             	mov    %ebx,-0x7c(%ebp)
600826:	89 75 80             	mov    %esi,-0x80(%ebp)
600829:	8b 45 1c             	mov    0x1c(%ebp),%eax
60082c:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
600832:	8b 45 18             	mov    0x18(%ebp),%eax
600835:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
60083b:	8b 45 14             	mov    0x14(%ebp),%eax
60083e:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
600844:	8b 45 10             	mov    0x10(%ebp),%eax
600847:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
60084d:	85 db                	test   %ebx,%ebx
60084f:	0f 84 04 06 00 00    	je     0x600e59
600855:	85 f6                	test   %esi,%esi
600857:	0f 84 fc 05 00 00    	je     0x600e59
60085d:	8b 45 f8             	mov    -0x8(%ebp),%eax
600860:	8b 10                	mov    (%eax),%edx
600862:	ff 52 0c             	call   *0xc(%edx)
600865:	89 45 ec             	mov    %eax,-0x14(%ebp)
600868:	8b 45 f8             	mov    -0x8(%ebp),%eax
60086b:	8b 10                	mov    (%eax),%edx
60086d:	ff 52 08             	call   *0x8(%edx)
600870:	89 45 e8             	mov    %eax,-0x18(%ebp)
600873:	85 db                	test   %ebx,%ebx
600875:	0f 84 de 05 00 00    	je     0x600e59
60087b:	85 f6                	test   %esi,%esi
60087d:	0f 84 d6 05 00 00    	je     0x600e59
600883:	33 c0                	xor    %eax,%eax
600885:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
60088b:	33 c0                	xor    %eax,%eax
60088d:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
600893:	33 c9                	xor    %ecx,%ecx
600895:	55                   	push   %ebp
600896:	68 27 0e 60 00       	push   $0x600e27
60089b:	64 ff 31             	push   %fs:(%ecx)
60089e:	64 89 21             	mov    %esp,%fs:(%ecx)
6008a1:	db 85 70 ff ff ff    	fildl  -0x90(%ebp)
6008a7:	db 45 80             	fildl  -0x80(%ebp)
6008aa:	de f9                	fdivrp %st,%st(1)
6008ac:	d8 0d 64 0e 60 00    	fmuls  0x600e64
6008b2:	e8 15 24 e0 ff       	call   0x402ccc
6008b7:	89 45 c0             	mov    %eax,-0x40(%ebp)
6008ba:	db 85 74 ff ff ff    	fildl  -0x8c(%ebp)
6008c0:	db 45 84             	fildl  -0x7c(%ebp)
6008c3:	de f9                	fdivrp %st,%st(1)
6008c5:	d8 0d 64 0e 60 00    	fmuls  0x600e64
6008cb:	e8 fc 23 e0 ff       	call   0x402ccc
6008d0:	89 45 c4             	mov    %eax,-0x3c(%ebp)
6008d3:	8b 55 e8             	mov    -0x18(%ebp),%edx
6008d6:	4a                   	dec    %edx
6008d7:	8b 45 88             	mov    -0x78(%ebp),%eax
6008da:	03 45 80             	add    -0x80(%ebp),%eax
6008dd:	48                   	dec    %eax
6008de:	e8 39 8b fa ff       	call   0x5a941c
6008e3:	89 45 c8             	mov    %eax,-0x38(%ebp)
6008e6:	8b 55 ec             	mov    -0x14(%ebp),%edx
6008e9:	4a                   	dec    %edx
6008ea:	8b 45 8c             	mov    -0x74(%ebp),%eax
6008ed:	03 45 84             	add    -0x7c(%ebp),%eax
6008f0:	48                   	dec    %eax
6008f1:	e8 26 8b fa ff       	call   0x5a941c
6008f6:	89 45 cc             	mov    %eax,-0x34(%ebp)
6008f9:	c7 45 9c 02 00 00 80 	movl   $0x80000002,-0x64(%ebp)
600900:	c7 45 98 02 00 00 80 	movl   $0x80000002,-0x68(%ebp)
600907:	c7 45 94 fe ff ff 7f 	movl   $0x7ffffffe,-0x6c(%ebp)
60090e:	c7 45 90 fe ff ff 7f 	movl   $0x7ffffffe,-0x70(%ebp)
600915:	8b 55 8c             	mov    -0x74(%ebp),%edx
600918:	8b 45 9c             	mov    -0x64(%ebp),%eax
60091b:	e8 f4 8a fa ff       	call   0x5a9414
600920:	89 45 9c             	mov    %eax,-0x64(%ebp)
600923:	8b 55 cc             	mov    -0x34(%ebp),%edx
600926:	8b 45 94             	mov    -0x6c(%ebp),%eax
600929:	e8 ee 8a fa ff       	call   0x5a941c
60092e:	89 45 94             	mov    %eax,-0x6c(%ebp)
600931:	8b 55 88             	mov    -0x78(%ebp),%edx
600934:	8b 45 98             	mov    -0x68(%ebp),%eax
600937:	e8 d8 8a fa ff       	call   0x5a9414
60093c:	89 45 98             	mov    %eax,-0x68(%ebp)
60093f:	8b 55 c8             	mov    -0x38(%ebp),%edx
600942:	8b 45 90             	mov    -0x70(%ebp),%eax
600945:	e8 d2 8a fa ff       	call   0x5a941c
60094a:	89 45 90             	mov    %eax,-0x70(%ebp)
60094d:	33 d2                	xor    %edx,%edx
60094f:	8b 45 9c             	mov    -0x64(%ebp),%eax
600952:	e8 bd 8a fa ff       	call   0x5a9414
600957:	89 45 9c             	mov    %eax,-0x64(%ebp)
60095a:	8b 45 f8             	mov    -0x8(%ebp),%eax
60095d:	8b 10                	mov    (%eax),%edx
60095f:	ff 52 0c             	call   *0xc(%edx)
600962:	8b d0                	mov    %eax,%edx
600964:	4a                   	dec    %edx
600965:	8b 45 94             	mov    -0x6c(%ebp),%eax
600968:	e8 af 8a fa ff       	call   0x5a941c
60096d:	89 45 94             	mov    %eax,-0x6c(%ebp)
600970:	33 d2                	xor    %edx,%edx
600972:	8b 45 98             	mov    -0x68(%ebp),%eax
600975:	e8 9a 8a fa ff       	call   0x5a9414
60097a:	89 45 98             	mov    %eax,-0x68(%ebp)
60097d:	8b 45 f8             	mov    -0x8(%ebp),%eax
600980:	8b 10                	mov    (%eax),%edx
600982:	ff 52 08             	call   *0x8(%edx)
600985:	8b d0                	mov    %eax,%edx
600987:	4a                   	dec    %edx
600988:	8b 45 90             	mov    -0x70(%ebp),%eax
60098b:	e8 8c 8a fa ff       	call   0x5a941c
600990:	89 45 90             	mov    %eax,-0x70(%ebp)
600993:	8b 45 f8             	mov    -0x8(%ebp),%eax
600996:	8b 10                	mov    (%eax),%edx
600998:	ff 52 14             	call   *0x14(%edx)
60099b:	89 45 ac             	mov    %eax,-0x54(%ebp)
60099e:	8b 45 fc             	mov    -0x4(%ebp),%eax
6009a1:	e8 62 6f ff ff       	call   0x5f7908
6009a6:	84 c0                	test   %al,%al
6009a8:	74 0e                	je     0x6009b8
6009aa:	8b 45 fc             	mov    -0x4(%ebp),%eax
6009ad:	e8 26 6f ff ff       	call   0x5f78d8
6009b2:	80 78 43 00          	cmpb   $0x0,0x43(%eax)
6009b6:	74 04                	je     0x6009bc
6009b8:	33 c0                	xor    %eax,%eax
6009ba:	eb 02                	jmp    0x6009be
6009bc:	b0 01                	mov    $0x1,%al
6009be:	88 85 6f ff ff ff    	mov    %al,-0x91(%ebp)
6009c4:	81 7d c0 00 40 00 00 	cmpl   $0x4000,-0x40(%ebp)
6009cb:	75 22                	jne    0x6009ef
6009cd:	81 7d c4 00 40 00 00 	cmpl   $0x4000,-0x3c(%ebp)
6009d4:	75 19                	jne    0x6009ef
6009d6:	8b 45 fc             	mov    -0x4(%ebp),%eax
6009d9:	8b 10                	mov    (%eax),%edx
6009db:	ff 52 10             	call   *0x10(%edx)
6009de:	3c 01                	cmp    $0x1,%al
6009e0:	74 0d                	je     0x6009ef
6009e2:	80 bd 6f ff ff ff 00 	cmpb   $0x0,-0x91(%ebp)
6009e9:	0f 84 ad 00 00 00    	je     0x600a9c
6009ef:	8b 45 94             	mov    -0x6c(%ebp),%eax
6009f2:	2b 45 9c             	sub    -0x64(%ebp),%eax
6009f5:	40                   	inc    %eax
6009f6:	c1 e0 02             	shl    $0x2,%eax