// File: /workspace/github_c_makefile_star2_O0/heltilda[P]cicada/intrpt.c
// Function: readDataString
void readDataString(view *theView, void *sourceString, void *overflowMarker)
{
    ccInt oneLetterType, counter, rtrn, charType = lettertype(*(char **) sourceString);
    
    
        // white space in the source string is skipped over
        // (lettertype[], a_space, etc. are defined in cmpile.c(pp)/h)
    
    while ((charType == a_space) || (charType == a_eol) || (charType == unprintable))
        {  (*(char **) sourceString)++;  charType = lettertype(*(char **) sourceString);  }
    
    
        // numeric types in the destination window are parsed using readNum() (defined in cmpile.c(pp))
    
    for (counter = 1; counter <= theView->width; counter++)  {
        rtrn = readNum((char **) sourceString, &doubleRegister, NULL);
        if (rtrn != passed)  {
            if ((rtrn != underflow_err) && (rtrn != overflow_err))  rtrn = read_number_err;
            if (warningCode == passed)  ((char **) overflowMarker)[1] = *(char **) sourceString;
            setWarning(rtrn, pcCodePtr-1);
            if (rtrn == read_number_err)  return;       }
        
        oneLetterType = lettertype(*(char **) sourceString);
        while ((oneLetterType != a_symbol) && (oneLetterType != a_number) && (oneLetterType != a_letter) &&
                                                    (*(char **) sourceString < *(char **) overflowMarker))
            {  (*(char **) sourceString)++; oneLetterType = lettertype(*(char **) sourceString);  }
        saveDoubleRegister(theView->windowPtr->variable_ptr, theView->offset+counter-1);      }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x17f09(%rip), %rax     # 0x29170
movl (%rax,%rcx,4), %eax
movl %eax, -0x28(%rbp)
movb $0x1, %al
cmpl $0x1, -0x28(%rbp)
movb %al, -0x29(%rbp)
je 0x1128d
movb $0x1, %al
cmpl $0x2, -0x28(%rbp)
movb %al, -0x29(%rbp)
je 0x1128d
cmpl $0x0, -0x28(%rbp)
sete %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0x11296
jmp 0x112bf
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x17eb9(%rip), %rax     # 0x29170
movl (%rax,%rcx,4), %eax
movl %eax, -0x28(%rbp)
jmp 0x1126d
movl $0x1, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jg 0x113f8
movq -0x10(%rbp), %rdi
leaq 0x1b46f(%rip), %rsi     # 0x2c750
addq $0x70, %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0xbb10
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x1134d
cmpl $0x8, -0x24(%rbp)
je 0x1130a
cmpl $0x7, -0x24(%rbp)
je 0x1130a
movl $0x6, -0x24(%rbp)
leaq 0x1b43f(%rip), %rax     # 0x2c750
cmpl $0x0, 0x20(%rax)
jne 0x11326
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movl -0x24(%rbp), %edi
leaq 0x1b420(%rip), %rax     # 0x2c750
movq 0xb8(%rax), %rsi
addq $-0x4, %rsi
callq 0xf940
cmpl $0x6, -0x24(%rbp)
jne 0x1134b
jmp 0x113f8
jmp 0x1134d
movq -0x10(%rbp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x17e10(%rip), %rax     # 0x29170
movl (%rax,%rcx,4), %eax
movl %eax, -0x1c(%rbp)
xorl %eax, %eax
cmpl $0x5, -0x1c(%rbp)
movb %al, -0x2a(%rbp)
je 0x1139b
xorl %eax, %eax
cmpl $0x4, -0x1c(%rbp)
movb %al, -0x2a(%rbp)
je 0x1139b
xorl %eax, %eax
cmpl $0x3, -0x1c(%rbp)
movb %al, -0x2a(%rbp)
je 0x1139b
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
cmpq (%rcx), %rax
setb %al
movb %al, -0x2a(%rbp)
movb -0x2a(%rbp), %al
testb $0x1, %al
jne 0x113a4
jmp 0x113cd
movq -0x10(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x17dab(%rip), %rax     # 0x29170
movl (%rax,%rcx,4), %eax
movl %eax, -0x1c(%rbp)
jmp 0x11366
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %esi
addl -0x20(%rbp), %esi
subl $0x1, %esi
callq 0x1b940
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x112c6
addq $0x30, %rsp
popq %rbp
retq
nop