// File: /workspace/github_c_makefile_star2_O0/Edilbert[P]BS9/bs9.c
// Function: ExpandMacro
int ExpandMacro(char *m)
{
   int j,an;
   char *p;
   char Macro[ML];

   j = MacroIndex(m);
   if (j < 0) return j;
   if (df) fprintf(df,"\nExpanding [%s] phase %d\n",Mac[j].Name,Pass);

   p = NextSymbol(m,Macro);
   p = SkipSpace(p);
   if (*p == '(') ++p;  // parenthesis are optional

   ExtractOpText(p);    // separate arguments from comment
   p  = OpText;
   an = ScanArguments(p,MacArgs,ArgPtr,Mac[j].Narg);

   if (an != Mac[j].Narg)
   {
      ++ErrNum;
      ErrorMsg("Wrong # of arguments in [%s] called (%d) defined (%d)\n",
            Macro,an,Mac[j].Narg);
      exit(1);
   }
   ++MacLev;
   MacPtr[MacLev] = Mac[j].Body;
   if (df) fprintf(df,"Macro Level:%d\n",MacLev);
   if (df) fprintf(df,"Macro Body :<<<%s>>>\n",Mac[j].Body);

   if (!Pass)
   {
      Mac[j].Cola = m - Line;
      PrintLine();
   }
   return j;
}

// Assembly:
subq $0x128, %rsp            # imm = 0x128
movq %rdi, 0x118(%rsp)
movq 0x118(%rsp), %rdi
callq 0x3ac0
movl %eax, 0x114(%rsp)
cmpl $0x0, 0x114(%rsp)
jge 0xca50
movl 0x114(%rsp), %eax
movl %eax, 0x124(%rsp)
jmp 0xcc84
cmpq $0x0, 0x1bf98(%rip)     # 0x289f0
je 0xca8e
movq 0x1bf8f(%rip), %rdi     # 0x289f0
movslq 0x114(%rsp), %rcx
leaq 0x79bc0(%rip), %rax     # 0x86630
shlq $0x5, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movl 0x1bf78(%rip), %ecx     # 0x289f8
leaq 0x494e(%rip), %rsi      # 0x113d5
movb $0x0, %al
callq 0x21e0
movq 0x118(%rsp), %rdi
movq %rsp, %rsi
callq 0x2c30
movq %rax, 0x108(%rsp)
movq 0x108(%rsp), %rdi
callq 0x2830
movq %rax, 0x108(%rsp)
movq 0x108(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x28, %eax
jne 0xcadf
movq 0x108(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x108(%rsp)
movq 0x108(%rsp), %rdi
callq 0x3b70
leaq 0x1b48d(%rip), %rax     # 0x27f80
movq %rax, 0x108(%rsp)
movq 0x108(%rsp), %rdi
movslq 0x114(%rsp), %rcx
leaq 0x79b1e(%rip), %rax     # 0x86630
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
leaq 0x7dc9d(%rip), %rsi     # 0x8a7c0
leaq 0x7dd96(%rip), %rdx     # 0x8a8c0
callq 0xbbc0
movl %eax, 0x110(%rsp)
movl 0x110(%rsp), %eax
movslq 0x114(%rsp), %rdx
leaq 0x79ae4(%rip), %rcx     # 0x86630
shlq $0x5, %rdx
addq %rdx, %rcx
cmpl 0x10(%rcx), %eax
je 0xcba2
movl 0x1beae(%rip), %eax     # 0x28a0c
addl $0x1, %eax
movl %eax, 0x1bea5(%rip)     # 0x28a0c
movq %rsp, %rsi
movl 0x110(%rsp), %edx
movslq 0x114(%rsp), %rcx
leaq 0x79ab0(%rip), %rax     # 0x86630
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
leaq 0x485e(%rip), %rdi      # 0x113ef
movb $0x0, %al
callq 0x3150
movl $0x1, %edi
callq 0x22b0
movl 0x7dd40(%rip), %eax     # 0x8a8e8
addl $0x1, %eax
movl %eax, 0x7dd37(%rip)     # 0x8a8e8
movslq 0x114(%rsp), %rcx
leaq 0x79a70(%rip), %rax     # 0x86630
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
movslq 0x7dd16(%rip), %rcx     # 0x8a8e8
leaq 0x7dd17(%rip), %rax     # 0x8a8f0
movq %rdx, (%rax,%rcx,8)
cmpq $0x0, 0x1be0b(%rip)     # 0x289f0
je 0xcc02
movq 0x1be02(%rip), %rdi     # 0x289f0
movl 0x7dcf4(%rip), %edx     # 0x8a8e8
leaq 0x482b(%rip), %rsi      # 0x11426
movb $0x0, %al
callq 0x21e0
cmpq $0x0, 0x1bde6(%rip)     # 0x289f0
je 0xcc3b
movq 0x1bddd(%rip), %rdi     # 0x289f0
movslq 0x114(%rsp), %rcx
leaq 0x79a0e(%rip), %rax     # 0x86630
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
leaq 0x4802(%rip), %rsi      # 0x11436
movb $0x0, %al
callq 0x21e0
cmpl $0x0, 0x1bdb6(%rip)     # 0x289f8
jne 0xcc76
movq 0x118(%rsp), %rax
leaq 0x1b22d(%rip), %rcx     # 0x27e80
subq %rcx, %rax
movl %eax, %ecx
movslq 0x114(%rsp), %rdx
leaq 0x799c9(%rip), %rax     # 0x86630
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, 0x14(%rax)
callq 0x34c0
movl 0x114(%rsp), %eax
movl %eax, 0x124(%rsp)
movl 0x124(%rsp), %eax
addq $0x128, %rsp            # imm = 0x128
retq
nopw %cs:(%rax,%rax)