// File: /workspace/github_cpp_makefile_star2_O2/UTAP[P]APHTTP/examples/main.cpp
// Function: main
int main(int argc, char **argv) {
  srand(time(NULL)); // for rand
  try {
    MyServer server(argc > 1 ? atoi(argv[1]) : 5000);
    server.setNotFoundErrPage("static/404.html");
    server.get("/login", new ShowPage("static/logincss.html"));
    server.post("/login", new LoginHandler());
    server.get("/up", new ShowPage("static/upload_form.html"));
    server.post("/up", new UploadHandler());
    server.get("/rand", new RandomNumberHandler());
    server.get("/home.png", new ShowImage("static/home.png"));
    server.get("/", new ShowPage("static/home.html"));
    server.get("/colors", new ColorHandler("template/colors.html"));
    server.run();
  } catch (const Server::Exception& e) {
    cerr << e.getMessage() << endl;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1f0, %rsp            # imm = 0x1F0
movq %rsi, %rbx
movl %edi, %r14d
xorl %edi, %edi
callq 0x4320
movl %eax, %edi
callq 0x4350
movl $0x1388, %esi           # imm = 0x1388
cmpl $0x2, %r14d
jl 0x5914
movq 0x8(%rbx), %rdi
callq 0x44e0
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x58cc
leaq 0xb793(%rip), %rsi      # 0x110b7
leaq -0x210(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
leaq -0x50(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0xe670
leaq -0x210(%rbp), %rdi
callq 0x4638
leaq 0xb770(%rip), %rsi      # 0x110c7
leaq -0x1f0(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
pushq $0x48
popq %rdi
callq 0x4380
movq %rax, %r15
leaq 0xb755(%rip), %rsi      # 0x110ce
leaq -0x1d0(%rbp), %rdi
leaq -0x22(%rbp), %rdx
callq 0x41a0
movb $0x1, %r12b
leaq -0x1d0(%rbp), %rsi
movq %r15, %rdi
callq 0xe4b4
xorl %r12d, %r12d
leaq -0x50(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
movq %r15, %rdx
callq 0xdd86
leaq -0x1d0(%rbp), %rdi
callq 0x4638
leaq -0x1f0(%rbp), %rdi
callq 0x4638
leaq 0xb6f7(%rip), %rsi      # 0x110c7
leaq -0x1b0(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
pushq $0x8
popq %rdi
callq 0x4380
leaq 0x12171(%rip), %rcx     # 0x17b60
addq $0x10, %rcx
movq %rcx, (%rax)
leaq -0x50(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
movq %rax, %rdx
callq 0xde1c
leaq -0x1b0(%rbp), %rdi
callq 0x4638
leaq 0xb6c7(%rip), %rsi      # 0x110e3
leaq -0x190(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
pushq $0x48
popq %rdi
callq 0x4380
movq %rax, %r15
leaq 0xb6a9(%rip), %rsi      # 0x110e7
leaq -0x170(%rbp), %rdi
leaq -0x22(%rbp), %rdx
callq 0x41a0
movb $0x1, %r12b
leaq -0x170(%rbp), %rsi
movq %r15, %rdi
callq 0xe4b4
xorl %r12d, %r12d
leaq -0x50(%rbp), %rdi
leaq -0x190(%rbp), %rsi
movq %r15, %rdx
callq 0xdd86
leaq -0x170(%rbp), %rdi
callq 0x4638
leaq -0x190(%rbp), %rdi
callq 0x4638
leaq 0xb64e(%rip), %rsi      # 0x110e3
leaq -0x150(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
pushq $0x8
popq %rdi
callq 0x4380
leaq 0x120ec(%rip), %rcx     # 0x17ba0
addq $0x10, %rcx
movq %rcx, (%rax)
leaq -0x50(%rbp), %rdi
leaq -0x150(%rbp), %rsi
movq %rax, %rdx
callq 0xde1c
leaq -0x150(%rbp), %rdi
callq 0x4638
leaq 0xb61e(%rip), %rsi      # 0x110ff
leaq -0x130(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
pushq $0x8
popq %rdi
callq 0x4380
leaq 0x12020(%rip), %rcx     # 0x17b20
addq $0x10, %rcx
movq %rcx, (%rax)
leaq -0x50(%rbp), %rdi
leaq -0x130(%rbp), %rsi
movq %rax, %rdx
callq 0xdd86
leaq -0x130(%rbp), %rdi
callq 0x4638
leaq 0xb5de(%rip), %rsi      # 0x1110b
leaq -0x110(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
pushq $0x48
popq %rdi
callq 0x4380
movq %rax, %r15
leaq 0xb5b6(%rip), %rsi      # 0x11105
leaq -0xf0(%rbp), %rdi
leaq -0x22(%rbp), %rdx
callq 0x41a0
movb $0x1, %r12b
leaq -0xf0(%rbp), %rsi
movq %r15, %rdi
callq 0xe592
xorl %r12d, %r12d
leaq -0x50(%rbp), %rdi
leaq -0x110(%rbp), %rsi
movq %r15, %rdx
callq 0xdd86
leaq -0xf0(%rbp), %rdi
callq 0x4638
leaq -0x110(%rbp), %rdi
callq 0x4638
leaq 0xb475(%rip), %rsi      # 0x1101b
leaq -0xd0(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
pushq $0x48
popq %rdi
callq 0x4380
movq %rax, %r15
leaq 0xb54d(%rip), %rsi      # 0x11115
leaq -0xb0(%rbp), %rdi
leaq -0x22(%rbp), %rdx
callq 0x41a0
movb $0x1, %r12b
leaq -0xb0(%rbp), %rsi
movq %r15, %rdi
callq 0xe4b4
xorl %r12d, %r12d
leaq -0x50(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
movq %r15, %rdx
callq 0xdd86
leaq -0xb0(%rbp), %rdi
callq 0x4638
leaq -0xd0(%rbp), %rdi
callq 0x4638
leaq 0xb507(%rip), %rsi      # 0x11126
leaq -0x90(%rbp), %rdi
leaq -0x21(%rbp), %rdx
callq 0x41a0
pushq $0x30
popq %rdi
callq 0x4380
movq %rax, %r15
leaq 0xb4ed(%rip), %rsi      # 0x1112e
leaq -0x70(%rbp), %rdi
leaq -0x22(%rbp), %rdx
callq 0x41a0
movb $0x1, %r12b
leaq -0x70(%rbp), %rsi
movq %r15, %rdi
callq 0x6496
xorl %r12d, %r12d
leaq -0x50(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movq %r15, %rdx
callq 0xdd86
leaq -0x70(%rbp), %rdi
callq 0x4638
leaq -0x90(%rbp), %rdi
callq 0x4638
leaq -0x50(%rbp), %rdi
callq 0xdeb4
leaq -0x50(%rbp), %rdi
callq 0xe28a
xorl %eax, %eax
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x5d41
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5d6b
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5d73
jmp 0x5d41
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5d96
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5d9e
jmp 0x5d41
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5dc1
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5dc9
jmp 0x5d41
jmp 0x5d41
jmp 0x5d41
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5e07
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5e0f
jmp 0x5d41
jmp 0x5d41
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5e3e
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5e46
jmp 0x5d41
movq %rdx, %r14
movq %rax, %rbx
leaq -0x210(%rbp), %rdi
jmp 0x5e4d
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5e52
movq %rdx, %r14
movq %rax, %rbx
jmp 0x5e5b
movq %rdx, %r14
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x4638
testb %r12b, %r12b
je 0x5d73
movq %r15, %rdi
callq 0x4330
leaq -0x90(%rbp), %rdi
jmp 0x5e4d
movq %rdx, %r14
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x4638
testb %r12b, %r12b
je 0x5d9e
movq %r15, %rdi
callq 0x4330
leaq -0xd0(%rbp), %rdi
jmp 0x5e4d
movq %rdx, %r14
movq %rax, %rbx
leaq -0xf0(%rbp), %rdi
callq 0x4638
testb %r12b, %r12b
je 0x5dc9
movq %r15, %rdi
callq 0x4330
leaq -0x110(%rbp), %rdi
jmp 0x5e4d
movq %rdx, %r14
movq %rax, %rbx
leaq -0x130(%rbp), %rdi
jmp 0x5e4d
movq %rdx, %r14
movq %rax, %rbx
leaq -0x150(%rbp), %rdi
jmp 0x5e4d
movq %rdx, %r14
movq %rax, %rbx
leaq -0x170(%rbp), %rdi
callq 0x4638
testb %r12b, %r12b
je 0x5e0f
movq %r15, %rdi
callq 0x4330
leaq -0x190(%rbp), %rdi
jmp 0x5e4d
movq %rdx, %r14
movq %rax, %rbx
leaq -0x1b0(%rbp), %rdi
jmp 0x5e4d
movq %rdx, %r14
movq %rax, %rbx
leaq -0x1d0(%rbp), %rdi
callq 0x4638
testb %r12b, %r12b
je 0x5e46
movq %r15, %rdi
callq 0x4330
leaq -0x1f0(%rbp), %rdi
callq 0x4638
leaq -0x50(%rbp), %rdi
callq 0xe28a
cmpl $0x1, %r14d
jne 0x5eb6
movq %rbx, %rdi
callq 0x41b0
leaq -0x50(%rbp), %rdi
movq %rax, %rsi
callq 0xe26e
movq 0x12174(%rip), %rdi     # 0x17ff0
leaq -0x50(%rbp), %rsi
callq 0x4300
movq %rax, %rdi
callq 0x4200
leaq -0x50(%rbp), %rdi
callq 0x4638
callq 0x4530
jmp 0x5c9a
movq %rax, %rbx
jmp 0x5eb1
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x4638
callq 0x4530
movq %rbx, %rdi
callq 0x4580
movq %rax, %rdi
callq 0x5ec6