// File: /workspace/github_c_makefile_star2_O0/loversmile[P]sugarcrm/sugar_stdsoap2.c
// Function: soap_free_temp
SOAP_FMAC2
soap_free_temp(struct soap *soap)
{ register struct soap_attribute *tp, *tq;
  register struct Namespace *ns;
  soap_free_ns(soap);
  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free any remaining temp blocks\n"));
  while (soap->blist)
    soap_end_block(soap, NULL);
  DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free attribute storage\n"));
  for (tp = soap->attributes; tp; tp = tq)
  { tq = tp->next;
    if (tp->value)
      SOAP_FREE(soap, tp->value);
    SOAP_FREE(soap, tp);
  }
  soap->attributes = NULL;
#ifdef WITH_FAST
  if (soap->labbuf)
    SOAP_FREE(soap, soap->labbuf);
  soap->labbuf = NULL;
  soap->lablen = 0;
  soap->labidx = 0;
#endif
  ns = soap->local_namespaces;
  if (ns)
  { for (; ns->id; ns++)
    { if (ns->out)
      { if (soap->encodingStyle == ns->out)
          soap->encodingStyle = SOAP_STR_EOS;
        SOAP_FREE(soap, ns->out);
        ns->out = NULL;
      }
      if (soap->encodingStyle == ns->ns)
        soap->encodingStyle = SOAP_STR_EOS;
    }
    SOAP_FREE(soap, soap->local_namespaces);
    soap->local_namespaces = NULL;
  }
#ifndef WITH_LEANER
  while (soap->xlist)
  { struct soap_xlist *xp = soap->xlist->next;
    SOAP_FREE(soap, soap->xlist);
    soap->xlist = xp;
  }
#endif
#ifndef WITH_NOIDREF
  soap_free_pht(soap);
  soap_free_iht(soap);
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5ad20
movq -0x8(%rbp), %rax
cmpq $0x0, 0x90(%rax)
je 0x55b32
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x54140
jmp 0x55b15
movq -0x8(%rbp), %rax
movq 0x18580(%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x55b7e
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x55b6b
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x3030
movq -0x10(%rbp), %rdi
callq 0x3030
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x55b41
movq -0x8(%rbp), %rax
movq $0x0, 0x18580(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x6120(%rax)
je 0x55bab
movq -0x8(%rbp), %rax
movq 0x6120(%rax), %rdi
callq 0x3030
movq -0x8(%rbp), %rax
movq $0x0, 0x6120(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x6128(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x6130(%rax)
movq -0x8(%rbp), %rax
movq 0x80(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x55c93
jmp 0x55bf4
movq -0x20(%rbp), %rax
cmpq $0x0, (%rax)
je 0x55c74
movq -0x20(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x55c43
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jne 0x55c2a
movq -0x8(%rbp), %rax
leaq 0x2485b(%rip), %rcx     # 0x7a481
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x3030
movq -0x20(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x55c64
movq -0x8(%rbp), %rax
leaq 0x24821(%rip), %rcx     # 0x7a481
movq %rcx, 0x38(%rax)
jmp 0x55c66
movq -0x20(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x20(%rbp)
jmp 0x55bf4
movq -0x8(%rbp), %rax
movq 0x80(%rax), %rdi
callq 0x3030
movq -0x8(%rbp), %rax
movq $0x0, 0x80(%rax)
jmp 0x55c95
movq -0x8(%rbp), %rax
cmpq $0x0, 0x192b0(%rax)
je 0x55cd6
movq -0x8(%rbp), %rax
movq 0x192b0(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x192b0(%rax), %rdi
callq 0x3030
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x192b0(%rax)
jmp 0x55c95
movq -0x8(%rbp), %rdi
callq 0x5e300
movq -0x8(%rbp), %rdi
callq 0x5e3a0
addq $0x30, %rsp
popq %rbp
retq
nop