5915c4:	e8 a7 f1 f5 ff       	call   0x4f0770
5915c9:	50                   	push   %eax
5915ca:	e8 f1 f2 f5 ff       	call   0x4f08c0
5915cf:	83 c4 08             	add    $0x8,%esp
5915d2:	89 44 24 34          	mov    %eax,0x34(%esp)
5915d6:	85 c0                	test   %eax,%eax
5915d8:	79 33                	jns    0x59160d
5915da:	68 c8 02 00 00       	push   $0x2c8
5915df:	68 6c 6f 66 00       	push   $0x666f6c
5915e4:	6a 44                	push   $0x44
5915e6:	6a 68                	push   $0x68
5915e8:	6a 50                	push   $0x50
5915ea:	56                   	push   %esi
5915eb:	e8 20 db ff ff       	call   0x58f110
5915f0:	83 c4 18             	add    $0x18,%esp
5915f3:	83 c8 ff             	or     $0xffffffff,%eax
5915f6:	e9 3e 09 00 00       	jmp    0x591f39
5915fb:	33 c0                	xor    %eax,%eax
5915fd:	89 44 24 34          	mov    %eax,0x34(%esp)
591601:	39 86 ec 03 00 00    	cmp    %eax,0x3ec(%esi)
591607:	0f 84 f0 00 00 00    	je     0x5916fd
59160d:	85 db                	test   %ebx,%ebx
59160f:	0f 85 ec 00 00 00    	jne    0x591701
591615:	8b 46 7c             	mov    0x7c(%esi),%eax
591618:	39 98 d0 00 00 00    	cmp    %ebx,0xd0(%eax)
59161e:	75 70                	jne    0x591690
591620:	39 98 cc 00 00 00    	cmp    %ebx,0xcc(%eax)
591626:	74 5b                	je     0x591683
591628:	83 bc 24 58 09 00 00 	cmpl   $0x17,0x958(%esp)
59162f:	17
591630:	75 51                	jne    0x591683
591632:	8d 44 24 28          	lea    0x28(%esp),%eax
591636:	89 5c 24 10          	mov    %ebx,0x10(%esp)
59163a:	50                   	push   %eax
59163b:	6a 01                	push   $0x1
59163d:	6a 01                	push   $0x1
59163f:	8d 44 24 1c          	lea    0x1c(%esp),%eax
591643:	50                   	push   %eax
591644:	ff 74 24 48          	push   0x48(%esp)
591648:	6a 17                	push   $0x17
59164a:	56                   	push   %esi
59164b:	e8 d0 fd ff ff       	call   0x591420
591650:	83 c4 1c             	add    $0x1c,%esp
591653:	85 c0                	test   %eax,%eax
591655:	0f 8e 5a 09 00 00    	jle    0x591fb5
59165b:	83 7c 24 28 55       	cmpl   $0x55,0x28(%esp)
591660:	76 21                	jbe    0x591683
591662:	68 ea 02 00 00       	push   $0x2ea
591667:	68 6c 6f 66 00       	push   $0x666f6c
59166c:	6a 44                	push   $0x44
59166e:	6a 68                	push   $0x68
591670:	6a 50                	push   $0x50
591672:	56                   	push   %esi
591673:	e8 98 da ff ff       	call   0x58f110
591678:	83 c4 18             	add    $0x18,%esp
59167b:	83 c8 ff             	or     $0xffffffff,%eax
59167e:	e9 b6 08 00 00       	jmp    0x591f39
591683:	8b 46 7c             	mov    0x7c(%esi),%eax
591686:	c7 80 d0 00 00 00 01 	movl   $0x1,0xd0(%eax)
59168d:	00 00 00
591690:	83 7c 24 28 00       	cmpl   $0x0,0x28(%esp)
591695:	0f 84 d2 00 00 00    	je     0x59176d
59169b:	6a 00                	push   $0x0
59169d:	ff b6 80 06 00 00    	push   0x680(%esi)
5916a3:	8d 44 24 54          	lea    0x54(%esp),%eax
5916a7:	ff b6 78 06 00 00    	push   0x678(%esi)
5916ad:	50                   	push   %eax
5916ae:	e8 ed 27 01 00       	call   0x5a3ea0
5916b3:	83 c4 10             	add    $0x10,%esp
5916b6:	85 c0                	test   %eax,%eax
5916b8:	74 22                	je     0x5916dc
5916ba:	8b 86 84 06 00 00    	mov    0x684(%esi),%eax
5916c0:	03 44 24 28          	add    0x28(%esp),%eax
5916c4:	6a 00                	push   $0x0
5916c6:	50                   	push   %eax
5916c7:	8d 44 24 54          	lea    0x54(%esp),%eax
5916cb:	50                   	push   %eax
5916cc:	e8 9f 25 01 00       	call   0x5a3c70
5916d1:	83 c4 0c             	add    $0xc,%esp
5916d4:	85 c0                	test   %eax,%eax
5916d6:	0f 85 06 01 00 00    	jne    0x5917e2
5916dc:	68 0e 03 00 00       	push   $0x30e
5916e1:	68 6c 6f 66 00       	push   $0x666f6c
5916e6:	6a 44                	push   $0x44
5916e8:	6a 68                	push   $0x68
5916ea:	6a 50                	push   $0x50
5916ec:	56                   	push   %esi
5916ed:	e8 1e da ff ff       	call   0x58f110
5916f2:	83 c4 18             	add    $0x18,%esp
5916f5:	83 c8 ff             	or     $0xffffffff,%eax
5916f8:	e9 3c 08 00 00       	jmp    0x591f39
5916fd:	85 db                	test   %ebx,%ebx
5916ff:	74 8f                	je     0x591690
591701:	8b 8e 78 06 00 00    	mov    0x678(%esi),%ecx
591707:	bf 07 00 00 00       	mov    $0x7,%edi
59170c:	6a 00                	push   $0x0
59170e:	ff b6 80 06 00 00    	push   0x680(%esi)
591714:	8d 41 01             	lea    0x1(%ecx),%eax
591717:	83 e0 07             	and    $0x7,%eax
59171a:	2b f8                	sub    %eax,%edi
59171c:	8d 44 24 54          	lea    0x54(%esp),%eax
591720:	51                   	push   %ecx
591721:	50                   	push   %eax
591722:	89 be 84 06 00 00    	mov    %edi,0x684(%esi)
591728:	e8 73 27 01 00       	call   0x5a3ea0
59172d:	83 c4 10             	add    $0x10,%esp
591730:	85 c0                	test   %eax,%eax
591732:	74 18                	je     0x59174c
591734:	6a 00                	push   $0x0
591736:	8d 44 24 50          	lea    0x50(%esp),%eax
59173a:	57                   	push   %edi
59173b:	50                   	push   %eax
59173c:	e8 2f 25 01 00       	call   0x5a3c70
591741:	83 c4 0c             	add    $0xc,%esp
591744:	85 c0                	test   %eax,%eax
591746:	0f 85 96 00 00 00    	jne    0x5917e2
59174c:	68 02 03 00 00       	push   $0x302
591751:	68 6c 6f 66 00       	push   $0x666f6c
591756:	6a 44                	push   $0x44
591758:	6a 68                	push   $0x68
59175a:	6a 50                	push   $0x50
59175c:	56                   	push   %esi
59175d:	e8 ae d9 ff ff       	call   0x58f110
591762:	83 c4 18             	add    $0x18,%esp
591765:	83 c8 ff             	or     $0xffffffff,%eax
591768:	e9 cc 07 00 00       	jmp    0x591f39
59176d:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
591774:	00
591775:	85 ed                	test   %ebp,%ebp
591777:	74 71                	je     0x5917ea
591779:	8d 5c 24 4c          	lea    0x4c(%esp),%ebx
59177d:	8d be 80 06 00 00    	lea    0x680(%esi),%edi
591783:	8b 4f f8             	mov    -0x8(%edi),%ecx
591786:	bd 07 00 00 00       	mov    $0x7,%ebp
59178b:	6a 00                	push   $0x0
59178d:	ff 37                	push   (%edi)
59178f:	8d 41 fc             	lea    -0x4(%ecx),%eax
591792:	83 e0 07             	and    $0x7,%eax
591795:	51                   	push   %ecx
591796:	2b e8                	sub    %eax,%ebp
591798:	53                   	push   %ebx
591799:	89 6f 04             	mov    %ebp,0x4(%edi)
59179c:	e8 ff 26 01 00       	call   0x5a3ea0
5917a1:	83 c4 10             	add    $0x10,%esp
5917a4:	85 c0                	test   %eax,%eax
5917a6:	74 30                	je     0x5917d8
5917a8:	6a 00                	push   $0x0
5917aa:	55                   	push   %ebp
5917ab:	53                   	push   %ebx
5917ac:	e8 bf 24 01 00       	call   0x5a3c70
5917b1:	83 c4 0c             	add    $0xc,%esp
5917b4:	85 c0                	test   %eax,%eax
5917b6:	74 20                	je     0x5917d8
5917b8:	8b 44 24 20          	mov    0x20(%esp),%eax
5917bc:	83 c3 18             	add    $0x18,%ebx
5917bf:	ff 44 24 2c          	incl   0x2c(%esp)
5917c3:	40                   	inc    %eax
5917c4:	8b ac 24 64 09 00 00 	mov    0x964(%esp),%ebp
5917cb:	83 c7 14             	add    $0x14,%edi
5917ce:	89 44 24 20          	mov    %eax,0x20(%esp)
5917d2:	3b c5                	cmp    %ebp,%eax
5917d4:	72 ad                	jb     0x591783
5917d6:	eb 12                	jmp    0x5917ea
5917d8:	68 20 03 00 00       	push   $0x320
5917dd:	e9 a2 07 00 00       	jmp    0x591f84
5917e2:	c7 44 24 2c 01 00 00 	movl   $0x1,0x2c(%esp)
5917e9:	00
5917ea:	8b 96 ec 03 00 00    	mov    0x3ec(%esi),%edx
5917f0:	85 d2                	test   %edx,%edx
5917f2:	0f 84 9d 00 00 00    	je     0x591895
5917f8:	8b 4e 04             	mov    0x4(%esi),%ecx
5917fb:	8b 41 64             	mov    0x64(%ecx),%eax
5917fe:	8b 40 30             	mov    0x30(%eax),%eax
591801:	a8 01                	test   $0x1,%al
591803:	0f 84 8c 00 00 00    	je     0x591895
591809:	a8 08                	test   $0x8,%al
59180b:	75 10                	jne    0x59181d
59180d:	8b 01                	mov    (%ecx),%eax
59180f:	3d 04 03 00 00       	cmp    $0x304,%eax
591814:	7c 07                	jl     0x59181d
591816:	3d 00 00 01 00       	cmp    $0x10000,%eax
59181b:	75 78                	jne    0x591895
59181d:	8b 46 68             	mov    0x68(%esi),%eax
591820:	83 f8 02             	cmp    $0x2,%eax
591823:	74 70                	je     0x591895
591825:	83 f8 01             	cmp    $0x1,%eax
591828:	74 6b                	je     0x591895
59182a:	83 f8 04             	cmp    $0x4,%eax
59182d:	74 66                	je     0x591895
59182f:	83 f8 03             	cmp    $0x3,%eax
591832:	74 61                	je     0x591895
591834:	83 be 4c 04 00 00 01 	cmpl   $0x1,0x44c(%esi)
59183b:	74 58                	je     0x591895
59183d:	52                   	push   %edx
59183e:	e8 7d e8 f5 ff       	call   0x4f00c0
591843:	50                   	push   %eax
591844:	e8 67 ea f5 ff       	call   0x4f02b0
591849:	25 07 00 0f 00       	and    $0xf0007,%eax
59184e:	83 c4 08             	add    $0x8,%esp
591851:	83 f8 02             	cmp    $0x2,%eax
591854:	75 1f                	jne    0x591875
591856:	ff b6 ec 03 00 00    	push   0x3ec(%esi)
59185c:	e8 7f e8 f5 ff       	call   0x4f00e0
591861:	83 c4 04             	add    $0x4,%esp
591864:	89 44 24 24          	mov    %eax,0x24(%esp)
591868:	83 f8 01             	cmp    $0x1,%eax
59186b:	7f 28                	jg     0x591895
59186d:	33 c0                	xor    %eax,%eax
59186f:	89 44 24 24          	mov    %eax,0x24(%esp)
591873:	eb 20                	jmp    0x591895
591875:	83 f8 06             	cmp    $0x6,%eax
591878:	75 0a                	jne    0x591884
59187a:	c7 44 24 24 08 00 00 	movl   $0x8,0x24(%esp)
591881:	00
591882:	eb 11                	jmp    0x591895
591884:	33 db                	xor    %ebx,%ebx
591886:	b9 08 00 00 00       	mov    $0x8,%ecx
59188b:	83 f8 07             	cmp    $0x7,%eax
59188e:	0f 44 d9             	cmove  %ecx,%ebx
591891:	89 5c 24 24          	mov    %ebx,0x24(%esp)
591895:	68 00 06 00 00       	push   $0x600
59189a:	8d 84 24 50 03 00 00 	lea    0x350(%esp),%eax
5918a1:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
5918a8:	00
5918a9:	6a 00                	push   $0x0
5918ab:	50                   	push   %eax
5918ac:	e8 bf 13 04 00       	call   0x5d2c70
5918b1:	83 c4 0c             	add    $0xc,%esp
5918b4:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
5918bb:	00
5918bc:	85 ed                	test   %ebp,%ebp
5918be:	0f 84 b1 03 00 00    	je     0x591c75
5918c4:	8d 44 24 4c          	lea    0x4c(%esp),%eax
5918c8:	8d ac 24 54 03 00 00 	lea    0x354(%esp),%ebp
5918cf:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5918d3:	89 6c 24 10          	mov    %ebp,0x10(%esp)
5918d7:	8b 3e                	mov    (%esi),%edi
5918d9:	b8 03 03 00 00       	mov    $0x303,%eax
5918de:	8b 4e 04             	mov    0x4(%esi),%ecx
5918e1:	81 ff 04 03 00 00    	cmp    $0x304,%edi
5918e7:	c7 44 24 3c 00 00 00 	movl   $0x0,0x3c(%esp)
5918ee:	00
5918ef:	0f 44 f8             	cmove  %eax,%edi
5918f2:	8b 41 64             	mov    0x64(%ecx),%eax
5918f5:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5918f9:	75 10                	jne    0x59190b
5918fb:	8b 01                	mov    (%ecx),%eax
5918fd:	3d 04 03 00 00       	cmp    $0x304,%eax
591902:	7c 07                	jl     0x59190b
591904:	3d 00 00 01 00       	cmp    $0x10000,%eax
591909:	75 20                	jne    0x59192b
59190b:	8b 46 68             	mov    0x68(%esi),%eax
59190e:	83 f8 02             	cmp    $0x2,%eax
591911:	74 18                	je     0x59192b
591913:	83 f8 01             	cmp    $0x1,%eax
591916:	74 13                	je     0x59192b
591918:	83 f8 04             	cmp    $0x4,%eax
59191b:	74 0e                	je     0x59192b
59191d:	83 f8 03             	cmp    $0x3,%eax
591920:	74 09                	je     0x59192b
591922:	83 be 4c 04 00 00 01 	cmpl   $0x1,0x44c(%esi)
591929:	75 22                	jne    0x59194d
59192b:	83 be ec 03 00 00 00 	cmpl   $0x0,0x3ec(%esi)
591932:	74 19                	je     0x59194d
591934:	83 7e 60 02          	cmpl   $0x2,0x60(%esi)
591938:	75 0c                	jne    0x591946
59193a:	8b 84 24 58 09 00 00 	mov    0x958(%esp),%eax
591941:	83 f8 15             	cmp    $0x15,%eax
591944:	74 0e                	je     0x591954
591946:	bb 17 00 00 00       	mov    $0x17,%ebx
59194b:	eb 09                	jmp    0x591956
59194d:	8b 84 24 58 09 00 00 	mov    0x958(%esp),%eax
591954:	8b d8                	mov    %eax,%ebx
591956:	56                   	push   %esi
591957:	89 5d fc             	mov    %ebx,-0x4(%ebp)
59195a:	e8 a1 d6 ff ff       	call   0x58f000
59195f:	83 c4 04             	add    $0x4,%esp
591962:	83 f8 0c             	cmp    $0xc,%eax
591965:	75 3d                	jne    0x5919a4
591967:	83 be ec 05 00 00 00 	cmpl   $0x0,0x5ec(%esi)
59196e:	75 34                	jne    0x5919a4
591970:	56                   	push   %esi
591971:	e8 4a e7 f5 ff       	call   0x4f00c0
591976:	25 00 ff ff ff       	and    $0xffffff00,%eax
59197b:	83 c4 04             	add    $0x4,%esp
59197e:	3d 00 03 00 00       	cmp    $0x300,%eax
591983:	75 1f                	jne    0x5919a4
591985:	56                   	push   %esi
591986:	e8 35 e7 f5 ff       	call   0x4f00c0
59198b:	83 c4 04             	add    $0x4,%esp
59198e:	3d 01 03 00 00       	cmp    $0x301,%eax
591993:	7e 0f                	jle    0x5919a4
591995:	83 be 4c 04 00 00 00 	cmpl   $0x0,0x44c(%esi)
59199c:	b8 01 03 00 00       	mov    $0x301,%eax
5919a1:	0f 44 f8             	cmove  %eax,%edi
5919a4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5919a8:	8b 44 24 30          	mov    0x30(%esp),%eax
5919ac:	83 be e4 03 00 00 00 	cmpl   $0x0,0x3e4(%esi)
5919b3:	6a 01                	push   $0x1
5919b5:	89 7d f8             	mov    %edi,-0x8(%ebp)
5919b8:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5919bb:	53                   	push   %ebx
5919bc:	8b 5c 24 24          	mov    0x24(%esp),%ebx
5919c0:	53                   	push   %ebx
5919c1:	8d a8 00 04 00 00    	lea    0x400(%eax),%ebp
5919c7:	0f 44 e8             	cmove  %eax,%ebp
5919ca:	e8 d1 25 01 00       	call   0x5a3fa0
5919cf:	83 c4 0c             	add    $0xc,%esp
5919d2:	85 c0                	test   %eax,%eax
5919d4:	0f 84 0b 03 00 00    	je     0x591ce5
5919da:	6a 02                	push   $0x2
5919dc:	57                   	push   %edi
5919dd:	53                   	push   %ebx
5919de:	e8 bd 25 01 00       	call   0x5a3fa0
5919e3:	83 c4 0c             	add    $0xc,%esp
5919e6:	85 c0                	test   %eax,%eax
5919e8:	0f 84 f7 02 00 00    	je     0x591ce5
5919ee:	6a 02                	push   $0x2
5919f0:	53                   	push   %ebx
5919f1:	e8 2a 27 01 00       	call   0x5a4120
5919f6:	83 c4 08             	add    $0x8,%esp
5919f9:	85 c0                	test   %eax,%eax
5919fb:	0f 84 e4 02 00 00    	je     0x591ce5
591a01:	8b 44 24 24          	mov    0x24(%esp),%eax
591a05:	85 c0                	test   %eax,%eax
591a07:	7e 14                	jle    0x591a1d
591a09:	6a 00                	push   $0x0
591a0b:	50                   	push   %eax
591a0c:	53                   	push   %ebx
591a0d:	e8 5e 22 01 00       	call   0x5a3c70
591a12:	83 c4 0c             	add    $0xc,%esp
591a15:	85 c0                	test   %eax,%eax
591a17:	0f 84 c8 02 00 00    	je     0x591ce5
591a1d:	85 ed                	test   %ebp,%ebp
591a1f:	74 17                	je     0x591a38
591a21:	8d 44 24 3c          	lea    0x3c(%esp),%eax
591a25:	50                   	push   %eax
591a26:	55                   	push   %ebp
591a27:	53                   	push   %ebx
591a28:	e8 d3 25 01 00       	call   0x5a4000
591a2d:	83 c4 0c             	add    $0xc,%esp
591a30:	85 c0                	test   %eax,%eax
591a32:	0f 84 ad 02 00 00    	je     0x591ce5
591a38:	8b 6c 24 10          	mov    0x10(%esp),%ebp
591a3c:	8b 44 24 3c          	mov    0x3c(%esp),%eax
591a40:	8b 7c 24 18          	mov    0x18(%esp),%edi
591a44:	8b 54 24 20          	mov    0x20(%esp),%edx
591a48:	8b 4c 24 38          	mov    0x38(%esp),%ecx
591a4c:	89 45 0c             	mov    %eax,0xc(%ebp)
591a4f:	03 ca                	add    %edx,%ecx