// File: /workspace/github_c_makefile_star2_O0/afi-lambda[P]a_little_smalltalk/src/filein.c
// Function: readClassDeclaration
static void readClassDeclaration()
{
    object classObj, super, vars;
    int i, size, instanceTop;
    object instanceVariables[15];

    if (nextToken() != nameconst)
        sysError("bad file format", "no name in declaration");
    classObj = findClass(tokenString);
    size = 0;
    if (nextToken() == nameconst)   /* read superclass name */
    {
        super = findClass(tokenString);
        basicAtPut(classObj, superClassInClass, super);
        size = intValue(basicAt(super, sizeInClass));
        nextToken();
    }
    if (token == nameconst)   /* read instance var names */
    {
        instanceTop = 0;
        while (token == nameconst)
        {
            instanceVariables[instanceTop++] = newSymbol(tokenString);
            size++;
            nextToken();
        }
        vars = newArray(instanceTop);
        for (i = 0; i < instanceTop; i++)
        {
            basicAtPut(vars, i+1, instanceVariables[i]);
        }
        basicAtPut(classObj, variablesInClass, vars);
    }
    basicAtPut(classObj, sizeInClass, newInteger(size));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
callq 0x8710
cmpl $0x1, %eax
je 0x8495
leaq 0x4368(%rip), %rdi      # 0xc7f1
leaq 0x4371(%rip), %rsi      # 0xc801
callq 0x63f0
leaq 0x22054(%rip), %rdi     # 0x2a4f0
callq 0x8640
movw %ax, -0x2(%rbp)
movl $0x0, -0x10(%rbp)
callq 0x8710
cmpl $0x1, %eax
jne 0x851d
leaq 0x22033(%rip), %rdi     # 0x2a4f0
callq 0x8640
movw %ax, -0x4(%rbp)
movw -0x4(%rbp), %ax
movswl -0x2(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0x7d86(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, 0x6(%rcx)
movswl %ax, %edi
callq 0x2fd0
movswl -0x4(%rbp), %eax
sarl %eax
movslq %eax, %rcx
leaq 0x7d5f(%rip), %rax      # 0x10260
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movswl 0x2(%rax), %edi
callq 0x3470
movl %eax, -0x10(%rbp)
callq 0x8710
leaq 0x2201c(%rip), %rax     # 0x2a540
cmpl $0x1, (%rax)
jne 0x85fe
movl $0x0, -0x14(%rbp)
leaq 0x22005(%rip), %rax     # 0x2a540
cmpl $0x1, (%rax)
jne 0x8571
leaq 0x21fa9(%rip), %rdi     # 0x2a4f0
callq 0x4000
movw %ax, %cx
movl -0x14(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x14(%rbp)
cltq
movw %cx, -0x40(%rbp,%rax,2)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
callq 0x8710
jmp 0x8534
movl -0x14(%rbp), %edi
callq 0x3d60
movw %ax, -0x6(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x85d3
movslq -0xc(%rbp), %rax
movw -0x40(%rbp,%rax,2), %ax
movswl -0x6(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0x7cbb(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movl -0xc(%rbp), %edx
addl $0x1, %edx
subl $0x1, %edx
movslq %edx, %rdx
movw %ax, (%rcx,%rdx,2)
movswl %ax, %edi
callq 0x2fd0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x8584
movw -0x6(%rbp), %ax
movswl -0x2(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0x7c79(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, 0x8(%rcx)
movswl %ax, %edi
callq 0x2fd0
movl -0x10(%rbp), %edi
callq 0x34a0
movswl -0x2(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0x7c4a(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, 0x2(%rcx)
movswl %ax, %edi
callq 0x2fd0
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)