// File: /workspace/github_c_makefile_star2_O1/coyove[P]chann/./lib/mongoose/mongoose.c
// Function: mg_send_file_internal
void mg_send_file_internal(struct mg_connection *c, const char *file_name,
                           file_stat_t *st, int exists,
                           const char *extra_headers) {
  struct connection *conn = MG_CONN_2_CONN(c);
  char path[MAX_PATH_SIZE];
  const int is_directory = S_ISDIR(st->st_mode);
#ifndef MONGOOSE_NO_CGI
  const char *cgi_pat = conn->server->config_options[CGI_PATTERN];
#else
  const char *cgi_pat = DEFAULT_CGI_PATTERN;
#endif
#ifndef MONGOOSE_NO_DIRECTORY_LISTING
  const char *dir_lst = conn->server->config_options[ENABLE_DIRECTORY_LISTING];
#else
  const char *dir_lst = "yes";
#endif

  mg_snprintf(path, sizeof(path), "%s", file_name);

  if (!exists || must_hide_file(conn, path)) {
    send_http_error(conn, 404, NULL);
  } else if (is_directory &&
             conn->mg_conn.uri[strlen(conn->mg_conn.uri) - 1] != '/') {
    conn->mg_conn.status_code = 301;
    mg_printf(&conn->mg_conn, "HTTP/1.1 301 Moved Permanently\r\n"
              "Location: %s/\r\n\r\n", conn->mg_conn.uri);
    close_local_endpoint(conn);
  } else if (is_directory && !find_index_file(conn, path, sizeof(path), st)) {
    if (!mg_strcasecmp(dir_lst, "yes")) {
#ifndef MONGOOSE_NO_DIRECTORY_LISTING
      send_directory_listing(conn, path);
#else
      send_http_error(conn, 501, NULL);
#endif
    } else {
      send_http_error(conn, 403, NULL);
    }
  } else if (mg_match_prefix(cgi_pat, strlen(cgi_pat), path) > 0) {
#if !defined(MONGOOSE_NO_CGI)
    open_cgi_endpoint(conn, path);
#else
    send_http_error(conn, 501, NULL);
#endif // !MONGOOSE_NO_CGI
#ifndef MONGOOSE_NO_SSI
  } else if (mg_match_prefix(conn->server->config_options[SSI_PATTERN],
                             strlen(conn->server->config_options[SSI_PATTERN]),
                             path) > 0) {
    handle_ssi_request(conn, path);
#endif
  } else if (is_not_modified(conn, st)) {
    send_http_error(conn, 304, NULL);
  } else if ((conn->endpoint.fd = open(path, O_RDONLY | O_BINARY, 0)) != -1) {
    // O_BINARY is required for Windows, otherwise in default text mode
    // two bytes \r\n will be read as one.
    open_file_endpoint(conn, path, st, extra_headers);
  } else {
    send_http_error(conn, 404, NULL);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x6468, %rsp           # imm = 0x6468
movq %r8, -0x88(%rbp)
movl %ecx, %ebx
movq %rsi, %rcx
movq %rdi, %r12
movl $0xf000, %r14d          # imm = 0xF000
movq %rdx, -0x50(%rbp)
andl 0x18(%rdx), %r14d
leaq -0x8(%rdi), %r15
movq 0x2a0(%rdi), %rax
movq 0x58(%rax), %rdx
movq %rdx, -0x48(%rbp)
movq 0x78(%rax), %r13
leaq 0xca49(%rip), %rdx      # 0x78344
leaq -0x4490(%rbp), %rdi
movl $0x2000, %esi           # imm = 0x2000
xorl %eax, %eax
callq 0x6c630
testl %ebx, %ebx
je 0x6b925
leaq -0x4490(%rbp), %rsi
movq %r15, %rdi
callq 0x6c6d9
testl %eax, %eax
je 0x6b948
movq %r15, %rdi
movl $0x194, %esi            # imm = 0x194
xorl %edx, %edx
xorl %eax, %eax
callq 0x6c73d
addq $0x6468, %rsp           # imm = 0x6468
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x4000, %r14d          # imm = 0x4000
jne 0x6bb1a
movq 0x8(%r12), %rbx
movq %rbx, %rdi
callq 0xc460
cmpb $0x2f, -0x1(%rbx,%rax)
jne 0x6ba75
movq %r15, -0x60(%rbp)
movq 0x2a0(%r12), %rax
movq 0xa8(%rax), %rbx
leaq -0x4490(%rbp), %rdi
callq 0xc460
movq %rax, %r15
testq %rax, %rax
movq %r12, -0x30(%rbp)
je 0x6b9ab
cmpb $0x2f, -0x4491(%rbp,%r15)
jne 0x6b9ab
decq %r15
jne 0x6b998
xorl %r15d, %r15d
leaq (%r15,%rbp), %r14
addq $-0x4490, %r14          # imm = 0xBB70
movb $0x2f, (%r14)
leaq -0x6490(%rbp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0x6d92e
movq %rax, %rbx
movb $0x1, %al
testq %rbx, %rbx
sete %r12b
je 0x6bab8
movl $0x1ffe, %eax           # imm = 0x1FFE
subq %r15, %rax
movq %rax, -0x80(%rbp)
addq $-0x1ffe, %r15          # imm = 0xE002
movq %r14, -0x68(%rbp)
leaq 0x1(%r14), %rax
movq %rax, -0x78(%rbp)
xorl %r12d, %r12d
movq %r13, -0x70(%rbp)
cmpq $-0x2001, %r15          # imm = 0xDFFF
jbe 0x6ba50
movq -0x6488(%rbp), %r14
cmpq -0x80(%rbp), %r14
ja 0x6ba50
movq -0x6490(%rbp), %rsi
movq -0x78(%rbp), %r13
movq %r13, %rdi
movq %r14, %rdx
callq 0xc1c0
movb $0x0, (%r13,%r14)
movq -0x70(%rbp), %r13
leaq -0x4490(%rbp), %rdi
leaq -0x2490(%rbp), %rsi
callq 0xcb70
testl %eax, %eax
je 0x6ba9d
movq %rbx, %rdi
leaq -0x6490(%rbp), %rsi
xorl %edx, %edx
callq 0x6d92e
movq %rax, %rbx
testq %rax, %rax
sete %r12b
jne 0x6ba03
movq -0x68(%rbp), %r14
movb $0x1, %al
jmp 0x6bab8
movl $0x12d, 0x27c(%r12) # imm = 0x12D
leaq 0xe947(%rip), %rsi      # 0x7a3cf
movq %r12, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x69675
movq %r15, %rdi
jmp 0x6bdeb
leaq -0x2490(%rbp), %rsi
movl $0x90, %edx
movq -0x50(%rbp), %rdi
callq 0xc0e0
xorl %eax, %eax
movq -0x68(%rbp), %r14
testb $0x1, %r12b
movq -0x60(%rbp), %r15
je 0x6bac8
movw $0x2f, (%r14)
testb %al, %al
movq -0x30(%rbp), %r12
je 0x6bb1a
callq 0xc4a0
movq (%rax), %rax
xorl %ecx, %ecx
leaq 0xaa8a(%rip), %rdx      # 0x7656b
movzbl (%r13,%rcx), %r8d
movl (%rax,%r8,4), %esi
movzbl (%rcx,%rdx), %edi
movl (%rax,%rdi,4), %edi
testl %r8d, %r8d
je 0x6bafe
incq %rcx
cmpl %edi, %esi
je 0x6bae1
cmpl %edi, %esi
jne 0x6c3fe
leaq -0x4490(%rbp), %rsi
movq %r15, %rdi
callq 0x6c9aa
jmp 0x6b936
movq -0x48(%rbp), %rbx
movq %rbx, %rdi
callq 0xc460
leaq -0x4490(%rbp), %r14
movq %rbx, %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0x698e5
testl %eax, %eax
jle 0x6bd1d
movq 0x2a0(%r12), %rbx
movq %r12, -0x30(%rbp)
leaq -0x2490(%rbp), %r12
movq $0x0, 0x2208(%r12)
movq -0x30(%rbp), %rax
movq %rax, (%r12)
leaq 0xf305(%rip), %rdi      # 0x7ae76
callq 0xc850
movq -0x30(%rbp), %rcx
leaq 0x50(%rcx), %rdx
testq %rax, %rax
cmovneq %rax, %rdx
leaq 0xf2f6(%rip), %rsi      # 0x7ae82
movq %r12, %rdi
xorl %eax, %eax
callq 0x6e5ea
movq 0x70(%rbx), %rdx
leaq 0xf2f0(%rip), %rsi      # 0x7ae91
movq %r12, %rdi
xorl %eax, %eax
callq 0x6e5ea
movq 0x70(%rbx), %rdx
leaq 0xf2ea(%rip), %rsi      # 0x7aea0
movq %r12, %rdi
xorl %eax, %eax
callq 0x6e5ea
leaq 0xf2ea(%rip), %rsi      # 0x7aeb1
leaq 0xf2f9(%rip), %rdx      # 0x7aec7
leaq 0xf2fb(%rip), %rcx      # 0x7aed0
movq %r12, %rdi
xorl %eax, %eax
callq 0x6e5ea
leaq 0xc75e(%rip), %rbx      # 0x78344
leaq 0xf2e7(%rip), %rdx      # 0x7aed4
movq %r12, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x6e5ea
leaq 0xf2ed(%rip), %rdx      # 0x7aeee
movq %r12, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x6e5ea
leaq 0xf2f2(%rip), %rdx      # 0x7af07
movq %r12, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x6e5ea
movq -0x30(%rbp), %rax
movq (%rax), %rdx
leaq 0xf2eb(%rip), %rsi      # 0x7af1b
movq %r12, %rdi
xorl %eax, %eax
callq 0x6e5ea
movq -0x30(%rbp), %rax
leaq 0x20(%rax), %rdx
leaq 0xf2e4(%rip), %rsi      # 0x7af2d
movq %r12, %rdi
xorl %eax, %eax
callq 0x6e5ea
movq -0x30(%rbp), %rax
movzwl 0x80(%rax), %edx
leaq 0xf2d7(%rip), %rsi      # 0x7af3c
movq %r12, %rdi
xorl %eax, %eax
callq 0x6e5ea
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x30(%rbp), %rax
movq 0x18(%rax), %r8
testq %r8, %r8
leaq 0xd9de(%rip), %rax      # 0x79667
leaq 0xba3b(%rip), %rcx      # 0x776cb
cmoveq %rax, %rcx
movq %rax, -0x48(%rbp)
cmoveq %rax, %r8
leaq 0xf2a8(%rip), %rsi      # 0x7af4b
movq %r12, %rdi
movq -0x30(%rbp), %r12
xorl %eax, %eax
callq 0x6e5ea
movq 0x2b8(%r12), %rbx
testq %rbx, %rbx
je 0x6bdf5
movq 0x8(%r12), %r14
movq %r14, %rdi
callq 0xc460
movq %rax, %r12
movq %rbx, %rdi
callq 0xc460
subl %eax, %r12d
leaq 0xf27a(%rip), %rsi      # 0x7af5e
leaq -0x2490(%rbp), %rbx
movq %rbx, %rdi
movl %r12d, %edx
movq -0x30(%rbp), %r12
movq %r14, %rcx
xorl %eax, %eax
callq 0x6e5ea
movq 0x2b8(%r12), %rdx
leaq 0xf261(%rip), %rsi      # 0x7af6f
movq %rbx, %rdi
xorl %eax, %eax
callq 0x6e5ea
jmp 0x6be4f
movq 0x2a0(%r12), %rax
movq 0xc0(%rax), %rbx
movq %rbx, %rdi
callq 0xc460
leaq -0x4490(%rbp), %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x698e5
testl %eax, %eax
jle 0x6c1f0
leaq 0x77aa(%rip), %rsi      # 0x734ff
leaq -0x4490(%rbp), %rdi
callq 0xcb90
testq %rax, %rax
je 0x6c40b
movq %rax, %rbx
movq %rax, %rdi
callq 0xccb0
movl %eax, %edi
movl $0x2, %esi
movl $0x1, %edx
xorl %eax, %eax
callq 0xc220
movq 0x2a0(%r12), %rdi
movq %r12, %r13
movq %r15, %r12
leaq -0x2490(%rbp), %r15
movq %r14, %rsi
movq %r15, %rdx
callq 0x6e762
movl $0xc8, 0x27c(%r13)
movl 0x8(%r15), %ecx
movq (%r15), %r8
leaq 0xf387(%rip), %rsi      # 0x7b148
movq %r13, %rdi
movl $0xc8, %edx
xorl %eax, %eax
callq 0x69675
movq %r13, %rdi
movq %r14, %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x6e805
movq %rbx, %rdi
callq 0xc4c0
movq %r12, %rdi
callq 0x6a615
jmp 0x6b936
movq %r14, %rdi
movl $0x2f, %esi
callq 0xca50
movq %rax, %rbx
xorl %r13d, %r13d
movq 0x8(%r12), %r14
movq %r14, %rdi
movl $0x2f, %esi
callq 0xca50
movl %eax, %edx
subl %r14d, %edx
testq %rax, %rax
cmovel %r13d, %edx
testq %rbx, %rbx
leaq -0x4490(%rbp), %rax
cmoveq %rax, %rbx
leaq 0xf141(%rip), %rsi      # 0x7af7c
leaq -0x2490(%rbp), %rdi
movq %r14, %rcx
movq %rbx, %r8
xorl %eax, %eax
callq 0x6e5ea
leaq 0xf139(%rip), %rsi      # 0x7af8f
leaq -0x2490(%rbp), %rbx
leaq -0x4490(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x6e5ea
leaq 0xf12a(%rip), %rsi      # 0x7afa2
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x6e5ea
movq -0x8(%r12), %rax
cmpq $0x0, 0x70(%rax)
leaq 0x7dd3(%rip), %rax      # 0x73c69
leaq 0xea77(%rip), %rdx      # 0x7a914
cmoveq %rax, %rdx
leaq 0xf10d(%rip), %rsi      # 0x7afb5
movq %rbx, %rdi
xorl %eax, %eax
callq 0x6e5ea
leaq 0x7a9f(%rip), %rsi      # 0x73958
movq %r12, %rdi
callq 0x69863
testq %rax, %rax
je 0x6bede
leaq 0xf0f1(%rip), %rsi      # 0x7afbe
leaq -0x2490(%rbp), %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x6e5ea
movq 0x18(%r12), %rdx
testq %rdx, %rdx
je 0x6befd
leaq 0xf0df(%rip), %rsi      # 0x7afce
leaq -0x2490(%rbp), %rdi
xorl %eax, %eax
callq 0x6e5ea
movq %r15, -0x60(%rbp)
leaq 0xaa54(%rip), %rsi      # 0x7695c
movq %r12, %rdi
callq 0x69863
testq %rax, %rax
je 0x6bf2d
leaq 0xf0c2(%rip), %rsi      # 0x7afde
leaq -0x2490(%rbp), %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x6e5ea
leaq 0xc975(%rip), %rsi      # 0x788a9
movq %rbx, %rdi
callq 0x6e728
leaq 0xf0ad(%rip), %rsi      # 0x7aff0
movq %rbx, %rdi
callq 0x6e728
leaq 0xf0a2(%rip), %rsi      # 0x7aff4
movq %rbx, %rdi
callq 0x6e728
leaq 0xda19(%rip), %rsi      # 0x7997a
movq %rbx, %rdi
callq 0x6e728
leaq 0xf089(%rip), %rsi      # 0x7aff9
movq %rbx, %rdi
callq 0x6e728
leaq 0xf082(%rip), %rsi      # 0x7b001
movq %rbx, %rdi
callq 0x6e728
leaq 0xf080(%rip), %rsi      # 0x7b00e
movq %rbx, %rdi
callq 0x6e728
cmpl $0x0, 0x84(%r12)
jle 0x6c027
movq -0x30(%rbp), %rax
leaq 0x88(%rax), %r14
leaq 0xf067(%rip), %rbx      # 0x7b01e
leaq -0x2490(%rbp), %r12
xorl %r15d, %r15d
movq %r15, %rax
shlq $0x4, %rax
movq (%r14,%rax), %rdx
movq 0x8(%r14,%rax), %rcx
movq %r12, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x6e5ea
movq %rax, %r13
movzbl (%r13), %eax
cmpl $0x2d, %eax
je 0x6bff6
testl %eax, %eax
je 0x6c014
cmpl $0x3d, %eax
jne 0x6bffb
jmp 0x6c014
movb $0x5f, (%r13)
callq 0xc350
movq (%rax), %rax
movzbl (%r13), %ecx
movb (%rax,%rcx,4), %al
movb %al, (%r13)
incq %r13
jmp 0x6bfe1
incq %r15
movq -0x30(%rbp), %rax
movslq 0x84(%rax), %rax
cmpq %rax, %r15
jl 0x6bfc1
movslq -0x284(%rbp), %rax
leal 0x1(%rax), %ecx
movl %ecx, -0x284(%rbp)
movq $0x0, -0x488(%rbp,%rax,8)
movslq -0x288(%rbp), %rax
leal 0x1(%rax), %ecx
movl %ecx, -0x288(%rbp)
movb $0x0, -0x2488(%rbp,%rax)
cmpl $0x40, -0x284(%rbp)
jge 0x6c4e4
movl -0x288(%rbp), %eax
testl %eax, %eax
movq -0x60(%rbp), %r15
jle 0x6c503
cmpl $0x2000, %eax           # imm = 0x2000
jge 0x6c522
leaq -0x4490(%rbp), %rdi
movl $0x2f, %esi
callq 0xca50
testq %rax, %rax
je 0x6c0c3
leaq -0x4490(%rbp), %r8
subl %r8d, %eax
leaq 0x8144(%rip), %rdx      # 0x741f0
leaq -0x6490(%rbp), %rdi
movl $0x2000, %esi           # imm = 0x2000
movl %eax, %ecx
xorl %eax, %eax
callq 0x6c630
jmp 0x6c0e4
leaq 0xc27a(%rip), %rdx      # 0x78344
leaq 0x7c06(%rip), %rcx      # 0x73cd7
leaq -0x6490(%rbp), %rdi
movl $0x2000, %esi           # imm = 0x2000
xorl %eax, %eax
callq 0x6c630
xorl %r14d, %r14d
leaq -0x58(%rbp), %r12
movq %r12, %rdi
movl $0x1, %esi
callq 0x68290
movl -0x58(%rbp), %ebx
cmpl $-0x1, %ebx
jne 0x6c10d
leal 0x1(%r14), %eax
cmpl $0x9, %r14d
movl %eax, %r14d
jb 0x6c0eb
cmpl $-0x1, %ebx
jne 0x6c132
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xc2b0
leaq 0xed3c(%rip), %rdx      # 0x7ae5f
movq %r15, %rdi
movl $0x1f4, %esi            # imm = 0x1F4
xorl %eax, %eax
callq 0x6c73d
movq -0x30(%rbp), %r14
movq 0x2a0(%r14), %rax
movq 0x50(%rax), %r13
movl -0x54(%rbp), %r12d
callq 0xcad0
testl %eax, %eax
je 0x6c541
movl $0x2, 0x2b0(%r14)
movq 0x2a0(%r14), %rdi
leaq -0xe1b(%rip), %rdx      # 0x6b350
movl %ebx, %esi
movq %r15, %rcx
callq 0x68800
movq %rax, 0x2a8(%r14)
orb $0x40, 0xa2(%rax)
movq -0x8(%r14), %rdi
leaq 0xdf52(%rip), %rsi      # 0x7a0e0
movl $0x11, %edx
callq 0x681c0
movl $0xc8, 0x27c(%r14)
movq -0x8(%r14), %rax
orl $0x2, 0xa0(%rax)
movq 0x2a8(%r14), %rcx
movups 0x40(%rax), %xmm0
movups %xmm0, 0x58(%rcx)
movq 0x50(%rax), %rax
movq %rax, 0x68(%rcx)
movq -0x8(%r14), %rax
leaq 0x40(%rax), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rax)
movq $0x0, 0x50(%rax)
xorl %esi, %esi
callq 0x67ed8
movl %r12d, %edi
callq 0xc2b0
jmp 0x6b936
leaq 0x728a(%rip), %rsi      # 0x73481
movq %r12, %rdi
callq 0x69863
movq %rax, %r13
leaq 0xf0eb(%rip), %rsi      # 0x7b2f4
movq %r12, %rdi
callq 0x69863
movq %rax, %rbx
movq -0x50(%rbp), %rax
movq 0x30(%rax), %r8
movq 0x58(%rax), %rcx
leaq 0xf0db(%rip), %rdx      # 0x7b302
leaq -0x2490(%rbp), %rdi
movl $0x40, %esi
xorl %eax, %eax
callq 0x6c630
testq %rbx, %rbx
je 0x6c26e
callq 0xc4a0
movq (%rax), %rax
xorl %ecx, %ecx
movzbl -0x2490(%rbp,%rcx), %edi
movl (%rax,%rdi,4), %edx
movzbl (%rbx,%rcx), %esi
movl (%rax,%rsi,4), %esi
testl %edi, %edi
je 0x6c266
incq %rcx
cmpl %esi, %edx
je 0x6c249
cmpl %esi, %edx
je 0x6c48e
testq %r13, %r13
je 0x6c44c
movq %r12, -0x30(%rbp)
movq %r15, %r14
movq -0x50(%rbp), %rax
movq 0x58(%rax), %rax
movq %rax, -0x48(%rbp)
leaq -0x280(%rbp), %rbx
leaq -0x58(%rbp), %r15
leaq 0xf070(%rip), %rsi      # 0x7b30c
leaq -0x38(%rbp), %rdx
leaq -0x6490(%rbp), %rcx
leaq -0x34(%rbp), %r8
leaq -0x3c(%rbp), %r9
movq %r13, %rdi
xorl %eax, %eax
pushq %rbx
pushq %r15
callq 0xc100
addq $0x10, %rsp
cmpl $0x6, %eax
je 0x6c329
leaq 0xf059(%rip), %rsi      # 0x7b325
leaq -0x38(%rbp), %rdx
leaq -0x6490(%rbp), %rcx
leaq -0x34(%rbp), %r8
leaq -0x3c(%rbp), %r9
movq %r13, %rdi
xorl %eax, %eax
pushq %rbx
pushq %r15
callq 0xc100
addq $0x10, %rsp
cmpl $0x6, %eax
je 0x6c329
leaq 0xf023(%rip), %rsi      # 0x7b31f
leaq -0x38(%rbp), %rdx
leaq -0x6490(%rbp), %rcx
leaq -0x34(%rbp), %r8
leaq -0x3c(%rbp), %r9
movq %r13, %rdi
xorl %eax, %eax
pushq %rbx
pushq %r15
callq 0xc100
addq $0x10, %rsp
cmpl $0x6, %eax
jne 0x6c49b
cmpl $0x7b3, -0x34(%rbp)     # imm = 0x7B3
jl 0x6c43c
leaq 0xdddb(%rip), %r12      # 0x7a118
xorl %r15d, %r15d
leaq -0x6490(%rbp), %rbx
movq %r12, %r13
movslq (%r13), %rsi
addq %r12, %rsi
movq %rbx, %rdi
callq 0xc950
testl %eax, %eax
je 0x6c370
incq %r15
addq $0x4, %r13
cmpq $0xc, %r15
jne 0x6c34a
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
cmpl $-0x1, %r15d
je 0x6c43c
movslq -0x34(%rbp), %rax
leal 0x3(%rax), %edx
testl %eax, %eax
cmovnsl %eax, %edx
sarl $0x2, %edx
imulq $-0x51eb851f, %rax, %rcx # imm = 0xAE147AE1
movq %rcx, %rsi
shrq $0x3f, %rsi
sarq $0x25, %rcx
addl %esi, %ecx
addl %edx, %ecx
imulq $0x51eb851f, %rax, %rdx # imm = 0x51EB851F
movq %rdx, %rsi
shrq $0x3f, %rsi
sarq $0x27, %rdx
addl %esi, %edx
leal -0x7b2(%rax), %esi
movl %esi, -0x34(%rbp)
movslq %r15d, %rsi
leaq 0xdd3a(%rip), %rdi      # 0x7a100
movzwl (%rdi,%rsi,2), %esi
imull $0x16d, %eax, %eax      # imm = 0x16D
addl %edx, %eax
addl %ecx, %eax
addl %esi, %eax
addl -0x38(%rbp), %eax
imull $0xe10, -0x3c(%rbp), %ecx # imm = 0xE10
imull $0x15180, %eax, %eax    # imm = 0x15180
imull $0x3c, -0x58(%rbp), %edx
addl %ecx, %edx
addl -0x280(%rbp), %edx
addl %edx, %eax
addl $0x868b8400, %eax       # imm = 0x868B8400
movslq %eax, %r12
jmp 0x6c43f
movq %r15, %rdi
movl $0x193, %esi            # imm = 0x193
jmp 0x6b92d
callq 0xcb20
movl (%rax), %edi
callq 0xc8c0
leaq 0xee99(%rip), %rdx      # 0x7b2b7
leaq -0x4490(%rbp), %rcx
movq %r15, %rdi
movl $0x1f4, %esi            # imm = 0x1F4
movq %rax, %r8
xorl %eax, %eax
callq 0x6c73d
jmp 0x6b936
xorl %r12d, %r12d
cmpq %r12, -0x48(%rbp)
movq %r14, %r15
movq -0x30(%rbp), %r12
jle 0x6c48e
leaq -0x4490(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0xcd20
movl %eax, 0x2a8(%r12)
cmpl $-0x1, %eax
je 0x6b925
leaq -0x4490(%rbp), %rsi
movq %r15, %rdi
movq -0x50(%rbp), %rdx
movq -0x88(%rbp), %rcx
callq 0x6cc54
jmp 0x6b936
movq %r15, %rdi
movl $0x130, %esi            # imm = 0x130
jmp 0x6b92d
leaq 0xee96(%rip), %rsi      # 0x7b338
xorl %r12d, %r12d
leaq -0x38(%rbp), %rdx
leaq -0x6490(%rbp), %rcx
leaq -0x34(%rbp), %r8
leaq -0x3c(%rbp), %r9
movq %r13, %rdi
xorl %eax, %eax
pushq %rbx
pushq %r15
callq 0xc100
addq $0x10, %rsp
cmpl $0x6, %eax
jne 0x6c43f
cmpl $0x7b2, -0x34(%rbp)     # imm = 0x7B2
jg 0x6c336
jmp 0x6c43f
leaq 0xeb3e(%rip), %rdi      # 0x7b029
leaq 0xdd71(%rip), %rsi      # 0x7a263
leaq 0xeb59(%rip), %rcx      # 0x7b052
movl $0x904, %edx            # imm = 0x904
callq 0xc210
leaq 0xeba0(%rip), %rdi      # 0x7b0aa
leaq 0xdd52(%rip), %rsi      # 0x7a263
leaq 0xeb3a(%rip), %rcx      # 0x7b052
movl $0x905, %edx            # imm = 0x905
callq 0xc210
leaq 0xeb8e(%rip), %rdi      # 0x7b0b7
leaq 0xdd33(%rip), %rsi      # 0x7a263
leaq 0xeb1b(%rip), %rcx      # 0x7b052
movl $0x906, %edx            # imm = 0x906
callq 0xc210
leaq -0x6490(%rbp), %rdi
callq 0xcce0
movl %r12d, %edi
xorl %esi, %esi
callq 0xc670
movl %r12d, %edi
movl $0x1, %esi
callq 0xc670
movl %r12d, %edi
callq 0xc2b0
movl $0x11, %edi
xorl %esi, %esi
callq 0xc3f0
testq %r13, %r13
jne 0x6c5a0
leaq -0x4490(%rbp), %rdi
movq %rdi, %rsi
xorl %edx, %edx
leaq -0x488(%rbp), %rcx
xorl %eax, %eax
callq 0xca20
leaq 0xd0c9(%rip), %r13      # 0x79667
jmp 0x6c5c8
leaq -0x4490(%rbp), %rdx
movq %r13, %rdi
movq %r13, %rsi
xorl %ecx, %ecx
leaq -0x488(%rbp), %r8
xorl %eax, %eax
callq 0xca20
leaq 0xd552(%rip), %rax      # 0x79b16
movq %rax, -0x48(%rbp)
callq 0xcb20
movl (%rax), %edi
callq 0xc8c0
movq %rax, %r10
subq $0x8, %rsp
leaq 0xeb3a(%rip), %rdx      # 0x7b11c
leaq -0x280(%rbp), %rbx
leaq -0x4490(%rbp), %r9
movl $0x1f4, %esi            # imm = 0x1F4
movq %rbx, %rdi
movq %r13, %rcx
movq -0x48(%rbp), %r8
xorl %eax, %eax
pushq %r10
callq 0xc5d0
addq $0x10, %rsp
movq %rbx, %rdi
callq 0xc460
movl $0x1, %edi
movq %rbx, %rsi
movq %rax, %rdx
xorl %ecx, %ecx
callq 0xc3d0
movl $0x1, %edi
callq 0xc7a0