// File: /workspace/github_cpp_makefile_star2_O3/Luthaf[P]zeopp/networkio.cc
// Function: writeToCIF(char*, ATOM_NETWORK*)
bool writeToCIF(char *filename,  ATOM_NETWORK *cell){
  fstream output;
  output.open(filename, fstream::out);
  if(!output.is_open()){
    cerr << "Error: Failed to open .cif output file " << filename << endl;
	//cerr << "Exiting ..." << "\n";
    //exit(1);
    return false;
  }
  else{
    cout   << "Writing atom network information to " << filename << "\n";
    //output << "data_" << origname << endl; //we need this data_(name) line otherwise the cif file will not be considered valid in some software packages
    //Instead of supplying argument to write data_..., using timestamp with number of atoms in the structure
    string formula = get_formula(cell);
    string time_stamp = get_timestamp();
    output << "data_" << formula << "_" << time_stamp << endl;
    output << "#******************************************" << endl;
    output << "#" << endl;
    output << "# CIF file created by Zeo++" << endl;
    output << "# Zeo++ is an open source package to" << endl;
    output << "# analyze microporous materials" << endl;
    output << "#" << endl;
    output << "#*******************************************" << "\n\n";
    output << "_cell_length_a\t\t" << cell->a << "   " << endl;     //  removed (0)
    output << "_cell_length_b\t\t" << cell->b << "   " << endl;
    output << "_cell_length_c\t\t" << cell->c << "   " << endl;
    output << "_cell_angle_alpha\t\t" << cell->alpha << "   " << endl;
    output << "_cell_angle_beta\t\t" << cell->beta << "   " << endl;
    output << "_cell_angle_gamma\t\t" << cell->gamma << "   \n\n";
    output << "_symmetry_space_group_name_H-M\t\t" << "'P1'" << endl;
    output << "_symmetry_Int_Tables_number\t\t" << "1" << endl;
    output << "_symmetry_cell_setting\t\t";

    //Determine the Crystal System
    if (cell->alpha == 90 && cell->beta == 90 && cell->gamma == 90){
      if (cell->a == cell->b || cell->b == cell->c || cell->a == cell->c){
	      if (cell->a == cell->b && cell->b == cell->c){
	        output << "Isometric\n" << endl;
	      }
	      else {
	        output << "Tetragonal\n" << endl;
        }
      }
      else{
      	output << "Orthorhombic\n" << endl;
      }
    }
    else if(cell->alpha == cell->beta || cell->beta == cell->gamma || cell->alpha == cell->gamma){
      output << "Monoclinic\n" << endl;
    }
    else{
      output << "Triclinic\n" << endl;
    }

    output << "loop_" << endl;
    output << "_symmetry_equiv_pos_as_xyz" << endl;
    output << "'+x,+y,+z'\n" << endl;
    output << "loop_" << endl;
    output << "_atom_site_label" << endl;
    output << "_atom_site_type_symbol" << endl;
    output << "_atom_site_fract_x" << endl;
    output << "_atom_site_fract_y" << endl;
    output << "_atom_site_fract_z" << endl;
    for (unsigned int i=0; i<cell->atoms.size(); i++){
      ATOM *temp=&(cell->atoms.at(i));
      output << temp->specialID << "\t" << temp->type << "\t" << trans_to_origuc(temp->a_coord) << "\t" << trans_to_origuc(temp->b_coord) << "\t" << trans_to_origuc(temp->c_coord) << endl;
    }
    output.close();
    return true;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
movq %rsi, 0x10(%rsp)
movq %rdi, %r15
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
callq 0x4520
movq %rbx, %rdi
movq %r15, %rsi
movl $0x10, %edx
callq 0x43d0
leaq 0xd8(%rsp), %rdi
callq 0x4120
movl %eax, %ebx
testb %al, %al
je 0x2b79c
movq 0x169859(%rip), %r12    # 0x194fc0
leaq 0x122c5c(%rip), %rsi    # 0x14e3ca
movl $0x24, %edx
movq %r12, %rdi
callq 0x44e0
testq %r15, %r15
je 0x2b7df
movq %r15, %rdi
callq 0x41e0
movq 0x169831(%rip), %rdi    # 0x194fc0
movq %r15, %rsi
movq %rax, %rdx
callq 0x44e0
jmp 0x2b7f8
movq 0x16984d(%rip), %r14    # 0x194ff0
leaq 0x122c8b(%rip), %rsi    # 0x14e435
movl $0x27, %edx
movq %r14, %rdi
callq 0x44e0
testq %r15, %r15
je 0x2bdc8
movq %r15, %rdi
callq 0x41e0
movq 0x169821(%rip), %rdi    # 0x194ff0
movq %r15, %rsi
movq %rax, %rdx
callq 0x44e0
jmp 0x2bde0
movq (%r12), %rax
movq -0x18(%rax), %rax
leaq (%r12,%rax), %rdi
movl 0x20(%r12,%rax), %esi
orl $0x1, %esi
callq 0x4710
movq 0x1697c1(%rip), %rdi    # 0x194fc0
leaq 0x127e18(%rip), %rsi    # 0x15361e
movl $0x1, %edx
callq 0x44e0
leaq 0x38(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x2b455
leaq 0x18(%rsp), %rdi
callq 0x2b6af
leaq 0x68(%rsp), %r13
leaq 0x1223cc(%rip), %rsi    # 0x14dc01
movl $0x5, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq %r13, %rdi
callq 0x44e0
movq %rax, %r12
leaq 0x1223a7(%rip), %rsi    # 0x14dc05
movl $0x1, %edx
movq %rax, %rdi
callq 0x44e0
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %r12, %rdi
callq 0x44e0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122baf(%rip), %rsi    # 0x14e45d
movl $0x2b, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x125ba3(%rip), %rsi    # 0x15148e
movl $0x1, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122b61(%rip), %rsi    # 0x14e489
movl $0x1b, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122b40(%rip), %rsi    # 0x14e4a5
movl $0x24, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122b28(%rip), %rsi    # 0x14e4ca
movl $0x1f, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x125aaf(%rip), %rsi    # 0x15148e
movl $0x1, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122ace(%rip), %rsi    # 0x14e4ea
movl $0x2c, %edx
movq %r13, %rdi
callq 0x44e0
leaq 0x12961b(%rip), %rsi    # 0x15504b
movl $0x2, %edx
movq %r13, %rdi
callq 0x44e0
leaq 0x122ad3(%rip), %rsi    # 0x14e517
movl $0x10, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x10(%rsp), %rax
movsd 0x8(%rax), %xmm0
movq %r13, %rdi
callq 0x46b0
movq %rax, %r12
leaq 0x121a71(%rip), %rsi    # 0x14d4de
movl $0x3, %edx
movq %rax, %rdi
callq 0x44e0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122a7f(%rip), %rsi    # 0x14e528
movl $0x10, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x10(%rsp), %rax
movsd 0x10(%rax), %xmm0
movq %r13, %rdi
callq 0x46b0
movq %rax, %r12
leaq 0x121a0c(%rip), %rsi    # 0x14d4de
movl $0x3, %edx
movq %rax, %rdi
callq 0x44e0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122a2b(%rip), %rsi    # 0x14e539
movl $0x10, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x10(%rsp), %rax
movsd 0x18(%rax), %xmm0
movq %r13, %rdi
callq 0x46b0
movq %rax, %r12
leaq 0x1219a7(%rip), %rsi    # 0x14d4de
movl $0x3, %edx
movq %rax, %rdi
callq 0x44e0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x1229d7(%rip), %rsi    # 0x14e54a
movl $0x13, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x10(%rsp), %rax
movsd 0x20(%rax), %xmm0
movq %r13, %rdi
callq 0x46b0
movq %rax, %r12
leaq 0x121942(%rip), %rsi    # 0x14d4de
movl $0x3, %edx
movq %rax, %rdi
callq 0x44e0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122986(%rip), %rsi    # 0x14e55e
movl $0x12, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x10(%rsp), %rax
movsd 0x28(%rax), %xmm0
movq %r13, %rdi
callq 0x46b0
movq %rax, %r12
leaq 0x1218dd(%rip), %rsi    # 0x14d4de
movl $0x3, %edx
movq %rax, %rdi
callq 0x44e0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x122934(%rip), %rsi    # 0x14e571
movl $0x13, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x10(%rsp), %rax
movsd 0x30(%rax), %xmm0
movq %r13, %rdi
callq 0x46b0
leaq 0x122922(%rip), %rsi    # 0x14e585
movl $0x5, %edx
movq %rax, %rdi
callq 0x44e0
leaq 0x122914(%rip), %rsi    # 0x14e58b
movl $0x20, %edx
movq %r13, %rdi
callq 0x44e0
leaq 0x122921(%rip), %rsi    # 0x14e5ac
movl $0x4, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x1228e9(%rip), %rsi    # 0x14e5b1
movl $0x1d, %edx
movq %r13, %rdi
callq 0x44e0
leaq 0x122730(%rip), %rsi    # 0x14e40c
movl $0x1, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x1228b6(%rip), %rsi    # 0x14e5cf
movl $0x18, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x10(%rsp), %rax
movsd 0x20(%rax), %xmm0
movsd 0x28(%rax), %xmm1
ucomisd 0x121de3(%rip), %xmm0   # 0x14db20
jne 0x2bdaf
jp 0x2bdaf
ucomisd 0x121dd7(%rip), %xmm1   # 0x14db20
jne 0x2bdaf
jp 0x2bdaf
movq 0x10(%rsp), %rax
movsd 0x30(%rax), %xmm2
ucomisd 0x121dc1(%rip), %xmm2   # 0x14db20
jne 0x2bdaf
jp 0x2bdaf
movq 0x10(%rsp), %rax
movsd 0x8(%rax), %xmm1
movsd 0x10(%rax), %xmm0
ucomisd %xmm0, %xmm1
movsd 0x18(%rax), %xmm2
leaq 0x122871(%rip), %rsi    # 0x14e5f3
jne 0x2be4b
jp 0x2be4b
ucomisd %xmm2, %xmm0
jne 0x2be7c
jp 0x2be7c
movl $0xa, %edx
leaq 0x12283e(%rip), %rsi    # 0x14e5e8
jmp 0x2be81
ucomisd %xmm1, %xmm0
jne 0x2be10
jp 0x2be10
movl $0xb, %edx
leaq 0x12284a(%rip), %rsi    # 0x14e60d
jmp 0x2be81
movq (%r14), %rax
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x4710
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq 0x1691f2(%rip), %rdi    # 0x194ff0
callq 0x4040
movq %rax, %rdi
callq 0x42c0
jmp 0x2c25a
movq 0x10(%rsp), %rax
movsd 0x30(%rax), %xmm2
cmpeqpd %xmm2, %xmm0
cmpeqpd %xmm2, %xmm1
orpd %xmm0, %xmm1
movq %xmm1, %rax
leaq 0x1227d9(%rip), %rcx    # 0x14e60d
leaq 0x1227de(%rip), %rsi    # 0x14e619
testb $0x1, %al
cmovneq %rcx, %rsi
movl $0xa, %edx
subq %rax, %rdx
jmp 0x2be81
cmpeqpd %xmm2, %xmm1
cmpeqpd %xmm2, %xmm0
orpd %xmm1, %xmm0
movd %xmm0, %eax
leaq 0x12279b(%rip), %rcx    # 0x14e5ff
testb $0x1, %al
cmoveq %rcx, %rsi
notb %al
movzbl %al, %eax
andl $0x1, %eax
leaq 0xb(,%rax,2), %rdx
jmp 0x2be81
movl $0xb, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x121db0(%rip), %rsi    # 0x14dc69
movl $0x5, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x121d79(%rip), %rsi    # 0x14dc6f
movl $0x1a, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x1226f1(%rip), %rsi    # 0x14e624
movl $0xb, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x121cf9(%rip), %rsi    # 0x14dc69
movl $0x5, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x121cfe(%rip), %rsi    # 0x14dcab
movl $0x10, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x121cd2(%rip), %rsi    # 0x14dcbc
movl $0x16, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x121cac(%rip), %rsi    # 0x14dcd3
movl $0x12, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x121c82(%rip), %rsi    # 0x14dce6
movl $0x12, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
leaq 0x121c58(%rip), %rsi    # 0x14dcf9
movl $0x12, %edx
movq %r13, %rdi
callq 0x44e0
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
movb %bl, 0xf(%rsp)
movq 0x10(%rsp), %rax
movq 0x2f0(%rax), %r15
cmpq %r15, 0x2f8(%rax)
je 0x2c216
movl $0x1, %ebp
xorl %eax, %eax
leaq 0x1222f0(%rip), %r12    # 0x14e3f2
imulq $0x98, %rax, %r14
movl 0x80(%r15,%r14), %esi
movq %r13, %rbx
movq %r13, %rdi
callq 0x4750
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x44e0
addq %r14, %r15
movq 0x40(%r15), %rsi
movq 0x48(%r15), %rdx
movq %r13, %rdi
callq 0x44e0
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x44e0
movsd 0x18(%r15), %xmm0
callq 0x839b6
movq %r13, %rdi
callq 0x46b0
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x44e0
movsd 0x20(%r15), %xmm0
callq 0x839b6
movq %r13, %rdi
callq 0x46b0
movq %rax, %r13
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x44e0
movsd 0x28(%r15), %xmm0
callq 0x839b6
movq %r13, %rdi
callq 0x46b0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x4420
movsbl %al, %esi
movq %r13, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x42c0
movl %ebp, %eax
movq 0x10(%rsp), %rcx
movq 0x2f0(%rcx), %r15
movq 0x2f8(%rcx), %rcx
subq %r15, %rcx
sarq $0x3, %rcx
movabsq $-0x79435e50d79435e5, %rdx # imm = 0x86BCA1AF286BCA1B
imulq %rdx, %rcx
incl %ebp
cmpq %rax, %rcx
movq %rbx, %r13
ja 0x2c102
leaq 0x58(%rsp), %rdi
callq 0x4090
movb 0xf(%rsp), %bl
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c23f
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x4470
leaq 0x48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c25a
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x4470
leaq 0x58(%rsp), %rdi
callq 0x4110
movl %ebx, %eax
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x2c2a4
jmp 0x2c27f
movq %rax, %rbx
jmp 0x2c2bf
jmp 0x2c286
movq %rax, %rbx
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c2a4
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x4470
leaq 0x48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c2bf
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x4470
leaq 0x58(%rsp), %rdi
callq 0x4110
movq %rbx, %rdi
callq 0x4780