// File: /workspace/github_c_makefile_star2_O0/afi-lambda[P]a_little_smalltalk/src/st.c
// Function: makeInitialImage
static void makeInitialImage()
{
    object hashTable;
    object symbolObj, symbolClass, classClass;

    /* first create the table, without class links */
    symbols = allocObject(1);
    incr(symbols);
    hashTable = allocObject(3 * 53);
    basicAtPut(symbols, 1, hashTable);

    /* next create #Symbol, Symbol and Class */
    symbolObj = newSymbol("Symbol");
    symbolClass = newClass("Symbol");
    setClass(symbolObj, symbolClass);
    classClass = newClass("Class");
    setClass(symbolClass, classClass);
    setClass(classClass, classClass);

    /* now fix up classes for symbol table */
    /* and make a couple common classes, just to hold their places */
    newClass("Link");
    newClass("ByteArray");
    setClass(hashTable, newClass("Array"));
    setClass(symbols, newClass("Dictionary"));
    setClass(nilobj, newClass("UndefinedObject"));
    newClass("String");
    nameTableInsert(symbols, strHash("symbols"), newSymbol("symbols"), symbols);

    /* finally at least make true and false to be distinct */
    trueobj = newSymbol("true");
    nameTableInsert(symbols, strHash("true"), trueobj, trueobj);
    falseobj = newSymbol("false");
    nameTableInsert(symbols, strHash("false"), falseobj, falseobj);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x1, %edi
callq 0x2c10
movw %ax, %cx
leaq 0x27158(%rip), %rax     # 0x298b4
movw %cx, (%rax)
leaq 0x2714e(%rip), %rax     # 0x298b4
movswl (%rax), %edi
callq 0x2fd0
movl $0x9f, %edi
callq 0x2c10
movw %ax, -0x2(%rbp)
movw -0x2(%rbp), %ax
leaq 0x2712d(%rip), %rcx     # 0x298b4
movswl (%rcx), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xdaca(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, (%rcx)
movswl %ax, %edi
callq 0x2fd0
leaq 0x991e(%rip), %rdi      # 0xc0d1
callq 0x4000
movw %ax, -0x4(%rbp)
leaq 0x990e(%rip), %rdi      # 0xc0d1
callq 0x3f30
movw %ax, -0x6(%rbp)
movw -0x6(%rbp), %ax
movswl -0x4(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xda80(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movw %ax, (%rcx)
movswl %ax, %edi
callq 0x2fd0
leaq 0x98df(%rip), %rdi      # 0xc0d8
callq 0x3f30
movw %ax, -0x8(%rbp)
movw -0x8(%rbp), %ax
movswl -0x6(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xda4a(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movw %ax, (%rcx)
movswl %ax, %edi
callq 0x2fd0
movw -0x8(%rbp), %ax
movswl -0x8(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xda24(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movw %ax, (%rcx)
movswl %ax, %edi
callq 0x2fd0
leaq 0x9889(%rip), %rdi      # 0xc0de
callq 0x3f30
leaq 0x9882(%rip), %rdi      # 0xc0e3
callq 0x3f30
leaq 0x987a(%rip), %rdi      # 0xc0e7
callq 0x3f30
movswl -0x2(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xd9de(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movw %ax, (%rcx)
movswl %ax, %edi
callq 0x2fd0
leaq 0x9852(%rip), %rdi      # 0xc0ed
callq 0x3f30
leaq 0x2700d(%rip), %rcx     # 0x298b4
movswl (%rcx), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xd9aa(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movw %ax, (%rcx)
movswl %ax, %edi
callq 0x2fd0
leaq 0x9829(%rip), %rdi      # 0xc0f8
callq 0x3f30
leaq 0xd985(%rip), %rcx      # 0x10260
movw %ax, (%rcx)
movswl %ax, %edi
callq 0x2fd0
leaq 0x9962(%rip), %rdi      # 0xc24f
callq 0x3f30
leaq 0x26fbb(%rip), %rax     # 0x298b4
movw (%rax), %ax
movw %ax, -0x12(%rbp)
leaq 0x9801(%rip), %rdi      # 0xc108
callq 0x3960
movl %eax, -0x10(%rbp)
leaq 0x97f2(%rip), %rdi      # 0xc108
callq 0x4000
movw -0x12(%rbp), %dx
movl -0x10(%rbp), %esi
movw %ax, %cx
leaq 0x26f88(%rip), %rax     # 0x298b4
movswl %dx, %edi
movswl %cx, %edx
movswl (%rax), %ecx
callq 0x34d0
leaq 0x97cf(%rip), %rdi      # 0xc110
callq 0x4000
movw %ax, %cx
leaq 0x276a2(%rip), %rax     # 0x29ff2
movw %cx, (%rax)
leaq 0x26f5a(%rip), %rax     # 0x298b4
movw (%rax), %ax
movw %ax, -0xc(%rbp)
leaq 0x97a8(%rip), %rdi      # 0xc110
callq 0x3960
movw -0xc(%rbp), %dx
movl %eax, %esi
leaq 0x27678(%rip), %rax     # 0x29ff2
movw (%rax), %cx
leaq 0x2766e(%rip), %rax     # 0x29ff2
movswl %dx, %edi
movswl %cx, %edx
movswl (%rax), %ecx
callq 0x34d0
leaq 0x977c(%rip), %rdi      # 0xc115
callq 0x4000
movw %ax, %cx
leaq 0x2764c(%rip), %rax     # 0x29ff4
movw %cx, (%rax)
leaq 0x26f02(%rip), %rax     # 0x298b4
movw (%rax), %ax
movw %ax, -0xa(%rbp)
leaq 0x9755(%rip), %rdi      # 0xc115
callq 0x3960
movw -0xa(%rbp), %dx
movl %eax, %esi
leaq 0x27622(%rip), %rax     # 0x29ff4
movw (%rax), %cx
leaq 0x27618(%rip), %rax     # 0x29ff4
movswl %dx, %edi
movswl %cx, %edx
movswl (%rax), %ecx
callq 0x34d0
addq $0x20, %rsp
popq %rbp
retq