5983c3:	8b 08                	mov    (%eax),%ecx
5983c5:	ff 51 28             	call   *0x28(%ecx)
5983c8:	b2 01                	mov    $0x1,%dl
5983ca:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5983cd:	e8 e6 fd 05 00       	call   0x5f81b8
5983d2:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
5983d6:	0f 84 db 00 00 00    	je     0x5984b7
5983dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
5983df:	8b 00                	mov    (%eax),%eax
5983e1:	80 b8 01 01 00 00 02 	cmpb   $0x2,0x101(%eax)
5983e8:	75 1d                	jne    0x598407
5983ea:	6a 06                	push   $0x6
5983ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
5983ef:	8b 00                	mov    (%eax),%eax
5983f1:	8b 88 a8 03 00 00    	mov    0x3a8(%eax),%ecx
5983f7:	8b 55 08             	mov    0x8(%ebp),%edx
5983fa:	8b 52 28             	mov    0x28(%edx),%edx
5983fd:	8b 45 f8             	mov    -0x8(%ebp),%eax
598400:	e8 f7 da 05 00       	call   0x5f5efc
598405:	eb 0c                	jmp    0x598413
598407:	55                   	push   %ebp
598408:	b8 02 00 00 00       	mov    $0x2,%eax
59840d:	e8 12 f7 ff ff       	call   0x597b24
598412:	59                   	pop    %ecx
598413:	8b 45 f8             	mov    -0x8(%ebp),%eax
598416:	e8 9d 62 e8 ff       	call   0x41e6b8
59841b:	89 45 d0             	mov    %eax,-0x30(%ebp)
59841e:	89 55 d4             	mov    %edx,-0x2c(%ebp)
598421:	8b 45 f4             	mov    -0xc(%ebp),%eax
598424:	8b 10                	mov    (%eax),%edx
598426:	ff 52 08             	call   *0x8(%edx)
598429:	48                   	dec    %eax
59842a:	89 45 b0             	mov    %eax,-0x50(%ebp)
59842d:	8b 45 b0             	mov    -0x50(%ebp),%eax
598430:	83 f8 00             	cmp    $0x0,%eax
598433:	7c 6e                	jl     0x5984a3
598435:	89 45 e8             	mov    %eax,-0x18(%ebp)
598438:	8b 45 08             	mov    0x8(%ebp),%eax
59843b:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
598440:	74 2d                	je     0x59846f
598442:	8b 45 b0             	mov    -0x50(%ebp),%eax
598445:	2b 45 e8             	sub    -0x18(%ebp),%eax
598448:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
59844e:	db 85 1c ff ff ff    	fildl  -0xe4(%ebp)
598454:	8b 45 08             	mov    0x8(%ebp),%eax
598457:	dc 48 18             	fmull  0x18(%eax)
59845a:	e8 6d a8 e6 ff       	call   0x402ccc
59845f:	8b c8                	mov    %eax,%ecx
598461:	8b 5d 08             	mov    0x8(%ebp),%ebx
598464:	8b 55 08             	mov    0x8(%ebp),%edx
598467:	8b 52 08             	mov    0x8(%edx),%edx
59846a:	8b 43 04             	mov    0x4(%ebx),%eax
59846d:	ff 13                	call   *(%ebx)
59846f:	8b 45 08             	mov    0x8(%ebp),%eax
598472:	8b 40 28             	mov    0x28(%eax),%eax
598475:	80 38 00             	cmpb   $0x0,(%eax)
598478:	75 29                	jne    0x5984a3
59847a:	8b 55 e8             	mov    -0x18(%ebp),%edx
59847d:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598480:	8b 08                	mov    (%eax),%ecx
598482:	ff 11                	call   *(%ecx)
598484:	8b f0                	mov    %eax,%esi
598486:	8b 45 b8             	mov    -0x48(%ebp),%eax
598489:	50                   	push   %eax
59848a:	8b ce                	mov    %esi,%ecx
59848c:	8b 55 08             	mov    0x8(%ebp),%edx
59848f:	8b 52 28             	mov    0x28(%edx),%edx
598492:	8b 45 f8             	mov    -0x8(%ebp),%eax
598495:	e8 62 da 05 00       	call   0x5f5efc
59849a:	ff 4d e8             	decl   -0x18(%ebp)
59849d:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
5984a1:	75 95                	jne    0x598438
5984a3:	8b 45 f4             	mov    -0xc(%ebp),%eax
5984a6:	8b 10                	mov    (%eax),%edx
5984a8:	ff 52 10             	call   *0x10(%edx)
5984ab:	3c 01                	cmp    $0x1,%al
5984ad:	74 08                	je     0x5984b7
5984af:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5984b2:	e8 c1 b5 e6 ff       	call   0x403a78
5984b7:	83 7d f0 18          	cmpl   $0x18,-0x10(%ebp)
5984bb:	0f 85 d8 00 00 00    	jne    0x598599
5984c1:	8b 45 f4             	mov    -0xc(%ebp),%eax
5984c4:	8b 10                	mov    (%eax),%edx
5984c6:	ff 52 10             	call   *0x10(%edx)
5984c9:	3c 01                	cmp    $0x1,%al
5984cb:	75 26                	jne    0x5984f3
5984cd:	b2 01                	mov    $0x1,%dl
5984cf:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
5984d4:	e8 cb f0 05 00       	call   0x5f75a4
5984d9:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5984dc:	8b 55 f4             	mov    -0xc(%ebp),%edx
5984df:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5984e2:	8b 08                	mov    (%eax),%ecx
5984e4:	ff 51 28             	call   *0x28(%ecx)
5984e7:	b2 05                	mov    $0x5,%dl
5984e9:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5984ec:	e8 c7 fc 05 00       	call   0x5f81b8
5984f1:	eb 06                	jmp    0x5984f9
5984f3:	8b 45 f4             	mov    -0xc(%ebp),%eax
5984f6:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5984f9:	8b 45 f8             	mov    -0x8(%ebp),%eax
5984fc:	e8 b7 61 e8 ff       	call   0x41e6b8
598501:	89 45 d0             	mov    %eax,-0x30(%ebp)
598504:	89 55 d4             	mov    %edx,-0x2c(%ebp)
598507:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59850a:	8b 10                	mov    (%eax),%edx
59850c:	ff 52 08             	call   *0x8(%edx)
59850f:	48                   	dec    %eax
598510:	89 45 b0             	mov    %eax,-0x50(%ebp)
598513:	8b 45 b0             	mov    -0x50(%ebp),%eax
598516:	83 f8 00             	cmp    $0x0,%eax
598519:	7c 6e                	jl     0x598589
59851b:	89 45 e8             	mov    %eax,-0x18(%ebp)
59851e:	8b 45 08             	mov    0x8(%ebp),%eax
598521:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
598526:	74 2d                	je     0x598555
598528:	8b 45 b0             	mov    -0x50(%ebp),%eax
59852b:	2b 45 e8             	sub    -0x18(%ebp),%eax
59852e:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
598534:	db 85 1c ff ff ff    	fildl  -0xe4(%ebp)
59853a:	8b 45 08             	mov    0x8(%ebp),%eax
59853d:	dc 48 18             	fmull  0x18(%eax)
598540:	e8 87 a7 e6 ff       	call   0x402ccc
598545:	8b c8                	mov    %eax,%ecx
598547:	8b 5d 08             	mov    0x8(%ebp),%ebx
59854a:	8b 55 08             	mov    0x8(%ebp),%edx
59854d:	8b 52 08             	mov    0x8(%edx),%edx
598550:	8b 43 04             	mov    0x4(%ebx),%eax
598553:	ff 13                	call   *(%ebx)
598555:	8b 45 08             	mov    0x8(%ebp),%eax
598558:	8b 40 28             	mov    0x28(%eax),%eax
59855b:	80 38 00             	cmpb   $0x0,(%eax)
59855e:	75 29                	jne    0x598589
598560:	8b 55 e8             	mov    -0x18(%ebp),%edx
598563:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598566:	8b 08                	mov    (%eax),%ecx
598568:	ff 11                	call   *(%ecx)
59856a:	8b f0                	mov    %eax,%esi
59856c:	8b 45 b8             	mov    -0x48(%ebp),%eax
59856f:	50                   	push   %eax
598570:	8b ce                	mov    %esi,%ecx
598572:	8b 55 08             	mov    0x8(%ebp),%edx
598575:	8b 52 28             	mov    0x28(%edx),%edx
598578:	8b 45 f8             	mov    -0x8(%ebp),%eax
59857b:	e8 7c d9 05 00       	call   0x5f5efc
598580:	ff 4d e8             	decl   -0x18(%ebp)
598583:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
598587:	75 95                	jne    0x59851e
598589:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59858c:	3b 45 f4             	cmp    -0xc(%ebp),%eax
59858f:	74 08                	je     0x598599
598591:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598594:	e8 df b4 e6 ff       	call   0x403a78
598599:	83 7d f0 20          	cmpl   $0x20,-0x10(%ebp)
59859d:	0f 85 f7 00 00 00    	jne    0x59869a
5985a3:	8b 45 f4             	mov    -0xc(%ebp),%eax
5985a6:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5985a9:	8b 45 b8             	mov    -0x48(%ebp),%eax
5985ac:	e8 fb a1 e6 ff       	call   0x4027ac
5985b1:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5985b4:	8b 45 f8             	mov    -0x8(%ebp),%eax
5985b7:	e8 fc 60 e8 ff       	call   0x41e6b8
5985bc:	89 45 d0             	mov    %eax,-0x30(%ebp)
5985bf:	89 55 d4             	mov    %edx,-0x2c(%ebp)
5985c2:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5985c5:	8b 10                	mov    (%eax),%edx
5985c7:	ff 52 08             	call   *0x8(%edx)
5985ca:	48                   	dec    %eax
5985cb:	89 45 b0             	mov    %eax,-0x50(%ebp)
5985ce:	8b 45 b0             	mov    -0x50(%ebp),%eax
5985d1:	83 f8 00             	cmp    $0x0,%eax
5985d4:	0f 8c b8 00 00 00    	jl     0x598692
5985da:	89 45 e8             	mov    %eax,-0x18(%ebp)
5985dd:	8b 45 08             	mov    0x8(%ebp),%eax
5985e0:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
5985e5:	74 2d                	je     0x598614
5985e7:	8b 45 b0             	mov    -0x50(%ebp),%eax
5985ea:	2b 45 e8             	sub    -0x18(%ebp),%eax
5985ed:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
5985f3:	db 85 1c ff ff ff    	fildl  -0xe4(%ebp)
5985f9:	8b 45 08             	mov    0x8(%ebp),%eax
5985fc:	dc 48 18             	fmull  0x18(%eax)
5985ff:	e8 c8 a6 e6 ff       	call   0x402ccc
598604:	8b c8                	mov    %eax,%ecx
598606:	8b 5d 08             	mov    0x8(%ebp),%ebx
598609:	8b 55 08             	mov    0x8(%ebp),%edx
59860c:	8b 52 08             	mov    0x8(%edx),%edx
59860f:	8b 43 04             	mov    0x4(%ebx),%eax
598612:	ff 13                	call   *(%ebx)
598614:	8b 45 08             	mov    0x8(%ebp),%eax
598617:	8b 40 28             	mov    0x28(%eax),%eax
59861a:	80 38 00             	cmpb   $0x0,(%eax)
59861d:	75 73                	jne    0x598692
59861f:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
598622:	8b 55 e8             	mov    -0x18(%ebp),%edx
598625:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598628:	8b 08                	mov    (%eax),%ecx
59862a:	ff 11                	call   *(%ecx)
59862c:	8b f0                	mov    %eax,%esi
59862e:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598631:	8b 10                	mov    (%eax),%edx
598633:	ff 52 0c             	call   *0xc(%edx)
598636:	8b f8                	mov    %eax,%edi
598638:	4f                   	dec    %edi
598639:	85 ff                	test   %edi,%edi
59863b:	7c 33                	jl     0x598670
59863d:	47                   	inc    %edi
59863e:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
598645:	8a 06                	mov    (%esi),%al
598647:	88 03                	mov    %al,(%ebx)
598649:	43                   	inc    %ebx
59864a:	8a 46 01             	mov    0x1(%esi),%al
59864d:	88 03                	mov    %al,(%ebx)
59864f:	43                   	inc    %ebx
598650:	8a 46 02             	mov    0x2(%esi),%al
598653:	88 03                	mov    %al,(%ebx)
598655:	43                   	inc    %ebx
598656:	8b 4d e8             	mov    -0x18(%ebp),%ecx
598659:	8b 55 e4             	mov    -0x1c(%ebp),%edx
59865c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59865f:	e8 e8 38 06 00       	call   0x5fbf4c
598664:	88 03                	mov    %al,(%ebx)
598666:	43                   	inc    %ebx
598667:	83 c6 03             	add    $0x3,%esi
59866a:	ff 45 e4             	incl   -0x1c(%ebp)
59866d:	4f                   	dec    %edi
59866e:	75 d5                	jne    0x598645
598670:	8b 45 b8             	mov    -0x48(%ebp),%eax
598673:	50                   	push   %eax
598674:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
598677:	8b 55 08             	mov    0x8(%ebp),%edx
59867a:	8b 52 28             	mov    0x28(%edx),%edx
59867d:	8b 45 f8             	mov    -0x8(%ebp),%eax
598680:	e8 77 d8 05 00       	call   0x5f5efc
598685:	ff 4d e8             	decl   -0x18(%ebp)
598688:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
59868c:	0f 85 4b ff ff ff    	jne    0x5985dd
598692:	8b 45 c4             	mov    -0x3c(%ebp),%eax
598695:	e8 32 a1 e6 ff       	call   0x4027cc
59869a:	8b 45 08             	mov    0x8(%ebp),%eax
59869d:	8b 40 28             	mov    0x28(%eax),%eax
5986a0:	80 38 00             	cmpb   $0x0,(%eax)
5986a3:	0f 85 b8 00 00 00    	jne    0x598761
5986a9:	8b 45 f8             	mov    -0x8(%ebp),%eax
5986ac:	e8 07 60 e8 ff       	call   0x41e6b8
5986b1:	89 45 c8             	mov    %eax,-0x38(%ebp)
5986b4:	89 55 cc             	mov    %edx,-0x34(%ebp)
5986b7:	8b 5d c8             	mov    -0x38(%ebp),%ebx
5986ba:	8b d3                	mov    %ebx,%edx
5986bc:	8b 45 d8             	mov    -0x28(%ebp),%eax
5986bf:	2b d0                	sub    %eax,%edx
5986c1:	89 55 a0             	mov    %edx,-0x60(%ebp)
5986c4:	8b 75 d0             	mov    -0x30(%ebp),%esi
5986c7:	8b d6                	mov    %esi,%edx
5986c9:	2b d0                	sub    %eax,%edx
5986cb:	89 55 a8             	mov    %edx,-0x58(%ebp)
5986ce:	ff 75 dc             	push   -0x24(%ebp)
5986d1:	ff 75 d8             	push   -0x28(%ebp)
5986d4:	8b 45 f8             	mov    -0x8(%ebp),%eax
5986d7:	e8 fc 5f e8 ff       	call   0x41e6d8
5986dc:	6a 0e                	push   $0xe
5986de:	8d 4d 9e             	lea    -0x62(%ebp),%ecx
5986e1:	8b 55 08             	mov    0x8(%ebp),%edx
5986e4:	8b 52 28             	mov    0x28(%edx),%edx
5986e7:	8b 45 f8             	mov    -0x8(%ebp),%eax
5986ea:	e8 0d d8 05 00       	call   0x5f5efc
5986ef:	8b 45 fc             	mov    -0x4(%ebp),%eax
5986f2:	8b 00                	mov    (%eax),%eax
5986f4:	80 b8 01 01 00 00 02 	cmpb   $0x2,0x101(%eax)
5986fb:	75 28                	jne    0x598725
5986fd:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
598701:	66 89 85 5c ff ff ff 	mov    %ax,-0xa4(%ebp)
598708:	8b 85 52 ff ff ff    	mov    -0xae(%ebp),%eax
59870e:	50                   	push   %eax
59870f:	8d 8d 52 ff ff ff    	lea    -0xae(%ebp),%ecx
598715:	8b 55 08             	mov    0x8(%ebp),%edx
598718:	8b 52 28             	mov    0x28(%edx),%edx
59871b:	8b 45 f8             	mov    -0x8(%ebp),%eax
59871e:	e8 d9 d7 05 00       	call   0x5f5efc
598723:	eb 2e                	jmp    0x598753
598725:	2b de                	sub    %esi,%ebx
598727:	89 9d 72 ff ff ff    	mov    %ebx,-0x8e(%ebp)
59872d:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
598731:	66 89 85 6c ff ff ff 	mov    %ax,-0x94(%ebp)
598738:	8b 85 5e ff ff ff    	mov    -0xa2(%ebp),%eax
59873e:	50                   	push   %eax
59873f:	8d 8d 5e ff ff ff    	lea    -0xa2(%ebp),%ecx
598745:	8b 55 08             	mov    0x8(%ebp),%edx
598748:	8b 52 28             	mov    0x28(%edx),%edx
59874b:	8b 45 f8             	mov    -0x8(%ebp),%eax
59874e:	e8 a9 d7 05 00       	call   0x5f5efc
598753:	ff 75 cc             	push   -0x34(%ebp)
598756:	ff 75 c8             	push   -0x38(%ebp)
598759:	8b 45 f8             	mov    -0x8(%ebp),%eax
59875c:	e8 77 5f e8 ff       	call   0x41e6d8
598761:	5f                   	pop    %edi
598762:	5e                   	pop    %esi
598763:	5b                   	pop    %ebx
598764:	8b e5                	mov    %ebp,%esp
598766:	5d                   	pop    %ebp
598767:	c2 04 00             	ret    $0x4
59876a:	00 00                	add    %al,(%eax)
59876c:	5c                   	pop    %esp
59876d:	8f c2                	pop    %edx
59876f:	f5                   	cmc
598770:	28 5c 8f a2          	sub    %bl,-0x5e(%edi,%ecx,4)
598774:	00 40 00             	add    %al,0x0(%eax)
598777:	00 00                	add    %al,(%eax)
598779:	00 c8                	add    %cl,%al
59877b:	42                   	inc    %edx
59877c:	53                   	push   %ebx
59877d:	56                   	push   %esi
59877e:	57                   	push   %edi
59877f:	55                   	push   %ebp
598780:	83 c4 e0             	add    $0xffffffe0,%esp
598783:	8b f8                	mov    %eax,%edi
598785:	8b c7                	mov    %edi,%eax
598787:	e8 2c 5f e8 ff       	call   0x41e6b8
59878c:	89 44 24 08          	mov    %eax,0x8(%esp)
598790:	89 54 24 0c          	mov    %edx,0xc(%esp)
598794:	33 db                	xor    %ebx,%ebx
598796:	8b c7                	mov    %edi,%eax
598798:	e8 4f 5f e8 ff       	call   0x41e6ec
59879d:	83 fa 00             	cmp    $0x0,%edx
5987a0:	75 0b                	jne    0x5987ad
5987a2:	83 f8 16             	cmp    $0x16,%eax
5987a5:	0f 86 ae 00 00 00    	jbe    0x598859
5987ab:	eb 06                	jmp    0x5987b3
5987ad:	0f 8e a6 00 00 00    	jle    0x598859
5987b3:	8b d4                	mov    %esp,%edx
5987b5:	b9 06 00 00 00       	mov    $0x6,%ecx
5987ba:	8b c7                	mov    %edi,%eax
5987bc:	8b 30                	mov    (%eax),%esi
5987be:	ff 56 08             	call   *0x8(%esi)
5987c1:	66 83 3c 24 00       	cmpw   $0x0,(%esp)
5987c6:	75 10                	jne    0x5987d8
5987c8:	66 83 7c 24 02 01    	cmpw   $0x1,0x2(%esp)
5987ce:	75 08                	jne    0x5987d8
5987d0:	66 83 7c 24 04 00    	cmpw   $0x0,0x4(%esp)
5987d6:	75 11                	jne    0x5987e9
5987d8:	ff 74 24 0c          	push   0xc(%esp)
5987dc:	ff 74 24 0c          	push   0xc(%esp)
5987e0:	8b c7                	mov    %edi,%eax
5987e2:	e8 f1 5e e8 ff       	call   0x41e6d8
5987e7:	eb 70                	jmp    0x598859
5987e9:	0f b7 74 24 04       	movzwl 0x4(%esp),%esi
5987ee:	4e                   	dec    %esi
5987ef:	85 f6                	test   %esi,%esi
5987f1:	7c 55                	jl     0x598848
5987f3:	46                   	inc    %esi