// File: BleuLlama[P]msf-tools/VoiceFile.cpp
// Function: VoiceFile::Dump()
int VoiceFile::Dump( void )
{
	if( !this->valid ) {
		std::cerr << "Invalid file!" << std::endl;
		return -10;
	}

	/* meta dump! */

	std::cout << "Folders:" << std::endl;
	std::cout << "   Voice Recorder at " << vrDir << std::endl;
	std::cout << "        Voice Dir is " << vrVoiceDir << std::endl;
	std::cout << "         MSF File is " << vrMSFFile << std::endl;
	std::cout << std::endl;

	/* folder dumps! */

	for( int f=0 ; f < this->GetFolderCount() ; f++ )
	{
		std::cout << "Folder " << f << " is named \"" << this->GetFolderName( f ) << "\"" << std::endl;
		std::cout << "   path: " << this->GetPathForFolder( f ) << std::endl;
		std::cout << "  count: " << this->GetFileCountForFolder( f ) << std::endl;

		for( int i=0 ; i < this->GetFileCountForFolder( f ) ; i++ )
		{
			std::cout << "     " << std::right << std::setw( 2 ) << i << ":" << std::endl;

			std::string indent( "       " );

			std::cout << indent << "  8.3: " << this->GetFileInFolder( i, f ) << std::endl;
			std::cout << indent << " date: " << this->PrintableDateForFileInFolder( i, f ) << std::endl;

			std::string lfn = DiskUtils::LFNFrom83( this->GetPathForFolder( f ), this->GetFileInFolder( i, f) );
			std::cout << indent << "  lfn: " << lfn << std::endl;
			std::cout << indent << "  sfn: " << this->SortableDateForFileInFolder( i, f ) << "__"
							 << this->GetFileInFolder( i, f ) << std::endl;

		}


		std::cout << std::endl;

	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x180(%rbp)
testb $0x1, (%rax)
jne 0x385d
movq 0x57ba(%rip), %rdi      # 0x8ff0
leaq 0x28e7(%rip), %rsi      # 0x6124
callq 0x2180
movq %rax, %rdi
movq 0x5774(%rip), %rsi      # 0x8fc0
callq 0x21a0
movl $0xfffffff6, -0x4(%rbp) # imm = 0xFFFFFFF6
jmp 0x3fe4
movq 0x576c(%rip), %rdi      # 0x8fd0
leaq 0x28c7(%rip), %rsi      # 0x6132
callq 0x2180
movq %rax, %rdi
movq 0x5746(%rip), %rsi      # 0x8fc0
callq 0x21a0
movq 0x574a(%rip), %rdi      # 0x8fd0
leaq 0x28ae(%rip), %rsi      # 0x613b
callq 0x2180
movq -0x180(%rbp), %rsi
movq %rax, %rdi
addq $0x10, %rsi
callq 0x2150
movq %rax, %rdi
movq 0x5711(%rip), %rsi      # 0x8fc0
callq 0x21a0
movq 0x5715(%rip), %rdi      # 0x8fd0
leaq 0x288f(%rip), %rsi      # 0x6151
callq 0x2180
movq -0x180(%rbp), %rsi
movq %rax, %rdi
addq $0x30, %rsi
callq 0x2150
movq %rax, %rdi
movq 0x56dc(%rip), %rsi      # 0x8fc0
callq 0x21a0
movq 0x56e0(%rip), %rdi      # 0x8fd0
leaq 0x2870(%rip), %rsi      # 0x6167
callq 0x2180
movq -0x180(%rbp), %rsi
movq %rax, %rdi
addq $0x50, %rsi
callq 0x2150
movq %rax, %rdi
movq 0x56a7(%rip), %rsi      # 0x8fc0
callq 0x21a0
movq 0x56ab(%rip), %rdi      # 0x8fd0
movq 0x5694(%rip), %rsi      # 0x8fc0
callq 0x21a0
movl $0x0, -0x14(%rbp)
movq -0x180(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, -0x184(%rbp)
callq 0x4000
movl %eax, %ecx
movl -0x184(%rbp), %eax
cmpl %ecx, %eax
jge 0x3fdd
movq 0x566c(%rip), %rdi      # 0x8fd0
leaq 0x2812(%rip), %rsi      # 0x617d
callq 0x2180
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x2310
movq %rax, %rdi
leaq 0x2800(%rip), %rsi      # 0x6185
callq 0x2180
movq -0x180(%rbp), %rsi
movq %rax, -0x1a0(%rbp)
movl -0x14(%rbp), %edx
leaq -0x38(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x4010
movq -0x1a0(%rbp), %rdi
movq -0x198(%rbp), %rsi
callq 0x2150
movq %rax, -0x190(%rbp)
jmp 0x39c7
movq -0x190(%rbp), %rdi
leaq 0x27ba(%rip), %rsi      # 0x618f
callq 0x2180
movq %rax, -0x1a8(%rbp)
jmp 0x39e3
movq -0x1a8(%rbp), %rdi
movq 0x55cf(%rip), %rsi      # 0x8fc0
callq 0x21a0
jmp 0x39f8
leaq -0x38(%rbp), %rdi
callq 0x20e0
movq 0x55c8(%rip), %rdi      # 0x8fd0
leaq 0x2782(%rip), %rsi      # 0x6191
callq 0x2180
movq -0x180(%rbp), %rsi
movq %rax, -0x1c0(%rbp)
movl -0x14(%rbp), %edx
leaq -0x68(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x4110
movq -0x1c0(%rbp), %rdi
movq -0x1b8(%rbp), %rsi
callq 0x2150
movq %rax, -0x1b0(%rbp)
jmp 0x3a51
movq -0x1b0(%rbp), %rdi
movq 0x5561(%rip), %rsi      # 0x8fc0
callq 0x21a0
jmp 0x3a66
leaq -0x68(%rbp), %rdi
callq 0x20e0
movq 0x555a(%rip), %rdi      # 0x8fd0
leaq 0x271e(%rip), %rsi      # 0x619b
callq 0x2180
movq -0x180(%rbp), %rdi
movq %rax, -0x1c8(%rbp)
movl -0x14(%rbp), %esi
callq 0x4240
movq -0x1c8(%rbp), %rdi
movl %eax, %esi
callq 0x2310
movq %rax, %rdi
movq 0x5510(%rip), %rsi      # 0x8fc0
callq 0x21a0
movl $0x0, -0x6c(%rbp)
movq -0x180(%rbp), %rdi
movl -0x6c(%rbp), %eax
movl %eax, -0x1cc(%rbp)
movl -0x14(%rbp), %esi
callq 0x4240
movl %eax, %ecx
movl -0x1cc(%rbp), %eax
cmpl %ecx, %eax
jge 0x3fbc
movq 0x54e5(%rip), %rdi      # 0x8fd0
leaq 0x26b5(%rip), %rsi      # 0x61a7
callq 0x2180
movq %rax, %rdi
leaq 0xe1f(%rip), %rsi       # 0x4920
callq 0x2070
movq %rax, -0x1e0(%rbp)
movl $0x2, %edi
callq 0x4950
movq -0x1e0(%rbp), %rdi
movl %eax, -0x70(%rbp)
movl -0x70(%rbp), %esi
callq 0x2200
movq %rax, %rdi
movl -0x6c(%rbp), %esi
callq 0x2310
movq %rax, %rdi
leaq 0x2735(%rip), %rsi      # 0x6273
callq 0x2180
movq %rax, %rdi
movq 0x5473(%rip), %rsi      # 0x8fc0
callq 0x21a0
leaq -0x91(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x2330
movq -0x1d8(%rbp), %rdx
leaq 0x2632(%rip), %rsi      # 0x61a5
leaq -0x90(%rbp), %rdi
callq 0x2e40
jmp 0x3b81
leaq -0x91(%rbp), %rdi
callq 0x21c0
movq 0x543c(%rip), %rdi      # 0x8fd0
leaq -0x90(%rbp), %rsi
callq 0x2150
movq %rax, -0x1e8(%rbp)
jmp 0x3ba9
movq -0x1e8(%rbp), %rdi
leaq 0x25f6(%rip), %rsi      # 0x61ad
callq 0x2180
movq %rax, -0x1f0(%rbp)
jmp 0x3bc5
movq -0x180(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl -0x14(%rbp), %ecx
leaq -0xb8(%rbp), %rdi
callq 0x42f0
jmp 0x3be0
movq -0x1f0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x2150
movq %rax, -0x1f8(%rbp)
jmp 0x3bfc
movq -0x1f8(%rbp), %rdi
movq 0x53b6(%rip), %rsi      # 0x8fc0
callq 0x21a0
jmp 0x3c11
leaq -0xb8(%rbp), %rdi
callq 0x20e0
movq 0x53ac(%rip), %rdi      # 0x8fd0
leaq -0x90(%rbp), %rsi
callq 0x2150
movq %rax, -0x200(%rbp)
jmp 0x3c39
movq -0x200(%rbp), %rdi
leaq 0x256e(%rip), %rsi      # 0x61b5
callq 0x2180
movq %rax, -0x208(%rbp)
jmp 0x3c55
movq -0x180(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl -0x14(%rbp), %ecx
leaq -0xd8(%rbp), %rdi
callq 0x4480
jmp 0x3c70
movq -0x208(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x2150
movq %rax, -0x210(%rbp)
jmp 0x3c8c
movq -0x210(%rbp), %rdi
movq 0x5326(%rip), %rsi      # 0x8fc0
callq 0x21a0
jmp 0x3ca1
leaq -0xd8(%rbp), %rdi
callq 0x20e0
movq -0x180(%rbp), %rsi
movl -0x14(%rbp), %edx
leaq -0x118(%rbp), %rdi
callq 0x4110
jmp 0x3cc5
movq -0x180(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl -0x14(%rbp), %ecx
leaq -0x138(%rbp), %rdi
callq 0x42f0
jmp 0x3ce0
leaq -0xf8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x138(%rbp), %rdx
callq 0x2900
jmp 0x3cfc
leaq -0x138(%rbp), %rdi
callq 0x20e0
leaq -0x118(%rbp), %rdi
callq 0x20e0
movq 0x52b5(%rip), %rdi      # 0x8fd0
leaq -0x90(%rbp), %rsi
callq 0x2150
movq %rax, -0x218(%rbp)
jmp 0x3d30
movq -0x218(%rbp), %rdi
leaq 0x247f(%rip), %rsi      # 0x61bd
callq 0x2180
movq %rax, -0x220(%rbp)
jmp 0x3d4c
movq -0x220(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x2150
movq %rax, -0x228(%rbp)
jmp 0x3d68
movq -0x228(%rbp), %rdi
movq 0x524a(%rip), %rsi      # 0x8fc0
callq 0x21a0
jmp 0x3d7d
movq 0x524c(%rip), %rdi      # 0x8fd0
leaq -0x90(%rbp), %rsi
callq 0x2150
movq %rax, -0x230(%rbp)
jmp 0x3d99
movq -0x230(%rbp), %rdi
leaq 0x241e(%rip), %rsi      # 0x61c5
callq 0x2180
movq %rax, -0x238(%rbp)
jmp 0x3db5
movq -0x180(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl -0x14(%rbp), %ecx
leaq -0x158(%rbp), %rdi
callq 0x4630
jmp 0x3dd0
movq -0x238(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x2150
movq %rax, -0x240(%rbp)
jmp 0x3dec
movq -0x240(%rbp), %rdi
leaq 0x23d3(%rip), %rsi      # 0x61cd
callq 0x2180
movq %rax, -0x248(%rbp)
jmp 0x3e08
movq -0x180(%rbp), %rsi
movl -0x6c(%rbp), %edx
movl -0x14(%rbp), %ecx
leaq -0x178(%rbp), %rdi
callq 0x42f0
jmp 0x3e23
movq -0x248(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x2150
movq %rax, -0x250(%rbp)
jmp 0x3e3f
movq -0x250(%rbp), %rdi
movq 0x5173(%rip), %rsi      # 0x8fc0
callq 0x21a0
jmp 0x3e54
leaq -0x178(%rbp), %rdi
callq 0x20e0
leaq -0x158(%rbp), %rdi
callq 0x20e0
leaq -0xf8(%rbp), %rdi
callq 0x20e0
leaq -0x90(%rbp), %rdi
callq 0x20e0
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0x3abc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x20e0
jmp 0x3ff0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x20e0
jmp 0x3ff0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x91(%rbp), %rdi
callq 0x21c0
jmp 0x3ff0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3fae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x20e0
jmp 0x3fae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x20e0
jmp 0x3fae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x20e0
leaq -0x118(%rbp), %rdi
callq 0x20e0
jmp 0x3fae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3fa2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3f96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x20e0
leaq -0x158(%rbp), %rdi
callq 0x20e0
leaq -0xf8(%rbp), %rdi
callq 0x20e0
leaq -0x90(%rbp), %rdi
callq 0x20e0
jmp 0x3ff0
movq 0x500d(%rip), %rdi      # 0x8fd0
movq 0x4ff6(%rip), %rsi      # 0x8fc0
callq 0x21a0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x3938
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x250, %rsp            # imm = 0x250
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x2320
nopl (%rax)