// File: /workspace/github_c_makefile_star2_O3/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 $0xa258, %rsp           # imm = 0xA258
movq %r8, -0x80(%rbp)
movl %ecx, %ebx
movq %rsi, %rcx
movq %rdi, %r13
movl $0xf000, %r15d          # imm = 0xF000
movq %rdx, -0x60(%rbp)
andl 0x18(%rdx), %r15d
leaq -0x8(%rdi), %r14
movq 0x2a0(%rdi), %rax
movq 0x58(%rax), %rdx
movq %rdx, -0x48(%rbp)
movq 0x78(%rax), %rax
movq %rax, -0x88(%rbp)
leaq 0xc560(%rip), %rdx      # 0x7634f
leaq -0x2280(%rbp), %rdi
movl $0x2000, %esi           # imm = 0x2000
xorl %eax, %eax
callq 0x6ad62
testl %ebx, %ebx
je 0x69e25
movq 0x2a0(%r13), %r12
movq 0x98(%r12), %rdi
leaq -0x2280(%rbp), %rsi
callq 0x6ae0b
testl %eax, %eax
je 0x69e48
movq %r14, %rdi
movl $0x194, %esi            # imm = 0x194
xorl %edx, %edx
xorl %eax, %eax
callq 0x6ae64
addq $0xa258, %rsp           # imm = 0xA258
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r13, -0x38(%rbp)
cmpl $0x4000, %r15d          # imm = 0x4000
movq %r14, %r13
jne 0x6a274
movq -0x38(%rbp), %r15
movq 0x8(%r15), %rbx
movq %rbx, %rdi
callq 0xc460
cmpb $0x2f, -0x1(%rbx,%rax)
jne 0x69fd1
movq 0xa8(%r12), %r15
leaq -0x2280(%rbp), %rdi
callq 0xc460
testq %rax, %rax
movq %r13, -0x30(%rbp)
je 0x69ea6
movq %rax, %rbx
cmpb $0x2f, -0x2281(%rbp,%rbx)
jne 0x69ea8
decq %rbx
jne 0x69e97
xorl %ebx, %ebx
leaq (%rbx,%rbp), %rax
addq $-0x2280, %rax          # imm = 0xDD80
movq %rax, -0x68(%rbp)
movb $0x2f, (%rax)
leaq -0x4280(%rbp), %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0x6bda1
testq %rax, %rax
je 0x69f66
movq %rax, %r15
movl $0x1ffe, %r12d          # imm = 0x1FFE
subq %rbx, %r12
addq $-0x1ffe, %rbx          # imm = 0xE002
movq -0x68(%rbp), %rax
incq %rax
movq %rax, -0x78(%rbp)
leaq -0x4280(%rbp), %r14
movq %r12, -0x70(%rbp)
cmpq $-0x2001, %rbx          # imm = 0xDFFF
jbe 0x69f51
movq -0x4278(%rbp), %r13
cmpq %r12, %r13
ja 0x69f51
movq -0x4280(%rbp), %rsi
movq %r14, %r12
movq -0x78(%rbp), %r14
movq %r14, %rdi
movq %r13, %rdx
callq 0xc1c0
movb $0x0, (%r14,%r13)
movq %r12, %r14
movq -0x70(%rbp), %r12
leaq -0x2280(%rbp), %rdi
leaq -0xa280(%rbp), %rsi
callq 0xcb70
testl %eax, %eax
je 0x6a25b
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x6bda1
movq %rax, %r15
testq %rax, %rax
jne 0x69efc
movq -0x68(%rbp), %rax
movw $0x2f, (%rax)
callq 0xc4a0
movq (%rax), %rax
xorl %ecx, %ecx
leaq 0xa5f3(%rip), %rdx      # 0x74573
movq -0x88(%rbp), %r9
movzbl (%r9,%rcx), %r8d
movl (%rax,%r8,4), %esi
movzbl (%rcx,%rdx), %edi
movl (%rax,%rdi,4), %edi
testl %r8d, %r8d
je 0x69fa3
incq %rcx
cmpl %edi, %esi
je 0x69f87
cmpl %edi, %esi
movq -0x30(%rbp), %r15
jne 0x69ff5
movq $0x0, -0x50(%rbp)
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
testq %rax, %rax
je 0x6a002
xorl %ecx, %ecx
cmpb $0x64, 0x1(%rax)
setne %cl
leal (%rcx,%rcx,2), %ebx
addl $0x61, %ebx
jmp 0x6a007
movl $0x12d, 0x27c(%r15) # imm = 0x12D
leaq 0xe3ec(%rip), %rsi      # 0x783cf
movq %r15, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x67a83
jmp 0x6a525
movq %r15, %rdi
movl $0x193, %esi            # imm = 0x193
jmp 0x69e2d
movl $0x64, %ebx
leaq 0xe897(%rip), %rsi      # 0x788a5
leaq 0xe8a2(%rip), %rdx      # 0x788b7
movq -0x38(%rbp), %r14
movq %r14, %rdi
callq 0x683fb
leaq 0x7930(%rip), %rsi      # 0x71958
leaq 0xec75(%rip), %rdx      # 0x78ca4
movq %r14, %rdi
callq 0x683fb
movq 0x8(%r14), %rcx
subq $0x8, %rsp
leaq 0xec77(%rip), %rsi      # 0x78cbd
movq %r14, %rdi
movq %rcx, %rdx
movl %ebx, %r8d
movl %ebx, %r9d
xorl %eax, %eax
pushq %rbx
callq 0x68533
addq $0x10, %rsp
leaq -0x2280(%rbp), %rsi
leaq -0x50(%rbp), %r14
movq %r15, %rdi
movq %r14, %rdx
callq 0x6c7d9
movq (%r14), %r13
testq %r13, %r13
je 0x6a23f
movl %eax, %ebx
movslq %eax, %r15
leaq 0x2907(%rip), %rcx      # 0x6c993
movl $0xa0, %edx
movq %r13, %rdi
movq %r15, %rsi
callq 0xc7f0
testl %r15d, %r15d
leaq -0x4280(%rbp), %rdi
jle 0x6a233
movl %ebx, %eax
shlq $0x5, %rax
leaq (%rax,%rax,4), %rax
movq %rax, -0x38(%rbp)
xorl %r12d, %r12d
movl 0x28(%r13,%r12), %eax
movl $0xf000, %ecx           # imm = 0xF000
andl %ecx, %eax
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x6a0f6
movl $0x40, %esi
leaq 0xc273(%rip), %rdx      # 0x7634f
leaq 0xecfc(%rip), %rcx      # 0x78ddf
xorl %eax, %eax
callq 0x6ad62
leaq 0xf4bb(%rip), %rbx      # 0x795ac
jmp 0x6a189
movq 0x40(%r13,%r12), %rcx
cmpq $0x3ff, %rcx            # imm = 0x3FF
jg 0x6a119
movl $0x40, %esi
leaq 0x7ee5(%rip), %rdx      # 0x71ff5
xorl %eax, %eax
callq 0x6ad62
jmp 0x6a182
cmpq $0xfffff, %rcx          # imm = 0xFFFFF
ja 0x6a140
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
mulsd 0xe11e(%rip), %xmm0     # 0x78250
movl $0x40, %esi
leaq 0xecad(%rip), %rdx      # 0x78deb
jmp 0x6a17b
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
cmpq $0x3fffffff, %rcx       # imm = 0x3FFFFFFF
ja 0x6a167
mulsd 0xe0ef(%rip), %xmm0     # 0x78248
movl $0x40, %esi
leaq 0xec8c(%rip), %rdx      # 0x78df1
jmp 0x6a17b
mulsd 0xe0d1(%rip), %xmm0     # 0x78240
movl $0x40, %esi
leaq 0xec7c(%rip), %rdx      # 0x78df7
movb $0x1, %al
callq 0x6ad62
leaq 0xd4e9(%rip), %rbx      # 0x77672
movq 0x68(%r13,%r12), %rax
movq %rax, -0x58(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xc770
movl $0x40, %esi
leaq -0x280(%rbp), %rdi
leaq 0xec4f(%rip), %rdx      # 0x78dfd
movq %rax, %rcx
callq 0xc9d0
movq 0x8(%r13,%r12), %r15
movq %r15, %rdi
callq 0xc460
movl $0x6000, %ecx           # imm = 0x6000
movq %r15, %rdi
movq %rax, %rsi
leaq -0xa280(%rbp), %r14
movq %r14, %rdx
callq 0x68923
movq (%r13,%r12), %rdi
addq $0x8, %rdi
leaq 0xec1f(%rip), %rsi      # 0x78e0c
movq %r14, %rdx
movq %rbx, %rcx
movq %r15, %r8
movq %rbx, %r9
xorl %eax, %eax
leaq -0x4280(%rbp), %rbx
pushq %rbx
leaq -0x280(%rbp), %r10
pushq %r10
callq 0x68533
addq $0x10, %rsp
movq 0x8(%r13,%r12), %rdi
callq 0xc250
addq $0xa0, %r12
cmpq %r12, -0x38(%rbp)
movq %rbx, %rdi
jne 0x6a0bd
movq %r13, %rdi
callq 0xc250
movq -0x30(%rbp), %r15
movq (%r15), %rdi
leaq 0xf5d0(%rip), %rsi      # 0x79819
movl $0x5, %edx
callq 0x6661a
movq %r15, %rdi
jmp 0x6a528
leaq -0xa280(%rbp), %rsi
movl $0x90, %edx
movq -0x60(%rbp), %rdi
callq 0xc0e0
movq -0x30(%rbp), %r13
movq -0x48(%rbp), %rbx
movq %rbx, %rdi
callq 0xc460
leaq -0x2280(%rbp), %r14
movq %rbx, %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0x67cec
testl %eax, %eax
movq -0x38(%rbp), %r15
jle 0x6a457
movq %r13, -0x30(%rbp)
movq 0x2a0(%r15), %rbx
leaq -0xa280(%rbp), %r12
movq $0x0, 0x2208(%r12)
movq %r15, (%r12)
leaq 0xebac(%rip), %rdi      # 0x78e76
callq 0xc850
leaq 0x50(%r15), %rdx
testq %rax, %rax
cmovneq %rax, %rdx
leaq 0xeba1(%rip), %rsi      # 0x78e82
xorl %r13d, %r13d
movq %r12, %rdi
xorl %eax, %eax
callq 0x6ca38
movq 0x70(%rbx), %rdx
leaq 0xeb98(%rip), %rsi      # 0x78e91
movq %r12, %rdi
xorl %eax, %eax
callq 0x6ca38
movq 0x70(%rbx), %rdx
leaq 0xeb92(%rip), %rsi      # 0x78ea0
movq %r12, %rdi
xorl %eax, %eax
callq 0x6ca38
leaq 0xeb92(%rip), %rsi      # 0x78eb1
leaq 0xeba1(%rip), %rdx      # 0x78ec7
leaq 0xeba3(%rip), %rcx      # 0x78ed0
movq %r12, %rdi
xorl %eax, %eax
callq 0x6ca38
leaq 0xc011(%rip), %rbx      # 0x7634f
leaq 0xeb8f(%rip), %rdx      # 0x78ed4
movq %r12, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x6ca38
leaq 0xeb95(%rip), %rdx      # 0x78eee
movq %r12, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x6ca38
leaq 0xeb9a(%rip), %rdx      # 0x78f07
movq %r12, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x6ca38
movq (%r15), %rdx
leaq 0xeb97(%rip), %rsi      # 0x78f1b
movq %r12, %rdi
xorl %eax, %eax
callq 0x6ca38
leaq 0x20(%r15), %rdx
leaq 0xeb94(%rip), %rsi      # 0x78f2d
movq %r12, %rdi
xorl %eax, %eax
callq 0x6ca38
movzwl 0x80(%r15), %edx
leaq 0xeb8a(%rip), %rsi      # 0x78f3c
movq %r12, %rdi
xorl %eax, %eax
callq 0x6ca38
movq 0x8(%r15), %rdx
movq 0x18(%r15), %r8
testq %r8, %r8
leaq 0xd2a4(%rip), %rax      # 0x77672
leaq 0xb301(%rip), %rcx      # 0x756d6
cmoveq %rax, %rcx
movq %rax, -0x48(%rbp)
cmoveq %rax, %r8
leaq 0xeb63(%rip), %rsi      # 0x78f4b
movq %r12, %rdi
xorl %eax, %eax
callq 0x6ca38
movq 0x2b8(%r15), %rbx
testq %rbx, %rbx
je 0x6a532
movq 0x8(%r15), %r14
movq %r14, %rdi
callq 0xc460
movq %rax, %r12
movq %rbx, %rdi
callq 0xc460
subl %eax, %r12d
leaq 0xeb3b(%rip), %rsi      # 0x78f5e
leaq -0xa280(%rbp), %rbx
movq %rbx, %rdi
movl %r12d, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x6ca38
movq 0x2b8(%r15), %rdx
leaq 0xeb27(%rip), %rsi      # 0x78f6f
movq %rbx, %rdi
xorl %eax, %eax
callq 0x6ca38
jmp 0x6a584
movq 0x2a0(%r15), %rax
movq 0xc0(%rax), %rbx
movq %rbx, %rdi
callq 0xc460
leaq -0x2280(%rbp), %rdx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x67cec
testl %eax, %eax
jle 0x6a91a
leaq 0x7071(%rip), %rsi      # 0x714ff
leaq -0x2280(%rbp), %rdi
callq 0xcb90
testq %rax, %rax
je 0x6aaa7
movq %rax, %rbx
movq %rax, %rdi
callq 0xccb0
movl %eax, %edi
movl $0x2, %esi
movl $0x1, %edx
xorl %eax, %eax
callq 0xc220
movq 0x2a0(%r15), %rax
movq 0x88(%rax), %rdi
movq %r15, %r12
leaq -0xa280(%rbp), %r15
movq %r14, %rsi
movq %r15, %rdx
callq 0x6cbae
movl $0xc8, 0x27c(%r12)
movl 0x8(%r15), %ecx
movq (%r15), %r8
leaq 0xec4a(%rip), %rsi      # 0x79148
movq %r12, %rdi
movl $0xc8, %edx
xorl %eax, %eax
callq 0x67a83
movq %r12, %rdi
movq %r14, %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x6cc4a
movq %rbx, %rdi
callq 0xc4c0
movq %r13, %rdi
callq 0x68a64
jmp 0x69e36
movq %r14, %rdi
movl $0x2f, %esi
callq 0xca50
movq %rax, %rbx
movq %r14, %r12
movq 0x8(%r15), %r14
movq %r14, %rdi
movl $0x2f, %esi
callq 0xca50
movl %eax, %edx
subl %r14d, %edx
testq %rax, %rax
cmovel %r13d, %edx
testq %rbx, %rbx
cmoveq %r12, %rbx
leaq 0xea0c(%rip), %rsi      # 0x78f7c
leaq -0xa280(%rbp), %rdi
movq %r14, %rcx
movq %rbx, %r8
xorl %eax, %eax
callq 0x6ca38
leaq 0xea04(%rip), %rsi      # 0x78f8f
leaq -0xa280(%rbp), %rbx
leaq -0x2280(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x6ca38
leaq 0xe9f5(%rip), %rsi      # 0x78fa2
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x6ca38
movq -0x8(%r15), %rax
cmpq $0x0, 0x70(%rax)
leaq 0x769c(%rip), %rax      # 0x71c66
leaq 0xe343(%rip), %rdx      # 0x78914
cmoveq %rax, %rdx
leaq 0xe9d9(%rip), %rsi      # 0x78fb5
movq %rbx, %rdi
xorl %eax, %eax
callq 0x6ca38
leaq 0x736b(%rip), %rsi      # 0x71958
movq %r15, %rdi
callq 0x67c6a
testq %rax, %rax
je 0x6a612
leaq 0xe9bd(%rip), %rsi      # 0x78fbe
leaq -0xa280(%rbp), %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x6ca38
movq 0x18(%r15), %rdx
testq %rdx, %rdx
je 0x6a630
leaq 0xe9ac(%rip), %rsi      # 0x78fce
leaq -0xa280(%rbp), %rdi
xorl %eax, %eax
callq 0x6ca38
leaq 0xa32d(%rip), %rsi      # 0x74964
movq %r15, %rdi
callq 0x67c6a
testq %rax, %rax
je 0x6a65c
leaq 0xe993(%rip), %rsi      # 0x78fde
leaq -0xa280(%rbp), %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x6ca38
leaq 0xc251(%rip), %rsi      # 0x768b4
movq %rbx, %rdi
callq 0x6cb74
leaq 0xe97e(%rip), %rsi      # 0x78ff0
movq %rbx, %rdi
callq 0x6cb74
leaq 0xe973(%rip), %rsi      # 0x78ff4
movq %rbx, %rdi
callq 0x6cb74
leaq 0xd2f5(%rip), %rsi      # 0x77985
movq %rbx, %rdi
callq 0x6cb74
leaq 0xe95a(%rip), %rsi      # 0x78ff9
movq %rbx, %rdi
callq 0x6cb74
leaq 0xe953(%rip), %rsi      # 0x79001
movq %rbx, %rdi
callq 0x6cb74
leaq 0xe951(%rip), %rsi      # 0x7900e
movq %rbx, %rdi
callq 0x6cb74
cmpl $0x0, 0x84(%r15)
jle 0x6a74c
movq -0x38(%rbp), %rax
leaq 0x88(%rax), %r13
leaq -0xa280(%rbp), %r12
xorl %r15d, %r15d
movq %r15, %rax
shlq $0x4, %rax
movq (%r13,%rax), %rdx
movq 0x8(%r13,%rax), %rcx
movq %r12, %rdi
leaq 0xe91f(%rip), %rsi      # 0x7901e
xorl %eax, %eax
callq 0x6ca38
movq %rax, %r14
movzbl (%r14), %ebx
cmpl $0x2d, %ebx
je 0x6a71d
testl %ebx, %ebx
je 0x6a739
cmpl $0x3d, %ebx
jne 0x6a723
jmp 0x6a739
movb $0x5f, (%r14)
movb $0x5f, %bl
callq 0xc350
movq (%rax), %rax
movzbl %bl, %ecx
movb (%rax,%rcx,4), %al
movb %al, (%r14)
incq %r14
jmp 0x6a709
incq %r15
movq -0x38(%rbp), %rax
movslq 0x84(%rax), %rax
cmpq %rax, %r15
jl 0x6a6e4
movslq -0x8074(%rbp), %rax
leal 0x1(%rax), %ecx
movl %ecx, -0x8074(%rbp)
movq $0x0, -0x8278(%rbp,%rax,8)
movslq -0x8078(%rbp), %rax
leal 0x1(%rax), %ecx
movl %ecx, -0x8078(%rbp)
movb $0x0, -0xa278(%rbp,%rax)
cmpl $0x40, -0x8074(%rbp)
jge 0x6ac16
movl -0x8078(%rbp), %eax
testl %eax, %eax
movq -0x30(%rbp), %r15
jle 0x6ac35
cmpl $0x2000, %eax           # imm = 0x2000
jae 0x6ac54
leaq -0x2280(%rbp), %rdi
movl $0x2f, %esi
callq 0xca50
testq %rax, %rax
je 0x6a7e8
leaq -0x2280(%rbp), %r8
subl %r8d, %eax
leaq 0x7a0f(%rip), %rdx      # 0x721e0
leaq -0x4280(%rbp), %rdi
movl $0x2000, %esi           # imm = 0x2000
movl %eax, %ecx
xorl %eax, %eax
callq 0x6ad62
jmp 0x6a809
leaq 0xbb60(%rip), %rdx      # 0x7634f
leaq 0xaec2(%rip), %rcx      # 0x756b8
leaq -0x4280(%rbp), %rdi
movl $0x2000, %esi           # imm = 0x2000
xorl %eax, %eax
callq 0x6ad62
xorl %r14d, %r14d
leaq -0x58(%rbp), %rbx
movq %rbx, %rdi
movl $0x1, %esi
callq 0x666ea
movl -0x58(%rbp), %r12d
cmpl $-0x1, %r12d
jne 0x6a834
leal 0x1(%r14), %eax
cmpl $0x9, %r14d
movl %eax, %r14d
jb 0x6a810
cmpl $-0x1, %r12d
jne 0x6a85a
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xc2b0
leaq 0xe614(%rip), %rdx      # 0x78e5f
movq %r15, %rdi
movl $0x1f4, %esi            # imm = 0x1F4
xorl %eax, %eax
callq 0x6ae64
movq -0x38(%rbp), %r14
movq 0x2a0(%r14), %rax
movq 0x50(%rax), %rbx
movl -0x54(%rbp), %r13d
callq 0xcad0
testl %eax, %eax
je 0x6ac73
movl $0x2, 0x2b0(%r14)
movq 0x2a0(%r14), %rdi
leaq -0x112b(%rip), %rdx     # 0x69768
movl %r12d, %esi
movq -0x30(%rbp), %rcx
callq 0x66c32
movq %rax, 0x2a8(%r14)
orb $0x40, 0xa2(%rax)
movq -0x8(%r14), %rdi
leaq 0xd828(%rip), %rsi      # 0x780e0
movl $0x11, %edx
callq 0x6661a
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 0x66328
movl %r13d, %edi
callq 0xc2b0
jmp 0x69e36
movq %r13, -0x30(%rbp)
leaq 0x6b5c(%rip), %rsi      # 0x71481
movq %r15, %rdi
callq 0x67c6a
movq %rax, %r13
leaq 0xe9bd(%rip), %rsi      # 0x792f4
movq %r15, %rdi
callq 0x67c6a
movq %rax, %rbx
movq -0x60(%rbp), %rax
movq 0x30(%rax), %r8
movq 0x58(%rax), %rcx
leaq 0xe9ad(%rip), %rdx      # 0x79302
leaq -0xa280(%rbp), %rdi
movl $0x40, %esi
xorl %eax, %eax
callq 0x6ad62
testq %rbx, %rbx
je 0x6a9a1
callq 0xc4a0
movq (%rax), %rax
xorl %ecx, %ecx
movzbl -0xa280(%rbp,%rcx), %edi
movl (%rax,%rdi,4), %edx
movzbl (%rbx,%rcx), %esi
movl (%rax,%rsi,4), %esi
testl %edi, %edi
je 0x6a994
incq %rcx
cmpl %esi, %edx
je 0x6a977
cmpl %esi, %edx
jne 0x6a9a1
movq -0x30(%rbp), %rbx
jmp 0x6ac01
testq %r13, %r13
je 0x6aad8
movq -0x60(%rbp), %rax
movq 0x58(%rax), %r14
leaq -0x280(%rbp), %r15
leaq -0x58(%rbp), %r12
leaq 0xe948(%rip), %rsi      # 0x7930c
leaq -0x40(%rbp), %rdx
leaq -0x4280(%rbp), %rcx
leaq -0x3c(%rbp), %r8
leaq -0x50(%rbp), %r9
movq %r13, %rdi
xorl %eax, %eax
pushq %r15
pushq %r12
callq 0xc100
addq $0x10, %rsp
cmpl $0x6, %eax
je 0x6aa54
leaq 0xe930(%rip), %rsi      # 0x79325
leaq -0x40(%rbp), %rdx
leaq -0x4280(%rbp), %rcx
leaq -0x3c(%rbp), %r8
leaq -0x50(%rbp), %r9
movq %r13, %rdi
xorl %eax, %eax
pushq %r15
pushq %r12
callq 0xc100
addq $0x10, %rsp
cmpl $0x6, %eax
je 0x6aa54
leaq 0xe8f9(%rip), %rsi      # 0x7931f
leaq -0x40(%rbp), %rdx
leaq -0x4280(%rbp), %rcx
leaq -0x3c(%rbp), %r8
leaq -0x50(%rbp), %r9
movq %r13, %rdi
xorl %eax, %eax
pushq %r15
pushq %r12
callq 0xc100
addq $0x10, %rsp
cmpl $0x6, %eax
jne 0x6ab6e
movl -0x3c(%rbp), %r12d
cmpl $0x7b3, %r12d           # imm = 0x7B3
jl 0x6abb8
movq %r14, -0x48(%rbp)
leaq 0xd6a8(%rip), %r14      # 0x78118
leaq -0x4280(%rbp), %rbx
xorl %r15d, %r15d
movq %r14, %r13
movslq (%r13), %rsi
addq %r14, %rsi
movq %rbx, %rdi
callq 0xc950
testl %eax, %eax
je 0x6aae1
addq $0x4, %r13
addq $0x2, %r15
cmpq $0x18, %r15
jne 0x6aa7d
movq -0x48(%rbp), %r14
jmp 0x6abb8
callq 0xcb20
movl (%rax), %edi
callq 0xc8c0
leaq 0xe7fd(%rip), %rdx      # 0x792b7
leaq -0x2280(%rbp), %rcx
movq %r13, %rdi
movl $0x1f4, %esi            # imm = 0x1F4
movq %rax, %r8
xorl %eax, %eax
callq 0x6ae64
jmp 0x69e36
movq -0x30(%rbp), %rbx
jmp 0x6abc7
leal 0x3(%r12), %eax
testl %r12d, %r12d
cmovnsl %r12d, %eax
sarl $0x2, %eax
movslq %r12d, %rcx
imulq $-0x51eb851f, %rcx, %rdx # imm = 0xAE147AE1
movq %rdx, %rsi
shrq $0x3f, %rsi
sarq $0x25, %rdx
addl %esi, %edx
imulq $0x51eb851f, %rcx, %rsi # imm = 0x51EB851F
movq %rsi, %rdi
shrq $0x3f, %rdi
sarq $0x27, %rsi
addl %edi, %esi
imull $0x16d, %ecx, %ecx      # imm = 0x16D
addl %eax, %ecx
addl %edx, %ecx
leaq 0xd5d4(%rip), %rax      # 0x78100
movzwl (%r15,%rax), %eax
addl %esi, %eax
addl %ecx, %eax
addl -0x40(%rbp), %eax
imull $0x15180, %eax, %eax    # imm = 0x15180
addl $0x868b8400, %eax       # imm = 0x868B8400
movslq -0x50(%rbp), %rcx
imulq $0xe10, %rcx, %rcx      # imm = 0xE10
cltq
movslq -0x58(%rbp), %rdx
imulq $0x3c, %rdx, %rdx
addq %rcx, %rdx
movslq -0x280(%rbp), %rcx
addq %rdx, %rcx
addq %rax, %rcx
movq -0x48(%rbp), %r14
jmp 0x6abba
leaq 0xe7c3(%rip), %rsi      # 0x79338
leaq -0x40(%rbp), %rdx
leaq -0x4280(%rbp), %rcx
leaq -0x3c(%rbp), %rbx
leaq -0x50(%rbp), %r9
movq %r13, %rdi
movq %rbx, %r8
xorl %eax, %eax
pushq %r15
pushq %r12
callq 0xc100
addq $0x10, %rsp
cmpl $0x6, %eax
sete %al
movl (%rbx), %r12d
cmpl $0x7b3, %r12d           # imm = 0x7B3
setge %cl
testb %cl, %al
jne 0x6aa65
xorl %ecx, %ecx
cmpq %rcx, %r14
movq -0x30(%rbp), %rbx
movq -0x38(%rbp), %r15
jle 0x6ac01
leaq -0x2280(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0xcd20
movl %eax, 0x2a8(%r15)
cmpl $-0x1, %eax
je 0x6ac0e
leaq -0x2280(%rbp), %rsi
movq %rbx, %rdi
movq -0x60(%rbp), %rdx
movq -0x80(%rbp), %rcx
callq 0x6b0c1
jmp 0x69e36
movq %rbx, %rdi
movl $0x130, %esi            # imm = 0x130
jmp 0x69e2d
movq %rbx, %rdi
jmp 0x69e28
leaq 0xe40c(%rip), %rdi      # 0x79029
leaq 0xd63f(%rip), %rsi      # 0x78263
leaq 0xe427(%rip), %rcx      # 0x79052
movl $0x904, %edx            # imm = 0x904
callq 0xc210
leaq 0xe46e(%rip), %rdi      # 0x790aa
leaq 0xd620(%rip), %rsi      # 0x78263
leaq 0xe408(%rip), %rcx      # 0x79052
movl $0x905, %edx            # imm = 0x905
callq 0xc210
leaq 0xe45c(%rip), %rdi      # 0x790b7
leaq 0xd601(%rip), %rsi      # 0x78263
leaq 0xe3e9(%rip), %rcx      # 0x79052
movl $0x906, %edx            # imm = 0x906
callq 0xc210
leaq -0x4280(%rbp), %rdi
callq 0xcce0
movl %r13d, %edi
xorl %esi, %esi
callq 0xc670
movl %r13d, %edi
movl $0x1, %esi
callq 0xc670
movl %r13d, %edi
callq 0xc2b0
movl $0x11, %edi
xorl %esi, %esi
callq 0xc3f0
testq %rbx, %rbx
jne 0x6acd2
leaq -0x2280(%rbp), %rdi
movq %rdi, %rsi
xorl %edx, %edx
leaq -0x8278(%rbp), %rcx
xorl %eax, %eax
callq 0xca20
leaq 0xc9a2(%rip), %rbx      # 0x77672
jmp 0x6acfa
leaq -0x2280(%rbp), %rdx
movq %rbx, %rdi
movq %rbx, %rsi
xorl %ecx, %ecx
leaq -0x8278(%rbp), %r8
xorl %eax, %eax
callq 0xca20
leaq 0xce2b(%rip), %rax      # 0x77b21
movq %rax, -0x48(%rbp)
callq 0xcb20
movl (%rax), %edi
callq 0xc8c0
movq %rax, %r10
subq $0x8, %rsp
leaq 0xe408(%rip), %rdx      # 0x7911c
leaq -0x280(%rbp), %r14
leaq -0x2280(%rbp), %r9
movl $0x1f4, %esi            # imm = 0x1F4
movq %r14, %rdi
movq %rbx, %rcx
movq -0x48(%rbp), %r8
xorl %eax, %eax
pushq %r10
callq 0xc5d0
addq $0x10, %rsp
movq %r14, %rdi
callq 0xc460
movl $0x1, %edi
movq %r14, %rsi
movq %rax, %rdx
xorl %ecx, %ecx
callq 0xc3d0
movl $0x1, %edi
callq 0xc7a0