// File: /workspace/github_cpp_makefile_star2_O1/romkatv[P]hcproxy/src/parser.cc
// Function: hcproxy::Parser::ParseRequest(int, std::function<void (std::basic_string_view<char, std::char_traits<char>>)>)
void Parser::ParseRequest(int fd, Callback cb) {
  CHECK(fd >= 0);
  CHECK(cb);
  auto* eh = new ParseEventHandler(opt_, fd, std::move(cb));
  event_loop_.ScheduleOrRun([this, eh]() { event_loop_.Add(eh, EPOLLIN); });
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x68, %rsp
testl %esi, %esi
js 0x18c57
movq %rdx, %r15
cmpq $0x0, 0x10(%rdx)
je 0x18ca2
movl %esi, %ebp
movq %rdi, %r14
movl $0x78, %edi
callq 0x22210
movq %rax, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
movq 0x18(%r15), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x18b7d
movups (%r15), %xmm1
addq $0x10, %r15
movaps %xmm1, (%rsp)
movq %rax, 0x10(%rsp)
movups %xmm0, (%r15)
movq %rbx, %rdi
movl %ebp, %esi
callq 0x19482
leaq 0xf1962(%rip), %rax     # 0x10a4f0
movq %rax, (%rbx)
leaq 0x38(%rbx), %r15
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%rbx)
movq $0x0, 0x48(%rbx)
movq 0x18(%rsp), %rax
movq %rax, 0x50(%rbx)
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x18bcb
leaq 0x10(%rsp), %rcx
movaps -0x10(%rcx), %xmm1
movups %xmm1, (%r15)
movq %rax, 0x48(%rbx)
movups %xmm0, (%rcx)
movq %rbx, %rdi
addq $0x58, %rdi
movq (%r14), %rsi
leaq 0x20(%rsp), %rdx
callq 0x19502
movq $0x0, 0x70(%rbx)
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x18bfe
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x10(%r14), %rdi
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rsi
movaps %xmm0, (%rsi)
movaps %xmm0, 0x10(%rsi)
movq %r14, (%rsi)
movq %rbx, 0x8(%rsi)
leaq 0x825(%rip), %rax       # 0x19444
movq %rax, 0x18(%rsi)
leaq 0x830(%rip), %rax       # 0x1945a
movq %rax, 0x10(%rsi)
callq 0x20c4e
movq 0x50(%rsp), %rax
testq %rax, %rax
je 0x18c4c
leaq 0x40(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
addq $0x68, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0xb6461(%rip), %rsi     # 0xcf0bf
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movl $0x7e, %edx
movl $0x3, %ecx
callq 0x2019c
movq 0x18(%rbx), %rdi
leaq 0xb72a3(%rip), %rsi     # 0xcff23
movl $0x7, %edx
callq 0x8bab0
movq 0x38(%rsp), %rdi
leaq 0xbb675(%rip), %rsi     # 0xd430b
movl $0x2, %edx
callq 0x8bab0
jmp 0x18cf9
leaq 0xb6416(%rip), %rsi     # 0xcf0bf
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movl $0x7f, %edx
movl $0x3, %ecx
callq 0x2019c
movq 0x18(%rbx), %rdi
leaq 0xb6402(%rip), %rsi     # 0xcf0cd
movl $0x2, %edx
callq 0x8bab0
movq 0x38(%rsp), %rdi
leaq 0xbb62a(%rip), %rsi     # 0xd430b
movl $0x2, %edx
callq 0x8bab0
jmp 0x18cf9
jmp 0x18d77
jmp 0x18d77
jmp 0x18cf9
leaq 0x20(%rsp), %rdi
callq 0x18aaa
movq %rax, %r14
movq 0x50(%rsp), %rax
testq %rax, %rax
je 0x18d6f
leaq 0x40(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x18d6f
jmp 0x18d77
movq %rax, %r14
movq 0x48(%rbx), %rax
testq %rax, %rax
je 0x18d3c
movq %r15, %rdi
movq %r15, %rsi
movl $0x3, %edx
callq *%rax
movq %rbx, %rdi
callq 0x19562
jmp 0x18d4b
jmp 0x18d77
movq %rax, %r14
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0x18d62
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movl $0x78, %esi
movq %rbx, %rdi
callq 0x21280
movq %r14, %rdi
callq 0xcc900
movq %rax, %rdi
callq 0x18abd
nop