// File: /workspace/github_c_makefile_star2_O0/tomka[P]cliaspora/cliaspora.c
// Function: new_session
static session_t *
new_session(const char *host, u_short port, const char *user, const char *pass)
{
	char	  account[256];
	session_t *sp;

	if ((sp = malloc(sizeof(session_t))) == NULL) {
		warn("malloc()"); return (NULL);
	}
	sp->cookie	 = sp->host = NULL;
	sp->port	 = port;
	sp->attr.name	 = sp->attr.did = NULL;
	sp->attr.aspects = NULL;

	if ((sp->host = strdup(host)) == NULL) {
		free_session(sp); return (NULL);
	}
	sp->cookie = diaspora_login(host, port, user, pass);
	if (sp->cookie == NULL)
		return (NULL);
	if (get_attributs(sp) == -1) {
		free_session(sp); return (NULL);
	}
	if ((cfg.cookie = strdup(sp->cookie)) == NULL) {
		warn("strdup()"); return (NULL);
	}
	if ((cfg.host = strdup(sp->host)) == NULL) {
		warn("strdup()"); return (NULL);
	}
	if ((cfg.user = strdup(user)) == NULL) {
		warn("strdup()"); return (NULL);
	}
	cfg.port = port;
	(void)snprintf(account, sizeof(account), "%s@%s", user, host);
	write_config(account);

	return (sp);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movw %si, %ax
movq %rdi, -0x10(%rbp)
movw %ax, -0x12(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movl $0x60, %edi
callq 0x2430
movq %rax, -0x138(%rbp)
cmpq $0x0, %rax
jne 0x3c40
leaq 0xafb2(%rip), %rdi      # 0xebde
movb $0x0, %al
callq 0x2120
movq $0x0, -0x8(%rbp)
jmp 0x3e22
movq -0x138(%rbp), %rax
movq $0x0, (%rax)
movq -0x138(%rbp), %rax
movq $0x0, 0x8(%rax)
movw -0x12(%rbp), %cx
movq -0x138(%rbp), %rax
movw %cx, 0x10(%rax)
movq -0x138(%rbp), %rax
movq $0x0, 0x48(%rax)
movq -0x138(%rbp), %rax
movq $0x0, 0x40(%rax)
movq -0x138(%rbp), %rax
movq $0x0, 0x58(%rax)
movq -0x10(%rbp), %rdi
callq 0x2580
movq -0x138(%rbp), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x3ccb
movq -0x138(%rbp), %rdi
callq 0x7020
movq $0x0, -0x8(%rbp)
jmp 0x3e22
movq -0x10(%rbp), %rdi
movw -0x12(%rbp), %ax
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
movzwl %ax, %esi
callq 0x7060
movq %rax, %rcx
movq -0x138(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x138(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x3d0c
movq $0x0, -0x8(%rbp)
jmp 0x3e22
movq -0x138(%rbp), %rdi
callq 0x7690
cmpl $-0x1, %eax
jne 0x3d36
movq -0x138(%rbp), %rdi
callq 0x7020
movq $0x0, -0x8(%rbp)
jmp 0x3e22
movq -0x138(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2580
leaq 0xe6c3(%rip), %rcx      # 0x12410
movq %rax, 0x18(%rcx)
cmpq $0x0, %rax
jne 0x3d72
leaq 0xae89(%rip), %rdi      # 0xebe7
movb $0x0, %al
callq 0x2120
movq $0x0, -0x8(%rbp)
jmp 0x3e22
movq -0x138(%rbp), %rax
movq (%rax), %rdi
callq 0x2580
leaq 0xe688(%rip), %rcx      # 0x12410
movq %rax, 0x10(%rcx)
cmpq $0x0, %rax
jne 0x3daa
leaq 0xae4e(%rip), %rdi      # 0xebe7
movb $0x0, %al
callq 0x2120
movq $0x0, -0x8(%rbp)
jmp 0x3e22
movq -0x20(%rbp), %rdi
callq 0x2580
leaq 0xe656(%rip), %rcx      # 0x12410
movq %rax, 0x8(%rcx)
cmpq $0x0, %rax
jne 0x3ddc
leaq 0xae1c(%rip), %rdi      # 0xebe7
movb $0x0, %al
callq 0x2120
movq $0x0, -0x8(%rbp)
jmp 0x3e22
movzwl -0x12(%rbp), %ecx
leaq 0xe629(%rip), %rax      # 0x12410
movl %ecx, (%rax)
leaq -0x130(%rbp), %rdi
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %r8
movl $0x100, %esi            # imm = 0x100
leaq 0xadec(%rip), %rdx      # 0xebf0
movb $0x0, %al
callq 0x2540
leaq -0x130(%rbp), %rdi
callq 0x9340
movq -0x138(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
nop