// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./lib/mongoose/mongoose.c
// Function: log_access
static void log_access(const struct connection *conn, const char *path) {
  const struct mg_connection *c = &conn->mg_conn;
  FILE *fp = (path == NULL) ?  NULL : fopen(path, "a+");
  char date[64], user[100];
  time_t now;

  if (fp == NULL) return;
  now = time(NULL);
  strftime(date, sizeof(date), "%d/%b/%Y:%H:%M:%S %z", localtime(&now));

  flockfile(fp);
  mg_parse_header(mg_get_header(&conn->mg_conn, "Authorization"), "username",
                  user, sizeof(user));
  fprintf(fp, "%s - %s [%s] \"%s %s%s%s HTTP/%s\" %d 0",
          c->remote_ip, user[0] == '\0' ? "-" : user, date,
          c->request_method ? c->request_method : "-",
          c->uri ? c->uri : "-", c->query_string ? "?" : "",
          c->query_string ? c->query_string : "",
          c->http_version, c->status_code);
  log_header(c, "Referer", fp);
  log_header(c, "User-Agent", fp);
  fputc('\n', fp);
  fflush(fp);

  funlockfile(fp);
  fclose(fp);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq -0x18(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0xb9074
xorl %eax, %eax
movq %rax, -0xf0(%rbp)
jmp 0xb908b
movq -0x20(%rbp), %rdi
leaq 0xecc3(%rip), %rsi      # 0xc7d42
callq 0xdd20
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0xb90a2
jmp 0xb92fc
xorl %eax, %eax
movl %eax, %edi
callq 0xd980
movq %rax, -0xe8(%rbp)
leaq -0x70(%rbp), %rax
movq %rax, -0x108(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0xd8b0
movq -0x108(%rbp), %rdi
movq %rax, %rcx
movl $0x40, %esi
leaq 0xec66(%rip), %rdx      # 0xc7d45
callq 0xdb40
movq -0x30(%rbp), %rdi
callq 0xdd40
movq -0x18(%rbp), %rdi
addq $0x8, %rdi
leaq 0x9ce8(%rip), %rsi      # 0xc2de4
callq 0xb0fe0
movq %rax, %rdi
leaq -0xe0(%rbp), %rdx
leaq 0x668c(%rip), %rsi      # 0xbf79e
movl $0x64, %ecx
callq 0xb2ee0
movq -0x30(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x28(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xf8(%rbp)
movsbl -0xe0(%rbp), %eax
cmpl $0x0, %eax
jne 0xb9152
leaq 0xec38(%rip), %rax      # 0xc7d81
movq %rax, -0x110(%rbp)
jmp 0xb9160
leaq -0xe0(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x70(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
je 0xb9193
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x128(%rbp)
jmp 0xb91a3
leaq 0xebe7(%rip), %rax      # 0xc7d81
movq %rax, -0x128(%rbp)
jmp 0xb91a3
movq -0x128(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xb91cd
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x138(%rbp)
jmp 0xb91dd
leaq 0xebad(%rip), %rax      # 0xc7d81
movq %rax, -0x138(%rbp)
jmp 0xb91dd
movq -0x138(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0xc951(%rip), %rax      # 0xc5b4b
leaq 0xa9b6(%rip), %rcx      # 0xc3bb7
cmpq $0x0, %rdx
cmovneq %rcx, %rax
movq %rax, -0x140(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xb922c
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x150(%rbp)
jmp 0xb923c
leaq 0xc918(%rip), %rax      # 0xc5b4b
movq %rax, -0x150(%rbp)
jmp 0xb923c
movq -0x140(%rbp), %rbx
movq -0x148(%rbp), %r14
movq -0x130(%rbp), %r9
movq -0x118(%rbp), %r8
movq -0x120(%rbp), %rcx
movq -0xf8(%rbp), %rdx
movq -0x100(%rbp), %rdi
movq -0x150(%rbp), %r11
movq -0x28(%rbp), %rax
movq 0x10(%rax), %r10
movq -0x28(%rbp), %rax
movl 0x27c(%rax), %eax
leaq 0xeacd(%rip), %rsi      # 0xc7d5a
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movb $0x0, %al
callq 0xd2d0
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq 0x9afa(%rip), %rsi      # 0xc2db4
callq 0xb9560
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq 0x9afb(%rip), %rsi      # 0xc2dc9
callq 0xb9560
movq -0x30(%rbp), %rsi
movl $0xa, %edi
callq 0xdae0
movq -0x30(%rbp), %rdi
callq 0xd6c0
movq -0x30(%rbp), %rdi
callq 0xd740
movq -0x30(%rbp), %rdi
callq 0xd5b0
addq $0x170, %rsp            # imm = 0x170
popq %rbx
popq %r14
popq %rbp
retq
nopl (%rax,%rax)