LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_inunsignedShort
SOAP_FMAC1
unsigned short *
SOAP_FMAC2
soap_inunsignedShort(struct soap *soap, const char *tag, unsigned short *p, const char *type, int t)
{ if (soap_element_begin_in(soap, tag, 0, NULL))
    return NULL;
#ifndef WITH_LEAN
  if (*soap->type
   && soap_match_tag(soap, soap->type, type)
   && soap_match_tag(soap, soap->type, ":unsignedShort")
   && soap_match_tag(soap, soap->type, ":unsignedByte"))
  { soap->error = SOAP_TYPE;
    soap_revert(soap);
    return NULL;
  }
#endif
  p = (unsigned short*)soap_id_enter(soap, soap->id, p, t, sizeof(unsigned short), 0, NULL, NULL, NULL);
  if (*soap->href)
    p = (unsigned short*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(unsigned short), 0, NULL);
  else if (p)
  { if (soap_s2unsignedShort(soap, soap_value(soap), p))
      return NULL;
  }
  if (soap->body && soap_element_end_in(soap, tag))
    return NULL;
  return p;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %r8d, %ebp
movq %rcx, %r13
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %rbx
xorl %r15d, %r15d
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a388
testl %eax, %eax
jne 0x45b05
cmpb $0x0, 0x17538(%rbx)
je 0x45a59
leaq 0x17538(%rbx), %r15
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x3b608
testl %eax, %eax
je 0x45a59
leaq 0xcdc0(%rip), %rdx      # 0x527ba
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x45a59
leaq 0xcd9c(%rip), %rdx      # 0x527ac
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x45a59
movl $0x4, 0x19214(%rbx)
cmpw $0x0, 0x18594(%rbx)
jne 0x45b02
movw $0x1, 0x18594(%rbx)
cmpw $0x0, 0x6106(%rbx)
je 0x45b02
decl 0x6108(%rbx)
jmp 0x45b02
leaq 0x16d38(%rbx), %rsi
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
movl $0x2, %r8d
movq %rbx, %rdi
movq %r12, %rdx
movl %ebp, %ecx
xorl %r9d, %r9d
callq 0x3ff41
movq %rax, %r15
cmpb $0x0, 0x17138(%rbx)
je 0x45ae3
leaq 0x17138(%rbx), %rsi
movq $0x0, 0x10(%rsp)
movl $0x0, 0x8(%rsp)
movq $0x2, (%rsp)
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
movl %ebp, %r8d
xorl %r9d, %r9d
callq 0x3fdf4
movq %rax, %r15
cmpw $0x0, 0x6106(%rbx)
je 0x45b05
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a563
testl %eax, %eax
jne 0x45b02
jmp 0x45b05
testq %r15, %r15
je 0x45b17
movq %rbx, %rdi
callq 0x4428f
movq %rbx, %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x45938
testl %eax, %eax
je 0x45ac8
xorl %r15d, %r15d
movq %r15, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r15d, %r15d
jmp 0x45ac8
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_s2unsignedInt
SOAP_FMAC2
soap_s2unsignedInt(struct soap *soap, const char *s, unsigned int *p)
{ if (s)
  { char *r;
#ifndef WITH_NOIO
#ifndef WITH_LEAN
    soap_reset_errno;
#endif
#endif
    *p = (unsigned int)soap_strtoul(s, &r, 10);
    if ((s == r && (soap->mode & SOAP_XML_STRICT)) || *r
#ifndef WITH_NOIO
#ifndef WITH_LEAN
     || soap_errno == SOAP_ERANGE
#endif
#endif
    )
      soap->error = SOAP_TYPE;
  }
  return soap->error;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
testq %rsi, %rsi
je 0x45c2c
movq %rdx, %r12
movq %rsi, %r15
callq 0x3060
movq %rax, %r14
movl $0x0, (%rax)
leaq 0x8(%rsp), %r13
movq %r15, %rdi
movq %r13, %rsi
movl $0xa, %edx
callq 0x3340
movl %eax, (%r12)
movq (%r13), %rax
cmpq %r15, %rax
jne 0x45c17
testb $0x10, 0x5(%rbx)
jne 0x45c22
cmpb $0x0, (%rax)
jne 0x45c22
cmpl $0x22, (%r14)
jne 0x45c2c
movl $0x4, 0x19214(%rbx)
movl 0x19214(%rbx), %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_inunsignedInt
SOAP_FMAC1
unsigned int *
SOAP_FMAC2
soap_inunsignedInt(struct soap *soap, const char *tag, unsigned int *p, const char *type, int t)
{ if (soap_element_begin_in(soap, tag, 0, NULL))
    return NULL;
#ifndef WITH_LEAN
  if (*soap->type
   && soap_match_tag(soap, soap->type, type)
   && soap_match_tag(soap, soap->type, ":unsignedInt")
   && soap_match_tag(soap, soap->type, ":unsignedShort")
   && soap_match_tag(soap, soap->type, ":unsignedByte"))
  { soap->error = SOAP_TYPE;
    soap_revert(soap);
    return NULL;
  }
#endif
  p = (unsigned int*)soap_id_enter(soap, soap->id, p, t, sizeof(unsigned int), 0, NULL, NULL, NULL);
  if (*soap->href)
    p = (unsigned int*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(unsigned int), 0, NULL);
  else if (p)
  { if (soap_s2unsignedInt(soap, soap_value(soap), p))
      return NULL;
  }
  if (soap->body && soap_element_end_in(soap, tag))
    return NULL;
  return p;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %r8d, %ebp
movq %rcx, %r13
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %rbx
xorl %r15d, %r15d
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a388
testl %eax, %eax
jne 0x45dbf
cmpb $0x0, 0x17538(%rbx)
je 0x45d13
leaq 0x17538(%rbx), %r15
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x3b608
testl %eax, %eax
je 0x45d13
leaq 0xcb2b(%rip), %rdx      # 0x527c9
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x45d13
leaq 0xcb06(%rip), %rdx      # 0x527ba
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x45d13
leaq 0xcae2(%rip), %rdx      # 0x527ac
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x45d13
movl $0x4, 0x19214(%rbx)
cmpw $0x0, 0x18594(%rbx)
jne 0x45dbc
movw $0x1, 0x18594(%rbx)
cmpw $0x0, 0x6106(%rbx)
je 0x45dbc
decl 0x6108(%rbx)
jmp 0x45dbc
leaq 0x16d38(%rbx), %rsi
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
movl $0x4, %r8d
movq %rbx, %rdi
movq %r12, %rdx
movl %ebp, %ecx
xorl %r9d, %r9d
callq 0x3ff41
movq %rax, %r15
cmpb $0x0, 0x17138(%rbx)
je 0x45d9d
leaq 0x17138(%rbx), %rsi
movq $0x0, 0x10(%rsp)
movl $0x0, 0x8(%rsp)
movq $0x4, (%rsp)
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
movl %ebp, %r8d
xorl %r9d, %r9d
callq 0x3fdf4
movq %rax, %r15
cmpw $0x0, 0x6106(%rbx)
je 0x45dbf
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a563
testl %eax, %eax
jne 0x45dbc
jmp 0x45dbf
testq %r15, %r15
je 0x45dd1
movq %rbx, %rdi
callq 0x4428f
movq %rbx, %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x45bc6
testl %eax, %eax
je 0x45d82
xorl %r15d, %r15d
movq %r15, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r15d, %r15d
jmp 0x45d82
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_outunsignedLong
SOAP_FMAC2
soap_outunsignedLong(struct soap *soap, const char *tag, int id, const unsigned long *p, const char *type, int n)
{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
   || soap_string_out(soap, soap_unsignedLong2s(soap, *p), 0))
    return soap->error;
  return soap_element_end_out(soap, tag);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r12
movq %rcx, %r15
movq %rsi, %rbx
movq %rdi, %r14
movl %edx, %esi
movq %rcx, %rdx
movl %r9d, %ecx
callq 0x3f149
movq %r14, %rdi
movq %rbx, %rsi
movl %eax, %edx
movq %r12, %rcx
callq 0x3f670
testl %eax, %eax
jne 0x45e37
movq (%r15), %rdx
leaq 0x16538(%r14), %r15
leaq 0xc9ba(%rip), %rsi      # 0x527d6
movq %r15, %rdi
xorl %eax, %eax
callq 0x3360
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x42642
testl %eax, %eax
je 0x45e4a
movl 0x19214(%r14), %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x3f6ed
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_s2unsignedLong
SOAP_FMAC2
soap_s2unsignedLong(struct soap *soap, const char *s, unsigned long *p)
{ if (s)
  { char *r;
#ifndef WITH_NOIO
#ifndef WITH_LEAN
    soap_reset_errno;
#endif
#endif
    *p = soap_strtoul(s, &r, 10);
    if ((s == r && (soap->mode & SOAP_XML_STRICT)) || *r
#ifndef WITH_NOIO
#ifndef WITH_LEAN
     || soap_errno == SOAP_ERANGE
#endif
#endif
    )
      soap->error = SOAP_TYPE;
  }
  return soap->error;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
testq %rsi, %rsi
je 0x45ec6
movq %rdx, %r12
movq %rsi, %r15
callq 0x3060
movq %rax, %r14
movl $0x0, (%rax)
leaq 0x8(%rsp), %r13
movq %r15, %rdi
movq %r13, %rsi
movl $0xa, %edx
callq 0x3340
movq %rax, (%r12)
movq (%r13), %rax
cmpq %r15, %rax
jne 0x45eb1
testb $0x10, 0x5(%rbx)
jne 0x45ebc
cmpb $0x0, (%rax)
jne 0x45ebc
cmpl $0x22, (%r14)
jne 0x45ec6
movl $0x4, 0x19214(%rbx)
movl 0x19214(%rbx), %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_inunsignedLong
SOAP_FMAC1
unsigned long *
SOAP_FMAC2
soap_inunsignedLong(struct soap *soap, const char *tag, unsigned long *p, const char *type, int t)
{ if (soap_element_begin_in(soap, tag, 0, NULL))
    return NULL;
#ifndef WITH_LEAN
  if (*soap->type
   && soap_match_tag(soap, soap->type, type)
   && soap_match_tag(soap, soap->type, ":unsignedInt")
   && soap_match_tag(soap, soap->type, ":unsignedShort")
   && soap_match_tag(soap, soap->type, ":unsignedByte"))
  { soap->error = SOAP_TYPE;
    soap_revert(soap);
    return NULL;
  }
#endif
  p = (unsigned long*)soap_id_enter(soap, soap->id, p, t, sizeof(unsigned long), 0, NULL, NULL, NULL);
  if (*soap->href)
    p = (unsigned long*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(unsigned long), 0, NULL);
  else if (p)
  { if (soap_s2unsignedLong(soap, soap_value(soap), p))
      return NULL;
  }
  if (soap->body && soap_element_end_in(soap, tag))
    return NULL;
  return p;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %r8d, %ebp
movq %rcx, %r13
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %rbx
xorl %r15d, %r15d
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a388
testl %eax, %eax
jne 0x46059
cmpb $0x0, 0x17538(%rbx)
je 0x45fad
leaq 0x17538(%rbx), %r15
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x3b608
testl %eax, %eax
je 0x45fad
leaq 0xc891(%rip), %rdx      # 0x527c9
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x45fad
leaq 0xc86c(%rip), %rdx      # 0x527ba
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x45fad
leaq 0xc848(%rip), %rdx      # 0x527ac
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x45fad
movl $0x4, 0x19214(%rbx)
cmpw $0x0, 0x18594(%rbx)
jne 0x46056
movw $0x1, 0x18594(%rbx)
cmpw $0x0, 0x6106(%rbx)
je 0x46056
decl 0x6108(%rbx)
jmp 0x46056
leaq 0x16d38(%rbx), %rsi
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
movl $0x8, %r8d
movq %rbx, %rdi
movq %r12, %rdx
movl %ebp, %ecx
xorl %r9d, %r9d
callq 0x3ff41
movq %rax, %r15
cmpb $0x0, 0x17138(%rbx)
je 0x46037
leaq 0x17138(%rbx), %rsi
movq $0x0, 0x10(%rsp)
movl $0x0, 0x8(%rsp)
movq $0x8, (%rsp)
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
movl %ebp, %r8d
xorl %r9d, %r9d
callq 0x3fdf4
movq %rax, %r15
cmpw $0x0, 0x6106(%rbx)
je 0x46059
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a563
testl %eax, %eax
jne 0x46056
jmp 0x46059
testq %r15, %r15
je 0x4606b
movq %rbx, %rdi
callq 0x4428f
movq %rbx, %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x45e60
testl %eax, %eax
je 0x4601c
xorl %r15d, %r15d
movq %r15, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r15d, %r15d
jmp 0x4601c
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_outULONG64
SOAP_FMAC2
soap_outULONG64(struct soap *soap, const char *tag, int id, const ULONG64 *p, const char *type, int n)
{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
   || soap_string_out(soap, soap_ULONG642s(soap, *p), 0))
    return soap->error;
  return soap_element_end_out(soap, tag);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r12
movq %rcx, %r15
movq %rsi, %rbx
movq %rdi, %r14
movl %edx, %esi
movq %rcx, %rdx
movl %r9d, %ecx
callq 0x3f149
movq %r14, %rdi
movq %rbx, %rsi
movl %eax, %edx
movq %r12, %rcx
callq 0x3f670
testl %eax, %eax
jne 0x460f2
movq (%r15), %rdx
leaq 0x16538(%r14), %r15
leaq 0xc6ff(%rip), %rsi      # 0x527d6
movq %r15, %rdi
xorl %eax, %eax
callq 0x3360
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x42642
testl %eax, %eax
je 0x46105
movl 0x19214(%r14), %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x3f6ed
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_s2string
SOAP_FMAC2
soap_s2string(struct soap *soap, const char *s, char **t, long minlen, long maxlen)
{ if (s)
  { long l = (long)strlen(s);
    if ((maxlen >= 0 && l > maxlen) || l < minlen)
      return soap->error = SOAP_LENGTH;
    if (!(*t = soap_strdup(soap, s)))
      return soap->error = SOAP_EOM;
    if (!(soap->mode & (SOAP_ENC_LATIN | SOAP_C_UTFSTRING)))
    { char *r = *t;
      /* remove non-ASCII chars */
      for (s = *t; *s; s++)
        if (!(*s & 0x80))
	  *r++ = *s;
      *r = '\0';
    }
  }
  return soap->error;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
testq %rsi, %rsi
je 0x463df
movq %r8, %r13
movq %rcx, %r12
movq %rdx, %r14
movq %rsi, %r15
movq %rsi, %rdi
callq 0x3110
testq %r13, %r13
setns %cl
cmpq %r13, %rax
setg %dl
andb %cl, %dl
cmpq %r12, %rax
setl %al
orb %dl, %al
cmpb $0x1, %al
jne 0x463a2
movl $0x2d, 0x19214(%rbx)
movl $0x2d, %eax
jmp 0x463e5
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3a6c4
movq %rax, (%r14)
testq %rax, %rax
je 0x463ef
testl $0x200020, 0x4(%rbx)    # imm = 0x200020
jne 0x463df
movb (%rax), %dl
testb %dl, %dl
je 0x463dc
movq %rax, %rcx
incq %rcx
testb %dl, %dl
js 0x463d3
movb %dl, (%rax)
incq %rax
movb (%rcx), %dl
incq %rcx
testb %dl, %dl
jne 0x463ca
movb $0x0, (%rax)
movl 0x19214(%rbx), %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movl $0x14, 0x19214(%rbx)
movl $0x14, %eax
jmp 0x463e5
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_wchar2s
SOAP_FMAC1
const char*
SOAP_FMAC2
soap_wchar2s(struct soap *soap, const wchar_t *s)
{ register soap_wchar c;
  register char *r, *t;
  const wchar_t *q = s;
  size_t n = 0;
  while ((c = *q++))
  { if (c > 0 && c < 0x80)
      n++;
    else
      n += 6;
  }
  r = t = (char*)soap_malloc(soap, n + 1);
  if (r)
  { /* Convert wchar to UTF8 */
    while ((c = *s++))
    { if (c > 0 && c < 0x80)
        *t++ = (char)c;
      else
      { if (c < 0x0800)
          *t++ = (char)(0xC0 | ((c >> 6) & 0x1F));
        else
        { if (c < 0x010000)
            *t++ = (char)(0xE0 | ((c >> 12) & 0x0F));
          else
          { if (c < 0x200000)
              *t++ = (char)(0xF0 | ((c >> 18) & 0x07));
            else
            { if (c < 0x04000000)
                *t++ = (char)(0xF8 | ((c >> 24) & 0x03));
              else
              { *t++ = (char)(0xFC | ((c >> 30) & 0x01));
                *t++ = (char)(0x80 | ((c >> 24) & 0x3F));
              }
              *t++ = (char)(0x80 | ((c >> 18) & 0x3F));
            }     
            *t++ = (char)(0x80 | ((c >> 12) & 0x3F));
          }
          *t++ = (char)(0x80 | ((c >> 6) & 0x3F));
        }
        *t++ = (char)(0x80 | (c & 0x3F));
      }
    }
    *t = '\0';
  }
  return r;
}

// Assembly:
pushq %rbx
movq %rsi, %rbx
movl (%rsi), %ecx
testl %ecx, %ecx
je 0x46806
leaq 0x4(%rbx), %rax
xorl %esi, %esi
xorl %edx, %edx
cmpl $0x7f, %ecx
seta %dl
leaq (%rdx,%rdx,4), %rcx
addq %rcx, %rsi
incq %rsi
movl (%rax), %ecx
addq $0x4, %rax
testl %ecx, %ecx
jne 0x467e5
incq %rsi
jmp 0x4680b
movl $0x1, %esi
callq 0x39272
testq %rax, %rax
je 0x46911
movl (%rbx), %ecx
movq %rax, %rdx
testl %ecx, %ecx
je 0x4690e
addq $0x4, %rbx
movq %rax, %rdx
cmpl $0x7f, %ecx
ja 0x4683c
movb %cl, (%rdx)
incq %rdx
jmp 0x46900
cmpl $0x800, %ecx            # imm = 0x800
jge 0x4684f
movb $-0x40, %sil
movb $0x1f, %dil
jmp 0x468e3
cmpl $0xffff, %ecx           # imm = 0xFFFF
ja 0x46868
movl %ecx, %esi
shrl $0xc, %esi
orb $-0x20, %sil
movb %sil, (%rdx)
incq %rdx
jmp 0x468dd
cmpl $0x1fffff, %ecx         # imm = 0x1FFFFF
ja 0x4687e
movl %ecx, %esi
shrl $0x12, %esi
orb $-0x10, %sil
movb %sil, (%rdx)
jmp 0x468c8
cmpl $0x3ffffff, %ecx        # imm = 0x3FFFFFF
ja 0x46895
leaq 0x1(%rdx), %rdi
movl %ecx, %esi
shrl $0x18, %esi
orb $-0x8, %sil
jmp 0x468b5
movl %ecx, %esi
shrl $0x1e, %esi
orb $-0x4, %sil
movl %ecx, %r8d
shrl $0x18, %r8d
andb $0x3f, %r8b
orb $-0x80, %r8b
leaq 0x2(%rdx), %rdi
movb %r8b, 0x1(%rdx)
movb %sil, (%rdx)
movl %ecx, %edx
shrl $0x12, %edx
andb $0x3f, %dl
orb $-0x80, %dl
movb %dl, (%rdi)
movq %rdi, %rdx
movl %ecx, %esi
shrl $0xc, %esi
andb $0x3f, %sil
orb $-0x80, %sil
movb %sil, 0x1(%rdx)
addq $0x2, %rdx
movb $-0x80, %sil
movb $0x3f, %dil
movl %ecx, %r8d
shrl $0x6, %r8d
andb %dil, %r8b
orb %sil, %r8b
movb %r8b, (%rdx)
andb $0x3f, %cl
orb $-0x80, %cl
movb %cl, 0x1(%rdx)
addq $0x2, %rdx
movl (%rbx), %ecx
addq $0x4, %rbx
testl %ecx, %ecx
jne 0x4682d
movb $0x0, (%rdx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_outstring
SOAP_FMAC2
soap_outstring(struct soap *soap, const char *tag, int id, char *const*p, const char *type, int n) 
{ id = soap_element_id(soap, tag, id, *p, NULL, 0, type, n);
  if (id < 0)
    return soap->error;
  if (!**p && (soap->mode & SOAP_C_NILSTRING))
    return soap_element_null(soap, tag, id, type);
  if (soap_element_begin_out(soap, tag, id, type)
   || soap_string_out(soap, *p, 0)
   || soap_element_end_out(soap, tag))
    return soap->error;
  return SOAP_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %r9d, %eax
movq %r8, %r12
movq %rcx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq (%rcx), %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %rax
pushq %r12
callq 0x3f4fb
addq $0x10, %rsp
testl %eax, %eax
js 0x46987
movq (%r15), %rcx
cmpb $0x0, (%rcx)
jne 0x46951
testb $-0x80, 0x6(%rbx)
jne 0x46998
movq %rbx, %rdi
movq %r14, %rsi
movl %eax, %edx
movq %r12, %rcx
callq 0x3f670
testl %eax, %eax
jne 0x46987
movq (%r15), %rsi
xorl %ebp, %ebp
movq %rbx, %rdi
xorl %edx, %edx
callq 0x42642
testl %eax, %eax
jne 0x46987
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3f6ed
testl %eax, %eax
je 0x4698d
movl 0x19214(%rbx), %ebp
movl %ebp, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
movq %r14, %rsi
movl %eax, %edx
movq %r12, %rcx
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x428e3
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_outwstring
SOAP_FMAC2
soap_outwstring(struct soap *soap, const char *tag, int id, wchar_t *const*p, const char *type, int n) 
{ id = soap_element_id(soap, tag, id, *p, NULL, 0, type, n);
  if (id < 0)
    return soap->error;
  if (!**p && (soap->mode & SOAP_C_NILSTRING))
    return soap_element_null(soap, tag, id, type);
  if (soap_element_begin_out(soap, tag, id, type)
   || soap_wstring_out(soap, *p, 0)
   || soap_element_end_out(soap, tag))
    return soap->error;
  return SOAP_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %r9d, %eax
movq %r8, %r12
movq %rcx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq (%rcx), %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %rax
pushq %r12
callq 0x3f4fb
addq $0x10, %rsp
testl %eax, %eax
js 0x46a24
movq (%r15), %rcx
cmpl $0x0, (%rcx)
jne 0x469ee
testb $-0x80, 0x6(%rbx)
jne 0x46a35
movq %rbx, %rdi
movq %r14, %rsi
movl %eax, %edx
movq %r12, %rcx
callq 0x3f670
testl %eax, %eax
jne 0x46a24
movq (%r15), %rsi
xorl %ebp, %ebp
movq %rbx, %rdi
xorl %edx, %edx
callq 0x43a52
testl %eax, %eax
jne 0x46a24
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3f6ed
testl %eax, %eax
je 0x46a2a
movl 0x19214(%rbx), %ebp
movl %ebp, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
movq %r14, %rsi
movl %eax, %edx
movq %r12, %rcx
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x428e3
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_timegm
SOAP_FMAC2
soap_timegm(struct tm *T)
{
#if defined(HAVE_TIMEGM)
  return timegm(T);
#else
  time_t t, g, z;
  struct tm tm;
  t = mktime(T);
  if (t == (time_t)-1)
    return (time_t)-1;
#ifdef HAVE_GMTIME_R
  gmtime_r(&t, &tm);
#else
  tm = *gmtime(&t);
#endif
  tm.tm_isdst = 0;
  g = mktime(&tm);
  if (g == (time_t)-1)
    return (time_t)-1;
  z = g - t;
  return t - z;
#endif
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x48, %rsp
callq 0x32d0
movq %rax, 0x8(%rsp)
movq $-0x1, %rbx
cmpq $-0x1, %rax
je 0x46c22
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %r14
movq %r14, %rsi
callq 0x3170
movl $0x0, 0x20(%r14)
movq %r14, %rdi
callq 0x32d0
cmpq $-0x1, %rax
je 0x46c22
movq 0x8(%rsp), %rbx
addq %rbx, %rbx
subq %rax, %rbx
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_outdateTime
SOAP_FMAC2
soap_outdateTime(struct soap *soap, const char *tag, int id, const time_t *p, const char *type, int n)
{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
   || soap_string_out(soap, soap_dateTime2s(soap, *p), 0))
    return soap->error;
  return soap_element_end_out(soap, tag);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r12
movq %rcx, %r15
movq %rsi, %rbx
movq %rdi, %r14
movl %edx, %esi
movq %rcx, %rdx
movl %r9d, %ecx
callq 0x3f149
movq %r14, %rdi
movq %rbx, %rsi
movl %eax, %edx
movq %r12, %rcx
callq 0x3f670
testl %eax, %eax
jne 0x46cde
movq (%r15), %rsi
movq %r14, %rdi
callq 0x46c2d
movq %r14, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x42642
testl %eax, %eax
je 0x46cf1
movl 0x19214(%r14), %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x3f6ed
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_indateTime
SOAP_FMAC1
time_t *
SOAP_FMAC2
soap_indateTime(struct soap *soap, const char *tag, time_t *p, const char *type, int t)
{ if (soap_element_begin_in(soap, tag, 0, NULL))
    return NULL;
  if (*soap->type
   && soap_match_tag(soap, soap->type, type)
   && soap_match_tag(soap, soap->type, ":dateTime"))
  { soap->error = SOAP_TYPE;
    soap_revert(soap);
    return NULL;
  }
  p = (time_t*)soap_id_enter(soap, soap->id, p, t, sizeof(time_t), 0, NULL, NULL, NULL);
  if (*soap->href)
    p = (time_t*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(time_t), 0, NULL);
  else if (p)
  { if (soap_s2dateTime(soap, soap_value(soap), p))
      return NULL;
  }
  if (soap->body && soap_element_end_in(soap, tag))
    return NULL;
  return p;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %r8d, %ebp
movq %rcx, %r13
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %rbx
xorl %r15d, %r15d
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x3a388
testl %eax, %eax
jne 0x4709d
cmpb $0x0, 0x17538(%rbx)
je 0x46ff1
leaq 0x17538(%rbx), %r15
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x3b608
testl %eax, %eax
je 0x46ff1
leaq 0xb8c5(%rip), %rdx      # 0x5286d
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b608
testl %eax, %eax
je 0x46ff1
movl $0x4, 0x19214(%rbx)
cmpw $0x0, 0x18594(%rbx)
jne 0x4709a
movw $0x1, 0x18594(%rbx)
cmpw $0x0, 0x6106(%rbx)
je 0x4709a
decl 0x6108(%rbx)
jmp 0x4709a
leaq 0x16d38(%rbx), %rsi
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
movl $0x8, %r8d
movq %rbx, %rdi
movq %r12, %rdx
movl %ebp, %ecx
xorl %r9d, %r9d
callq 0x3ff41
movq %rax, %r15
cmpb $0x0, 0x17138(%rbx)
je 0x4707b
leaq 0x17138(%rbx), %rsi
movq $0x0, 0x10(%rsp)
movl $0x0, 0x8(%rsp)
movq $0x8, (%rsp)
movq %rbx, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
movl %ebp, %r8d
xorl %r9d, %r9d
callq 0x3fdf4
movq %rax, %r15
cmpw $0x0, 0x6106(%rbx)
je 0x4709d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a563
testl %eax, %eax
jne 0x4709a
jmp 0x4709d
testq %r15, %r15
je 0x470af
movq %rbx, %rdi
callq 0x4428f
movq %rbx, %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x46d07
testl %eax, %eax
je 0x47060
xorl %r15d, %r15d
movq %r15, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r15d, %r15d
jmp 0x47060
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_outliteral
SOAP_FMAC2
soap_outliteral(struct soap *soap, const char *tag, char *const*p, const char *type)
{ int i;
  const char *t = NULL;
  if (tag && *tag != '-')
  { if (soap->local_namespaces && (t = strchr(tag, ':')))
    { strncpy(soap->tmpbuf, tag, t-tag);
      soap->tmpbuf[t-tag] = '\0';
      for (i = 0; soap->local_namespaces[i].id; i++)
        if (!strcmp(soap->tmpbuf, soap->local_namespaces[i].id))
          break;
      t++;
      if (soap_element(soap, t, 0, type)
       || soap_attribute(soap, "xmlns", soap->local_namespaces[i].ns ? soap->local_namespaces[i].ns : SOAP_STR_EOS)
       || soap_element_start_end_out(soap, NULL))
        return soap->error;
    }
    else
    { t = tag;
      if (soap_element_begin_out(soap, t, 0, type))
        return soap->error;
    }
  }
  if (p && *p)
  { if (soap_send(soap, *p))
      return soap->error;
  }
  if (t)
    return soap_element_end_out(soap, t);
  return SOAP_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rdi, %rbx
testq %rsi, %rsi
je 0x470d2
movq %rsi, %r13
cmpb $0x2d, (%rsi)
jne 0x47122
xorl %r13d, %r13d
testq %r14, %r14
je 0x47100
movq (%r14), %r14
testq %r14, %r14
je 0x47100
movq %r14, %rdi
callq 0x3110
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x379c8
testl %eax, %eax
jne 0x4720a
testq %r13, %r13
je 0x4719e
movq %rbx, %rdi
movq %r13, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3f6ed
movq %rcx, %r12
cmpq $0x0, 0x80(%rbx)
je 0x471a2
movq %r13, %rdi
movl $0x3a, %esi
callq 0x3130
testq %rax, %rax
je 0x471a2
leaq 0x16538(%rbx), %rbp
movq %rax, (%rsp)
movq %rax, %r15
subq %r13, %r15
movq %rbp, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x3070
movb $0x0, 0x16538(%rbx,%r15)
movq 0x80(%rbx), %r13
movq (%r13), %rsi
testq %rsi, %rsi
je 0x471bb
addq $0x20, %r13
xorl %r15d, %r15d
movq %rbp, %rdi
callq 0x3210
testl %eax, %eax
je 0x471be
incq %r15
movq (%r13), %rsi
addq $0x20, %r13
testq %rsi, %rsi
jne 0x47180
jmp 0x471be
xorl %eax, %eax
jmp 0x47210
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
movq %r12, %rcx
callq 0x3f670
testl %eax, %eax
jne 0x4720a
jmp 0x470d5
xorl %r15d, %r15d
movq (%rsp), %rsi
incq %rsi
movq %rbx, %rdi
movq %rsi, %r13
xorl %edx, %edx
movq %r12, %rcx
callq 0x41688
testl %eax, %eax
jne 0x4720a
movq 0x80(%rbx), %rax
shlq $0x5, %r15
movq 0x8(%rax,%r15), %rax
testq %rax, %rax
leaq 0xaf6e(%rip), %rdx      # 0x52161
cmovneq %rax, %rdx
leaq 0xb371(%rip), %rsi      # 0x5256f
movq %rbx, %rdi
callq 0x41d3f
testl %eax, %eax
je 0x4721f
movl 0x19214(%rbx), %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
xorl %esi, %esi
callq 0x41eb7
jmp 0x471b2
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_outwliteral
SOAP_FMAC2
soap_outwliteral(struct soap *soap, const char *tag, wchar_t *const*p, const char *type)
{ int i;
  const char *t = NULL;
  if (tag && *tag != '-')
  { if (soap->local_namespaces && (t = strchr(tag, ':')))
    { strncpy(soap->tmpbuf, tag, t-tag);
      soap->tmpbuf[t-tag] = '\0';
      for (i = 0; soap->local_namespaces[i].id; i++)
        if (!strcmp(soap->tmpbuf, soap->local_namespaces[i].id))
          break;
      t++;
      if (soap_element(soap, t, 0, type)
       || soap_attribute(soap, "xmlns", soap->local_namespaces[i].ns ? soap->local_namespaces[i].ns : SOAP_STR_EOS)
       || soap_element_start_end_out(soap, NULL))
        return soap->error;
    }
    else
    { t = tag;
      if (soap_element_begin_out(soap, t, 0, type))
        return soap->error;
    }
    if (soap_send(soap, soap->tmpbuf))
      return soap->error;
  }
  if (p)
  { wchar_t c;
    const wchar_t *s = *p;
    while ((c = *s++))
    { if (soap_pututf8(soap, (unsigned long)c))
        return soap->error;
    }
  }
  if (t)
    return soap_element_end_out(soap, t);
  return SOAP_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rdi, %rbx
testq %rsi, %rsi
je 0x4734f
movq %rsi, %r12
cmpb $0x2d, (%rsi)
jne 0x47399
xorl %r12d, %r12d
testq %r14, %r14
je 0x47377
movq (%r14), %r14
movslq (%r14), %rsi
testq %rsi, %rsi
je 0x47377
addq $0x4, %r14
movq %rbx, %rdi
callq 0x38c74
testl %eax, %eax
je 0x4735a
jmp 0x474a2
testq %r12, %r12
je 0x4744f
movq %rbx, %rdi
movq %r12, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3f6ed
movq %rcx, %r13
cmpq $0x0, 0x80(%rbx)
je 0x47415
movq %r12, %rdi
movl $0x3a, %esi
callq 0x3130
testq %rax, %rax
je 0x47415
leaq 0x16538(%rbx), %rbp
movq %rax, (%rsp)
movq %rax, %r15
subq %r12, %r15
movq %rbp, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x3070
movb $0x0, 0x16538(%rbx,%r15)
movq 0x80(%rbx), %r12
movq (%r12), %rsi
testq %rsi, %rsi
je 0x47453
addq $0x20, %r12
xorl %r15d, %r15d
movq %rbp, %rdi
callq 0x3210
testl %eax, %eax
je 0x47456
incq %r15
movq (%r12), %rsi
addq $0x20, %r12
testq %rsi, %rsi
jne 0x473f7
jmp 0x47456
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
movq %r13, %rcx
callq 0x3f670
testl %eax, %eax
jne 0x474a2
leaq 0x16538(%rbx), %r15
movq %r15, %rdi
callq 0x3110
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x379c8
testl %eax, %eax
jne 0x474a2
jmp 0x47352
xorl %eax, %eax
jmp 0x474a8
xorl %r15d, %r15d
movq (%rsp), %rsi
incq %rsi
movq %rbx, %rdi
movq %rsi, %r12
xorl %edx, %edx
movq %r13, %rcx
callq 0x41688
testl %eax, %eax
jne 0x474a2
movq 0x80(%rbx), %rax
shlq $0x5, %r15
movq 0x8(%rax,%r15), %rax
testq %rax, %rax
leaq 0xacd6(%rip), %rdx      # 0x52161
cmovneq %rax, %rdx
leaq 0xb0d9(%rip), %rsi      # 0x5256f
movq %rbx, %rdi
callq 0x41d3f
testl %eax, %eax
je 0x474b7
movl 0x19214(%rbx), %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
xorl %esi, %esi
callq 0x41eb7
jmp 0x47425
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_getline
SOAP_FMAC2
soap_getline(struct soap *soap, char *s, int len)
{ int i = len;
  soap_wchar c = 0;
  for (;;)
  { while (--i > 0)
    { c = soap_getchar(soap);
      if (c == '\r' || c == '\n')
        break;
      if ((int)c == EOF)
        return soap->error = SOAP_EOF;
      *s++ = (char)c;
    }
    if (c != '\n')
      c = soap_getchar(soap); /* got \r or something else, now get \n */
    if (c == '\n')
    { *s = '\0';
      if (i+1 == len) /* empty line: end of HTTP/MIME header */
        break;
      c = soap_get0(soap);
      if (c != ' ' && c != '\t') /* HTTP line continuation? */
        break;
    }
    else if ((int)c == EOF)
      return soap->error = SOAP_EOF;
    if (i < 0)
      return soap->error = SOAP_HDR;
  }
  return SOAP_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
xorl %eax, %eax
movl %edx, %r13d
xorl %r15d, %r15d
cmpl $0x2, %r13d
jl 0x47630
movl %r13d, %r12d
movq %rbx, %rdi
callq 0x38217
cmpl $-0x1, %eax
je 0x476a6
cmpl $0xa, %eax
je 0x4763c
cmpl $0xd, %eax
je 0x4763c
movb %al, (%r14)
incq %r14
decl %r12d
cmpl $0x1, %r12d
jg 0x475fb
xorl %r13d, %r13d
movl $0x1, %r12d
jmp 0x47641
movl %r13d, %r12d
leal -0x1(%r13), %ecx
movl %ecx, %r13d
jmp 0x47641
leal -0x1(%r12), %r13d
cmpl $0xa, %eax
je 0x4765a
movq %rbx, %rdi
callq 0x38217
cmpl $0xa, %eax
je 0x4765a
cmpl $-0x1, %eax
jne 0x47698
jmp 0x476a6
movb $0x0, (%r14)
cmpl %ebp, %r12d
je 0x476af
movq 0x60f0(%rbx), %rax
cmpq 0x60f8(%rbx), %rax
jb 0x47686
movq %rbx, %rdi
callq 0x38046
testl %eax, %eax
jne 0x476af
movq 0x60f0(%rbx), %rax
movzbl 0x6138(%rbx,%rax), %eax
cmpl $0x20, %eax
je 0x47698
cmpl $0x9, %eax
jne 0x476af
testl %r12d, %r12d
jg 0x475f2
movl $0x16, %eax
movl %eax, 0x19214(%rbx)
movl %eax, %r15d
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_dime_option
SOAP_FMAC1
char *
SOAP_FMAC2
soap_dime_option(struct soap *soap, unsigned short optype, const char *option)
{ size_t n;
  char *s = NULL;
  if (option)
  { n = strlen(option);
    s = (char*)soap_malloc(soap, n + 5);
    if (s)
    { s[0] = (char)(optype >> 8);
      s[1] = (char)(optype & 0xFF);
      s[2] = (char)(n >> 8);
      s[3] = (char)(n & 0xFF);
      strcpy(s + 4, option);
    }
  }
  return s;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
testq %rdx, %rdx
je 0x47719
movq %rdx, %rbx
movq %rdi, %r14
movl %esi, %r15d
movq %rdx, %rdi
callq 0x3110
movq %rax, %r12
leaq 0x5(%rax), %rsi
movq %r14, %rdi
callq 0x39272
testq %rax, %rax
je 0x47719
movq %rax, %rbp
movl %r15d, %eax
movb %ah, (%rbp)
movb %al, 0x1(%rbp)
movq %r12, %rax
movb %ah, 0x2(%rbp)
movb %al, 0x3(%rbp)
movq %rbp, %rdi
addq $0x4, %rdi
movq %rbx, %rsi
callq 0x3090
jmp 0x4771b
xorl %ebp, %ebp
movq %rbp, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_putdimehdr
SOAP_FMAC2
soap_putdimehdr(struct soap *soap)
{ unsigned char tmp[12];
  size_t optlen = 0, idlen = 0, typelen = 0;
  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Put DIME header id='%s'\n", soap->dime.id?soap->dime.id:SOAP_STR_EOS));
  if (soap->dime.options)
    optlen = (((unsigned char)soap->dime.options[2] << 8) | ((unsigned char)soap->dime.options[3])) + 4;
  if (soap->dime.id)
  { idlen = strlen(soap->dime.id);
    if (idlen > 0x0000FFFF)
      idlen = 0x0000FFFF;
  }
  if (soap->dime.type)
  { typelen = strlen(soap->dime.type);
    if (typelen > 0x0000FFFF)
      typelen = 0x0000FFFF;
  }
  tmp[0] = SOAP_DIME_VERSION | (soap->dime.flags & 0x7);
  tmp[1] = soap->dime.flags & 0xF0;
  tmp[2] = (char)(optlen >> 8);
  tmp[3] = (char)(optlen & 0xFF);
  tmp[4] = (char)(idlen >> 8);
  tmp[5] = (char)(idlen & 0xFF);
  tmp[6] = (char)(typelen >> 8);
  tmp[7] = (char)(typelen & 0xFF);
  tmp[8] = (char)(soap->dime.size >> 24);
  tmp[9] = (char)((soap->dime.size >> 16) & 0xFF);
  tmp[10] = (char)((soap->dime.size >> 8) & 0xFF);
  tmp[11] = (char)(soap->dime.size & 0xFF);
  if (soap_send_raw(soap, (char*)tmp, 12)
   || soap_putdimefield(soap, soap->dime.options, optlen)
   || soap_putdimefield(soap, soap->dime.id, idlen)
   || soap_putdimefield(soap, soap->dime.type, typelen))
    return soap->error;
  return SOAP_OK;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %r14
movq 0x19268(%rdi), %rax
testq %rax, %rax
je 0x47752
movzwl 0x2(%rax), %eax
rolw $0x8, %ax
movzwl %ax, %ebx
addq $0x4, %rbx
jmp 0x47754
xorl %ebx, %ebx
movq 0x19258(%r14), %rdi
testq %rdi, %rdi
je 0x47774
callq 0x3110
movl $0xffff, %r15d          # imm = 0xFFFF
cmpq %r15, %rax
cmovbq %rax, %r15
jmp 0x47777
xorl %r15d, %r15d
movq 0x19260(%r14), %rdi
testq %rdi, %rdi
je 0x47796
callq 0x3110
movl $0xffff, %edx           # imm = 0xFFFF
cmpq %rdx, %rax
cmovbq %rax, %rdx
jmp 0x47798
xorl %edx, %edx
movb 0x19248(%r14), %al
movl %eax, %ecx
andb $0x7, %cl
orb $0x8, %cl
leaq 0xc(%rsp), %rsi
movb %cl, (%rsi)
andb $-0x10, %al
movb %al, 0x1(%rsi)
movb %bh, 0xe(%rsp)
movb %bl, 0x3(%rsi)
movq %r15, %rax
movb %ah, 0x10(%rsp)
movb %al, 0x5(%rsi)
movb %dh, 0x12(%rsp)
movq %rdx, %r12
movb %dl, 0x7(%rsi)
movl 0x19230(%r14), %eax
bswapl %eax
movl %eax, 0x8(%rsi)
movl $0xc, %edx
movq %r14, %rdi
callq 0x379c8
testl %eax, %eax
jne 0x4782d
movq 0x19268(%r14), %rsi
movq %r14, %rdi
movq %rbx, %rdx
callq 0x47844
testl %eax, %eax
jne 0x4782d
movq 0x19258(%r14), %rsi
movq %r14, %rdi
movq %r15, %rdx
callq 0x47844
testl %eax, %eax
jne 0x4782d
movq 0x19260(%r14), %rsi
movq %r14, %rdi
movq %r12, %rdx
callq 0x47844
testl %eax, %eax
je 0x47840
movl 0x19214(%r14), %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
xorl %eax, %eax
jmp 0x47834
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_getdimefield
static char *
soap_getdimefield(struct soap *soap, size_t n)
{ register soap_wchar c;
  register size_t i;
  register char *s;
  register char *p = NULL;
  if (n)
  { p = (char*)soap_malloc(soap, n + 1);
    if (p)
    { s = p;
      for (i = n; i > 0; i--)
      { if ((int)(c = soap_get1(soap)) == EOF)
        { soap->error = SOAP_EOF;
          return NULL;
        }
        *s++ = (char)c;
      }
      *s = '\0';
      if ((soap->error = soap_move(soap, -(long)n&3)))
        return NULL;
    }
    else
      soap->error = SOAP_EOM;
  }
  return p;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
testq %rsi, %rsi
je 0x47af6
movq %rsi, %r15
movq %rdi, %rbx
incq %rsi
callq 0x39272
testq %rax, %rax
je 0x47afb
movq %rax, %r14
xorl %r12d, %r12d
movq 0x60f0(%rbx), %rax
cmpq 0x60f8(%rbx), %rax
jb 0x47aad
movq %rbx, %rdi
callq 0x38046
testl %eax, %eax
jne 0x47b02
movq 0x60f0(%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x60f0(%rbx)
movb 0x6138(%rbx,%rax), %al
movb %al, (%r14,%r12)
incq %r12
cmpq %r12, %r15
jne 0x47a8a
movb $0x0, (%r14,%r12)
negl %r15d
andl $0x3, %r15d
je 0x47af2
incq %r15
movq %rbx, %rdi
callq 0x38217
cmpl $-0x1, %eax
je 0x47b02
decq %r15
cmpq $0x2, %r15
jge 0x47adc
xorl %eax, %eax
jmp 0x47b0a
xorl %r14d, %r14d
jmp 0x47b10
movl $0x14, %eax
jmp 0x47b07
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
xorl %r14d, %r14d
movl %eax, 0x19214(%rbx)
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_set_mime_attachment
SOAP_FMAC2
soap_set_mime_attachment(struct soap *soap, char *ptr, size_t size, enum soap_mime_encoding encoding, const char *type, const char *id, const char *location, const char *description)
{ struct soap_multipart *content = soap_new_multipart(soap, &soap->mime.first, &soap->mime.last, ptr, size);
  if (!content)
    return SOAP_EOM;
  content->id = soap_strdup(soap, id);
  content->type = soap_strdup(soap, type);
  content->encoding = encoding;
  content->location = soap_strdup(soap, location);
  content->description = soap_strdup(soap, description);
  return SOAP_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r9, %r12
movq %r8, %r15
movl %ecx, %ebp
movq %rdx, %r8
movq %rsi, %rcx
movq %rdi, %rbx
leaq 0x192a0(%rdi), %rsi
leaq 0x192a8(%rdi), %rdx
callq 0x3f7e5
testq %rax, %rax
je 0x47e36
movq %rax, %r14
movq 0x40(%rsp), %r13
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3a6c4
movq %rax, 0x18(%r14)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3a6c4
movq %rax, 0x20(%r14)
movl %ebp, 0x30(%r14)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x3a6c4
movq %rax, 0x38(%r14)
movq %rbx, %rdi
movq 0x48(%rsp), %rsi
callq 0x3a6c4
movq %rax, 0x40(%r14)
xorl %eax, %eax
jmp 0x47e3b
movl $0x14, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_get_header_attribute
SOAP_FMAC1
const char*
SOAP_FMAC2
soap_get_header_attribute(struct soap *soap, const char *line, const char *key)
{ register const char *s = line;
  if (s)
  { while (*s)
    { register short flag;
      s = soap_decode_key(soap->tmpbuf, sizeof(soap->tmpbuf), s);
      flag = soap_tag_cmp(soap->tmpbuf, key);
      s = soap_decode_val(soap->tmpbuf, sizeof(soap->tmpbuf), s);
      if (!flag)
        return soap->tmpbuf;
    }
  }
  return NULL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rsi, %rsi
je 0x47ece
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %rbx
addq $0x16538, %rbx          # imm = 0x16538
leaq 0xaae8(%rip), %r15      # 0x52959
leaq 0xaae2(%rip), %r13      # 0x5295a
cmpb $0x0, (%r12)
je 0x47ece
movl $0x400, %esi            # imm = 0x400
movq %rbx, %rdi
movq %r12, %rdx
movq %r15, %rcx
callq 0x483d8
movq %rax, %r12
movq %rbx, %rdi
movq %r14, %rsi
callq 0x382f9
movl %eax, %ebp
cmpb $0x3d, (%r12)
jne 0x47ec4
incq %r12
movl $0x400, %esi            # imm = 0x400
movq %rbx, %rdi
movq %r12, %rdx
movq %r13, %rcx
callq 0x483d8
movq %rax, %r12
jmp 0x47ec7
movb $0x0, (%rbx)
testw %bp, %bp
jne 0x47e78
jmp 0x47ed0
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_match_cid
SOAP_FMAC2
soap_match_cid(struct soap *soap, const char *s, const char *t)
{ register size_t n;
  if (!s)
    return 1;
  if (!strcmp(s, t))
    return 0;
  if (!strncmp(s, "cid:", 4))
    s += 4;
  n = strlen(t);
  if (*t == '<')
  { t++;
    n -= 2;
  }
  if (!strncmp(s, t, n) && !s[n])
    return 0;
  soap_decode(soap->tmpbuf, sizeof(soap->tmpbuf), s, SOAP_STR_EOS);
  if (!strncmp(soap->tmpbuf, t, n) && !soap->tmpbuf[n])
    return 0;
  return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl $0x1, %ebx
testq %rsi, %rsi
je 0x483c7
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r14
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x3210
xorl %ebx, %ebx
testl %eax, %eax
je 0x483c7
leaq 0xa1dc(%rip), %rsi      # 0x52518
movl $0x4, %edx
movq %r12, %rdi
callq 0x3080
xorl %ecx, %ecx
testl %eax, %eax
sete %cl
leaq (%r12,%rcx,4), %r13
movq %r15, %rdi
callq 0x3110
leaq -0x2(%rax), %r12
xorl %ebp, %ebp
cmpb $0x3c, (%r15)
sete %bpl
cmovneq %rax, %r12
addq %r15, %rbp
movq %r13, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x3080
testl %eax, %eax
jne 0x4838b
cmpb $0x0, (%r13,%r12)
je 0x483c7
addq $0x16538, %r14          # imm = 0x16538
leaq 0x9dc8(%rip), %rcx      # 0x52161
movl $0x400, %esi            # imm = 0x400
movq %r14, %rdi
movq %r13, %rdx
callq 0x483d8
movq %r14, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x3080
testl %eax, %eax
jne 0x483c2
cmpb $0x0, (%r14,%r12)
je 0x483c7
movl $0x1, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_decode
static const char*
soap_decode(char *buf, size_t len, const char *val, const char *sep)
{ const char *s;
  char *t = buf;
  for (s = val; *s; s++)
    if (*s != ' ' && *s != '\t' && !strchr(sep, *s))
      break;
  if (*s == '"')
  { s++;
    while (*s && *s != '"' && --len)
      *t++ = *s++;
  }
  else
  { while (*s && !soap_blank(*s) && !strchr(sep, *s) && --len)
    { if (*s == '%')
      { *t++ = ((s[1] >= 'A' ? (s[1] & 0x7) + 9 : s[1] - '0') << 4)
              + (s[2] >= 'A' ? (s[2] & 0x7) + 9 : s[2] - '0');
        s += 3;
      }
      else
        *t++ = *s++;
    }
  }
  *t = '\0';
  while (*s && !strchr(sep, *s))
    s++;
  return s;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rcx, %r14
movq %rdx, %rbx
movq %rsi, %r12
movq %rdi, %r15
movzbl (%rbx), %ebp
cmpl $0x9, %ebp
je 0x48412
cmpl $0x20, %ebp
je 0x48412
testl %ebp, %ebp
je 0x484ba
movsbl %bpl, %esi
movq %r14, %rdi
callq 0x3130
testq %rax, %rax
je 0x48417
incq %rbx
jmp 0x483ec
cmpb $0x22, %bpl
jne 0x48448
incq %rbx
decq %r12
movzbl (%rbx), %eax
testl %eax, %eax
je 0x484ba
cmpl $0x22, %eax
je 0x484ba
subq $0x1, %r12
jb 0x484ba
movb %al, (%r15)
incq %r15
incq %rbx
jmp 0x48423
cmpb $0x21, %bpl
jb 0x484ba
decq %r12
movsbl %bpl, %esi
movq %r14, %rdi
callq 0x3130
testq %rax, %rax
jne 0x484ba
subq $0x1, %r12
jb 0x484ba
cmpb $0x25, %bpl
jne 0x484a8
movzbl 0x1(%rbx), %eax
movl %eax, %ecx
andb $0x7, %cl
addb $0x9, %cl
cmpb $0x41, %al
movzbl %cl, %ecx
cmovll %eax, %ecx
shlb $0x4, %cl
movb 0x2(%rbx), %al
movl %eax, %edx
andb $0x7, %dl
addb $0x9, %dl
leal -0x30(%rax), %esi
cmpb $0x41, %al
movzbl %sil, %eax
movzbl %dl, %ebp
cmovll %eax, %ebp
addb %cl, %bpl
addq $0x3, %rbx
jmp 0x484ab
incq %rbx
movb %bpl, (%r15)
incq %r15
movb (%rbx), %bpl
cmpb $0x21, %bpl
jae 0x48451
movb $0x0, (%r15)
movb (%rbx), %al
testb %al, %al
je 0x484dc
movsbl %al, %esi
movq %r14, %rdi
callq 0x3130
testq %rax, %rax
jne 0x484dc
movb 0x1(%rbx), %al
incq %rbx
jmp 0x484c0
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_putmimehdr
SOAP_FMAC2
soap_putmimehdr(struct soap *soap, struct soap_multipart *content)
{ const char *s;
  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "MIME attachment type=%s\n", content->type?content->type:SOAP_STR_EOS));
  if (soap_send3(soap, "\r\n--", soap->mime.boundary, "\r\n"))
    return soap->error;
  if (content->type && soap_send3(soap, "Content-Type: ", content->type, "\r\n"))
    return soap->error;
  s = soap_code_str(mime_codes, content->encoding);
  if (s && soap_send3(soap, "Content-Transfer-Encoding: ", s, "\r\n"))
    return soap->error;
  if (content->id && soap_send3(soap, "Content-ID: ", content->id, "\r\n"))
    return soap->error;
  if (content->location && soap_send3(soap, "Content-Location: ", content->location, "\r\n"))
    return soap->error;
  if (content->description && soap_send3(soap, "Content-Description: ", content->description, "\r\n"))
    return soap->error;
  return soap_send_raw(soap, "\r\n", 2);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
movq 0x19288(%rdi), %rdx
leaq 0xa3e2(%rip), %rsi      # 0x528e2
leaq 0xa01b(%rip), %rcx      # 0x52522
callq 0x37cd1
testl %eax, %eax
je 0x4851e
movl 0x19214(%rbx), %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x20(%r14), %rdx
testq %rdx, %rdx
je 0x48541
leaq 0xa3b9(%rip), %rsi      # 0x528e7
leaq 0x9fed(%rip), %rcx      # 0x52522
movq %rbx, %rdi
callq 0x37cd1
testl %eax, %eax
jne 0x48510
movl 0x30(%r14), %eax
cmpq $0x1, %rax
jne 0x48554
leaq 0x28f3e(%rip), %rsi     # 0x71490
jmp 0x4857b
leaq 0x28f35(%rip), %rdx     # 0x71490
leaq 0x28f9e(%rip), %rcx     # 0x71500
cmpq $0x0, 0x8(%rdx)
je 0x48578
leaq 0x10(%rdx), %rsi
cmpq %rax, 0x10(%rdx)
movq %rsi, %rdx
jne 0x48562
jmp 0x4857b
movq %rcx, %rsi
movq 0x8(%rsi), %rdx
testq %rdx, %rdx
je 0x485a2
leaq 0xa36b(%rip), %rsi      # 0x528f6
leaq 0x9f90(%rip), %rcx      # 0x52522
movq %rbx, %rdi
callq 0x37cd1
testl %eax, %eax
jne 0x48510
movq 0x18(%r14), %rdx
testq %rdx, %rdx
je 0x485c9
leaq 0xa360(%rip), %rsi      # 0x52912
leaq 0x9f69(%rip), %rcx      # 0x52522
movq %rbx, %rdi
callq 0x37cd1
testl %eax, %eax
jne 0x48510
movq 0x38(%r14), %rdx
testq %rdx, %rdx
je 0x485f0
leaq 0xa346(%rip), %rsi      # 0x5291f
leaq 0x9f42(%rip), %rcx      # 0x52522
movq %rbx, %rdi
callq 0x37cd1
testl %eax, %eax
jne 0x48510
movq 0x40(%r14), %rdx
testq %rdx, %rdx
je 0x48617
leaq 0xa332(%rip), %rsi      # 0x52932
leaq 0x9f1b(%rip), %rcx      # 0x52522
movq %rbx, %rdi
callq 0x37cd1
testl %eax, %eax
jne 0x48510
leaq 0x9f04(%rip), %rsi      # 0x52522
movl $0x2, %edx
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x379c8
// File: /workspace/github_c_makefile_star2_O3/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_set_mime
SOAP_FMAC2
soap_set_mime(struct soap *soap, const char *boundary, const char *start)
{ soap->omode |= SOAP_ENC_MIME;
  soap->mime.first = NULL;
  soap->mime.last = NULL;
  soap->mime.boundary = soap_strdup(soap, boundary);
  soap->mime.start = soap_strdup(soap, start);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
orb $0x1, 0xd(%rdi)
movq %rdx, %r14
xorps %xmm0, %xmm0
movups %xmm0, 0x192a0(%rdi)
callq 0x3a6c4
movq %rax, 0x19288(%rbx)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a6c4
movq %rax, 0x19290(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq