// File: /workspace/github_c_makefile_star2_O0/liuhaotian[P]xmppsh/libstrophe/src/auth.c
// Function: handle_error
static int _handle_error(xmpp_conn_t * const conn,
			 xmpp_stanza_t * const stanza,
			 void * const userdata)
{
    xmpp_stanza_t *child;
    char *name;

    /* free old stream error if it's still there */
    if (conn->stream_error) {
	xmpp_stanza_release(conn->stream_error->stanza);
	if (conn->stream_error->text) 
	    xmpp_free(conn->ctx, conn->stream_error->text);
	xmpp_free(conn->ctx, conn->stream_error);
    }

    /* create stream error structure */
    conn->stream_error = (xmpp_stream_error_t *)xmpp_alloc(conn->ctx, sizeof(xmpp_stream_error_t));

	conn->stream_error->text = NULL;
	conn->stream_error->type = XMPP_SE_UNDEFINED_CONDITION;

    if (conn->stream_error) {
	child = xmpp_stanza_get_children(stanza);
	do {
	    char *ns = NULL;

	    if (child) {
		ns = xmpp_stanza_get_ns(child);
	    }

	    if (ns && strcmp(ns, XMPP_NS_STREAMS_IETF) == 0) {
		name = xmpp_stanza_get_name(child);
		if (strcmp(name, "text") == 0) {
		    if (conn->stream_error->text)
			xmpp_free(conn->ctx, conn->stream_error->text);
		    conn->stream_error->text = xmpp_stanza_get_text(child);
		} else if (strcmp(name, "bad-format") == 0)
		    conn->stream_error->type = XMPP_SE_BAD_FORMAT;
		else if (strcmp(name, "bad-namespace-prefix") == 0)
		    conn->stream_error->type = XMPP_SE_BAD_NS_PREFIX;
		else if (strcmp(name, "conflict") == 0)
		    conn->stream_error->type = XMPP_SE_CONFLICT;
		else if (strcmp(name, "connection-timeout") == 0)
		    conn->stream_error->type = XMPP_SE_CONN_TIMEOUT;
		else if (strcmp(name, "host-gone") == 0)
		    conn->stream_error->type = XMPP_SE_HOST_GONE;
		else if (strcmp(name, "host-unknown") == 0)
		    conn->stream_error->type = XMPP_SE_HOST_UNKNOWN;
		else if (strcmp(name, "improper-addressing") == 0)
		    conn->stream_error->type = XMPP_SE_IMPROPER_ADDR;
		else if (strcmp(name, "internal-server-error") == 0)
		    conn->stream_error->type = XMPP_SE_INTERNAL_SERVER_ERROR;
		else if (strcmp(name, "invalid-from") == 0)
		    conn->stream_error->type = XMPP_SE_INVALID_FROM;
		else if (strcmp(name, "invalid-id") == 0)
		    conn->stream_error->type = XMPP_SE_INVALID_ID;
		else if (strcmp(name, "invalid-namespace") == 0)
		    conn->stream_error->type = XMPP_SE_INVALID_NS;
		else if (strcmp(name, "invalid-xml") == 0)
		    conn->stream_error->type = XMPP_SE_INVALID_XML;
		else if (strcmp(name, "not-authorized") == 0)
		    conn->stream_error->type = XMPP_SE_NOT_AUTHORIZED;
		else if (strcmp(name, "policy-violation") == 0)
		    conn->stream_error->type = XMPP_SE_POLICY_VIOLATION;
		else if (strcmp(name, "remote-connection-failed") == 0)
		    conn->stream_error->type = XMPP_SE_REMOTE_CONN_FAILED;
		else if (strcmp(name, "resource-constraint") == 0)
		    conn->stream_error->type = XMPP_SE_RESOURCE_CONSTRAINT;
		else if (strcmp(name, "restricted-xml") == 0)
		    conn->stream_error->type = XMPP_SE_RESTRICTED_XML;
		else if (strcmp(name, "see-other-host") == 0)
		    conn->stream_error->type = XMPP_SE_SEE_OTHER_HOST;
		else if (strcmp(name, "system-shutdown") == 0)
		    conn->stream_error->type = XMPP_SE_SYSTEM_SHUTDOWN;
		else if (strcmp(name, "undefined-condition") == 0)
		    conn->stream_error->type = XMPP_SE_UNDEFINED_CONDITION;
		else if (strcmp(name, "unsupported-encoding") == 0)
		    conn->stream_error->type = XMPP_SE_UNSUPPORTED_ENCODING;
		else if (strcmp(name, "unsupported-stanza-type") == 0)
		    conn->stream_error->type = XMPP_SE_UNSUPPORTED_STANZA_TYPE;
		else if (strcmp(name, "unsupported-version") == 0)
		    conn->stream_error->type = XMPP_SE_UNSUPPORTED_VERSION;
		else if (strcmp(name, "xml-not-well-formed") == 0)
		    conn->stream_error->type = XMPP_SE_XML_NOT_WELL_FORMED;
	    }
	} while ((child = xmpp_stanza_get_next(child)));

	conn->stream_error->stanza = xmpp_stanza_clone(stanza);
    }

    return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x326d
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x11f80
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, 0x8(%rax)
je 0x3258
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x66c0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x66c0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x18, %esi
callq 0x6680
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq $0x0, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x13, (%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x3780
movq -0x10(%rbp), %rdi
callq 0x12c20
movq %rax, -0x20(%rbp)
movq $0x0, -0x30(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x32e0
movq -0x20(%rbp), %rdi
callq 0x12a80
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x374f
movq -0x30(%rbp), %rdi
leaq 0x10f97(%rip), %rsi     # 0x1428d
callq 0x22e0
cmpl $0x0, %eax
jne 0x374f
movq -0x20(%rbp), %rdi
callq 0x125d0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
leaq 0x10f95(%rip), %rsi     # 0x142b1
callq 0x22e0
cmpl $0x0, %eax
jne 0x336b
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, 0x8(%rax)
je 0x334e
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x66c0
movq -0x20(%rbp), %rdi
callq 0x12c60
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x374d
movq -0x28(%rbp), %rdi
leaq 0x10f40(%rip), %rsi     # 0x142b6
callq 0x22e0
cmpl $0x0, %eax
jne 0x3393
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x0, (%rax)
jmp 0x374b
movq -0x28(%rbp), %rdi
leaq 0x10f23(%rip), %rsi     # 0x142c1
callq 0x22e0
cmpl $0x0, %eax
jne 0x33bb
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x1, (%rax)
jmp 0x3749
movq -0x28(%rbp), %rdi
leaq 0x10f10(%rip), %rsi     # 0x142d6
callq 0x22e0
cmpl $0x0, %eax
jne 0x33e3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x2, (%rax)
jmp 0x3747
movq -0x28(%rbp), %rdi
leaq 0x10ef1(%rip), %rsi     # 0x142df
callq 0x22e0
cmpl $0x0, %eax
jne 0x340b
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x3, (%rax)
jmp 0x3745
movq -0x28(%rbp), %rdi
leaq 0x10edc(%rip), %rsi     # 0x142f2
callq 0x22e0
cmpl $0x0, %eax
jne 0x3433
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x4, (%rax)
jmp 0x3743
movq -0x28(%rbp), %rdi
leaq 0x10ebe(%rip), %rsi     # 0x142fc
callq 0x22e0
cmpl $0x0, %eax
jne 0x345b
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x5, (%rax)
jmp 0x3741
movq -0x28(%rbp), %rdi
leaq 0x10ea3(%rip), %rsi     # 0x14309
callq 0x22e0
cmpl $0x0, %eax
jne 0x3483
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x6, (%rax)
jmp 0x373f
movq -0x28(%rbp), %rdi
leaq 0x10e8f(%rip), %rsi     # 0x1431d
callq 0x22e0
cmpl $0x0, %eax
jne 0x34ab
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x7, (%rax)
jmp 0x373d
movq -0x28(%rbp), %rdi
leaq 0x10e7d(%rip), %rsi     # 0x14333
callq 0x22e0
cmpl $0x0, %eax
jne 0x34d3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x8, (%rax)
jmp 0x373b
movq -0x28(%rbp), %rdi
leaq 0x10e62(%rip), %rsi     # 0x14340
callq 0x22e0
cmpl $0x0, %eax
jne 0x34fb
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x9, (%rax)
jmp 0x3739
movq -0x28(%rbp), %rdi
leaq 0x10e45(%rip), %rsi     # 0x1434b
callq 0x22e0
cmpl $0x0, %eax
jne 0x3523
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0xa, (%rax)
jmp 0x3737
movq -0x28(%rbp), %rdi
leaq 0x10e2f(%rip), %rsi     # 0x1435d
callq 0x22e0
cmpl $0x0, %eax
jne 0x354b
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0xb, (%rax)
jmp 0x3735
movq -0x28(%rbp), %rdi
leaq 0x10e13(%rip), %rsi     # 0x14369
callq 0x22e0
cmpl $0x0, %eax
jne 0x3573
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0xc, (%rax)
jmp 0x3733
movq -0x28(%rbp), %rdi
leaq 0x10dfa(%rip), %rsi     # 0x14378
callq 0x22e0
cmpl $0x0, %eax
jne 0x359b
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0xd, (%rax)
jmp 0x3731
movq -0x28(%rbp), %rdi
leaq 0x10de3(%rip), %rsi     # 0x14389
callq 0x22e0
cmpl $0x0, %eax
jne 0x35c3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0xe, (%rax)
jmp 0x372f
movq -0x28(%rbp), %rdi
leaq 0x10dd4(%rip), %rsi     # 0x143a2
callq 0x22e0
cmpl $0x0, %eax
jne 0x35eb
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0xf, (%rax)
jmp 0x372d
movq -0x28(%rbp), %rdi
leaq 0x10dc0(%rip), %rsi     # 0x143b6
callq 0x22e0
cmpl $0x0, %eax
jne 0x3613
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x10, (%rax)
jmp 0x372b
movq -0x28(%rbp), %rdi
leaq 0x10da7(%rip), %rsi     # 0x143c5
callq 0x22e0
cmpl $0x0, %eax
jne 0x363b
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x11, (%rax)
jmp 0x3729
movq -0x28(%rbp), %rdi
leaq 0x10d8e(%rip), %rsi     # 0x143d4
callq 0x22e0
cmpl $0x0, %eax
jne 0x3663
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x12, (%rax)
jmp 0x3727
movq -0x28(%rbp), %rdi
leaq 0x10d76(%rip), %rsi     # 0x143e4
callq 0x22e0
cmpl $0x0, %eax
jne 0x368b
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x13, (%rax)
jmp 0x3725
movq -0x28(%rbp), %rdi
leaq 0x10d62(%rip), %rsi     # 0x143f8
callq 0x22e0
cmpl $0x0, %eax
jne 0x36b0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x14, (%rax)
jmp 0x3723
movq -0x28(%rbp), %rdi
leaq 0x10d52(%rip), %rsi     # 0x1440d
callq 0x22e0
cmpl $0x0, %eax
jne 0x36d5
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x15, (%rax)
jmp 0x3721
movq -0x28(%rbp), %rdi
leaq 0x10d45(%rip), %rsi     # 0x14425
callq 0x22e0
cmpl $0x0, %eax
jne 0x36fa
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x16, (%rax)
jmp 0x371f
movq -0x28(%rbp), %rdi
leaq 0x10d34(%rip), %rsi     # 0x14439
callq 0x22e0
cmpl $0x0, %eax
jne 0x371d
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x17, (%rax)
jmp 0x371f
jmp 0x3721
jmp 0x3723
jmp 0x3725
jmp 0x3727
jmp 0x3729
jmp 0x372b
jmp 0x372d
jmp 0x372f
jmp 0x3731
jmp 0x3733
jmp 0x3735
jmp 0x3737
jmp 0x3739
jmp 0x373b
jmp 0x373d
jmp 0x373f
jmp 0x3741
jmp 0x3743
jmp 0x3745
jmp 0x3747
jmp 0x3749
jmp 0x374b
jmp 0x374d
jmp 0x374f
jmp 0x3751
movq -0x20(%rbp), %rdi
callq 0x12c40
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x32c4
movq -0x10(%rbp), %rdi
callq 0x11d50
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rcx, 0x10(%rax)
movl $0x1, %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)