// File: /workspace/github_c_makefile_star2_O0/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_array_begin_out
SOAP_FMAC2
soap_array_begin_out(struct soap *soap, const char *tag, int id, const char *type, const char *offset)
{ if (!type || !*type)
    return soap_element_begin_out(soap, tag, id, NULL);
  if (soap_element(soap, tag, id, "SOAP-ENC:Array"))
    return soap->error;
  if (soap->version == 2)
  { const char *s;
    s = soap_strrchr(type, '[');
    if ((size_t)(s - type) < sizeof(soap->tmpbuf))
    { strncpy(soap->tmpbuf, type, s - type);
      soap->tmpbuf[s - type] = '\0';
      if (soap_attribute(soap, "SOAP-ENC:itemType", soap->tmpbuf))
        return soap->error;
      if (s && (soap_attribute(soap, "SOAP-ENC:arraySize", s + 1)))
        return soap->error;
    }
  }
  else
  { if (offset && soap_attribute(soap, "SOAP-ENC:offset", offset))
      return soap->error;
    if (soap_attribute(soap, "SOAP-ENC:arrayType", type))
      return soap->error;
  }
#ifndef WITH_LEAN
  if ((soap->mode & SOAP_XML_CANONICAL))
  { const char *s = strchr(type, ':');
    if (s)
      soap_utilize_ns(soap, type, s - type);
  }
#endif
  return soap_element_start_end_out(soap, NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x60a4b
movq -0x28(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x60a67
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x1c(%rbp), %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x5bbd0
movl %eax, -0x4(%rbp)
jmp 0x60c1e
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x1c(%rbp), %edx
leaq 0x18c38(%rip), %rcx     # 0x796b1
callq 0x5f8b0
cmpl $0x0, %eax
je 0x60a95
movq -0x10(%rbp), %rax
movl 0x19214(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x60c1e
movq -0x10(%rbp), %rax
movswl 0x2(%rax), %eax
cmpl $0x2, %eax
jne 0x60b71
movq -0x28(%rbp), %rdi
movl $0x5b, %esi
callq 0x3160
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
cmpq $0x400, %rax            # imm = 0x400
jae 0x60b6f
movq -0x10(%rbp), %rdi
addq $0x16538, %rdi          # imm = 0x16538
movq -0x28(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq -0x28(%rbp), %rax
subq %rax, %rdx
callq 0x3070
movq -0x10(%rbp), %rax
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rdx
subq %rdx, %rcx
movb $0x0, 0x16538(%rax,%rcx)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x16538, %rdx          # imm = 0x16538
leaq 0x19e69(%rip), %rsi     # 0x7a984
callq 0x60430
cmpl $0x0, %eax
je 0x60b37
movq -0x10(%rbp), %rax
movl 0x19214(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x60c1e
cmpq $0x0, -0x38(%rbp)
je 0x60b6d
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rdx
addq $0x1, %rdx
leaq 0x19e45(%rip), %rsi     # 0x7a996
callq 0x60430
cmpl $0x0, %eax
je 0x60b6d
movq -0x10(%rbp), %rax
movl 0x19214(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x60c1e
jmp 0x60b6f
jmp 0x60bca
cmpq $0x0, -0x30(%rbp)
je 0x60ba0
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq 0x19e22(%rip), %rsi     # 0x7a9a9
callq 0x60430
cmpl $0x0, %eax
je 0x60ba0
movq -0x10(%rbp), %rax
movl 0x19214(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x60c1e
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
leaq 0x19e0a(%rip), %rsi     # 0x7a9b9
callq 0x60430
cmpl $0x0, %eax
je 0x60bc8
movq -0x10(%rbp), %rax
movl 0x19214(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x60c1e
jmp 0x60bca
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x10000, %eax          # imm = 0x10000
cmpl $0x0, %eax
je 0x60c0e
movq -0x28(%rbp), %rdi
movl $0x3a, %esi
callq 0x3130
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
je 0x60c0c
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x28(%rbp), %rax
subq %rax, %rdx
callq 0x60570
jmp 0x60c0e
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x60640
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)