// File: myudelson[P]hmm-scalable/utils.cpp
// Function: readSolverInfo(_IO_FILE*, param*, int*)
void readSolverInfo(FILE *fid, struct param *param, NDAT *line_no) {
    string s;
    int c, i1, i2;
    // SolverId
    fscanf(fid,"SolverId\t%i.%i", &i1, &i2);
    param->structure = (NPAR) i1;
    param->solver    = (NPAR) i2;
    fscanf(fid,"SolverId\t%hhu.%hhu", &param->structure, &param->solver);
    c = fscanf(fid,".%hhu\n", &param->solver_setting);
    if( c<1 ) {
        fscanf(fid,"\n");
        param->solver_setting = -1;
    }
    (*line_no)++;
	// nK
    fscanf(fid,"nK\t%i\n",&param->nK);
    (*line_no)++;
    // nG
    fscanf(fid,"nG\t%i\n",&param->nG);
    (*line_no)++;
    // nS
    fscanf(fid,"nS\t%hhu\n",&param->nS);
    (*line_no)++;
    // nO
    fscanf(fid,"nO\t%hhu\n",&param->nO);
    (*line_no)++;
    // nZ
    fscanf(fid,"nZ\t%hhu\n",&param->nZ);
    (*line_no)++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5420
movq -0x8(%rbp), %rdi
leaq 0x43e5b(%rip), %rsi     # 0x4fc03
xorl %eax, %eax
leaq -0x40(%rbp), %rdx
leaq -0x44(%rbp), %rcx
callq 0x5580
jmp 0xbdb9
movb -0x40(%rbp), %cl
movq -0x10(%rbp), %rax
movb %cl, 0x3e(%rax)
movb -0x44(%rbp), %cl
movq -0x10(%rbp), %rax
movb %cl, 0x3f(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rcx
movq %rcx, %rdx
addq $0x3e, %rdx
addq $0x3f, %rcx
leaq 0x43e2b(%rip), %rsi     # 0x4fc12
xorl %eax, %eax
callq 0x5580
jmp 0xbdf0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x40, %rdx
leaq 0x43e22(%rip), %rsi     # 0x4fc25
xorl %eax, %eax
callq 0x5580
movl %eax, -0x58(%rbp)
jmp 0xbe0f
movl -0x58(%rbp), %eax
movl %eax, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jge 0xbe53
movq -0x8(%rbp), %rdi
leaq 0x43b7f(%rip), %rsi     # 0x4f9a5
xorl %eax, %eax
callq 0x5580
jmp 0xbe2f
movq -0x10(%rbp), %rax
movb $-0x1, 0x40(%rax)
jmp 0xbe53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5170
jmp 0xbf3a
movq -0x18(%rbp), %rax
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x8c0, %rdx            # imm = 0x8C0
leaq 0x43db9(%rip), %rsi     # 0x4fc2c
xorl %eax, %eax
callq 0x5580
jmp 0xbe7c
movq -0x18(%rbp), %rax
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x8bc, %rdx            # imm = 0x8BC
leaq 0x43d97(%rip), %rsi     # 0x4fc33
xorl %eax, %eax
callq 0x5580
jmp 0xbea5
movq -0x18(%rbp), %rax
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x8b8, %rdx            # imm = 0x8B8
leaq 0x43d75(%rip), %rsi     # 0x4fc3a
xorl %eax, %eax
callq 0x5580
jmp 0xbece
movq -0x18(%rbp), %rax
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x8b9, %rdx            # imm = 0x8B9
leaq 0x43d55(%rip), %rsi     # 0x4fc43
xorl %eax, %eax
callq 0x5580
jmp 0xbef7
movq -0x18(%rbp), %rax
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x8c8, %rdx            # imm = 0x8C8
leaq 0x43d35(%rip), %rsi     # 0x4fc4c
xorl %eax, %eax
callq 0x5580
jmp 0xbf20
movq -0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
leaq -0x38(%rbp), %rdi
callq 0x5170
addq $0x60, %rsp
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x5540
nopw %cs:(%rax,%rax)