// File: /workspace/github_c_makefile_star2_O0/phillbush[P]hoc/code.c
// Function: init
void
init(int c, char *v[])
{
	Name *name;
	int i;

	argc = c;
	argvstrings = emalloc(argc * sizeof *argvstrings);
	for (i = 0; i < argc; i++) {
		argvstrings[i].s = v[i];
		argvstrings[i].orig = ARGV;
	}

	/* initialize program memory */
	prog.head = emalloc(sizeof *prog.head);
	prog.head->next = NULL;
	prog.base = prog.progp = prog.head;

	/* initialize frame stack */
	frame.head = emalloc(sizeof *frame.head);
	frame.head->next = NULL;
	frame.head->prev = NULL;
	frame.next = frame.head;

	/* initialize random function */
	srand(time(NULL));

	/* initialize symbol table with keyword and builtin names */
	for (i = 0; keywords[i].s; i++)
		installglobalname(keywords[i].s, keywords[i].v);
	for (i = 0; bltins[i].s; i++) {
		name = installglobalname(bltins[i].s, BLTIN);
		name->u.bltin = i;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x4(%rbp), %eax
movl %eax, 0xfe20(%rip)      # 0x12848
movslq 0xfe19(%rip), %rax      # 0x12848
imulq $0x28, %rax, %rdi
callq 0x2860
movq %rax, 0xfe11(%rip)      # 0x12850
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl 0xfdf9(%rip), %eax      # 0x12848
jge 0x2a97
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0xfdec(%rip), %rax      # 0x12850
movslq -0x1c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movq 0xfdd6(%rip), %rax      # 0x12850
movslq -0x1c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl $0x2, 0x10(%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2a46
movl $0x18, %edi
callq 0x2860
movq %rax, 0xfdb0(%rip)      # 0x12858
movq 0xfda9(%rip), %rax      # 0x12858
movq $0x0, (%rax)
movq 0xfd9b(%rip), %rax      # 0x12858
movq %rax, 0xfda4(%rip)      # 0x12868
movq %rax, 0xfda5(%rip)      # 0x12870
movl $0x30, %edi
callq 0x2860
movq %rax, 0xfda4(%rip)      # 0x12880
movq 0xfd9d(%rip), %rax      # 0x12880
movq $0x0, 0x8(%rax)
movq 0xfd8e(%rip), %rax      # 0x12880
movq $0x0, (%rax)
movq 0xfd80(%rip), %rax      # 0x12880
movq %rax, 0xfd91(%rip)      # 0x12898
xorl %eax, %eax
movl %eax, %edi
callq 0x21e0
movl %eax, %edi
callq 0x2160
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0xd657(%rip), %rax      # 0x10180
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x2b70
movslq -0x1c(%rbp), %rcx
leaq 0xd63f(%rip), %rax      # 0x10180
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movslq -0x1c(%rbp), %rcx
leaq 0xd62a(%rip), %rax      # 0x10180
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
callq 0x2800
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2b1e
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0xd6ee(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x2bc7
movslq -0x1c(%rbp), %rcx
leaq 0xd6d6(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movl $0x106, %esi            # imm = 0x106
callq 0x2800
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x18(%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2b77
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)