// File: ticky[P]ps2iconsys/src/ps2icon_to_obj.cpp
// Function: WriteOBJFile(PS2Icon*)
void WriteOBJFile(PS2Icon* ps2_icon)
{
	OBJ_FileLoader obj_file;
	OBJ_Mesh obj_mesh(ps2_input_file);
	if(verbose_output)
		std::cout << " * Convert geometry data from \"" << ps2_input_file << "\"...";
	ps2_icon->BuildMesh(&obj_mesh);
	if(verbose_output)
		std::cout << "done." << std::endl;

	if(verbose_output)
		std::cout << " * Writing geometry output to file \"" << obj_output_file << "\"...";
	obj_file.AddMesh(obj_mesh);
	try {
		obj_file.WriteFile(obj_output_file);
	} catch( Ghulbus::gbException e ) {
		std::cout << "\nError while writing to \"" << obj_output_file << "\"" << std::endl;
		exit(1);
	}
	if(verbose_output)
		std::cout << "done." << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x8(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x26b0
movq 0x8769(%rip), %rsi      # 0x18268
leaq -0x88(%rbp), %rdi
callq 0x4670
jmp 0xfb0d
testb $0x1, 0x876c(%rip)      # 0x18280
je 0xfb93
movq 0x84bb(%rip), %rdi      # 0x17fd8
leaq 0x1fa5(%rip), %rsi      # 0x11ac9
callq 0x21b0
movq %rax, -0xb8(%rbp)
jmp 0xfb32
movq -0xb8(%rbp), %rdi
movq 0x8728(%rip), %rsi      # 0x18268
callq 0x21b0
movq %rax, -0xc0(%rbp)
jmp 0xfb4e
movq -0xc0(%rbp), %rdi
leaq 0x1f8d(%rip), %rsi      # 0x11ae9
callq 0x21b0
jmp 0xfb63
jmp 0xfb93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xfdb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xfda9
movq -0x8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xb240
jmp 0xfba5
testb $0x1, 0x86d4(%rip)      # 0x18280
je 0xfbe1
movq 0x8423(%rip), %rdi      # 0x17fd8
leaq 0x1f07(%rip), %rsi      # 0x11ac3
callq 0x21b0
movq %rax, -0xc8(%rbp)
jmp 0xfbca
movq -0xc8(%rbp), %rdi
movq 0x83e8(%rip), %rsi      # 0x17fc0
callq 0x21e0
jmp 0xfbdf
jmp 0xfbe1
testb $0x1, 0x8698(%rip)      # 0x18280
je 0xfc39
movq 0x83e7(%rip), %rdi      # 0x17fd8
leaq 0x1ef6(%rip), %rsi      # 0x11aee
callq 0x21b0
movq %rax, -0xd0(%rbp)
jmp 0xfc06
movq -0xd0(%rbp), %rdi
movq 0x865c(%rip), %rsi      # 0x18270
callq 0x21b0
movq %rax, -0xd8(%rbp)
jmp 0xfc22
movq -0xd8(%rbp), %rdi
leaq 0x1eb9(%rip), %rsi      # 0x11ae9
callq 0x21b0
jmp 0xfc37
jmp 0xfc39
leaq -0x20(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3020
jmp 0xfc4b
movq 0x861e(%rip), %rsi      # 0x18270
leaq -0x20(%rbp), %rdi
callq 0x30a0
jmp 0xfc5d
jmp 0xfd4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xfda9
movq -0x90(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x2220
movq %rax, %rsi
leaq -0xb0(%rbp), %rdi
callq 0xf0d0
movq -0xe8(%rbp), %rdi
callq 0x20c0
movq 0x831c(%rip), %rdi      # 0x17fd8
leaq 0x1e50(%rip), %rsi      # 0x11b13
callq 0x21b0
movq %rax, -0xe0(%rbp)
jmp 0xfcd1
movq -0xe0(%rbp), %rdi
movq 0x8591(%rip), %rsi      # 0x18270
callq 0x21b0
movq %rax, -0xf0(%rbp)
jmp 0xfced
movq -0xf0(%rbp), %rdi
leaq 0x1d75(%rip), %rsi      # 0x11a70
callq 0x21b0
movq %rax, -0xf8(%rbp)
jmp 0xfd09
movq -0xf8(%rbp), %rdi
movq 0x82a9(%rip), %rsi      # 0x17fc0
callq 0x21e0
jmp 0xfd1e
movl $0x1, %edi
callq 0x2210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xf120
callq 0x2300
jmp 0xfd4d
jmp 0xfda9
testb $0x1, 0x852a(%rip)      # 0x18280
je 0xfd8b
movq 0x8279(%rip), %rdi      # 0x17fd8
leaq 0x1d5d(%rip), %rsi      # 0x11ac3
callq 0x21b0
movq %rax, -0x100(%rbp)
jmp 0xfd74
movq -0x100(%rbp), %rdi
movq 0x823e(%rip), %rsi      # 0x17fc0
callq 0x21e0
jmp 0xfd89
jmp 0xfd8b
leaq -0x88(%rbp), %rdi
callq 0x4720
leaq -0x20(%rbp), %rdi
callq 0x2f40
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
leaq -0x88(%rbp), %rdi
callq 0x4720
leaq -0x20(%rbp), %rdi
callq 0x2f40
movq -0x90(%rbp), %rdi
callq 0x2340
movq %rax, %rdi
callq 0x5440
nopw %cs:(%rax,%rax)