// File: /workspace/github_c_makefile_star2_O0/Edilbert[P]BS9/bs9.c
// Function: ParseLongData
char *ParseLongData(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 >> 24;
      ByteBuffer[l++] = v >> 16;
      ByteBuffer[l++] = v >>  8;
      ByteBuffer[l++] = v;
      p = SkipToComma(p);
      if (*p == ',') ++p;
   }
   if (l < 4)
   {
      ErrorMsg("Missing LONG data\n");
      ErrorLine(p);
      exit(1);
   }
   j = AddressIndex(pc);
   if (j >= 0 && df) fprintf(df,"LONG 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)
      {
         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 0x663a
movq 0x120(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x6647
jmp 0x6735
movq 0x120(%rsp), %rdi
leaq 0x110(%rsp), %rsi
xorl %edx, %edx
callq 0x4740
movq %rax, 0x120(%rsp)
movl 0x110(%rsp), %eax
sarl $0x18, %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
sarl $0x10, %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
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 0x6730
movq 0x120(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x120(%rsp)
jmp 0x660f
cmpl $0x4, 0x114(%rsp)
jge 0x6764
leaq 0x9e52(%rip), %rdi      # 0x10598
movb $0x0, %al
callq 0x3150
movq 0x120(%rsp), %rdi
callq 0x3040
movl $0x1, %edi
callq 0x22b0
movl 0x10faa(%rip), %edi     # 0x17714
callq 0x3a60
movl %eax, 0x118(%rsp)
cmpl $0x0, 0x118(%rsp)
jl 0x67e0
cmpq $0x0, 0x22268(%rip)     # 0x289f0
je 0x67e0
movq 0x2225f(%rip), %rdi     # 0x289f0
movslq 0x118(%rsp), %rcx
leaq 0x22280(%rip), %rax     # 0x28a20
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movslq 0x118(%rsp), %rcx
leaq 0x22267(%rip), %rax     # 0x28a20
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
movl 0x10f4a(%rip), %r8d     # 0x17714
movl 0x114(%rsp), %r9d
leaq 0x9dd2(%rip), %rsi      # 0x105ab
movb $0x0, %al
callq 0x21e0
cmpl $0x0, 0x118(%rsp)
jl 0x6853
jmp 0x67ec
movl 0x118(%rsp), %eax
cmpl 0x2221b(%rip), %eax     # 0x28a14
jge 0x6851
movslq 0x118(%rsp), %rcx
leaq 0x22216(%rip), %rax     # 0x28a20
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
cmpl 0x10efa(%rip), %eax     # 0x17714
jne 0x683c
movl 0x114(%rsp), %ecx
movslq 0x118(%rsp), %rdx
leaq 0x221ee(%rip), %rax     # 0x28a20
imulq $0x30, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x10(%rax)
jmp 0x683e
movl 0x118(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x118(%rsp)
jmp 0x67ec
jmp 0x6853
cmpl $0x0, 0x2219e(%rip)     # 0x289f8
jne 0x6942
movl $0x0, 0x11c(%rsp)
movl 0x11c(%rsp), %eax
cmpl 0x114(%rsp), %eax
jge 0x6906
movl 0x10e8f(%rip), %edi     # 0x17714
addl 0x11c(%rsp), %edi
movslq 0x11c(%rsp), %rax
movzbl 0x10(%rsp,%rax), %esi
callq 0x23f0
cmpl $0x0, 0xe8f3(%rip)      # 0x15198
je 0x68ee
cmpl $0x0, 0x11c(%rsp)
je 0x68bb
cmpl $0x2, 0x11c(%rsp)
jne 0x68ee
movq 0x22126(%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 0x9ca5(%rip), %rsi      # 0x1058c
movb $0x0, %al
callq 0x21e0
jmp 0x68f0
movl 0x11c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x11c(%rsp)
jmp 0x686b
cmpl $0x0, 0xe88b(%rip)      # 0x15198
je 0x6940
movq 0x220d2(%rip), %rdi     # 0x289e8
leaq 0xad0f(%rip), %rsi      # 0x1162c
movb $0x0, %al
callq 0x21e0
movq 0x220bd(%rip), %rdi     # 0x289e8
leaq 0x9859(%rip), %rsi      # 0x1018b
leaq 0x21547(%rip), %rdx     # 0x27e80
movb $0x0, %al
callq 0x21e0
jmp 0x6942
movl 0x114(%rsp), %eax
addl 0x10dc5(%rip), %eax     # 0x17714
movl %eax, 0x10dbf(%rip)     # 0x17714
movq 0x120(%rsp), %rax
addq $0x128, %rsp            # imm = 0x128
retq
nopw %cs:(%rax,%rax)