600375:	88 45 eb             	mov    %al,-0x15(%ebp)
600378:	8b 06                	mov    (%esi),%eax
60037a:	8d 04 40             	lea    (%eax,%eax,2),%eax
60037d:	8b 55 dc             	mov    -0x24(%ebp),%edx
600380:	0f b7 44 42 02       	movzwl 0x2(%edx,%eax,2),%eax
600385:	8b 55 fc             	mov    -0x4(%ebp),%edx
600388:	03 42 6c             	add    0x6c(%edx),%eax
60038b:	2d 00 80 00 00       	sub    $0x8000,%eax
600390:	89 45 bc             	mov    %eax,-0x44(%ebp)
600393:	db 45 bc             	fildl  -0x44(%ebp)
600396:	dc 4d c8             	fmull  -0x38(%ebp)
600399:	d8 05 74 05 60 00    	fadds  0x600574
60039f:	e8 28 29 e0 ff       	call   0x402ccc
6003a4:	0f ac d0 08          	shrd   $0x8,%edx,%eax
6003a8:	c1 ea 08             	shr    $0x8,%edx
6003ab:	e8 84 90 fa ff       	call   0x5a9434
6003b0:	88 45 ea             	mov    %al,-0x16(%ebp)
6003b3:	8b 06                	mov    (%esi),%eax
6003b5:	8d 04 40             	lea    (%eax,%eax,2),%eax
6003b8:	8b 55 dc             	mov    -0x24(%ebp),%edx
6003bb:	0f b7 44 42 04       	movzwl 0x4(%edx,%eax,2),%eax
6003c0:	8b 55 fc             	mov    -0x4(%ebp),%edx
6003c3:	03 42 70             	add    0x70(%edx),%eax
6003c6:	2d 00 80 00 00       	sub    $0x8000,%eax
6003cb:	89 45 bc             	mov    %eax,-0x44(%ebp)
6003ce:	db 45 bc             	fildl  -0x44(%ebp)
6003d1:	dc 4d c8             	fmull  -0x38(%ebp)
6003d4:	d8 05 74 05 60 00    	fadds  0x600574
6003da:	e8 ed 28 e0 ff       	call   0x402ccc
6003df:	0f ac d0 08          	shrd   $0x8,%edx,%eax
6003e3:	c1 ea 08             	shr    $0x8,%edx
6003e6:	e8 49 90 fa ff       	call   0x5a9434
6003eb:	88 45 e9             	mov    %al,-0x17(%ebp)
6003ee:	66 8b 03             	mov    (%ebx),%ax
6003f1:	66 89 45 e6          	mov    %ax,-0x1a(%ebp)
6003f5:	8a 43 02             	mov    0x2(%ebx),%al
6003f8:	88 45 e8             	mov    %al,-0x18(%ebp)
6003fb:	8d 55 e6             	lea    -0x1a(%ebp),%edx
6003fe:	8d 45 e9             	lea    -0x17(%ebp),%eax
600401:	8a 4d 08             	mov    0x8(%ebp),%cl
600404:	e8 7f ea ff ff       	call   0x5fee88
600409:	33 c0                	xor    %eax,%eax
60040b:	8a 45 e8             	mov    -0x18(%ebp),%al
60040e:	33 d2                	xor    %edx,%edx
600410:	8a 53 02             	mov    0x2(%ebx),%dl
600413:	2b c2                	sub    %edx,%eax
600415:	f7 ef                	imul   %edi
600417:	c1 e8 12             	shr    $0x12,%eax
60041a:	00 43 02             	add    %al,0x2(%ebx)
60041d:	33 c0                	xor    %eax,%eax
60041f:	8a 45 e7             	mov    -0x19(%ebp),%al
600422:	33 d2                	xor    %edx,%edx
600424:	8a 53 01             	mov    0x1(%ebx),%dl
600427:	2b c2                	sub    %edx,%eax
600429:	f7 ef                	imul   %edi
60042b:	c1 e8 12             	shr    $0x12,%eax
60042e:	00 43 01             	add    %al,0x1(%ebx)
600431:	33 c0                	xor    %eax,%eax
600433:	8a 45 e6             	mov    -0x1a(%ebp),%al
600436:	33 d2                	xor    %edx,%edx
600438:	8a 13                	mov    (%ebx),%dl
60043a:	2b c2                	sub    %edx,%eax
60043c:	f7 ef                	imul   %edi
60043e:	c1 e8 12             	shr    $0x12,%eax
600441:	00 03                	add    %al,(%ebx)
600443:	83 c3 03             	add    $0x3,%ebx
600446:	83 c6 04             	add    $0x4,%esi
600449:	ff 4d c0             	decl   -0x40(%ebp)
60044c:	0f 85 d6 fe ff ff    	jne    0x600328
600452:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
600456:	ff 45 ec             	incl   -0x14(%ebp)
600459:	ff 4d c4             	decl   -0x3c(%ebp)
60045c:	0f 85 6f fe ff ff    	jne    0x6002d1
600462:	e9 f9 00 00 00       	jmp    0x600560
600467:	89 7d f4             	mov    %edi,-0xc(%ebp)
60046a:	2b f3                	sub    %ebx,%esi
60046c:	0f 8c ee 00 00 00    	jl     0x600560
600472:	46                   	inc    %esi
600473:	89 75 c4             	mov    %esi,-0x3c(%ebp)
600476:	89 5d ec             	mov    %ebx,-0x14(%ebp)
600479:	8b 45 f8             	mov    -0x8(%ebp),%eax
60047c:	8b 55 ec             	mov    -0x14(%ebp),%edx
60047f:	8b 1c 90             	mov    (%eax,%edx,4),%ebx
600482:	8b 45 24             	mov    0x24(%ebp),%eax
600485:	8d 04 40             	lea    (%eax,%eax,2),%eax
600488:	03 d8                	add    %eax,%ebx
60048a:	8b 45 f4             	mov    -0xc(%ebp),%eax
60048d:	8b 10                	mov    (%eax),%edx
60048f:	8b 45 fc             	mov    -0x4(%ebp),%eax
600492:	8b 08                	mov    (%eax),%ecx
600494:	ff 11                	call   *(%ecx)
600496:	89 45 dc             	mov    %eax,-0x24(%ebp)
600499:	80 7d 44 00          	cmpb   $0x0,0x44(%ebp)
60049d:	74 16                	je     0x6004b5
60049f:	8b 45 fc             	mov    -0x4(%ebp),%eax
6004a2:	e8 31 74 ff ff       	call   0x5f78d8
6004a7:	8b 55 f4             	mov    -0xc(%ebp),%edx
6004aa:	8b 12                	mov    (%edx),%edx
6004ac:	8b 08                	mov    (%eax),%ecx
6004ae:	ff 11                	call   *(%ecx)
6004b0:	89 45 d8             	mov    %eax,-0x28(%ebp)
6004b3:	eb 06                	jmp    0x6004bb
6004b5:	8b 45 40             	mov    0x40(%ebp),%eax
6004b8:	89 45 d8             	mov    %eax,-0x28(%ebp)
6004bb:	8b 75 f0             	mov    -0x10(%ebp),%esi
6004be:	8b 45 24             	mov    0x24(%ebp),%eax
6004c1:	8b 55 1c             	mov    0x1c(%ebp),%edx
6004c4:	2b d0                	sub    %eax,%edx
6004c6:	0f 8c 84 00 00 00    	jl     0x600550
6004cc:	42                   	inc    %edx
6004cd:	89 55 c0             	mov    %edx,-0x40(%ebp)
6004d0:	8b 45 d8             	mov    -0x28(%ebp),%eax
6004d3:	8b 16                	mov    (%esi),%edx
6004d5:	0f b6 14 10          	movzbl (%eax,%edx,1),%edx
6004d9:	8b 45 48             	mov    0x48(%ebp),%eax
6004dc:	e8 3b 8f fa ff       	call   0x5a941c
6004e1:	8b f8                	mov    %eax,%edi
6004e3:	c1 e7 0a             	shl    $0xa,%edi
6004e6:	8b c3                	mov    %ebx,%eax
6004e8:	8b 16                	mov    (%esi),%edx
6004ea:	8d 14 52             	lea    (%edx,%edx,2),%edx
6004ed:	8b 4d dc             	mov    -0x24(%ebp),%ecx
6004f0:	0f b7 14 51          	movzwl (%ecx,%edx,2),%edx
6004f4:	c1 ea 08             	shr    $0x8,%edx
6004f7:	33 c9                	xor    %ecx,%ecx
6004f9:	8a 48 02             	mov    0x2(%eax),%cl
6004fc:	2b d1                	sub    %ecx,%edx
6004fe:	0f af d7             	imul   %edi,%edx
600501:	c1 ea 12             	shr    $0x12,%edx
600504:	00 50 02             	add    %dl,0x2(%eax)
600507:	8b 16                	mov    (%esi),%edx
600509:	8d 14 52             	lea    (%edx,%edx,2),%edx
60050c:	8b 4d dc             	mov    -0x24(%ebp),%ecx
60050f:	0f b7 54 51 02       	movzwl 0x2(%ecx,%edx,2),%edx
600514:	c1 ea 08             	shr    $0x8,%edx
600517:	33 c9                	xor    %ecx,%ecx
600519:	8a 48 01             	mov    0x1(%eax),%cl
60051c:	2b d1                	sub    %ecx,%edx
60051e:	0f af d7             	imul   %edi,%edx
600521:	c1 ea 12             	shr    $0x12,%edx
600524:	00 50 01             	add    %dl,0x1(%eax)
600527:	8b 16                	mov    (%esi),%edx
600529:	8d 14 52             	lea    (%edx,%edx,2),%edx
60052c:	8b 4d dc             	mov    -0x24(%ebp),%ecx
60052f:	0f b7 54 51 04       	movzwl 0x4(%ecx,%edx,2),%edx
600534:	c1 ea 08             	shr    $0x8,%edx
600537:	33 c9                	xor    %ecx,%ecx
600539:	8a 08                	mov    (%eax),%cl
60053b:	2b d1                	sub    %ecx,%edx
60053d:	0f af d7             	imul   %edi,%edx
600540:	c1 ea 12             	shr    $0x12,%edx
600543:	00 10                	add    %dl,(%eax)
600545:	83 c3 03             	add    $0x3,%ebx
600548:	83 c6 04             	add    $0x4,%esi
60054b:	ff 4d c0             	decl   -0x40(%ebp)
60054e:	75 80                	jne    0x6004d0
600550:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
600554:	ff 45 ec             	incl   -0x14(%ebp)
600557:	ff 4d c4             	decl   -0x3c(%ebp)
60055a:	0f 85 19 ff ff ff    	jne    0x600479
600560:	5f                   	pop    %edi
600561:	5e                   	pop    %esi
600562:	5b                   	pop    %ebx
600563:	8b e5                	mov    %ebp,%esp
600565:	5d                   	pop    %ebp
600566:	c2 44 00             	ret    $0x44
600569:	00 00                	add    %al,(%eax)
60056b:	00 00                	add    %al,(%eax)
60056d:	00 20                	add    %ah,(%eax)
60056f:	41                   	inc    %ecx
600570:	00 00                	add    %al,(%eax)
600572:	80 3f 00             	cmpb   $0x0,(%edi)
600575:	00 00                	add    %al,(%eax)
600577:	47                   	inc    %edi
600578:	55                   	push   %ebp
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