// File: /workspace/github_c_makefile_star2_O0/afi-lambda[P]a_little_smalltalk/src/st.c
// Function: goDoIt
static void goDoIt(const char *text)
{
    object process, stack, method;

    method = newMethod();
    incr(method);
    setInstanceVariables(nilobj);
    parse(method, text, false);

    process = allocObject(processSize);
    incr(process);
    stack = allocObject(50);
    incr(stack);

    /* make a process */
    basicAtPut(process, stackInProcess, stack);
    basicAtPut(process, stackTopInProcess, newInteger(10));
    basicAtPut(process, linkPtrInProcess, newInteger(2));

    /* put argument on stack */
    basicAtPut(stack, 1, nilobj); /* argument */
    /* now make a linkage area in stack */
    basicAtPut(stack, 2, nilobj); /* previous link */
    basicAtPut(stack, 3, nilobj); /* context object (nil = stack) */
    basicAtPut(stack, 4, newInteger(1)); /* return point */
    basicAtPut(stack, 5, method); /* method */
    basicAtPut(stack, 6, newInteger(1)); /* byte offset */

    /* now go execute it */
    while (execute(process, 15000))
        fprintf(stderr, "..");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movb $0x0, %al
callq 0x4570
movw %ax, -0xe(%rbp)
movswl -0xe(%rbp), %edi
callq 0x2fd0
xorl %edi, %edi
callq 0x9150
movw -0xe(%rbp), %ax
movq -0x8(%rbp), %rsi
xorl %edx, %edx
movswl %ax, %edi
callq 0x92c0
movl $0x3, %edi
callq 0x2c10
movw %ax, -0xa(%rbp)
movswl -0xa(%rbp), %edi
callq 0x2fd0
movl $0x32, %edi
callq 0x2c10
movw %ax, -0xc(%rbp)
movswl -0xc(%rbp), %edi
callq 0x2fd0
movw -0xc(%rbp), %ax
movswl -0xa(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xdcd5(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, (%rcx)
movswl %ax, %edi
callq 0x2fd0
movl $0xa, %edi
callq 0x34a0
movswl -0xa(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xdca5(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, 0x2(%rcx)
movswl %ax, %edi
callq 0x2fd0
movl $0x2, %edi
callq 0x34a0
movswl -0xa(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xdc74(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, 0x4(%rcx)
movswl %ax, %edi
callq 0x2fd0
movswl -0xc(%rbp), %eax
sarl %eax
movslq %eax, %rcx
leaq 0xdc4d(%rip), %rax      # 0x10260
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movw $0x0, (%rax)
xorl %edi, %edi
callq 0x2fd0
movswl -0xc(%rbp), %eax
sarl %eax
movslq %eax, %rcx
leaq 0xdc26(%rip), %rax      # 0x10260
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movw $0x0, 0x2(%rax)
xorl %edi, %edi
callq 0x2fd0
movswl -0xc(%rbp), %eax
sarl %eax
movslq %eax, %rcx
leaq 0xdbfe(%rip), %rax      # 0x10260
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movw $0x0, 0x4(%rax)
xorl %edi, %edi
callq 0x2fd0
movl $0x1, %edi
callq 0x34a0
movswl -0xc(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xdbcc(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, 0x6(%rcx)
movswl %ax, %edi
callq 0x2fd0
movw -0xe(%rbp), %ax
movswl -0xc(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xdba1(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, 0x8(%rcx)
movswl %ax, %edi
callq 0x2fd0
movl $0x1, %edi
callq 0x34a0
movswl -0xc(%rbp), %ecx
sarl %ecx
movslq %ecx, %rdx
leaq 0xdb70(%rip), %rcx      # 0x10260
shlq $0x4, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rcx
movw %ax, 0xa(%rcx)
movswl %ax, %edi
callq 0x2fd0
movl $0x3a98, %esi           # imm = 0x3A98
movswl -0xa(%rbp), %edi
callq 0x4690
cmpl $0x0, %eax
je 0x2734
movq 0xc8d7(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x99a3(%rip), %rsi      # 0xc0ce
movb $0x0, %al
callq 0x2170
jmp 0x2707
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)