// File: alibakhtiar[P]ExampleHTTPServer/./HttpServer.hh
// Function: SimpleHttpServer::Response::send()
virtual bool send(void)
	{
		ssize_t sendLen;
		std::string head;

		this->headers["Content-Length"] = std::to_string(this->body.length());
		this->headers["Conection"] = "close";

		head = "HTTP/1.";
		head += this->req->httpMinorVersion == 0 ? '0' : '1';
		head += " ";
		head += std::to_string(this->statusCode);
		head += " ";
		head += httpStatusMessage(this->statusCode);
		head += "\r\n";

		for (auto const &h : this->headers) {
			head += h.first;
			head += ": ";
			head += h.second;
			head += "\r\n";
		}

		head += "\r\n";

		sendLen = this->write(head.c_str(), head.length());
		if (sendLen < 0) {
			head.clear();
			APPERROR(_STRERR, _FUNC, _LINE);
			return false;
		}

		sendLen = this->write(this->body.c_str(), this->body.length());
		if (sendLen < 0) {
			head.clear();
			APPERROR(_STRERR, _FUNC, _LINE);
			return false;
		}

		head.clear();
		return true;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x108(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x33b0
movq -0x108(%rbp), %rdi
addq $0x50, %rdi
callq 0x33e0
movq %rax, %rsi
leaq -0x58(%rbp), %rdi
callq 0x66b0
jmp 0x5da1
movq -0x108(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x118(%rbp)
leaq -0x89(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x3450
movq -0x110(%rbp), %rdx
leaq 0x34f9(%rip), %rsi      # 0x92cd
leaq -0x88(%rbp), %rdi
callq 0x4dc0
jmp 0x5de2
movq -0x118(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x6790
movq %rax, -0x120(%rbp)
jmp 0x5dfe
movq -0x120(%rbp), %rdi
leaq -0x58(%rbp), %rsi
movq %rsi, -0x138(%rbp)
callq 0x3350
leaq -0x88(%rbp), %rdi
callq 0x31b0
leaq -0x89(%rbp), %rdi
callq 0x3300
movq -0x138(%rbp), %rdi
callq 0x31b0
movq -0x108(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x130(%rbp)
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x3450
movq -0x128(%rbp), %rdx
leaq 0x3476(%rip), %rsi      # 0x92e2
leaq -0xb0(%rbp), %rdi
callq 0x4dc0
jmp 0x5e7a
movq -0x130(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x6790
movq %rax, -0x140(%rbp)
jmp 0x5e96
movq -0x140(%rbp), %rdi
leaq 0x3438(%rip), %rsi      # 0x92dc
callq 0x33a0
jmp 0x5eab
leaq -0xb0(%rbp), %rdi
callq 0x31b0
leaq -0xb1(%rbp), %rdi
callq 0x3300
leaq 0x3422(%rip), %rsi      # 0x92ec
leaq -0x38(%rbp), %rdi
callq 0x33a0
jmp 0x5ed5
movq -0x108(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x84(%rax), %eax
subl $0x1, %eax
movl $0x31, %esi
sbbl $0x0, %esi
leaq -0x38(%rbp), %rdi
callq 0x31c0
jmp 0x5efc
leaq 0x348c(%rip), %rsi      # 0x938f
leaq -0x38(%rbp), %rdi
callq 0x3280
jmp 0x5f0e
movq -0x108(%rbp), %rax
movl 0x18(%rax), %esi
leaq -0xd8(%rbp), %rdi
callq 0x6380
jmp 0x5f26
leaq -0x38(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3370
jmp 0x5f38
leaq -0xd8(%rbp), %rdi
callq 0x31b0
leaq 0x3444(%rip), %rsi      # 0x938f
leaq -0x38(%rbp), %rdi
callq 0x3280
jmp 0x5f56
movq -0x108(%rbp), %rax
movl 0x18(%rax), %edi
callq 0x4180
movq %rax, %rsi
leaq -0x38(%rbp), %rdi
callq 0x3280
jmp 0x5f73
leaq 0x337a(%rip), %rsi      # 0x92f4
leaq -0x38(%rbp), %rdi
callq 0x3280
jmp 0x5f85
movq -0x108(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x6870
movq %rax, -0xe8(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x68a0
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x68d0
testb $0x1, %al
jne 0x5fd9
jmp 0x60f0
leaq -0xe8(%rbp), %rdi
callq 0x6900
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x3370
jmp 0x5ffe
leaq 0x3389(%rip), %rsi      # 0x938e
leaq -0x38(%rbp), %rdi
callq 0x3280
jmp 0x6010
movq -0xf8(%rbp), %rsi
addq $0x20, %rsi
leaq -0x38(%rbp), %rdi
callq 0x3370
jmp 0x6026
leaq 0x32c7(%rip), %rsi      # 0x92f4
leaq -0x38(%rbp), %rdi
callq 0x3280
jmp 0x6038
jmp 0x603a
leaq -0xe8(%rbp), %rdi
callq 0x6920
jmp 0x5fbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x62a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6082
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x31b0
leaq -0x89(%rbp), %rdi
callq 0x3300
leaq -0x58(%rbp), %rdi
callq 0x31b0
jmp 0x62a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x60c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x31b0
leaq -0xb1(%rbp), %rdi
callq 0x3300
jmp 0x62a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x31b0
jmp 0x62a0
leaq 0x31fd(%rip), %rsi      # 0x92f4
leaq -0x38(%rbp), %rdi
callq 0x3280
jmp 0x6102
leaq -0x38(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x3140
movq -0x158(%rbp), %rdi
movq %rax, -0x150(%rbp)
callq 0x33e0
movq -0x108(%rbp), %rdi
movq -0x150(%rbp), %rsi
movq %rax, %rdx
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movq %rax, -0x148(%rbp)
jmp 0x6148
movq -0x148(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jge 0x61b8
leaq -0x38(%rbp), %rdi
callq 0x3390
movq 0x7e66(%rip), %rax      # 0xdfd0
movq (%rax), %rax
movq %rax, -0x160(%rbp)
callq 0x3060
movl (%rax), %edi
callq 0x3100
movq -0x160(%rbp), %rdi
movq %rax, %rdx
leaq 0x2eb0(%rip), %rsi      # 0x9041
leaq 0x315f(%rip), %rcx      # 0x92f7
movl $0xba, %r8d
movb $0x0, %al
callq 0x33c0
movb $0x0, -0x1(%rbp)
movl $0x1, -0xfc(%rbp)
jmp 0x6289
movq -0x108(%rbp), %rdi
addq $0x50, %rdi
movq %rdi, -0x178(%rbp)
callq 0x3140
movq -0x178(%rbp), %rdi
movq %rax, -0x170(%rbp)
callq 0x33e0
movq -0x108(%rbp), %rdi
movq -0x170(%rbp), %rsi
movq %rax, %rdx
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movq %rax, -0x168(%rbp)
jmp 0x6205
movq -0x168(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jge 0x6272
leaq -0x38(%rbp), %rdi
callq 0x3390
movq 0x7da9(%rip), %rax      # 0xdfd0
movq (%rax), %rax
movq %rax, -0x180(%rbp)
callq 0x3060
movl (%rax), %edi
callq 0x3100
movq -0x180(%rbp), %rdi
movq %rax, %rdx
leaq 0x2df3(%rip), %rsi      # 0x9041
leaq 0x30a2(%rip), %rcx      # 0x92f7
movl $0xc1, %r8d
movb $0x0, %al
callq 0x33c0
movb $0x0, -0x1(%rbp)
movl $0x1, -0xfc(%rbp)
jmp 0x6289
leaq -0x38(%rbp), %rdi
callq 0x3390
movb $0x1, -0x1(%rbp)
movl $0x1, -0xfc(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x31b0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x31b0
movq -0x60(%rbp), %rdi
callq 0x3440
nopw %cs:(%rax,%rax)
nopl (%rax)