594501:	8b 4c 24 08          	mov    0x8(%esp),%ecx
594505:	80 7c 11 01 00       	cmpb   $0x0,0x1(%ecx,%edx,1)
59450a:	75 0b                	jne    0x594517
59450c:	8b 4c 24 08          	mov    0x8(%esp),%ecx
594510:	80 7c 11 02 00       	cmpb   $0x0,0x2(%ecx,%edx,1)
594515:	74 d4                	je     0x5944eb
594517:	0f b7 d8             	movzwl %ax,%ebx
59451a:	8b 44 24 2c          	mov    0x2c(%esp),%eax
59451e:	f7 eb                	imul   %ebx
594520:	8d 04 40             	lea    (%eax,%eax,2),%eax
594523:	83 c0 0a             	add    $0xa,%eax
594526:	e8 89 4b e7 ff       	call   0x4090b4
59452b:	89 44 24 0c          	mov    %eax,0xc(%esp)
59452f:	4e                   	dec    %esi
594530:	66 85 f6             	test   %si,%si
594533:	0f 82 e2 00 00 00    	jb     0x59461b
594539:	46                   	inc    %esi
59453a:	66 89 74 24 3c       	mov    %si,0x3c(%esp)
59453f:	66 c7 44 24 30 00 00 	movw   $0x0,0x30(%esp)
594546:	66 8b 44 24 28       	mov    0x28(%esp),%ax
59454b:	48                   	dec    %eax
59454c:	66 85 c0             	test   %ax,%ax
59454f:	0f 82 87 00 00 00    	jb     0x5945dc
594555:	40                   	inc    %eax
594556:	66 89 44 24 3e       	mov    %ax,0x3e(%esp)
59455b:	33 c0                	xor    %eax,%eax
59455d:	66 8b 74 24 30       	mov    0x30(%esp),%si
594562:	66 03 f0             	add    %ax,%si
594565:	8b d3                	mov    %ebx,%edx
594567:	66 2b f2             	sub    %dx,%si
59456a:	66 83 c6 05          	add    $0x5,%si
59456e:	0f b7 c8             	movzwl %ax,%ecx
594571:	0f b7 7c 24 30       	movzwl 0x30(%esp),%edi
594576:	2b cf                	sub    %edi,%ecx
594578:	0f b7 d2             	movzwl %dx,%edx
59457b:	03 ca                	add    %edx,%ecx
59457d:	49                   	dec    %ecx
59457e:	d1 f9                	sar    $1,%ecx
594580:	79 03                	jns    0x594585
594582:	83 d1 00             	adc    $0x0,%ecx
594585:	8b d1                	mov    %ecx,%edx
594587:	0f b7 fe             	movzwl %si,%edi
59458a:	3b 7c 24 2c          	cmp    0x2c(%esp),%edi
59458e:	7d 44                	jge    0x5945d4
594590:	0f b7 ca             	movzwl %dx,%ecx
594593:	3b d9                	cmp    %ecx,%ebx
594595:	7e 3d                	jle    0x5945d4
594597:	0f af fb             	imul   %ebx,%edi
59459a:	0f b7 d2             	movzwl %dx,%edx
59459d:	03 fa                	add    %edx,%edi
59459f:	8d 14 7f             	lea    (%edi,%edi,2),%edx
5945a2:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5945a6:	8d 14 11             	lea    (%ecx,%edx,1),%edx
5945a9:	89 54 24 18          	mov    %edx,0x18(%esp)
5945ad:	0f b7 d0             	movzwl %ax,%edx
5945b0:	8d 14 52             	lea    (%edx,%edx,2),%edx
5945b3:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5945b7:	8d 14 11             	lea    (%ecx,%edx,1),%edx
5945ba:	89 54 24 1c          	mov    %edx,0x1c(%esp)
5945be:	8b 54 24 18          	mov    0x18(%esp),%edx
5945c2:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
5945c6:	8b f2                	mov    %edx,%esi
5945c8:	66 8b 11             	mov    (%ecx),%dx
5945cb:	66 89 16             	mov    %dx,(%esi)
5945ce:	8a 51 02             	mov    0x2(%ecx),%dl
5945d1:	88 56 02             	mov    %dl,0x2(%esi)
5945d4:	40                   	inc    %eax
5945d5:	66 ff 4c 24 3e       	decw   0x3e(%esp)
5945da:	75 81                	jne    0x59455d
5945dc:	8b 04 24             	mov    (%esp),%eax
5945df:	8b 10                	mov    (%eax),%edx
5945e1:	ff 52 08             	call   *0x8(%edx)
5945e4:	3b 44 24 34          	cmp    0x34(%esp),%eax
5945e8:	7e 1d                	jle    0x594607
5945ea:	8b 54 24 34          	mov    0x34(%esp),%edx
5945ee:	8b 04 24             	mov    (%esp),%eax
5945f1:	8b 08                	mov    (%eax),%ecx
5945f3:	ff 11                	call   *(%ecx)
5945f5:	8b d0                	mov    %eax,%edx
5945f7:	8b 44 24 28          	mov    0x28(%esp),%eax
5945fb:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
5945fe:	8b 44 24 08          	mov    0x8(%esp),%eax
594602:	e8 b9 38 e7 ff       	call   0x407ec0
594607:	ff 44 24 34          	incl   0x34(%esp)
59460b:	66 ff 44 24 30       	incw   0x30(%esp)
594610:	66 ff 4c 24 3c       	decw   0x3c(%esp)
594615:	0f 85 2b ff ff ff    	jne    0x594546
59461b:	8b 44 24 08          	mov    0x8(%esp),%eax
59461f:	e8 a8 e1 e6 ff       	call   0x4027cc
594624:	8b c3                	mov    %ebx,%eax
594626:	03 c0                	add    %eax,%eax
594628:	8d 04 40             	lea    (%eax,%eax,2),%eax
59462b:	e8 84 4a e7 ff       	call   0x4090b4
594630:	89 44 24 14          	mov    %eax,0x14(%esp)
594634:	6a 05                	push   $0x5
594636:	8b d3                	mov    %ebx,%edx
594638:	03 d2                	add    %edx,%edx
59463a:	8b 4c 24 30          	mov    0x30(%esp),%ecx
59463e:	8b 44 24 08          	mov    0x8(%esp),%eax
594642:	8b 30                	mov    (%eax),%esi
594644:	ff 56 24             	call   *0x24(%esi)
594647:	66 8b 44 24 2c       	mov    0x2c(%esp),%ax
59464c:	48                   	dec    %eax
59464d:	66 85 c0             	test   %ax,%ax
594650:	0f 86 74 01 00 00    	jbe    0x5947ca
594656:	66 89 44 24 3c       	mov    %ax,0x3c(%esp)
59465b:	66 be 01 00          	mov    $0x1,%si
59465f:	8b c3                	mov    %ebx,%eax
594661:	03 c0                	add    %eax,%eax
594663:	48                   	dec    %eax
594664:	66 85 c0             	test   %ax,%ax
594667:	0f 86 2f 01 00 00    	jbe    0x59479c
59466d:	66 89 44 24 3e       	mov    %ax,0x3e(%esp)
594672:	66 ba 01 00          	mov    $0x1,%dx
594676:	0f b7 ce             	movzwl %si,%ecx
594679:	0f af cb             	imul   %ebx,%ecx
59467c:	0f b7 c2             	movzwl %dx,%eax
59467f:	8b f8                	mov    %eax,%edi
594681:	d1 ef                	shr    $1,%edi
594683:	03 cf                	add    %edi,%ecx
594685:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
594688:	03 4c 24 0c          	add    0xc(%esp),%ecx
59468c:	89 4c 24 10          	mov    %ecx,0x10(%esp)
594690:	0f b7 ce             	movzwl %si,%ecx
594693:	03 c8                	add    %eax,%ecx
594695:	f6 c1 01             	test   $0x1,%cl
594698:	0f 84 d6 00 00 00    	je     0x594774
59469e:	0f b7 c6             	movzwl %si,%eax
5946a1:	48                   	dec    %eax
5946a2:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
5946a6:	83 e9 02             	sub    $0x2,%ecx
5946a9:	3b c1                	cmp    %ecx,%eax
5946ab:	0f 8d df 00 00 00    	jge    0x594790
5946b1:	0f b7 c2             	movzwl %dx,%eax
5946b4:	48                   	dec    %eax
5946b5:	8b cb                	mov    %ebx,%ecx
5946b7:	03 c9                	add    %ecx,%ecx
5946b9:	83 e9 02             	sub    $0x2,%ecx
5946bc:	3b c1                	cmp    %ecx,%eax
5946be:	0f 8d cc 00 00 00    	jge    0x594790
5946c4:	33 c0                	xor    %eax,%eax
5946c6:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5946ca:	89 4c 24 18          	mov    %ecx,0x18(%esp)
5946ce:	8b fb                	mov    %ebx,%edi
5946d0:	f7 df                	neg    %edi
5946d2:	8d 3c 7f             	lea    (%edi,%edi,2),%edi
5946d5:	01 7c 24 18          	add    %edi,0x18(%esp)
5946d9:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
5946dd:	8b fe                	mov    %esi,%edi
5946df:	66 83 e7 01          	and    $0x1,%di
5946e3:	0f b7 ff             	movzwl %di,%edi
5946e6:	33 ed                	xor    %ebp,%ebp
5946e8:	2b ef                	sub    %edi,%ebp
5946ea:	8d 7c 6d 00          	lea    0x0(%ebp,%ebp,2),%edi
5946ee:	01 7c 24 1c          	add    %edi,0x1c(%esp)
5946f2:	89 4c 24 20          	mov    %ecx,0x20(%esp)
5946f6:	8d 3c 5b             	lea    (%ebx,%ebx,2),%edi
5946f9:	01 7c 24 20          	add    %edi,0x20(%esp)
5946fd:	89 4c 24 24          	mov    %ecx,0x24(%esp)
594701:	8b ce                	mov    %esi,%ecx
594703:	66 83 e1 01          	and    $0x1,%cx
594707:	0f b7 c9             	movzwl %cx,%ecx
59470a:	bf 01 00 00 00       	mov    $0x1,%edi
59470f:	2b f9                	sub    %ecx,%edi
594711:	8d 0c 7f             	lea    (%edi,%edi,2),%ecx
594714:	01 4c 24 24          	add    %ecx,0x24(%esp)
594718:	0f b7 c8             	movzwl %ax,%ecx
59471b:	8b 7c 24 18          	mov    0x18(%esp),%edi
59471f:	0f b6 0c 0f          	movzbl (%edi,%ecx,1),%ecx
594723:	0f b7 f8             	movzwl %ax,%edi
594726:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
59472a:	0f b6 7c 3d 00       	movzbl 0x0(%ebp,%edi,1),%edi
59472f:	03 cf                	add    %edi,%ecx
594731:	0f b7 f8             	movzwl %ax,%edi
594734:	8b 6c 24 20          	mov    0x20(%esp),%ebp
594738:	0f b6 7c 3d 00       	movzbl 0x0(%ebp,%edi,1),%edi
59473d:	03 cf                	add    %edi,%ecx
59473f:	0f b7 f8             	movzwl %ax,%edi
594742:	8b 6c 24 24          	mov    0x24(%esp),%ebp
594746:	0f b6 7c 3d 00       	movzbl 0x0(%ebp,%edi,1),%edi
59474b:	03 cf                	add    %edi,%ecx
59474d:	c1 e9 02             	shr    $0x2,%ecx
594750:	0f b7 fa             	movzwl %dx,%edi
594753:	8d 3c 7f             	lea    (%edi,%edi,2),%edi
594756:	8b 6c 24 14          	mov    0x14(%esp),%ebp
59475a:	8d 7c 3d 00          	lea    0x0(%ebp,%edi,1),%edi
59475e:	57                   	push   %edi
59475f:	0f b7 f8             	movzwl %ax,%edi
594762:	5d                   	pop    %ebp
594763:	88 4c 3d 00          	mov    %cl,0x0(%ebp,%edi,1)
594767:	40                   	inc    %eax
594768:	66 83 f8 03          	cmp    $0x3,%ax
59476c:	0f 85 54 ff ff ff    	jne    0x5946c6
594772:	eb 1c                	jmp    0x594790
594774:	0f b7 c2             	movzwl %dx,%eax
594777:	8d 04 40             	lea    (%eax,%eax,2),%eax
59477a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
59477e:	8b 7c 24 10          	mov    0x10(%esp),%edi
594782:	03 c8                	add    %eax,%ecx
594784:	66 8b 07             	mov    (%edi),%ax
594787:	66 89 01             	mov    %ax,(%ecx)
59478a:	8a 47 02             	mov    0x2(%edi),%al
59478d:	88 41 02             	mov    %al,0x2(%ecx)
594790:	42                   	inc    %edx
594791:	66 ff 4c 24 3e       	decw   0x3e(%esp)
594796:	0f 85 da fe ff ff    	jne    0x594676
59479c:	8b 54 24 38          	mov    0x38(%esp),%edx
5947a0:	8b 44 24 04          	mov    0x4(%esp),%eax
5947a4:	8b 08                	mov    (%eax),%ecx
5947a6:	ff 11                	call   *(%ecx)
5947a8:	8b d3                	mov    %ebx,%edx
5947aa:	03 d2                	add    %edx,%edx
5947ac:	8d 14 52             	lea    (%edx,%edx,2),%edx
5947af:	8b ca                	mov    %edx,%ecx
5947b1:	8b 54 24 14          	mov    0x14(%esp),%edx
5947b5:	e8 06 37 e7 ff       	call   0x407ec0
5947ba:	ff 44 24 38          	incl   0x38(%esp)
5947be:	46                   	inc    %esi
5947bf:	66 ff 4c 24 3c       	decw   0x3c(%esp)
5947c4:	0f 85 95 fe ff ff    	jne    0x59465f
5947ca:	8b 44 24 0c          	mov    0xc(%esp),%eax
5947ce:	e8 f9 df e6 ff       	call   0x4027cc
5947d3:	8b 44 24 14          	mov    0x14(%esp),%eax
5947d7:	e8 f0 df e6 ff       	call   0x4027cc
5947dc:	8b 54 24 04          	mov    0x4(%esp),%edx
5947e0:	8b 04 24             	mov    (%esp),%eax
5947e3:	8b 08                	mov    (%eax),%ecx
5947e5:	ff 51 28             	call   *0x28(%ecx)
5947e8:	8b 44 24 04          	mov    0x4(%esp),%eax
5947ec:	e8 87 f2 e6 ff       	call   0x403a78
5947f1:	83 c4 40             	add    $0x40,%esp
5947f4:	5d                   	pop    %ebp
5947f5:	5f                   	pop    %edi
5947f6:	5e                   	pop    %esi
5947f7:	5b                   	pop    %ebx
5947f8:	c3                   	ret
5947f9:	8d 40 00             	lea    0x0(%eax),%eax
5947fc:	55                   	push   %ebp
5947fd:	8b ec                	mov    %esp,%ebp
5947ff:	50                   	push   %eax
594800:	b8 0f 00 00 00       	mov    $0xf,%eax
594805:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
59480b:	50                   	push   %eax
59480c:	48                   	dec    %eax
59480d:	75 f6                	jne    0x594805
59480f:	8b 45 fc             	mov    -0x4(%ebp),%eax
594812:	81 c4 d4 fa ff ff    	add    $0xfffffad4,%esp
594818:	53                   	push   %ebx
594819:	56                   	push   %esi
59481a:	57                   	push   %edi
59481b:	33 db                	xor    %ebx,%ebx
59481d:	89 9d dc 0a ff ff    	mov    %ebx,-0xf524(%ebp)
594823:	89 9d d8 0a ff ff    	mov    %ebx,-0xf528(%ebp)
594829:	89 9d d4 0a ff ff    	mov    %ebx,-0xf52c(%ebp)
59482f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
594832:	89 55 fc             	mov    %edx,-0x4(%ebp)
594835:	8b d8                	mov    %eax,%ebx
594837:	8b 75 0c             	mov    0xc(%ebp),%esi
59483a:	33 c0                	xor    %eax,%eax
59483c:	55                   	push   %ebp
59483d:	68 6e 53 59 00       	push   $0x59536e
594842:	64 ff 30             	push   %fs:(%eax)
594845:	64 89 20             	mov    %esp,%fs:(%eax)
594848:	8b 45 f8             	mov    -0x8(%ebp),%eax
59484b:	8b 00                	mov    (%eax),%eax
59484d:	80 b8 98 03 00 00 00 	cmpb   $0x0,0x398(%eax)
594854:	0f 84 88 00 00 00    	je     0x5948e2
59485a:	8b 45 f8             	mov    -0x8(%ebp),%eax
59485d:	8b 00                	mov    (%eax),%eax
59485f:	83 b8 74 01 00 00 00 	cmpl   $0x0,0x174(%eax)
594866:	74 12                	je     0x59487a
594868:	8b 45 f8             	mov    -0x8(%ebp),%eax
59486b:	8b 00                	mov    (%eax),%eax
59486d:	8b 80 74 01 00 00    	mov    0x174(%eax),%eax
594873:	b2 01                	mov    $0x1,%dl
594875:	e8 96 39 06 00       	call   0x5f8210
59487a:	8b 45 f8             	mov    -0x8(%ebp),%eax
59487d:	8b 00                	mov    (%eax),%eax
59487f:	33 d2                	xor    %edx,%edx
594881:	e8 d2 8e 03 00       	call   0x5cd758
594886:	56                   	push   %esi
594887:	6a 01                	push   $0x1
594889:	8b 4d f8             	mov    -0x8(%ebp),%ecx
59488c:	8b 55 fc             	mov    -0x4(%ebp),%edx
59488f:	8b c3                	mov    %ebx,%eax
594891:	e8 66 ff ff ff       	call   0x5947fc
594896:	8b 45 f8             	mov    -0x8(%ebp),%eax
594899:	8b 00                	mov    (%eax),%eax
59489b:	b2 01                	mov    $0x1,%dl
59489d:	e8 b6 8e 03 00       	call   0x5cd758
5948a2:	8b 45 f8             	mov    -0x8(%ebp),%eax
5948a5:	8b 00                	mov    (%eax),%eax
5948a7:	8b b8 74 01 00 00    	mov    0x174(%eax),%edi
5948ad:	85 ff                	test   %edi,%edi
5948af:	74 26                	je     0x5948d7
5948b1:	8b 45 f8             	mov    -0x8(%ebp),%eax
5948b4:	8b c7                	mov    %edi,%eax
5948b6:	e8 f9 39 06 00       	call   0x5f82b4
5948bb:	84 c0                	test   %al,%al
5948bd:	75 18                	jne    0x5948d7
5948bf:	8b 45 f8             	mov    -0x8(%ebp),%eax
5948c2:	8b 00                	mov    (%eax),%eax
5948c4:	8b 90 74 01 00 00    	mov    0x174(%eax),%edx
5948ca:	8b 45 fc             	mov    -0x4(%ebp),%eax
5948cd:	8b 08                	mov    (%eax),%ecx
5948cf:	ff 51 28             	call   *0x28(%ecx)
5948d2:	e9 79 0a 00 00       	jmp    0x595350
5948d7:	6a 00                	push   $0x0
5948d9:	6a 00                	push   $0x0
5948db:	8b c3                	mov    %ebx,%eax
5948dd:	e8 f6 9d e8 ff       	call   0x41e6d8
5948e2:	68 00 20 00 00       	push   $0x2000
5948e7:	8b cb                	mov    %ebx,%ecx
5948e9:	b2 01                	mov    $0x1,%dl
5948eb:	a1 84 02 5f 00       	mov    0x5f0284,%eax
5948f0:	e8 b7 02 07 00       	call   0x604bac
5948f5:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5948f8:	33 c9                	xor    %ecx,%ecx
5948fa:	55                   	push   %ebp
5948fb:	68 49 53 59 00       	push   $0x595349
594900:	64 ff 31             	push   %fs:(%ecx)
594903:	64 89 21             	mov    %esp,%fs:(%ecx)
594906:	6a 00                	push   $0x0
594908:	6a 00                	push   $0x0
59490a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
59490d:	e8 c6 9d e8 ff       	call   0x41e6d8
594912:	8b 45 c4             	mov    -0x3c(%ebp),%eax
594915:	e8 8e 20 06 00       	call   0x5f69a8
59491a:	89 45 c8             	mov    %eax,-0x38(%ebp)
59491d:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
594921:	0f 8c 8d 00 00 00    	jl     0x5949b4
594927:	8b 45 c8             	mov    -0x38(%ebp),%eax
59492a:	99                   	cltd
59492b:	52                   	push   %edx
59492c:	50                   	push   %eax
59492d:	8b 45 c4             	mov    -0x3c(%ebp),%eax
594930:	e8 a3 9d e8 ff       	call   0x41e6d8
594935:	8b 55 f8             	mov    -0x8(%ebp),%edx
594938:	8b 12                	mov    (%edx),%edx
59493a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
59493d:	e8 72 21 06 00       	call   0x5f6ab4
594942:	84 c0                	test   %al,%al
594944:	0f 84 81 00 00 00    	je     0x5949cb
59494a:	8b 45 f8             	mov    -0x8(%ebp),%eax
59494d:	8b 00                	mov    (%eax),%eax
59494f:	83 b8 98 01 00 00 03 	cmpl   $0x3,0x198(%eax)
594956:	75 10                	jne    0x594968
594958:	c7 45 d8 52 b8 1e 85 	movl   $0x851eb852,-0x28(%ebp)
59495f:	c7 45 dc eb 51 04 40 	movl   $0x400451eb,-0x24(%ebp)
594966:	eb 0c                	jmp    0x594974