// File: /workspace/github_c_makefile_star2_O0/wjmelements[P]evm/src/scan.c
// Function: scanDataSection
static void scanDataSection(const char **iter) {
    (*iter)++; // '{' or ','
    inDataSection = true;
    scanWaste(iter);

    const char *start = *iter;
    if (!isLowerCase(*start)) {
        fprintf(stderr, "Data section keys should be lowercase; instead found unexpected character %c at line %u\n", *start, lineNumber);
        exit(1);
    }
    for (char ch; isLowerCase(**iter); (*iter)++);
    const char *end = *iter;
    char next = scanWaste(iter);
    if (next != ':') {
        fprintf(stderr, "Data section expects colon after key; instead found unexpected character %c at line %u\n", next, lineNumber);
        exit(1);
    }
    (*iter)++;
    scanWaste(iter);
    if (**iter == '"') {
        // TODO parse ascii
    } else if (isHexConstantPrefix(*iter)) {
        *iter += 2;
        parseHex(iter);
    }
    scanstackPushLabel(start, end - start, CODECOPY);
    scanWaste(iter);
    if (**iter == '}') {
        inDataSection = false;
        (*iter)++;
        scanWaste(iter);
    } else if (**iter != ',') {
        fprintf(stderr, "Data section expecting ',' or '}'; instead found unexpected character %c at line %u\n", **iter, lineNumber);
        exit(1);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movb $0x1, 0x20489d3(%rip)   # 0x2060e14
movq -0x8(%rbp), %rdi
callq 0x182a0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %edi
callq 0x17e20
cmpl $0x0, %eax
jne 0x18495
movq 0x7b8b(%rip), %rax      # 0x1fff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movsbl (%rax), %edx
movl 0x204899b(%rip), %ecx   # 0x2060e18
leaq 0x3ff9(%rip), %rsi      # 0x1c47d
movb $0x0, %al
callq 0x31e0
movl $0x1, %edi
callq 0x3280
jmp 0x18497
movq -0x8(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %edi
callq 0x17e20
cmpl $0x0, %eax
je 0x184bd
jmp 0x184ad
movq -0x8(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
jmp 0x18497
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x182a0
movb %al, -0x21(%rbp)
movsbl -0x21(%rbp), %eax
cmpl $0x3a, %eax
je 0x18509
movq 0x7b14(%rip), %rax      # 0x1fff8
movq (%rax), %rdi
movsbl -0x21(%rbp), %edx
movl 0x2048927(%rip), %ecx   # 0x2060e18
leaq 0x3fde(%rip), %rsi      # 0x1c4d6
movb $0x0, %al
callq 0x31e0
movl $0x1, %edi
callq 0x3280
movq -0x8(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rdi
callq 0x182a0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0x18531
jmp 0x1855b
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x17290
cmpl $0x0, %eax
je 0x18559
movq -0x8(%rbp), %rax
movq (%rax), %rcx
addq $0x2, %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rdi
callq 0x172b0
jmp 0x1855b
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rax
subq %rax, %rsi
movl $0x39, %edx
callq 0x188d0
movq -0x8(%rbp), %rdi
callq 0x182a0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x7d, %eax
jne 0x185ac
movb $0x0, 0x2048881(%rip)   # 0x2060e14
movq -0x8(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rdi
callq 0x182a0
jmp 0x185ef
movq -0x8(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
je 0x185ed
movq 0x7a36(%rip), %rax      # 0x1fff8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %edx
movl 0x2048843(%rip), %ecx   # 0x2060e18
leaq 0x3f52(%rip), %rsi      # 0x1c52e
movb $0x0, %al
callq 0x31e0
movl $0x1, %edi
callq 0x3280
jmp 0x185ef
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)