// File: /workspace/github_c_makefile_star2_O0/liuhaotian[P]xmppsh/libstrophe/src/event.c
// Function: xmpp_run_once
void xmpp_run_once(xmpp_ctx_t *ctx, const unsigned long timeout)
{
    xmpp_connlist_t *connitem;
    xmpp_conn_t *conn;
    fd_set rfds, wfds;
    sock_t max = 0;
    int ret;
    struct timeval tv;
    xmpp_send_queue_t *sq, *tsq;
    int towrite;
    char buf[4096];
    uint64_t next;
    long usec;
    int tls_read_bytes = 0;

    if (ctx->loop_status == XMPP_LOOP_QUIT) return;
    ctx->loop_status = XMPP_LOOP_RUNNING;

    /* send queued data */
    connitem = ctx->connlist;
    while (connitem) {
	conn = connitem->conn;
	if (conn->state != XMPP_STATE_CONNECTED) {
	    connitem = connitem->next;
	    continue;
	}

	/* if we're running tls, there may be some remaining data waiting to
	 * be sent, so push that out */
	if (conn->tls) {
	    ret = tls_clear_pending_write(conn->tls);

	    if (ret < 0 && !tls_is_recoverable(tls_error(conn->tls))) {
		/* an error occured */
		xmpp_debug(ctx, "xmpp", "Send error occured, disconnecting.");
		conn->error = ECONNABORTED;
		conn_disconnect(conn);
	    }
	}

	/* write all data from the send queue to the socket */
	sq = conn->send_queue_head;
	while (sq) {
	    towrite = sq->len - sq->written;

	    if (conn->tls) {
		ret = tls_write(conn->tls, &sq->data[sq->written], towrite);

		if (ret < 0 && !tls_is_recoverable(tls_error(conn->tls))) {
		    /* an error occured */
		    conn->error = tls_error(conn->tls);
		    break;
		} else if (ret < towrite) {
		    /* not all data could be sent now */
		    if (ret >= 0) sq->written += ret;
		    break;
		}

	    } else {
		ret = sock_write(conn->sock, &sq->data[sq->written], towrite);

		if (ret < 0 && !sock_is_recoverable(sock_error())) {
		    /* an error occured */
		    conn->error = sock_error();
		    break;
		} else if (ret < towrite) {
		    /* not all data could be sent now */
		    if (ret >= 0) sq->written += ret;
		    break;
		}
	    }

	    /* all data for this queue item written, delete and move on */
	    xmpp_free(ctx, sq->data);
	    tsq = sq;
	    sq = sq->next;
	    xmpp_free(ctx, tsq);

	    /* pop the top item */
	    conn->send_queue_head = sq;
	    /* if we've sent everything update the tail */
	    if (!sq) conn->send_queue_tail = NULL;
	}

	/* tear down connection on error */
	if (conn->error) {
	    /* FIXME: need to tear down send queues and random other things
	     * maybe this should be abstracted */
	    xmpp_debug(ctx, "xmpp", "Send error occured, disconnecting.");
	    conn->error = ECONNABORTED;
	    conn_disconnect(conn);
	}
	
	connitem = connitem->next;
    }

    /* reset parsers if needed */
    for (connitem = ctx->connlist; connitem; connitem = connitem->next) {
	if (connitem->conn->reset_parser)
	    conn_parser_reset(connitem->conn);
    }


    /* fire any ready timed handlers, then
       make sure we don't wait past the time when timed handlers need 
       to be called */
    next = handler_fire_timed(ctx);

    usec = ((next < timeout) ? next : timeout) * 1000;
    tv.tv_sec = usec / 1000000;
    tv.tv_usec = usec % 1000000;

    FD_ZERO(&rfds); 
    FD_ZERO(&wfds);

    /* find events to watch */
    connitem = ctx->connlist;
    while (connitem) {
	conn = connitem->conn;
	
	switch (conn->state) {
	case XMPP_STATE_CONNECTING:
	    /* connect has been called and we're waiting for it to complete */
	    /* connection will give us write or error events */
	    
	    /* make sure the timeout hasn't expired */
	    if (time_elapsed(conn->timeout_stamp, time_stamp()) <= 
		conn->connect_timeout)
		FD_SET(conn->sock, &wfds);
	    else {
		conn->error = ETIMEDOUT;
		xmpp_info(ctx, "xmpp", "Connection attempt timed out.");
		conn_disconnect(conn);
	    }
	    break;
	case XMPP_STATE_CONNECTED:
	    FD_SET(conn->sock, &rfds);
	    break;
	case XMPP_STATE_DISCONNECTED:
	    /* do nothing */
	default:
	    break;
	}
	
	/* Check if there is something in the SSL buffer. */
	if (conn->tls) {
	    tls_read_bytes += tls_pending(conn->tls);
	}
	
	if (conn->sock > max) max = conn->sock;

	connitem = connitem->next;
    }

    /* check for events */
    ret = select(max + 1, &rfds,  &wfds, NULL, &tv);

    /* select errored */
    if (ret < 0) {
	if (!sock_is_recoverable(sock_error()))
	    xmpp_error(ctx, "xmpp", "event watcher internal error %d", 
		       sock_error());
	return;
    }
    
    /* no events happened */
    if (ret == 0 && tls_read_bytes == 0) return;

    /* process events */
    connitem = ctx->connlist;
    while (connitem) {
	conn = connitem->conn;

	switch (conn->state) {
	case XMPP_STATE_CONNECTING:
	    if (FD_ISSET(conn->sock, &wfds)) {
		/* connection complete */

		/* check for error */
		if (sock_connect_error(conn->sock) != 0) {
		    /* connection failed */
		    xmpp_debug(ctx, "xmpp", "connection failed");
		    conn_disconnect(conn);
		    break;
		}

		conn->state = XMPP_STATE_CONNECTED;
		xmpp_debug(ctx, "xmpp", "connection successful");

		
		/* send stream init */
		conn_open_stream(conn);
	    }

	    break;
	case XMPP_STATE_CONNECTED:
	    if (FD_ISSET(conn->sock, &rfds) || (conn->tls && tls_pending(conn->tls))) {
		if (conn->tls) {
		    ret = tls_read(conn->tls, buf, 4096);
		} else {
		    ret = sock_read(conn->sock, buf, 4096);
		}

		if (ret > 0) {
		    ret = parser_feed(conn->parser, buf, ret);
		    if (!ret) {
			/* parse error, we need to shut down */
			/* FIXME */
			xmpp_debug(ctx, "xmpp", "parse error, disconnecting");
			conn_disconnect(conn);
		    }
		} else {
		    if (conn->tls) {
			if (!tls_is_recoverable(tls_error(conn->tls)))
			{
			    xmpp_debug(ctx, "xmpp", "Unrecoverable TLS error, %d.", tls_error(conn->tls));
			    conn->error = tls_error(conn->tls);
			    conn_disconnect(conn);
			}
		    } else {
			/* return of 0 means socket closed by server */
			xmpp_debug(ctx, "xmpp", "Socket closed by remote host.");
			conn->error = ECONNRESET;
			conn_disconnect(conn);
		    }
		}
	    }

	    break;
	case XMPP_STATE_DISCONNECTED:
	    /* do nothing */
	default:
	    break;
	}

	connitem = connitem->next;
    }

    /* fire any ready handlers */
    handler_fire_timed(ctx);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x11c0, %rsp           # imm = 0x11C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x124(%rbp)
movl $0x0, -0x1164(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x2, 0x10(%rax)
jne 0x6ca6
jmp 0x75ff
movq -0x8(%rbp), %rax
movl $0x1, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x6f93
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpl $0x2, 0x14(%rax)
je 0x6ceb
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x6cbd
movq -0x20(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x6d5a
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x13550
movl %eax, -0x128(%rbp)
cmpl $0x0, -0x128(%rbp)
jge 0x6d58
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x130e0
movl %eax, %edi
callq 0x13420
cmpl $0x0, %eax
jne 0x6d58
movq -0x8(%rbp), %rdi
leaq 0xd313(%rip), %rsi      # 0x14049
leaq 0xdf23(%rip), %rdx      # 0x14c60
movb $0x0, %al
callq 0x6a80
movq -0x20(%rbp), %rax
movl $0x67, 0x20(%rax)
movq -0x20(%rbp), %rdi
callq 0x5e30
jmp 0x6d5a
movq -0x20(%rbp), %rax
movq 0xa8(%rax), %rax
movq %rax, -0x140(%rbp)
cmpq $0x0, -0x140(%rbp)
je 0x6f4b
movq -0x140(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x140(%rbp), %rcx
subq 0x10(%rcx), %rax
movl %eax, -0x14c(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x6e4a
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x140(%rbp), %rax
movq (%rax), %rsi
movq -0x140(%rbp), %rax
addq 0x10(%rax), %rsi
movslq -0x14c(%rbp), %rdx
callq 0x134f0
movl %eax, -0x128(%rbp)
cmpl $0x0, -0x128(%rbp)
jge 0x6e11
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x130e0
movl %eax, %edi
callq 0x13420
cmpl $0x0, %eax
jne 0x6e11
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x130e0
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x20(%rax)
jmp 0x6f4b
movl -0x128(%rbp), %eax
cmpl -0x14c(%rbp), %eax
jge 0x6e43
cmpl $0x0, -0x128(%rbp)
jl 0x6e3e
movslq -0x128(%rbp), %rcx
movq -0x140(%rbp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
jmp 0x6f4b
jmp 0x6e45
jmp 0x6ed8
movq -0x20(%rbp), %rax
movl 0x30(%rax), %edi
movq -0x140(%rbp), %rax
movq (%rax), %rsi
movq -0x140(%rbp), %rax
addq 0x10(%rax), %rsi
movslq -0x14c(%rbp), %rdx
callq 0x10db0
movl %eax, -0x128(%rbp)
cmpl $0x0, -0x128(%rbp)
jge 0x6ea5
callq 0x10ba0
movl %eax, %edi
callq 0x10de0
cmpl $0x0, %eax
jne 0x6ea5
callq 0x10ba0
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x20(%rax)
jmp 0x6f4b
movl -0x128(%rbp), %eax
cmpl -0x14c(%rbp), %eax
jge 0x6ed4
cmpl $0x0, -0x128(%rbp)
jl 0x6ed2
movslq -0x128(%rbp), %rcx
movq -0x140(%rbp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
jmp 0x6f4b
jmp 0x6ed6
jmp 0x6ed8
movq -0x8(%rbp), %rdi
movq -0x140(%rbp), %rax
movq (%rax), %rsi
callq 0x66c0
movq -0x140(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x140(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x140(%rbp)
movq -0x8(%rbp), %rdi
movq -0x148(%rbp), %rsi
callq 0x66c0
movq -0x140(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0xa8(%rax)
cmpq $0x0, -0x140(%rbp)
jne 0x6f46
movq -0x20(%rbp), %rax
movq $0x0, 0xb0(%rax)
jmp 0x6d6c
movq -0x20(%rbp), %rax
cmpl $0x0, 0x20(%rax)
je 0x6f82
movq -0x8(%rbp), %rdi
leaq 0xd0e9(%rip), %rsi      # 0x14049
leaq 0xdcf9(%rip), %rdx      # 0x14c60
movb $0x0, %al
callq 0x6a80
movq -0x20(%rbp), %rax
movl $0x67, 0x20(%rax)
movq -0x20(%rbp), %rdi
callq 0x5e30
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x6cbd
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x6fd2
movq -0x18(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0xb8(%rax)
je 0x6fc2
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x5ee0
jmp 0x6fc4
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x6f9f
movq -0x8(%rbp), %rdi
callq 0x7a60
movq %rax, -0x1158(%rbp)
movq -0x1158(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x6fff
movq -0x1158(%rbp), %rax
movq %rax, -0x1188(%rbp)
jmp 0x700a
movq -0x10(%rbp), %rax
movq %rax, -0x1188(%rbp)
movq -0x1188(%rbp), %rax
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
movq %rax, -0x1160(%rbp)
movq -0x1160(%rbp), %rax
movl $0xf4240, %ecx          # imm = 0xF4240
cqto
idivq %rcx
movq %rax, -0x138(%rbp)
movq -0x1160(%rbp), %rax
movl $0xf4240, %ecx          # imm = 0xF4240
cqto
idivq %rcx
movq %rdx, -0x130(%rbp)
leaq -0xa0(%rbp), %rax
movq %rax, -0x1170(%rbp)
movl $0x0, -0x1168(%rbp)
movl -0x1168(%rbp), %eax
cmpq $0x10, %rax
jae 0x7099
movq -0x1170(%rbp), %rax
movl -0x1168(%rbp), %ecx
movq $0x0, (%rax,%rcx,8)
movl -0x1168(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1168(%rbp)
jmp 0x7067
jmp 0x709b
jmp 0x709d
leaq -0x120(%rbp), %rax
movq %rax, -0x1180(%rbp)
movl $0x0, -0x1174(%rbp)
movl -0x1174(%rbp), %eax
cmpq $0x10, %rax
jae 0x70e7
movq -0x1180(%rbp), %rax
movl -0x1174(%rbp), %ecx
movq $0x0, (%rax,%rcx,8)
movl -0x1174(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1174(%rbp)
jmp 0x70b5
jmp 0x70e9
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x727b
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl 0x14(%rax), %eax
movl %eax, -0x118c(%rbp)
testl %eax, %eax
je 0x7226
jmp 0x7122
movl -0x118c(%rbp), %eax
subl $0x1, %eax
je 0x7143
jmp 0x712f
movl -0x118c(%rbp), %eax
subl $0x2, %eax
je 0x71e5
jmp 0x7228
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x1198(%rbp)
callq 0x135f0
movq -0x1198(%rbp), %rdi
movq %rax, %rsi
callq 0x13630
movq -0x20(%rbp), %rcx
movl 0xc8(%rcx), %ecx
cmpq %rcx, %rax
ja 0x71b6
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl $0x40, %ecx
cltd
idivl %ecx
movl %edx, %eax
movl %eax, %ecx
movl $0x1, %eax
shlq %cl, %rax
movq %rax, %rcx
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl $0x40, %esi
cltd
idivl %esi
cltq
orq -0x120(%rbp,%rax,8), %rcx
movq %rcx, -0x120(%rbp,%rax,8)
jmp 0x71e3
movq -0x20(%rbp), %rax
movl $0x6e, 0x20(%rax)
movq -0x8(%rbp), %rdi
leaq 0xce7d(%rip), %rsi      # 0x14049
leaq 0xdab0(%rip), %rdx      # 0x14c83
movb $0x0, %al
callq 0x69e0
movq -0x20(%rbp), %rdi
callq 0x5e30
jmp 0x722a
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl $0x40, %ecx
cltd
idivl %ecx
movl %edx, %eax
movl %eax, %ecx
movl $0x1, %eax
shlq %cl, %rax
movq %rax, %rcx
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl $0x40, %esi
cltd
idivl %esi
cltq
orq -0xa0(%rbp,%rax,8), %rcx
movq %rcx, -0xa0(%rbp,%rax,8)
jmp 0x722a
jmp 0x7228
jmp 0x722a
movq -0x20(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x724e
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x13470
addl -0x1164(%rbp), %eax
movl %eax, -0x1164(%rbp)
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
cmpl -0x124(%rbp), %eax
jle 0x726a
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x124(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x70f5
movl -0x124(%rbp), %edi
addl $0x1, %edi
leaq -0xa0(%rbp), %rsi
leaq -0x120(%rbp), %rdx
xorl %eax, %eax
movl %eax, %ecx
leaq -0x138(%rbp), %r8
callq 0x2040
movl %eax, -0x128(%rbp)
cmpl $0x0, -0x128(%rbp)
jge 0x72f5
callq 0x10ba0
movl %eax, %edi
callq 0x10de0
cmpl $0x0, %eax
jne 0x72f0
movq -0x8(%rbp), %rax
movq %rax, -0x11a0(%rbp)
callq 0x10ba0
movq -0x11a0(%rbp), %rdi
movl %eax, %ecx
leaq 0xcd67(%rip), %rsi      # 0x14049
leaq 0xd9b8(%rip), %rdx      # 0x14ca1
movb $0x0, %al
callq 0x68a0
jmp 0x75ff
cmpl $0x0, -0x128(%rbp)
jne 0x730c
cmpl $0x0, -0x1164(%rbp)
jne 0x730c
jmp 0x75ff
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x75f6
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl 0x14(%rax), %eax
movl %eax, -0x11a4(%rbp)
testl %eax, %eax
je 0x75e1
jmp 0x7345
movl -0x11a4(%rbp), %eax
subl $0x1, %eax
je 0x7366
jmp 0x7352
movl -0x11a4(%rbp), %eax
subl $0x2, %eax
je 0x741c
jmp 0x75e3
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl $0x40, %ecx
cltd
idivl %ecx
cltq
movq -0x120(%rbp,%rax,8), %rax
movq %rax, -0x11b0(%rbp)
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl $0x40, %ecx
cltd
idivl %ecx
movq -0x11b0(%rbp), %rax
movl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
movq %rdx, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
je 0x7417
movq -0x20(%rbp), %rax
movl 0x30(%rax), %edi
callq 0x10e10
cmpl $0x0, %eax
je 0x73ea
movq -0x8(%rbp), %rdi
leaq 0xcc7b(%rip), %rsi      # 0x14049
leaq 0xd8ec(%rip), %rdx      # 0x14cc1
movb $0x0, %al
callq 0x6a80
movq -0x20(%rbp), %rdi
callq 0x5e30
jmp 0x75e5
movq -0x20(%rbp), %rax
movl $0x2, 0x14(%rax)
movq -0x8(%rbp), %rdi
leaq 0xcc49(%rip), %rsi      # 0x14049
leaq 0xd8cc(%rip), %rdx      # 0x14cd3
movb $0x0, %al
callq 0x6a80
movq -0x20(%rbp), %rdi
callq 0x6310
jmp 0x75e5
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl $0x40, %ecx
cltd
idivl %ecx
cltq
movq -0xa0(%rbp,%rax,8), %rax
movq %rax, -0x11b8(%rbp)
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
movl $0x40, %ecx
cltd
idivl %ecx
movq -0x11b8(%rbp), %rax
movl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
movq %rdx, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
jne 0x748d
movq -0x20(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x75df
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x13470
cmpl $0x0, %eax
je 0x75df
movq -0x20(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x74b9
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
leaq -0x1150(%rbp), %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x13490
movl %eax, -0x128(%rbp)
jmp 0x74d7
movq -0x20(%rbp), %rax
movl 0x30(%rax), %edi
leaq -0x1150(%rbp), %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x10d80
movl %eax, -0x128(%rbp)
cmpl $0x0, -0x128(%rbp)
jle 0x7533
movq -0x20(%rbp), %rax
movq 0xc0(%rax), %rdi
leaq -0x1150(%rbp), %rsi
movl -0x128(%rbp), %edx
callq 0xa900
movl %eax, -0x128(%rbp)
cmpl $0x0, -0x128(%rbp)
jne 0x752e
movq -0x8(%rbp), %rdi
leaq 0xcb32(%rip), %rsi      # 0x14049
leaq 0xd7cb(%rip), %rdx      # 0x14ce9
movb $0x0, %al
callq 0x6a80
movq -0x20(%rbp), %rdi
callq 0x5e30
jmp 0x75dd
movq -0x20(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x75ae
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x130e0
movl %eax, %edi
callq 0x13420
cmpl $0x0, %eax
jne 0x75ac
movq -0x8(%rbp), %rax
movq %rax, -0x11c0(%rbp)
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x130e0
movq -0x11c0(%rbp), %rdi
movl %eax, %ecx
leaq 0xcaca(%rip), %rsi      # 0x14049
leaq 0xd77e(%rip), %rdx      # 0x14d04
movb $0x0, %al
callq 0x6a80
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x130e0
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x20(%rbp), %rdi
callq 0x5e30
jmp 0x75db
movq -0x8(%rbp), %rdi
leaq 0xca90(%rip), %rsi      # 0x14049
leaq 0xd761(%rip), %rdx      # 0x14d21
movb $0x0, %al
callq 0x6a80
movq -0x20(%rbp), %rax
movl $0x68, 0x20(%rax)
movq -0x20(%rbp), %rdi
callq 0x5e30
jmp 0x75dd
jmp 0x75df
jmp 0x75e5
jmp 0x75e3
jmp 0x75e5
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x7318
movq -0x8(%rbp), %rdi
callq 0x7a60
addq $0x11c0, %rsp           # imm = 0x11C0
popq %rbp
retq
nopl (%rax,%rax)