// File: /workspace/github_c_makefile_star2_O2/hkshenSmart[P]ONVIF-discovery_cs/soapC.c
// Function: soap_out_wsa__EndpointReferenceType
SOAP_FMAC4 soap_out_wsa__EndpointReferenceType(struct soap *soap, const char *tag, int id, const struct wsa__EndpointReferenceType *a, const char *type)
{
	const char *soap_tmp_PortType = a->PortType ? soap_QName2s(soap, *a->PortType) : NULL;
	if (a->__anyAttribute)
		soap_set_attr(soap, "-anyAttribute", a->__anyAttribute, 1);
	if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_wsa__EndpointReferenceType), type))
		return soap->error;
	if (a->Address)
	{	if (soap_out_string(soap, "wsa:Address", -1, &a->Address, ""))
			return soap->error;
	}
	else if (soap_element_nil(soap, "wsa:Address"))
		return soap->error;
	if (soap_out_PointerTowsa__ReferencePropertiesType(soap, "wsa:ReferenceProperties", -1, &a->ReferenceProperties, ""))
		return soap->error;
	if (soap_out_PointerTowsa__ReferenceParametersType(soap, "wsa:ReferenceParameters", -1, &a->ReferenceParameters, ""))
		return soap->error;
	if (soap_out__QName(soap, "wsa:PortType", -1, (char*const*)&soap_tmp_PortType, ""))
		return soap->error;
	if (soap_out_PointerTowsa__ServiceNameType(soap, "wsa:ServiceName", -1, &a->ServiceName, ""))
		return soap->error;
	if (a->__any)
	{	int i;
		for (i = 0; i < a->__size; i++)
			soap_outliteral(soap, "-any", a->__any + i, NULL);
	}
	return soap_element_end_out(soap, tag);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r12
movq %rcx, %r15
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
movq 0x18(%rcx), %rax
testq %rax, %rax
je 0xa24f
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x1d6d0
jmp 0xa251
xorl %eax, %eax
movq %rax, (%rsp)
movq 0x38(%r15), %rdx
testq %rdx, %rdx
je 0xa270
leaq 0x1863f(%rip), %rsi     # 0x228a4
pushq $0x1
popq %rcx
movq %rbx, %rdi
callq 0x19643
pushq $0x7
popq %rcx
movq %rbx, %rdi
movl %ebp, %esi
movq %r15, %rdx
callq 0x169d2
movq %rbx, %rdi
movq %r14, %rsi
movl %eax, %edx
movq %r12, %rcx
callq 0x16e14
testl %eax, %eax
jne 0xa356
cmpq $0x0, (%r15)
je 0xa2bc
leaq 0x1868e(%rip), %rsi     # 0x22933
leaq 0x19342(%rip), %r8      # 0x235ee
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r15, %rcx
callq 0xa980
jmp 0xa2cb
leaq 0x18670(%rip), %rsi     # 0x22933
movq %rbx, %rdi
callq 0x1a0a4
testl %eax, %eax
jne 0xa356
leaq 0x8(%r15), %rcx
leaq 0x18661(%rip), %rsi     # 0x2293f
leaq 0x19309(%rip), %r8      # 0x235ee
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0xabfc
testl %eax, %eax
jne 0xa356
leaq 0x10(%r15), %rcx
leaq 0x18658(%rip), %rsi     # 0x22957
leaq 0x192e8(%rip), %r8      # 0x235ee
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0xab9d
testl %eax, %eax
jne 0xa356
leaq 0x18653(%rip), %rsi     # 0x2296f
leaq 0x192cb(%rip), %r8      # 0x235ee
pushq $-0x1
popq %rdx
movq %rsp, %rcx
movq %rbx, %rdi
callq 0xbc7f
testl %eax, %eax
jne 0xa356
leaq 0x20(%r15), %rcx
leaq 0x1863c(%rip), %rsi     # 0x2297c
leaq 0x192a7(%rip), %r8      # 0x235ee
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0xaaf2
testl %eax, %eax
je 0xa36b
movl 0x1f274(%rbx), %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpq $0x0, 0x30(%r15)
je 0xa3a4
xorl %r13d, %r13d
leaq 0x184d7(%rip), %r12     # 0x22853
xorl %ebp, %ebp
movslq 0x28(%r15), %rax
cmpq %rax, %rbp
jge 0xa3a4
movq 0x30(%r15), %rdx
addq %r13, %rdx
movq %rbx, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x1e29b
incq %rbp
addq $0x8, %r13
jmp 0xa37e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16e91
jmp 0xa35c