// File: /workspace/github_c_makefile_star2_O0/heltilda[P]cicada/intrpt.c
// Function: readStringFromString
void readStringFromString(view *theView, ccInt stringIndex, void *sourcePtr, void *overflowMarker)
{
    member *stringMember;
    view stringView;
    linkedlist *stringLL;
    ccInt newStringSize = 0, charType = lettertype(*(char **) sourcePtr);
    
    stringMember = LL_member(theView->windowPtr->variable_ptr, stringIndex);
    stringView.windowPtr = stringMember->memberWindow;
    stringLL = &(stringMember->memberWindow->variable_ptr->mem.data);


        // the leading spaces are skipped even for a string-to-string copy
        
    while ((charType == a_space) || (charType == a_eol) || (charType == unprintable))
        {  (*(char **) sourcePtr)++;  charType = lettertype(*(char **) sourcePtr);  }
    while ((charType == a_letter) || (charType == a_number) || (charType == a_symbol))
        {  newStringSize++;  charType = lettertype(((*(char **) sourcePtr)+newStringSize));  }
    
    resizeMember(stringMember, 1, newStringSize);
    if (errCode != passed)  return;
    
    setElements(stringLL, stringMember->memberWindow->offset+1,
            stringMember->memberWindow->offset+stringLL->elementNum, *(void **) sourcePtr);
    *(char **) sourcePtr += newStringSize;
    if (newStringSize == 0)  {
        if (warningCode == passed)  ((char **) overflowMarker)[1] = *(char **) sourcePtr;
        setWarning(string_read_err, pcCodePtr-1);       }
    
    if ((**(char **) sourcePtr == 0) && (*(char **) sourcePtr < *(char **) overflowMarker))  (*(char **) sourcePtr) += 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl $0x0, -0x4c(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x17d3f(%rip), %rax     # 0x29170
movl (%rax,%rcx,4), %eax
movl %eax, -0x50(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
movl -0xc(%rbp), %esi
callq 0x9700
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
addq $0x10, %rax
movq %rax, -0x48(%rbp)
movb $0x1, %al
cmpl $0x1, -0x50(%rbp)
movb %al, -0x51(%rbp)
je 0x11490
movb $0x1, %al
cmpl $0x2, -0x50(%rbp)
movb %al, -0x51(%rbp)
je 0x11490
cmpl $0x0, -0x50(%rbp)
sete %al
movb %al, -0x51(%rbp)
movb -0x51(%rbp), %al
testb $0x1, %al
jne 0x11499
jmp 0x114c2
movq -0x18(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x17cb6(%rip), %rax     # 0x29170
movl (%rax,%rcx,4), %eax
movl %eax, -0x50(%rbp)
jmp 0x11470
jmp 0x114c4
movb $0x1, %al
cmpl $0x3, -0x50(%rbp)
movb %al, -0x52(%rbp)
je 0x114e4
movb $0x1, %al
cmpl $0x4, -0x50(%rbp)
movb %al, -0x52(%rbp)
je 0x114e4
cmpl $0x5, -0x50(%rbp)
sete %al
movb %al, -0x52(%rbp)
movb -0x52(%rbp), %al
testb $0x1, %al
jne 0x114ed
jmp 0x11516
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movslq -0x4c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x17c62(%rip), %rax     # 0x29170
movl (%rax,%rcx,4), %eax
movl %eax, -0x50(%rbp)
jmp 0x114c4
movq -0x28(%rbp), %rdi
movl -0x4c(%rbp), %edx
movl $0x1, %esi
callq 0x16ca0
leaq 0x1b222(%rip), %rax     # 0x2c750
cmpl $0x0, 0x18(%rax)
je 0x11539
jmp 0x115e4
movq -0x48(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rax
movl 0x18(%rax), %esi
addl $0x1, %esi
movq -0x28(%rbp), %rax
movq (%rax), %rax
movl 0x18(%rax), %edx
movq -0x48(%rbp), %rax
addl (%rax), %edx
movq -0x18(%rbp), %rax
movq (%rax), %rcx
callq 0x93d0
movl -0x4c(%rbp), %edx
movq -0x18(%rbp), %rax
movq (%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, (%rax)
cmpl $0x0, -0x4c(%rbp)
jne 0x115b7
leaq 0x1b1ca(%rip), %rax     # 0x2c750
cmpl $0x0, 0x20(%rax)
jne 0x1159b
movq -0x18(%rbp), %rax
movq (%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
leaq 0x1b1ae(%rip), %rax     # 0x2c750
movq 0xb8(%rax), %rsi
addq $-0x4, %rsi
movl $0x5, %edi
callq 0xf940
movq -0x18(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x115e4
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x20(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x115e4
movq -0x18(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)