// File: ticky[P]ps2iconsys/src/obj_loader.cpp
// Function: OBJ_FileLoader::WriteFile(char const*) const
void OBJ_FileLoader::WriteFile(char const* fname) const {
	std::ofstream fout(fname, std::ios_base::out);
	if( fout.fail() ) {
		throw( Ghulbus::gbException( Ghulbus::gbException::GB_FAILED,
			                         "Output OBJ file could not be opened" ) );
	}
	//again we need counters since obj doesn't reset indices between meshes:
	int vert_counter=0, normal_counter=0, texture_counter=0;
	int vert_base=0, normal_base=0, texture_base=0;
	int current_smooth_group = 0;
	
	fout.precision(6);
	fout << std::fixed;
	//file header:
	fout << "# OBJ File created by PS2IconSys Viewer" << std::endl
		 << "#  http://www.ghulbus-inc.de/" << std::endl
		 << "#" << std::endl;

	for(int i=0; i<GetNMeshes(); i++) {
		OBJ_Mesh const* mesh = GetMesh(i);
		//object header:
		fout << "# object " << mesh->GetName() << " to come" << std::endl
			 << "#" << std::endl;
		
		//vertex data:
		for(int j=0; j<mesh->GetNVertices(); j++) {
			vert_counter++;
			fout << "v  " << *(mesh->GetVertexX(j)) << " " << *(mesh->GetVertexY(j)) << " "
				<< *(mesh->GetVertexZ(j)) << std::endl;
		}
		fout << "# " << mesh->GetNVertices() << " vertices" << std::endl << std::endl;
		//texture vertex data:
		for(int j=0; j<mesh->GetNTexture(); j++) {
			texture_counter++;
			fout << "vt  " << *(mesh->GetTextureX(j)) << " " << *(mesh->GetTextureY(j)) << " "
				<< *(mesh->GetTextureZ(j)) << std::endl;
		}
		fout << "# " << mesh->GetNTexture() << " texture vertices" << std::endl << std::endl;
		//vertex normal data:
		for(int j=0; j<mesh->GetNNormals(); j++) {
			normal_counter++;
			fout << "vn  " << *(mesh->GetNormalX(j)) << " " << *(mesh->GetNormalY(j)) << " "
				<< *(mesh->GetNormalZ(j)) << std::endl;
		}
		fout << "# " << mesh->GetNNormals() << " vertex normals" << std::endl << std::endl;

		//face list:
		fout << "g " << mesh->GetName() << std::endl;
		current_smooth_group = mesh->GetFace(0)->smoothing_group;
		fout << "s " << current_smooth_group << std::endl;
		for(int j=0; j<mesh->GetNFaces(); j++) {
			OBJ_Mesh::Face const* current_face = mesh->GetFace(j);
			if(current_face->smoothing_group != current_smooth_group) {
				current_smooth_group = current_face->smoothing_group;
				fout << "s " << current_smooth_group << std::endl;
			}
			fout << "f " << (current_face->vert1 + vert_base + 1) << "/" 
				<< (current_face->texture1 + texture_base + 1) << "/" 
				<< (current_face->normal1 + normal_base + 1)   << " " 
				<< (current_face->vert2 + vert_base + 1)       << "/" 
				<< (current_face->texture2 + texture_base + 1) << "/" 
				<< (current_face->normal2 + normal_base + 1)   << " " 
				<< (current_face->vert3 + vert_base + 1)       << "/" 
				<< (current_face->texture3 + texture_base + 1) << "/" 
				<< (current_face->normal3 + normal_base + 1)   << std::endl;
		}
		fout << "# " << mesh->GetNFaces() << " faces" << std::endl << std::endl;

		//adjust base counters:
		vert_base = vert_counter;
		normal_base = normal_counter;
		texture_base = texture_counter;
		fout << "g" << std::endl;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x550, %rsp            # imm = 0x550
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x270(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x210(%rbp), %rdi
movl $0x10, %edx
callq 0x2200
movq -0x210(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x210(%rbp,%rax), %rdi
callq 0x2030
movb %al, -0x261(%rbp)
jmp 0x3123
movb -0x261(%rbp), %al
testb $0x1, %al
jne 0x312f
jmp 0x3196
movl $0x18, %edi
callq 0x20f0
movq %rax, %rdi
movq %rdi, -0x278(%rbp)
leaq 0xdedb(%rip), %rdx      # 0x11025
movl $0x1, %esi
callq 0xf0b0
movq -0x278(%rbp), %rdi
leaq 0x14c2e(%rip), %rsi     # 0x17d90
leaq 0xbfe7(%rip), %rdx      # 0xf150
callq 0x2340
jmp 0x3f79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x218(%rbp)
movl %eax, -0x21c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x22e0
jmp 0x3f6d
movl $0x0, -0x220(%rbp)
movl $0x0, -0x224(%rbp)
movl $0x0, -0x228(%rbp)
movl $0x0, -0x22c(%rbp)
movl $0x0, -0x230(%rbp)
movl $0x0, -0x234(%rbp)
movl $0x0, -0x238(%rbp)
movq -0x210(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x210(%rbp,%rax), %rdi
movl $0x6, %esi
callq 0x4c70
jmp 0x31fb
leaq 0x1a9e(%rip), %rsi      # 0x4ca0
leaq -0x210(%rbp), %rdi
callq 0x2090
jmp 0x3210
leaq 0xde32(%rip), %rsi      # 0x11049
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x280(%rbp)
jmp 0x322c
movq -0x280(%rbp), %rdi
movq 0x14d86(%rip), %rsi     # 0x17fc0
callq 0x21f0
movq %rax, -0x288(%rbp)
jmp 0x3248
movq -0x288(%rbp), %rdi
leaq 0xde1b(%rip), %rsi      # 0x11071
callq 0x21c0
movq %rax, -0x290(%rbp)
jmp 0x3264
movq -0x290(%rbp), %rdi
movq 0x14d4e(%rip), %rsi     # 0x17fc0
callq 0x21f0
movq %rax, -0x298(%rbp)
jmp 0x3280
movq -0x298(%rbp), %rdi
leaq 0xe9f7(%rip), %rsi      # 0x11c85
callq 0x21c0
movq %rax, -0x2a0(%rbp)
jmp 0x329c
movq -0x2a0(%rbp), %rdi
movq 0x14d16(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x32b1
movl $0x0, -0x23c(%rbp)
movq -0x270(%rbp), %rdi
movl -0x23c(%rbp), %eax
movl %eax, -0x2a4(%rbp)
callq 0x3000
movl %eax, %ecx
movl -0x2a4(%rbp), %eax
cmpl %ecx, %eax
jge 0x3f58
movq -0x270(%rbp), %rdi
movl -0x23c(%rbp), %esi
callq 0x3020
movq %rax, -0x248(%rbp)
leaq 0xdd8c(%rip), %rsi      # 0x1108f
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x2b0(%rbp)
jmp 0x3318
movq -0x248(%rbp), %rdi
callq 0x3f80
movq %rax, -0x2b8(%rbp)
jmp 0x332d
movq -0x2b8(%rbp), %rsi
movq -0x2b0(%rbp), %rdi
callq 0x21c0
movq %rax, -0x2c0(%rbp)
jmp 0x3349
movq -0x2c0(%rbp), %rdi
leaq 0xdd42(%rip), %rsi      # 0x11099
callq 0x21c0
movq %rax, -0x2c8(%rbp)
jmp 0x3365
movq -0x2c8(%rbp), %rdi
movq 0x14c4d(%rip), %rsi     # 0x17fc0
callq 0x21f0
movq %rax, -0x2d0(%rbp)
jmp 0x3381
movq -0x2d0(%rbp), %rdi
leaq 0xe8f6(%rip), %rsi      # 0x11c85
callq 0x21c0
movq %rax, -0x2d8(%rbp)
jmp 0x339d
movq -0x2d8(%rbp), %rdi
movq 0x14c15(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x33b2
movl $0x0, -0x24c(%rbp)
movl -0x24c(%rbp), %eax
movl %eax, -0x2e0(%rbp)
movq -0x248(%rbp), %rdi
callq 0x3fc0
movl %eax, -0x2dc(%rbp)
jmp 0x33dc
movl -0x2e0(%rbp), %eax
movl -0x2dc(%rbp), %ecx
cmpl %ecx, %eax
jge 0x352e
movl -0x220(%rbp), %eax
incl %eax
movl %eax, -0x220(%rbp)
leaq 0xdc9d(%rip), %rsi      # 0x110a2
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x2e8(%rbp)
jmp 0x341a
movq -0x248(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x3ff0
movq %rax, -0x2f0(%rbp)
jmp 0x3435
movq -0x2e8(%rbp), %rdi
movq -0x2f0(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x2f8(%rbp)
jmp 0x3455
movq -0x2f8(%rbp), %rdi
leaq 0xe936(%rip), %rsi      # 0x11d99
callq 0x21c0
movq %rax, -0x300(%rbp)
jmp 0x3471
movq -0x248(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x4070
movq %rax, -0x308(%rbp)
jmp 0x348c
movq -0x300(%rbp), %rdi
movq -0x308(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x310(%rbp)
jmp 0x34ac
movq -0x310(%rbp), %rdi
leaq 0xe8df(%rip), %rsi      # 0x11d99
callq 0x21c0
movq %rax, -0x318(%rbp)
jmp 0x34c8
movq -0x248(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x4100
movq %rax, -0x320(%rbp)
jmp 0x34e3
movq -0x318(%rbp), %rdi
movq -0x320(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x328(%rbp)
jmp 0x3503
movq -0x328(%rbp), %rdi
movq 0x14aaf(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x3518
jmp 0x351a
movl -0x24c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24c(%rbp)
jmp 0x33bc
leaq 0xdb71(%rip), %rsi      # 0x110a6
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x330(%rbp)
jmp 0x354a
movq -0x248(%rbp), %rdi
callq 0x3fc0
movl %eax, -0x334(%rbp)
jmp 0x355e
movl -0x334(%rbp), %esi
movq -0x330(%rbp), %rdi
callq 0x2350
movq %rax, -0x340(%rbp)
jmp 0x3579
movq -0x340(%rbp), %rdi
leaq 0xdb2f(%rip), %rsi      # 0x110b6
callq 0x21c0
movq %rax, -0x348(%rbp)
jmp 0x3595
movq -0x348(%rbp), %rdi
movq 0x14a1d(%rip), %rsi     # 0x17fc0
callq 0x21f0
movq %rax, -0x350(%rbp)
jmp 0x35b1
movq -0x350(%rbp), %rdi
movq 0x14a01(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x35c6
movl $0x0, -0x250(%rbp)
movl -0x250(%rbp), %eax
movl %eax, -0x358(%rbp)
movq -0x248(%rbp), %rdi
callq 0x4190
movl %eax, -0x354(%rbp)
jmp 0x35f0
movl -0x358(%rbp), %eax
movl -0x354(%rbp), %ecx
cmpl %ecx, %eax
jge 0x3742
movl -0x228(%rbp), %eax
incl %eax
movl %eax, -0x228(%rbp)
leaq 0xda90(%rip), %rsi      # 0x110a9
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x360(%rbp)
jmp 0x362e
movq -0x248(%rbp), %rdi
movl -0x250(%rbp), %esi
callq 0x41c0
movq %rax, -0x368(%rbp)
jmp 0x3649
movq -0x360(%rbp), %rdi
movq -0x368(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x370(%rbp)
jmp 0x3669
movq -0x370(%rbp), %rdi
leaq 0xe722(%rip), %rsi      # 0x11d99
callq 0x21c0
movq %rax, -0x378(%rbp)
jmp 0x3685
movq -0x248(%rbp), %rdi
movl -0x250(%rbp), %esi
callq 0x4250
movq %rax, -0x380(%rbp)
jmp 0x36a0
movq -0x378(%rbp), %rdi
movq -0x380(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x388(%rbp)
jmp 0x36c0
movq -0x388(%rbp), %rdi
leaq 0xe6cb(%rip), %rsi      # 0x11d99
callq 0x21c0
movq %rax, -0x390(%rbp)
jmp 0x36dc
movq -0x248(%rbp), %rdi
movl -0x250(%rbp), %esi
callq 0x42e0
movq %rax, -0x398(%rbp)
jmp 0x36f7
movq -0x390(%rbp), %rdi
movq -0x398(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x3a0(%rbp)
jmp 0x3717
movq -0x3a0(%rbp), %rdi
movq 0x1489b(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x372c
jmp 0x372e
movl -0x250(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x250(%rbp)
jmp 0x35d0
leaq 0xd95d(%rip), %rsi      # 0x110a6
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x3a8(%rbp)
jmp 0x375e
movq -0x248(%rbp), %rdi
callq 0x4190
movl %eax, -0x3ac(%rbp)
jmp 0x3772
movl -0x3ac(%rbp), %esi
movq -0x3a8(%rbp), %rdi
callq 0x2350
movq %rax, -0x3b8(%rbp)
jmp 0x378d
movq -0x3b8(%rbp), %rdi
leaq 0xd913(%rip), %rsi      # 0x110ae
callq 0x21c0
movq %rax, -0x3c0(%rbp)
jmp 0x37a9
movq -0x3c0(%rbp), %rdi
movq 0x14809(%rip), %rsi     # 0x17fc0
callq 0x21f0
movq %rax, -0x3c8(%rbp)
jmp 0x37c5
movq -0x3c8(%rbp), %rdi
movq 0x147ed(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x37da
movl $0x0, -0x254(%rbp)
movl -0x254(%rbp), %eax
movl %eax, -0x3d0(%rbp)
movq -0x248(%rbp), %rdi
callq 0x4370
movl %eax, -0x3cc(%rbp)
jmp 0x3804
movl -0x3d0(%rbp), %eax
movl -0x3cc(%rbp), %ecx
cmpl %ecx, %eax
jge 0x3956
movl -0x224(%rbp), %eax
incl %eax
movl %eax, -0x224(%rbp)
leaq 0xd893(%rip), %rsi      # 0x110c0
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x3d8(%rbp)
jmp 0x3842
movq -0x248(%rbp), %rdi
movl -0x254(%rbp), %esi
callq 0x43a0
movq %rax, -0x3e0(%rbp)
jmp 0x385d
movq -0x3d8(%rbp), %rdi
movq -0x3e0(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x3e8(%rbp)
jmp 0x387d
movq -0x3e8(%rbp), %rdi
leaq 0xe50e(%rip), %rsi      # 0x11d99
callq 0x21c0
movq %rax, -0x3f0(%rbp)
jmp 0x3899
movq -0x248(%rbp), %rdi
movl -0x254(%rbp), %esi
callq 0x4430
movq %rax, -0x3f8(%rbp)
jmp 0x38b4
movq -0x3f0(%rbp), %rdi
movq -0x3f8(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x400(%rbp)
jmp 0x38d4
movq -0x400(%rbp), %rdi
leaq 0xe4b7(%rip), %rsi      # 0x11d99
callq 0x21c0
movq %rax, -0x408(%rbp)
jmp 0x38f0
movq -0x248(%rbp), %rdi
movl -0x254(%rbp), %esi
callq 0x44c0
movq %rax, -0x410(%rbp)
jmp 0x390b
movq -0x408(%rbp), %rdi
movq -0x410(%rbp), %rax
movsd (%rax), %xmm0
callq 0x23b0
movq %rax, -0x418(%rbp)
jmp 0x392b
movq -0x418(%rbp), %rdi
movq 0x14687(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x3940
jmp 0x3942
movl -0x254(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x254(%rbp)
jmp 0x37e4
leaq 0xd749(%rip), %rsi      # 0x110a6
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x420(%rbp)
jmp 0x3972
movq -0x248(%rbp), %rdi
callq 0x4370
movl %eax, -0x424(%rbp)
jmp 0x3986
movl -0x424(%rbp), %esi
movq -0x420(%rbp), %rdi
callq 0x2350
movq %rax, -0x430(%rbp)
jmp 0x39a1
movq -0x430(%rbp), %rdi
leaq 0xd716(%rip), %rsi      # 0x110c5
callq 0x21c0
movq %rax, -0x438(%rbp)
jmp 0x39bd
movq -0x438(%rbp), %rdi
movq 0x145f5(%rip), %rsi     # 0x17fc0
callq 0x21f0
movq %rax, -0x440(%rbp)
jmp 0x39d9
movq -0x440(%rbp), %rdi
movq 0x145d9(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x39ee
leaq 0xd6e0(%rip), %rsi      # 0x110d5
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x448(%rbp)
jmp 0x3a0a
movq -0x248(%rbp), %rdi
callq 0x3f80
movq %rax, -0x450(%rbp)
jmp 0x3a1f
movq -0x450(%rbp), %rsi
movq -0x448(%rbp), %rdi
callq 0x21c0
movq %rax, -0x458(%rbp)
jmp 0x3a3b
movq -0x458(%rbp), %rdi
movq 0x14577(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x3a50
movq -0x248(%rbp), %rdi
xorl %esi, %esi
callq 0x4550
movq %rax, -0x460(%rbp)
jmp 0x3a67
movq -0x460(%rbp), %rax
movl 0x24(%rax), %eax
movl %eax, -0x238(%rbp)
leaq 0xe28c(%rip), %rsi      # 0x11d0a
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x468(%rbp)
jmp 0x3a93
movq -0x468(%rbp), %rdi
movl -0x238(%rbp), %esi
callq 0x2350
movq %rax, -0x470(%rbp)
jmp 0x3aae
movq -0x470(%rbp), %rdi
movq 0x14504(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x3ac3
movl $0x0, -0x258(%rbp)
movl -0x258(%rbp), %eax
movl %eax, -0x478(%rbp)
movq -0x248(%rbp), %rdi
callq 0x45d0
movl %eax, -0x474(%rbp)
jmp 0x3aed
movl -0x478(%rbp), %eax
movl -0x474(%rbp), %ecx
cmpl %ecx, %eax
jge 0x3e55
movq -0x248(%rbp), %rdi
movl -0x258(%rbp), %esi
callq 0x4550
movq %rax, -0x480(%rbp)
jmp 0x3b1c
movq -0x480(%rbp), %rax
movq %rax, -0x260(%rbp)
movq -0x260(%rbp), %rax
movl 0x24(%rax), %eax
cmpl -0x238(%rbp), %eax
je 0x3b9a
movq -0x260(%rbp), %rax
movl 0x24(%rax), %eax
movl %eax, -0x238(%rbp)
leaq 0xe1b7(%rip), %rsi      # 0x11d0a
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x488(%rbp)
jmp 0x3b68
movq -0x488(%rbp), %rdi
movl -0x238(%rbp), %esi
callq 0x2350
movq %rax, -0x490(%rbp)
jmp 0x3b83
movq -0x490(%rbp), %rdi
movq 0x1442f(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x3b98
jmp 0x3b9a
leaq 0xd537(%rip), %rsi      # 0x110d8
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x498(%rbp)
jmp 0x3bb6
movq -0x498(%rbp), %rdi
movq -0x260(%rbp), %rax
movl (%rax), %edx
movl -0x22c(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x4a0(%rbp)
jmp 0x3be2
movq -0x4a0(%rbp), %rdi
leaq 0xd49d(%rip), %rsi      # 0x1108d
callq 0x21c0
movq %rax, -0x4a8(%rbp)
jmp 0x3bfe
movq -0x4a8(%rbp), %rdi
movq -0x260(%rbp), %rax
movl 0x18(%rax), %edx
movl -0x234(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x4b0(%rbp)
jmp 0x3c2b
movq -0x4b0(%rbp), %rdi
leaq 0xd454(%rip), %rsi      # 0x1108d
callq 0x21c0
movq %rax, -0x4b8(%rbp)
jmp 0x3c47
movq -0x4b8(%rbp), %rdi
movq -0x260(%rbp), %rax
movl 0xc(%rax), %edx
movl -0x230(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x4c0(%rbp)
jmp 0x3c74
movq -0x4c0(%rbp), %rdi
leaq 0xe117(%rip), %rsi      # 0x11d99
callq 0x21c0
movq %rax, -0x4c8(%rbp)
jmp 0x3c90
movq -0x4c8(%rbp), %rdi
movq -0x260(%rbp), %rax
movl 0x4(%rax), %edx
movl -0x22c(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x4d0(%rbp)
jmp 0x3cbd
movq -0x4d0(%rbp), %rdi
leaq 0xd3c2(%rip), %rsi      # 0x1108d
callq 0x21c0
movq %rax, -0x4d8(%rbp)
jmp 0x3cd9
movq -0x4d8(%rbp), %rdi
movq -0x260(%rbp), %rax
movl 0x1c(%rax), %edx
movl -0x234(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x4e0(%rbp)
jmp 0x3d06
movq -0x4e0(%rbp), %rdi
leaq 0xd379(%rip), %rsi      # 0x1108d
callq 0x21c0
movq %rax, -0x4e8(%rbp)
jmp 0x3d22
movq -0x4e8(%rbp), %rdi
movq -0x260(%rbp), %rax
movl 0x10(%rax), %edx
movl -0x230(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x4f0(%rbp)
jmp 0x3d4f
movq -0x4f0(%rbp), %rdi
leaq 0xe03c(%rip), %rsi      # 0x11d99
callq 0x21c0
movq %rax, -0x4f8(%rbp)
jmp 0x3d6b
movq -0x4f8(%rbp), %rdi
movq -0x260(%rbp), %rax
movl 0x8(%rax), %edx
movl -0x22c(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x500(%rbp)
jmp 0x3d98
movq -0x500(%rbp), %rdi
leaq 0xd2e7(%rip), %rsi      # 0x1108d
callq 0x21c0
movq %rax, -0x508(%rbp)
jmp 0x3db4
movq -0x508(%rbp), %rdi
movq -0x260(%rbp), %rax
movl 0x20(%rax), %edx
movl -0x234(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x510(%rbp)
jmp 0x3de1
movq -0x510(%rbp), %rdi
leaq 0xd29e(%rip), %rsi      # 0x1108d
callq 0x21c0
movq %rax, -0x518(%rbp)
jmp 0x3dfd
movq -0x518(%rbp), %rdi
movq -0x260(%rbp), %rax
movl 0x14(%rax), %edx
movl -0x230(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal 0x1(%rax,%rcx), %esi
callq 0x2350
movq %rax, -0x520(%rbp)
jmp 0x3e2a
movq -0x520(%rbp), %rdi
movq 0x14188(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x3e3f
jmp 0x3e41
movl -0x258(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x258(%rbp)
jmp 0x3acd
leaq 0xd24a(%rip), %rsi      # 0x110a6
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x528(%rbp)
jmp 0x3e71
movq -0x248(%rbp), %rdi
callq 0x45d0
movl %eax, -0x52c(%rbp)
jmp 0x3e85
movl -0x52c(%rbp), %esi
movq -0x528(%rbp), %rdi
callq 0x2350
movq %rax, -0x538(%rbp)
jmp 0x3ea0
movq -0x538(%rbp), %rdi
leaq 0xd22d(%rip), %rsi      # 0x110db
callq 0x21c0
movq %rax, -0x540(%rbp)
jmp 0x3ebc
movq -0x540(%rbp), %rdi
movq 0x140f6(%rip), %rsi     # 0x17fc0
callq 0x21f0
movq %rax, -0x548(%rbp)
jmp 0x3ed8
movq -0x548(%rbp), %rdi
movq 0x140da(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x3eed
movl -0x220(%rbp), %eax
movl %eax, -0x22c(%rbp)
movl -0x224(%rbp), %eax
movl %eax, -0x230(%rbp)
movl -0x228(%rbp), %eax
movl %eax, -0x234(%rbp)
leaq 0xd1ca(%rip), %rsi      # 0x110e2
leaq -0x210(%rbp), %rdi
callq 0x21c0
movq %rax, -0x550(%rbp)
jmp 0x3f2d
movq -0x550(%rbp), %rdi
movq 0x14085(%rip), %rsi     # 0x17fc0
callq 0x21f0
jmp 0x3f42
jmp 0x3f44
movl -0x23c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x23c(%rbp)
jmp 0x32bb
leaq -0x210(%rbp), %rdi
callq 0x22e0
addq $0x550, %rsp            # imm = 0x550
popq %rbp
retq
movq -0x218(%rbp), %rdi
callq 0x2370
nopl (%rax)