// File: /workspace/github_cpp_makefile_star2_O1/kztomita[P]http-dump/sync_stream_wrapper.cc
// Function: ssl_stream::ssl_stream(bool, bool)
ssl_stream::ssl_stream(bool verify_cert, bool http2)
  : ssl_context_(asio::ssl::context::tlsv12_client),
    verify_cert_(verify_cert),
    host_("localhost") {

  ssl_context_.set_default_verify_paths();

  auto native_ctx = ssl_context_.native_handle();

  if (http2) {
    SSL_CTX_set_alpn_protos(native_ctx, (const unsigned char *)"\x02h2", 3);
  }

  if (g_keylog_file) {
    SSL_CTX_set_keylog_callback(native_ctx, ssl_keylog_callback);
  }

  stream_.reset(new socket_type(io_context_, ssl_context_));
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movl %edx, %ebp
movl %esi, %r12d
movq %rdi, %r15
leaq 0x1bd09(%rip), %rax     # 0x47468
movq %rax, (%rdi)
addq $0x8, %rdi
movq %rdi, 0x8(%rsp)
callq 0xda56
leaq 0x18(%r15), %r14
movq %r14, %rdi
movl $0x10, %esi
callq 0x2bf90
movb %r12b, 0x30(%r15)
leaq 0x38(%r15), %rdi
leaq 0x48(%r15), %rax
movq %rax, (%rsp)
movq %rax, 0x38(%r15)
leaq 0x9cd8(%rip), %rsi      # 0x35474
leaq 0x9cda(%rip), %rdx      # 0x3547d
movq %rdi, 0x10(%rsp)
callq 0x10322
movq $0x0, 0x58(%r15)
addq $0x58, %r15
callq 0xb8b0
movq (%r14), %rdi
callq 0xb6e0
movabsq $0x100000000, %r12      # imm = 0x100000000
cmpl $0x1, %eax
jne 0x2b7e1
leaq 0x1aa94(%rip), %rbx     # 0x46270
xorl %r13d, %r13d
jmp 0x2b840
callq 0xb890
movq %rax, %r13
movq 0x1d3a8(%rip), %rax     # 0x48b98
movabsq $-0x4d54ee85da8120f3, %rcx # imm = 0xB2AB117A257EDF0D
cmpq %rcx, %rax
je 0x2b80e
movabsq $-0x70502de1da3a1f65, %rcx # imm = 0x8FAFD21E25C5E09B
cmpq %rcx, %rax
jne 0x2b816
testl %r13d, %r13d
setne %al
jmp 0x2b82a
movq 0x1d373(%rip), %rax     # 0x48b90
leaq 0x1d36c(%rip), %rdi     # 0x48b90
movl %r13d, %esi
callq *0x30(%rax)
movl %r13d, %ecx
xorl %r13d, %r13d
testb %al, %al
cmovneq %r12, %r13
orq %rcx, %r13
leaq 0x1d350(%rip), %rbx     # 0x48b90
testq %r12, %r13
jne 0x2b8b3
movq (%r14), %r13
testb %bpl, %bpl
movq 0x8(%rsp), %rbx
je 0x2b866
leaq 0x9c25(%rip), %rsi      # 0x3547e
movq %r13, %rdi
movl $0x3, %edx
callq 0xbbc0
cmpq $0x0, 0x1d352(%rip)     # 0x48bc0
je 0x2b87f
leaq 0xfc(%rip), %rsi        # 0x2b973
movq %r13, %rdi
callq 0xba10
movl $0x1a0, %edi            # imm = 0x1A0
callq 0xb5e0
movq %rax, %rbp
movq %rax, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x2c34c
movq %r15, %rdi
movq %rbp, %rsi
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2e042
leaq 0x9bd0(%rip), %rsi      # 0x3548a
leaq 0x18(%rsp), %rdi
callq 0xbc90
leaq 0x1a975(%rip), %rax     # 0x46240
leaq 0x48(%rsp), %rcx
movq %rax, -0x30(%rcx)
movq %r13, -0x20(%rcx)
movq %rbx, -0x18(%rcx)
movq %rcx, -0x10(%rcx)
movq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
leaq 0x18(%rsp), %rdi
callq 0xe1ef
movq %rax, %r13
leaq 0x18(%rsp), %rdi
callq 0xde76
jmp 0x2b925
movq %rax, %r13
movl $0x1a0, %esi            # imm = 0x1A0
movq %rbp, %rdi
callq 0xb600
jmp 0x2b925
movq %rax, %r13
jmp 0x2b959
movq %rax, %r13
jmp 0x2b961
jmp 0x2b922
movq %rax, %r13
movq (%r15), %rsi
testq %rsi, %rsi
je 0x2b935
movq %r15, %rdi
callq 0x2dfb6
movq $0x0, (%r15)
movq 0x10(%rsp), %rax
movq (%rax), %rdi
cmpq (%rsp), %rdi
je 0x2b959
movq (%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb600
movq %r14, %rdi
callq 0x22794
movq 0x8(%rsp), %rdi
callq 0xdc1c
movq %r13, %rdi
callq 0xbbb0