// File: /workspace/github_c_makefile_star2_O0/annoroad[P]fqtools_plus/fqtools.c
// Function: parameter
local int parameter(const char* str, void* p, const char* type){
	int len=strlen(str);
	int i=0;

	if (strcmp(type,"int")==0){
		while(i<len){
			if(isdigit(*(str+i))==0){
				return(0);
			}
			i++;
		}
		int* x=(int*)p;
		*x=(int)atoi(str);
		return(1);
	}else if (strcmp(type,"float")==0){
		int dot=0;
		while(i<len){
			if(*(str+i) == '.' && dot == 0){
				i++;
				dot++;
				continue;
			}
			if(isdigit(*(str+i))==0){
				return(0);
			}
			i++;
		}
		float* x=(float*)p;
		*x=(float)atof(str);
		return(1);
	}else if (strcmp(type,"str")==0){
		char* x=*(char**)p;
		strcpy(x,str);
		return(1);
	}else if (strcmp(type,"long")==0){
		while(i<len){
			if(isdigit(*(str+i))==0){
				return(0);
			}
			i++;
		}
		long* x=(long*)p;
		*x=atol(str);
		return(1);
	}else{
		return(0);
	}
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq %rdx, 0x38(%rsp)
movq 0x48(%rsp), %rdi
callq 0x20c0
movl %eax, 0x34(%rsp)
movl $0x0, 0x30(%rsp)
movq 0x38(%rsp), %rdi
leaq 0x3c89(%rip), %rsi      # 0xa38e
callq 0x2140
cmpl $0x0, %eax
jne 0x6786
jmp 0x6711
movl 0x30(%rsp), %eax
cmpl 0x34(%rsp), %eax
jge 0x675c
callq 0x2340
movq (%rax), %rax
movq 0x48(%rsp), %rcx
movslq 0x30(%rsp), %rdx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0x674f
movl $0x0, 0x54(%rsp)
jmp 0x6923
movl 0x30(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x6711
movq 0x40(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x48(%rsp), %rdi
callq 0x2280
movl %eax, %ecx
movq 0x28(%rsp), %rax
movl %ecx, (%rax)
movl $0x1, 0x54(%rsp)
jmp 0x6923
movq 0x38(%rsp), %rdi
leaq 0x3c52(%rip), %rsi      # 0xa3e4
callq 0x2140
cmpl $0x0, %eax
jne 0x6853
movl $0x0, 0x24(%rsp)
movl 0x30(%rsp), %eax
cmpl 0x34(%rsp), %eax
jge 0x6825
movq 0x48(%rsp), %rax
movslq 0x30(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2e, %eax
jne 0x67e4
cmpl $0x0, 0x24(%rsp)
jne 0x67e4
movl 0x30(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x30(%rsp)
movl 0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x67a8
callq 0x2340
movq (%rax), %rax
movq 0x48(%rsp), %rcx
movslq 0x30(%rsp), %rdx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0x6818
movl $0x0, 0x54(%rsp)
jmp 0x6923
movl 0x30(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x67a8
movq 0x40(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x48(%rsp), %rdi
callq 0x2090
cvtsd2ss %xmm0, %xmm0
movq 0x18(%rsp), %rax
movss %xmm0, (%rax)
movl $0x1, 0x54(%rsp)
jmp 0x6923
movq 0x38(%rsp), %rdi
leaq 0x3c03(%rip), %rsi      # 0xa462
callq 0x2140
cmpl $0x0, %eax
jne 0x6892
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x2050
movl $0x1, 0x54(%rsp)
jmp 0x6923
movq 0x38(%rsp), %rdi
leaq 0x3b16(%rip), %rsi      # 0xa3b4
callq 0x2140
cmpl $0x0, %eax
jne 0x691b
jmp 0x68aa
movl 0x30(%rsp), %eax
cmpl 0x34(%rsp), %eax
jge 0x68f2
callq 0x2340
movq (%rax), %rax
movq 0x48(%rsp), %rcx
movslq 0x30(%rsp), %rdx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0x68e5
movl $0x0, 0x54(%rsp)
jmp 0x6923
movl 0x30(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x68aa
movq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
callq 0x2230
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movl $0x1, 0x54(%rsp)
jmp 0x6923
movl $0x0, 0x54(%rsp)
movl 0x54(%rsp), %eax
addq $0x58, %rsp
retq
nopl (%rax)