// File: /workspace/github_cpp_makefile_star2_O2/theanarkh[P]js_runtime_loader/core/loader.cc
// Function: No::Loader::Compile(v8::FunctionCallbackInfo<v8::Value> const&)
void No::Loader::Compile(V8_ARGS) {
    V8_ISOLATE
    V8_CONTEXT
    String::Utf8Value filename(isolate, args[0].As<String>());
    int fd = open(*filename, 0 , O_RDONLY);
    std::string content;
    char buffer[4096];
    while (1)
    {
      memset(buffer, 0, 4096);
      int ret = read(fd, buffer, 4096);
      if (ret == -1) {
        return args.GetReturnValue().Set(newStringToLcal(isolate, "read file error"));
      }
      if (ret == 0) {
        break;
      }
      content.append(buffer, ret);
    }
    close(fd);
    ScriptCompiler::Source script_source(newStringToLcal(isolate, content.c_str()));
    Local<String> params[] = {
      newStringToLcal(isolate, "require"),
      newStringToLcal(isolate, "exports"),
      newStringToLcal(isolate, "module"),
    };
    MaybeLocal<Function> fun =
    ScriptCompiler::CompileFunctionInContext(context, &script_source, 3, params, 0, nullptr);
    if (fun.IsEmpty()) {
      args.GetReturnValue().Set(Undefined(isolate));
    } else {
      args.GetReturnValue().Set(fun.ToLocalChecked());
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10b8, %rsp           # imm = 0x10B8
movq %rdi, %r14
movq (%rdi), %rax
movq 0x8(%rax), %rbx
movq %rbx, %rdi
callq 0x100220
cmpl $0x0, 0x10(%r14)
movq %rax, -0x30(%rbp)
jle 0xf012f
movq 0x8(%r14), %rdx
jmp 0xf013b
movq (%r14), %rax
movl $0xa0, %edx
addq 0x8(%rax), %rdx
leaq -0x40(%rbp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x12d510
movq (%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0xe6600
movl %eax, %r12d
leaq -0x50(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq -0x10c0(%rbp), %r13
leaq -0x60(%rbp), %r15
movl $0x1000, %edx           # imm = 0x1000
movq %r13, %rdi
xorl %esi, %esi
callq 0xe63e0
movl $0x1000, %edx           # imm = 0x1000
movl %r12d, %edi
movq %r13, %rsi
callq 0xe6af0
testl %eax, %eax
je 0xf01d7
cmpl $-0x1, %eax
je 0xf01ae
movslq %eax, %rdx
movq %r15, %rdi
movq %r13, %rsi
callq 0xe6440
jmp 0xf0176
movq (%r14), %r14
leaq 0xdf3e55(%rip), %rsi    # 0xee400d
movq %rbx, %rdi
xorl %edx, %edx
callq 0xf0546
testq %rax, %rax
je 0xf02d3
movq (%rax), %rax
movq %rax, 0x18(%r14)
jmp 0xf02af
movl %r12d, %edi
callq 0xe6290
movq -0x60(%rbp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0xf0546
leaq -0x90(%rbp), %r12
movq %rax, -0x30(%r12)
andq $0x0, -0x28(%r12)
andl $0x0, -0x18(%r12)
leaq -0x88(%rbp), %r13
xorps %xmm0, %xmm0
movups %xmm0, -0x18(%r13)
movups %xmm0, -0x8(%r13)
leaq 0xdf3dfd(%rip), %rsi    # 0xee401d
movq %rbx, %rdi
xorl %edx, %edx
callq 0xf0546
movq %rax, -0x80(%rbp)
leaq 0xdf3df0(%rip), %rsi    # 0xee4025
movq %rbx, %rdi
xorl %edx, %edx
callq 0xf0546
movq %rax, -0x78(%rbp)
leaq 0xe0a9df(%rip), %rsi    # 0xefac29
movq %rbx, %rdi
xorl %edx, %edx
callq 0xf0546
leaq -0x80(%rbp), %rcx
movq %rax, 0x10(%rcx)
andq $0x0, 0x10(%rsp)
andl $0x0, 0x8(%rsp)
andl $0x0, (%rsp)
leaq -0xc0(%rbp), %rsi
pushq $0x3
popq %rdx
movq -0x30(%rbp), %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x100e60
movq (%r14), %rcx
testq %rax, %rax
jne 0xf0298
addq $0xa0, %rbx
je 0xf02dc
movq %rbx, %rax
movq (%rax), %rax
movq %rax, 0x18(%rcx)
movq %r13, %rdi
callq 0xf0396
movq %r12, %rdi
callq 0xf03ba
leaq -0x60(%rbp), %rdi
callq 0xe69a0
leaq -0x40(%rbp), %rdi
callq 0x12d740
addq $0x10b8, %rsp           # imm = 0x10B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x10(%r14), %rax
jmp 0xf01ce
leaq 0x10(%rcx), %rax
jmp 0xf0298
jmp 0xf02ef
jmp 0xf0304
jmp 0xf0304
jmp 0xf0304
movq %rax, %rbx
jmp 0xf0310
movq %rax, %rbx
movq %r13, %rdi
callq 0xf0396
movq %r12, %rdi
callq 0xf03ba
jmp 0xf0307
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xe69a0
leaq -0x40(%rbp), %rdi
callq 0x12d740
movq %rbx, %rdi
callq 0xe6940