// File: /workspace/github_cpp_makefile_star2_O3/nilnilnil[P]autocomplete/src/main.cpp
// Function: callback(mg_event, mg_connection*, mg_request_info const*)
static void*
callback(enum mg_event event,
         struct mg_connection *conn,
         const struct mg_request_info *request_info) {
    if (event == MG_NEW_REQUEST) {
        std::string request_uri = request_info->uri;
        if (request_uri == "/face/suggest/") {
            return handle_suggest(event, conn, request_info);
        }
        else if (request_uri == "/face/import/") {
            return handle_import(event, conn, request_info);
        }
        else if (request_uri == "/face/export/") {
            return handle_export(event, conn, request_info);
        }
        else if (request_uri == "/face/stats/") {
            return handle_stats(event, conn, request_info);
        }
        else {
            return handle_invalid_request(event, conn, request_info);
        }
    }
    else {
        return NULL;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x308, %rsp            # imm = 0x308
testl %edi, %edi
je 0xaf30
xorl %eax, %eax
jmp 0xb987
movq %rdx, %r14
movq %rsi, %r13
movq 0x10(%rdx), %rsi
leaq 0xd0(%rsp), %r15
leaq 0x108(%rsp), %rdx
movq %r15, %rdi
callq 0xbfa6
leaq 0xa514(%rip), %rsi      # 0x1546d
movq %r15, %rdi
callq 0x5140
testl %eax, %eax
je 0xaff7
leaq 0xa50c(%rip), %rsi      # 0x1547c
leaq 0xd0(%rsp), %rdi
callq 0x5140
testl %eax, %eax
je 0xb034
leaq 0xa4fe(%rip), %rsi      # 0x1548a
leaq 0xd0(%rsp), %rdi
callq 0x5140
testl %eax, %eax
je 0xb3dd
leaq 0xa4f0(%rip), %rsi      # 0x15498
leaq 0xd0(%rsp), %rdi
callq 0x5140
testl %eax, %eax
je 0xb474
leaq 0xa282(%rip), %rsi      # 0x15246
leaq 0xa50b(%rip), %rcx      # 0x154d6
leaq 0xa4d8(%rip), %r8       # 0x154aa
movq %r13, %rdi
movl $0x194, %edx            # imm = 0x194
xorl %eax, %eax
callq 0xe860
leaq 0xa5a9(%rip), %rsi      # 0x15591
movq %r13, %rdi
xorl %eax, %eax
callq 0xe860
jmp 0xb95f
incq 0x119c2(%rip)           # 0x1c9c0
cmpb $0x1, 0x119b3(%rip)     # 0x1c9b8
jne 0xb223
leaq 0xa234(%rip), %rsi      # 0x15246
leaq 0xa48c(%rip), %rcx      # 0x154a5
leaq 0xa48a(%rip), %r8       # 0x154aa
movq %r13, %rdi
movl $0x19c, %edx            # imm = 0x19C
xorl %eax, %eax
callq 0xe860
jmp 0xb95f
movq %r13, 0x40(%rsp)
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
movl $0x656c6966, (%r13)     # imm = 0x656C6966
movq $0x4, -0x8(%r13)
movb $0x0, 0x4(%r13)
leaq 0x108(%rsp), %rdi
leaq 0x20(%rsp), %rdx
movq %r14, %rsi
callq 0x85d7
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0xb083
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movl $0x74726f73, (%rbx)     # imm = 0x74726F73
movw $0x6465, 0x4(%rbx)      # imm = 0x6465
movq $0x6, -0x8(%rbx)
movb $0x0, 0x6(%rbx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movq %r14, %rsi
callq 0x85d7
movq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x5810
movl %eax, %ebp
cmpq %r13, %r15
je 0xb0d8
movq 0x30(%rsp), %rsi
incq %rsi
movq %r15, %rdi
callq 0x54c0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xb0ee
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %rsp, %rdx
movq %rbx, (%rdx)
movl $0x696d696c, 0x10(%rdx) # imm = 0x696D696C
movw $0x74, 0x14(%rdx)
movq $0x5, 0x8(%rdx)
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x85d7
movq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0x5810
movl %eax, %r15d
cmpq %r13, %r14
je 0xb13b
movq 0x30(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x54c0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xb151
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
xorl %r12d, %r12d
xorl %edi, %edi
callq 0x5430
movq %rax, %r14
leaq 0x20(%rsp), %rdi
movq %r13, (%rdi)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
callq 0xdebe
cmpl $0x1, %r15d
sbbl %r12d, %r12d
orl %r15d, %r12d
leaq 0x20(%rsp), %rdi
movq %rsp, %rcx
leaq 0x48(%rsp), %r8
movl %ebp, %esi
movl %r12d, %edx
callq 0xa779
movl %eax, %ebp
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0xb1b8
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x54c0
testl %ebp, %ebp
movq 0x40(%rsp), %rdi
js 0xb52e
leaq 0xa07a(%rip), %rsi      # 0x15246
leaq 0xa2f1(%rip), %rcx      # 0x154c4
leaq 0xa2d0(%rip), %r8       # 0x154aa
movl $0xc8, %edx
xorl %eax, %eax
callq 0xe860
movl (%rsp), %ebp
movl 0x48(%rsp), %r15d
movq 0x108(%rsp), %r12
xorl %edi, %edi
callq 0x5430
subq %r14, %rax
leaq 0xa185(%rip), %rsi      # 0x1538c
movq 0x40(%rsp), %rdi
movl %ebp, %edx
movl %r15d, %ecx
movq %r12, %r8
movq %rax, %r9
xorl %eax, %eax
callq 0xe860
jmp 0xb84a
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
movw $0x71, (%r15)
movq $0x1, -0x8(%r15)
leaq 0x108(%rsp), %rdi
leaq 0x20(%rsp), %rdx
movq %r14, %rsi
callq 0x85d7
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xb266
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movw $0x6e, (%rbx)
movq $0x1, -0x8(%rbx)
leaq 0x20(%rsp), %rdi
movq %rsp, %rdx
movq %r14, %rsi
callq 0x85d7
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xb2a2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x58(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movabsq $0x6b6361626c6c6163, %rax # imm = 0x6B6361626C6C6163
movq %rax, (%rbx)
movq $0x8, -0x8(%rbx)
movb $0x0, 0x8(%rbx)
movq %rsp, %rdi
leaq 0x48(%rsp), %rdx
movq %r14, %rsi
callq 0x85d7
movq 0x48(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb2eb
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0xb8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movl $0x65707974, (%rbx)     # imm = 0x65707974
movq $0x4, -0x8(%rbx)
movb $0x0, 0x4(%rbx)
leaq 0x48(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
movq %r14, %rsi
callq 0x85d7
movq 0xa8(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb33b
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x54c0
movl $0x20, %ebp
cmpq $0x0, 0x28(%rsp)
movl $0x20, %eax
je 0xb357
movq 0x20(%rsp), %rdi
callq 0x5810
cmpl $0x20, %eax
cmovbl %eax, %ebp
movq 0x8(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x9ed8(%rip), %rsi      # 0x15246
leaq 0xa14f(%rip), %rcx      # 0x154c4
leaq 0xa12e(%rip), %r8       # 0x154aa
movq %r13, %rdi
movl $0xc8, %edx
xorl %eax, %eax
callq 0xe860
movq 0x108(%rsp), %r14
movq 0x110(%rsp), %r12
testq %r12, %r12
je 0xb696
movq %r13, %r15
xorl %r13d, %r13d
movsbl (%r14,%r13), %edi
callq 0x5710
movb %al, (%r14,%r13)
incq %r13
cmpq %r13, %r12
jne 0xb3aa
movq 0x108(%rsp), %r14
movq 0x110(%rsp), %rdx
movq %r15, %r13
leaq 0x30(%rsp), %r15
jmp 0xb698
leaq 0x118(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movl $0x656c6966, (%rbx)     # imm = 0x656C6966
movq $0x4, -0x8(%rbx)
movb $0x0, 0x4(%rbx)
leaq 0x20(%rsp), %rdi
leaq 0x108(%rsp), %rdx
movq %r14, %rsi
callq 0x85d7
movq 0x108(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb42d
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x54c0
cmpb $0x1, 0x11584(%rip)     # 0x1c9b8
jne 0xb554
leaq 0x9e05(%rip), %rsi      # 0x15246
leaq 0xa05d(%rip), %rcx      # 0x154a5
leaq 0xa05b(%rip), %r8       # 0x154aa
movq %r13, %rdi
movl $0x19c, %edx            # imm = 0x19C
xorl %eax, %eax
callq 0xe860
leaq 0xa07b(%rip), %rsi      # 0x154e0
movq %r13, %rdi
xorl %eax, %eax
callq 0xe860
jmp 0xb944
leaq 0x9dcb(%rip), %rsi      # 0x15246
leaq 0xa042(%rip), %rcx      # 0x154c4
leaq 0xa021(%rip), %r8       # 0x154aa
movq %r13, %rdi
movl $0xc8, %edx
xorl %eax, %eax
callq 0xe860
movq 0x11521(%rip), %rdx     # 0x1c9c0
leaq 0xa083(%rip), %rsi      # 0x15529
movq %r13, %rdi
xorl %eax, %eax
callq 0xe860
movq 0x11511(%rip), %r14     # 0x1c9c8
xorl %edi, %edi
callq 0x5430
leaq 0x108(%rsp), %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x96ec
movq 0x108(%rsp), %rdx
leaq 0xa05e(%rip), %rsi      # 0x1553e
movq %r13, %rdi
xorl %eax, %eax
callq 0xe860
leaq 0x118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb50b
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x54c0
cmpb $0x1, 0x114a6(%rip)     # 0x1c9b8
jne 0xb86c
leaq 0xa02b(%rip), %rsi      # 0x1554a
movq %r13, %rdi
xorl %eax, %eax
callq 0xe860
jmp 0xb89d
leaq 0x9d11(%rip), %rsi      # 0x15246
leaq 0x9f9a(%rip), %rcx      # 0x154d6
leaq 0x9f67(%rip), %r8       # 0x154aa
movl $0x194, %edx            # imm = 0x194
xorl %eax, %eax
callq 0xe860
jmp 0xb84a
movb $0x1, 0x1145d(%rip)     # 0x1c9b8
movq 0x20(%rsp), %rsi
leaq 0x108(%rsp), %rdi
movl $0x10, %edx
callq 0x5510
movq %r13, 0x40(%rsp)
xorl %edi, %edi
callq 0x5430
movq %rax, 0xc8(%rsp)
movq 0x113eb(%rip), %rbp     # 0x1c978
movq 0x113dc(%rip), %rax     # 0x1c970
movabsq $0x6db6db6db6db6db7, %r13 # imm = 0x6DB6DB6DB6DB6DB7
subq %rax, %rbp
je 0xb8cd
leaq 0x10(%rsp), %rbx
xorl %r14d, %r14d
movq %rsp, %r12
xorl %r15d, %r15d
movl (%rax,%r14), %esi
leaq 0x108(%rsp), %rdi
callq 0x52f0
movb $0x9, (%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x5590
movq 0x1138f(%rip), %rcx     # 0x1c970
movq 0x8(%rcx,%r14), %rsi
movq 0x10(%rcx,%r14), %rdx
movq %rax, %rdi
callq 0x5590
movb $0x9, (%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x5590
movq %rax, %rbp
movq 0x1135f(%rip), %rax     # 0x1c970
movq 0x28(%rax,%r14), %rsi
movslq 0x30(%rax,%r14), %rdx
movq %rbx, (%rsp)
addq %rsi, %rdx
movq %r12, %rdi
callq 0xde28
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbp, %rdi
callq 0x5590
movb $0xa, 0x48(%rsp)
movl $0x1, %edx
movq %rax, %rdi
leaq 0x48(%rsp), %rsi
callq 0x5590
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xb668
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
incq %r15
movq 0x11306(%rip), %rbp     # 0x1c978
movq 0x112f7(%rip), %rax     # 0x1c970
subq %rax, %rbp
sarq $0x3, %rbp
imulq %r13, %rbp
addq $0x38, %r14
cmpq %rbp, %r15
jb 0xb5b5
jmp 0xb8d5
xorl %edx, %edx
leaq 0xa8(%rsp), %rdi
movq %rbx, (%rdi)
addq %r14, %rdx
movq %r14, %rsi
callq 0xdebe
leaq 0x112bb(%rip), %rsi     # 0x1c970
leaq 0x112cc(%rip), %rdx     # 0x1c988
leaq 0xf0(%rsp), %rdi
leaq 0xa8(%rsp), %rcx
movl %ebp, %r8d
callq 0x6f06
movq 0xa8(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb6f1
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x78(%rsp), %rbp
cmpq $0x0, 0x40(%rsp)
je 0xb75f
movq (%rsp), %r14
leaq 0x68(%rsp), %rdi
movq %rbp, (%rdi)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
callq 0xdebe
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
leaq 0x48(%rsp), %rcx
callq 0x93c2
movq 0x88(%rsp), %rcx
leaq 0x9d77(%rip), %rsi      # 0x154c7
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0xe860
jmp 0xb7b7
leaq 0x68(%rsp), %rdi
movq %rbp, (%rdi)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
callq 0xdebe
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
leaq 0x48(%rsp), %rcx
callq 0x93c2
movq 0x88(%rsp), %rdx
leaq 0x9d99(%rip), %rsi      # 0x15546
movq %r13, %rdi
xorl %eax, %eax
callq 0xe860
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb7d8
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x54c0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0xb7ef
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x10(%rsp), %rbx
leaq 0x58(%rsp), %r14
leaq 0xf0(%rsp), %rdi
callq 0xc17a
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0xb81d
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x54c0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xb833
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xb84a
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0x118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb95f
movq 0x118(%rsp), %rsi
jmp 0xb957
movq 0x11105(%rip), %rax     # 0x1c978
subq 0x110f6(%rip), %rax     # 0x1c970
sarq $0x3, %rax
movabsq $0x6db6db6db6db6db7, %rdx # imm = 0x6DB6DB6DB6DB6DB7
imulq %rax, %rdx
leaq 0x9ccb(%rip), %rsi      # 0x1555e
movq %r13, %rdi
xorl %eax, %eax
callq 0xe860
callq 0x5730
movl %eax, %edi
callq 0x8684
leal 0x3ff(%rax), %edx
testl %eax, %eax
cmovnsl %eax, %edx
sarl $0xa, %edx
leaq 0x9cbd(%rip), %rsi      # 0x1557b
movq %r13, %rdi
xorl %eax, %eax
callq 0xe860
jmp 0xb95f
sarq $0x3, %rbp
imulq %r13, %rbp
movb $0x0, 0x110dc(%rip)     # 0x1c9b8
movq 0x20(%rsp), %r15
xorl %edi, %edi
callq 0x5430
subq 0xc8(%rsp), %rax
leaq 0x9bef(%rip), %rsi      # 0x154e6
movq 0x40(%rsp), %rdi
movq %rbp, %rdx
movq %r15, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0xe860
movq 0x106a5(%rip), %rax     # 0x1bfb8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x110(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x108(%rsp,%rcx)
callq 0x53e0
leaq 0x200(%rsp), %rdi
callq 0x5190
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb95f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb980
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0xa8b8(%rip), %rax      # 0x1623f
addq $0x308, %rsp            # imm = 0x308
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb9ab
jmp 0xb9d1
jmp 0xb9ed
jmp 0xbb54
jmp 0xb9ff
jmp 0xbb14
movq %rax, %r14
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb9d4
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x54c0
jmp 0xb9d4
movq %rax, %r14
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0xb9f0
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x54c0
jmp 0xb9f0
movq %rax, %r14
leaq 0xf0(%rsp), %rdi
callq 0xc17a
jmp 0xba47
movq %rax, %r14
jmp 0xbb64
movq %rax, %r14
movq 0x108(%rsp), %rdi
cmpq %rbx, %rdi
jne 0xbb28
jmp 0xbb7f
movq %rax, %r14
movq 0xa8(%rsp), %rdi
cmpq %rbx, %rdi
je 0xba47
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x54c0
jmp 0xba47
jmp 0xba44
movq %rax, %r14
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xba63
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x54c0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xba7e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xbb17
movq 0x30(%rsp), %rsi
jmp 0xbafb
movq %rax, %r14
movq 0xa8(%rsp), %rdi
cmpq %rbx, %rdi
je 0xba63
movq 0xb8(%rsp), %rsi
jmp 0xba5b
movq %rax, %r14
movq 0x48(%rsp), %rdi
cmpq %rbx, %rdi
je 0xba7e
movq 0x58(%rsp), %rsi
jmp 0xba76
jmp 0xbaea
movq %rax, %r14
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
jne 0xbb72
jmp 0xbb7f
movq %rax, %r14
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
jne 0xba8c
jmp 0xbb17
jmp 0xbaea
movq %rax, %r14
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xbb17
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
jmp 0xbb17
movq %rax, %r14
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
jne 0xbb72
jmp 0xbb7f
movq %rax, %r14
leaq 0x118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbb7f
movq 0x118(%rsp), %rsi
jmp 0xbb77
movq %rax, %r14
jmp 0xbb7f
jmp 0xbb54
movq %rax, %r14
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0xbb57
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x54c0
jmp 0xbb57
movq %rax, %r14
leaq 0x108(%rsp), %rdi
callq 0x5760
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbb7f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x54c0
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbba0
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x54c0
movq %r14, %rdi
callq 0x58e0