// File: /workspace/github_c_makefile_star2_O0/Edilbert[P]BS9/bs9.c
// Function: ParseWordData
char *ParseWordData(char *p)
{
   int i,j,l,v;
   unsigned char ByteBuffer[ML];

   l = 0;
   p = SkipSpace(p);
   while (*p && *p != ';') // Parse data line
   {
      p = EvalOperand(p,&v,0);
      ByteBuffer[l++] = v >> 8;
      ByteBuffer[l++] = v;
      p = SkipToComma(p);
      if (*p == ',') ++p;
   }
   if (l < 1)
   {
      ErrorMsg("Missing WORD data\n");
      ErrorLine(p);
      exit(1);
   }
   j = AddressIndex(pc);
   if (j >= 0 && df) fprintf(df,"Byte label [%s] $%4.4x $%4.4x %d bytes\n",
                   lab[j].Name,lab[j].Address,pc,l);
   if (j >= 0)
   for ( ; j < Labels ; ++j) // There may be multiple lables on this address
   {
       if (lab[j].Address == pc) lab[j].Bytes = l;
   }
   if (!Pass)
   {
      for (i=0 ; i < l ; ++i)
      {
         PutByte(pc+i,ByteBuffer[i]);
         if (ListOn && (i == 0 || i == 2))
            fprintf(lf," %2.2x%2.2x",ByteBuffer[i],ByteBuffer[i+1]);
      }
      if (ListOn)
      {
         if (l == 2) fprintf(lf,"        ");
         else        fprintf(lf,"   ");
         fprintf(lf," %s\n",Line);
      }
   }
   pc += l;

   return p;
}

// Assembly:
subq $0x128, %rsp            # imm = 0x128
movq %rdi, 0x120(%rsp)
movl $0x0, 0x114(%rsp)
movq 0x120(%rsp), %rdi
callq 0x2830
movq %rax, 0x120(%rsp)
movq 0x120(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, 0xf(%rsp)
je 0x62da
movq 0x120(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x62e7
jmp 0x638b
movq 0x120(%rsp), %rdi
leaq 0x110(%rsp), %rsi
xorl %edx, %edx
callq 0x4740
movq %rax, 0x120(%rsp)
movl 0x110(%rsp), %eax
sarl $0x8, %eax
movb %al, %cl
movl 0x114(%rsp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x114(%rsp)
cltq
movb %cl, 0x10(%rsp,%rax)
movl 0x110(%rsp), %eax
movb %al, %cl
movl 0x114(%rsp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x114(%rsp)
cltq
movb %cl, 0x10(%rsp,%rax)
movq 0x120(%rsp), %rdi
callq 0x5b50
movq %rax, 0x120(%rsp)
movq 0x120(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x6386
movq 0x120(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x120(%rsp)
jmp 0x62af
cmpl $0x1, 0x114(%rsp)
jge 0x63ba
leaq 0xa1b5(%rip), %rdi      # 0x10551
movb $0x0, %al
callq 0x3150
movq 0x120(%rsp), %rdi
callq 0x3040
movl $0x1, %edi
callq 0x22b0
movl 0x11354(%rip), %edi     # 0x17714
callq 0x3a60
movl %eax, 0x118(%rsp)
cmpl $0x0, 0x118(%rsp)
jl 0x6436
cmpq $0x0, 0x22612(%rip)     # 0x289f0
je 0x6436
movq 0x22609(%rip), %rdi     # 0x289f0
movslq 0x118(%rsp), %rcx
leaq 0x2262a(%rip), %rax     # 0x28a20
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movslq 0x118(%rsp), %rcx
leaq 0x22611(%rip), %rax     # 0x28a20
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
movl 0x112f4(%rip), %r8d     # 0x17714
movl 0x114(%rsp), %r9d
leaq 0xa135(%rip), %rsi      # 0x10564
movb $0x0, %al
callq 0x21e0
cmpl $0x0, 0x118(%rsp)
jl 0x64a9
jmp 0x6442
movl 0x118(%rsp), %eax
cmpl 0x225c5(%rip), %eax     # 0x28a14
jge 0x64a7
movslq 0x118(%rsp), %rcx
leaq 0x225c0(%rip), %rax     # 0x28a20
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
cmpl 0x112a4(%rip), %eax     # 0x17714
jne 0x6492
movl 0x114(%rsp), %ecx
movslq 0x118(%rsp), %rdx
leaq 0x22598(%rip), %rax     # 0x28a20
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x10(%rax)
jmp 0x6494
movl 0x118(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x118(%rsp)
jmp 0x6442
jmp 0x64a9
cmpl $0x0, 0x22548(%rip)     # 0x289f8
jne 0x65b9
movl $0x0, 0x11c(%rsp)
movl 0x11c(%rsp), %eax
cmpl 0x114(%rsp), %eax
jge 0x655c
movl 0x11239(%rip), %edi     # 0x17714
addl 0x11c(%rsp), %edi
movslq 0x11c(%rsp), %rax
movzbl 0x10(%rsp,%rax), %esi
callq 0x23f0
cmpl $0x0, 0xec9d(%rip)      # 0x15198
je 0x6544
cmpl $0x0, 0x11c(%rsp)
je 0x6511
cmpl $0x2, 0x11c(%rsp)
jne 0x6544
movq 0x224d0(%rip), %rdi     # 0x289e8
movslq 0x11c(%rsp), %rax
movzbl 0x10(%rsp,%rax), %edx
movl 0x11c(%rsp), %eax
addl $0x1, %eax
cltq
movzbl 0x10(%rsp,%rax), %ecx
leaq 0xa04f(%rip), %rsi      # 0x1058c
movb $0x0, %al
callq 0x21e0
jmp 0x6546
movl 0x11c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x11c(%rsp)
jmp 0x64c1
cmpl $0x0, 0xec35(%rip)      # 0x15198
je 0x65b7
cmpl $0x2, 0x114(%rsp)
jne 0x6586
movq 0x22472(%rip), %rdi     # 0x289e8
leaq 0xb0aa(%rip), %rsi      # 0x11627
movb $0x0, %al
callq 0x21e0
jmp 0x659b
movq 0x2245b(%rip), %rdi     # 0x289e8
leaq 0xb098(%rip), %rsi      # 0x1162c
movb $0x0, %al
callq 0x21e0
movq 0x22446(%rip), %rdi     # 0x289e8
leaq 0x9be2(%rip), %rsi      # 0x1018b
leaq 0x218d0(%rip), %rdx     # 0x27e80
movb $0x0, %al
callq 0x21e0
jmp 0x65b9
movl 0x114(%rsp), %eax
addl 0x1114e(%rip), %eax     # 0x17714
movl %eax, 0x11148(%rip)     # 0x17714
movq 0x120(%rsp), %rax
addq $0x128, %rsp            # imm = 0x128
retq
nopl (%rax)