// File: 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
subq $0x14e0, %rsp           # imm = 0x14E0
movq %rdi, -0x2b0(%rbp)
movq -0x2b0(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x2a0(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x2b8(%rbp)
movq -0x2b0(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1027e0
movq %rax, -0x2c0(%rbp)
movq -0x2b8(%rbp), %rax
movq %rax, -0x13e0(%rbp)
movq -0x2b0(%rbp), %rax
movq %rax, -0x288(%rbp)
movl $0x0, -0x28c(%rbp)
movq -0x288(%rbp), %rax
movq %rax, -0x13d8(%rbp)
cmpl $0x0, -0x28c(%rbp)
jl 0xf1220
movq -0x13d8(%rbp), %rax
movl 0x10(%rax), %eax
cmpl -0x28c(%rbp), %eax
jg 0xf1315
movq -0x13d8(%rbp), %rax
movq %rax, -0x278(%rbp)
movq -0x278(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x1c8(%rbp)
movq -0x1c8(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x1c8(%rbp), %rax
movq %rax, -0x110(%rbp)
movl $0x4, -0x114(%rbp)
movq -0x110(%rbp), %rax
addq $0x80, %rax
movl -0x114(%rbp), %ecx
shll $0x3, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x120(%rbp)
movq -0x120(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movq -0x1d0(%rbp), %rax
leaq -0x1c0(%rbp), %rcx
movq %rcx, -0xf0(%rbp)
movq %rax, -0xf8(%rbp)
movq -0xf0(%rbp), %rax
movq -0xf8(%rbp), %rcx
movq %rcx, (%rax)
movq -0x1c0(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x298(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rax
movq (%rax), %rax
leaq -0x280(%rbp), %rcx
movq %rcx, -0xd0(%rbp)
movq %rax, -0xd8(%rbp)
movq -0xd0(%rbp), %rax
movq -0xd8(%rbp), %rcx
movq %rcx, (%rax)
jmp 0xf1354
movq -0x13d8(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x28c(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
leaq -0x280(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
movq %rax, -0xc8(%rbp)
movq -0xc0(%rbp), %rax
movq -0xc8(%rbp), %rcx
movq %rcx, (%rax)
movq -0x13e0(%rbp), %rsi
movq -0x280(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0x2e8(%rbp), %rax
movq %rax, -0x268(%rbp)
movq -0x268(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x270(%rbp)
movq -0x270(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq -0xb8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
leaq -0xb0(%rbp), %rcx
movq %rcx, -0x90(%rbp)
movq %rax, -0x98(%rbp)
movq -0x90(%rbp), %rax
movq -0x98(%rbp), %rcx
movq %rcx, (%rax)
movq -0xb0(%rbp), %rax
movq %rax, -0x260(%rbp)
movq -0x260(%rbp), %rax
movq %rax, -0x2e0(%rbp)
movq -0x2e0(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0x2d8(%rbp), %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rax
leaq -0x250(%rbp), %rcx
movq %rcx, -0x80(%rbp)
movq -0x80(%rbp), %rcx
movq (%rcx), %rcx
movq %rcx, (%rax)
movq -0x2d8(%rbp), %rdx
leaq -0x2d0(%rbp), %rdi
movq %rdi, -0x13f0(%rbp)
callq 0x12fad0
movq -0x13f0(%rbp), %rdi
callq 0xf1150
movq %rax, -0x13e8(%rbp)
jmp 0xf1465
movq -0x13e8(%rbp), %rdi
xorl %edx, %edx
movb %dl, %al
movl %edx, %esi
callq 0xe6620
movl %eax, -0x13f4(%rbp)
jmp 0xf147f
movl -0x13f4(%rbp), %eax
movl %eax, -0x2ec(%rbp)
leaq -0x320(%rbp), %rdi
callq 0xe6470
jmp 0xf1499
leaq -0x1320(%rbp), %rdi
movq %rdi, -0x1410(%rbp)
xorl %esi, %esi
movl $0x1000, %edx           # imm = 0x1000
movq %rdx, -0x1408(%rbp)
callq 0xe63f0
movq -0x1410(%rbp), %rsi
movq -0x1408(%rbp), %rdx
movl -0x2ec(%rbp), %edi
callq 0xe6b10
movq %rax, -0x1400(%rbp)
jmp 0xf14dc
movq -0x1400(%rbp), %rax
movl %eax, -0x1324(%rbp)
cmpl $-0x1, -0x1324(%rbp)
jne 0xf163f
movq -0x2b0(%rbp), %rax
movq %rax, -0x228(%rbp)
movq -0x228(%rbp), %rax
movq (%rax), %rax
addq $0x18, %rax
leaq -0x220(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movq %rax, -0x78(%rbp)
movq -0x70(%rbp), %rax
movq -0x78(%rbp), %rcx
movq %rcx, (%rax)
movq -0x220(%rbp), %rax
movq %rax, -0x1418(%rbp)
movq -0x1418(%rbp), %rax
movq %rax, -0x1330(%rbp)
movq -0x2b8(%rbp), %rdi
leaq 0xdf5ab7(%rip), %rsi    # 0xee700d
xorl %edx, %edx
callq 0xf2840
movq %rax, -0x1420(%rbp)
jmp 0xf1566
movq -0x1420(%rbp), %rax
movq %rax, -0x1338(%rbp)
movq -0x1338(%rbp), %rax
movq %rax, -0x210(%rbp)
leaq -0x1330(%rbp), %rax
movq %rax, -0x218(%rbp)
movq -0x218(%rbp), %rax
movq %rax, -0x1428(%rbp)
leaq -0x210(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
cmpq $0x0, (%rax)
sete %al
testb $0x1, %al
jne 0xf15ba
jmp 0xf15d8
movq -0x1428(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rcx
movq (%rcx), %rcx
movq -0x8(%rcx), %rcx
movq (%rax), %rax
movq %rcx, (%rax)
jmp 0xf1600
movq -0x1428(%rbp), %rax
leaq -0x210(%rbp), %rcx
movq %rcx, -0x88(%rbp)
movq -0x88(%rbp), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
movq (%rax), %rax
movq %rcx, (%rax)
jmp 0xf1602
movl $0x1, -0x133c(%rbp)
jmp 0xf1cb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2f8(%rbp)
movl %eax, -0x2fc(%rbp)
jmp 0xf1ce0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2f8(%rbp)
movl %eax, -0x2fc(%rbp)
jmp 0xf1cd4
cmpl $0x0, -0x1324(%rbp)
jne 0xf164a
jmp 0xf166b
movslq -0x1324(%rbp), %rdx
leaq -0x320(%rbp), %rdi
leaq -0x1320(%rbp), %rsi
callq 0xe6450
jmp 0xf1666
jmp 0xf1497
movl -0x2ec(%rbp), %edi
callq 0xe62a0
jmp 0xf1678
movq -0x2b8(%rbp), %rax
movq %rax, -0x1438(%rbp)
leaq -0x320(%rbp), %rdi
callq 0xe6110
movq -0x1438(%rbp), %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xf2840
movq %rax, -0x1430(%rbp)
jmp 0xf16ac
movq -0x1430(%rbp), %rax
movq %rax, -0x1388(%rbp)
movq -0x1388(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq -0x1380(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movq $0x0, -0x200(%rbp)
movq $0x0, -0x208(%rbp)
movq -0x1f8(%rbp), %rdi
movq %rdi, -0x1440(%rbp)
movq -0x1f0(%rbp), %rax
movq %rax, (%rdi)
movq %rdi, %rax
addq $0x8, %rax
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rax
movq $0x0, (%rax)
movq %rdi, %rax
addq $0x18, %rax
movq %rax, -0x158(%rbp)
movb $0x0, -0x159(%rbp)
movb $0x0, -0x15a(%rbp)
movb $0x0, -0x15b(%rbp)
movb $0x0, -0x15c(%rbp)
movq -0x158(%rbp), %rax
movb -0x159(%rbp), %sil
xorl %ecx, %ecx
movl $0x1, %edx
testb $0x1, %sil
cmovnel %edx, %ecx
movb -0x15b(%rbp), %r8b
xorl %edx, %edx
movl $0x4, %esi
testb $0x1, %r8b
cmovnel %esi, %edx
orl %edx, %ecx
movb -0x15a(%rbp), %r8b
xorl %edx, %edx
movl $0x2, %esi
testb $0x1, %r8b
cmovnel %esi, %edx
orl %edx, %ecx
movb -0x15c(%rbp), %r8b
xorl %edx, %edx
movl $0x8, %esi
testb $0x1, %r8b
cmovnel %esi, %edx
orl %edx, %ecx
movl %ecx, (%rax)
movq %rdi, %rax
addq $0x20, %rax
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rax
movq $0x0, (%rax)
movq %rdi, %rax
addq $0x28, %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rax
movq $0x0, (%rax)
addq $0x30, %rdi
movq -0x200(%rbp), %rsi
callq 0xf1e50
movq -0x1440(%rbp), %rdi
addq $0x38, %rdi
movq -0x208(%rbp), %rsi
callq 0xf1e80
movq -0x2b8(%rbp), %rdi
leaq 0xdf5803(%rip), %rsi    # 0xee701d
xorl %edx, %edx
callq 0xf2840
movq %rax, -0x1448(%rbp)
jmp 0xf182a
movq -0x1448(%rbp), %rax
movq %rax, -0x13a0(%rbp)
leaq -0x1398(%rbp), %rax
movq %rax, -0x1458(%rbp)
movq -0x2b8(%rbp), %rdi
leaq 0xdf57d1(%rip), %rsi    # 0xee7025
xorl %edx, %edx
callq 0xf2840
movq %rax, -0x1450(%rbp)
jmp 0xf1864
movq -0x1458(%rbp), %rax
movq -0x1450(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x1390(%rbp), %rax
movq %rax, -0x1468(%rbp)
movq -0x2b8(%rbp), %rdi
leaq 0xe0c398(%rip), %rsi    # 0xefdc29
xorl %edx, %edx
callq 0xf2840
movq %rax, -0x1460(%rbp)
jmp 0xf18a1
movq -0x1468(%rbp), %rax
movq -0x1460(%rbp), %rcx
movq %rcx, (%rax)
movq -0x2c0(%rbp), %rax
movq %rax, -0x13b0(%rbp)
movq -0x13b0(%rbp), %rdi
movq %rsp, %rax
movq $0x0, 0x10(%rax)
movl $0x0, 0x8(%rax)
movl $0x0, (%rax)
xorl %eax, %eax
movl %eax, %r9d
leaq -0x1380(%rbp), %rsi
movl $0x3, %edx
leaq -0x13a0(%rbp), %rcx
movq %r9, %r8
callq 0x103420
movq %rax, -0x1470(%rbp)
jmp 0xf1908
movq -0x1470(%rbp), %rax
movq %rax, -0x13a8(%rbp)
leaq -0x13a8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
cmpq $0x0, (%rax)
sete %al
movb %al, -0x1471(%rbp)
movb -0x1471(%rbp), %al
testb $0x1, %al
jne 0xf1947
jmp 0xf1b26
movq -0x2b0(%rbp), %rax
movq %rax, -0x238(%rbp)
movq -0x238(%rbp), %rax
movq (%rax), %rax
addq $0x18, %rax
leaq -0x230(%rbp), %rcx
movq %rcx, -0x60(%rbp)
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
movq -0x68(%rbp), %rcx
movq %rcx, (%rax)
movq -0x230(%rbp), %rax
movq %rax, -0x1480(%rbp)
movq -0x1480(%rbp), %rax
movq %rax, -0x13b8(%rbp)
movq -0x2b8(%rbp), %rax
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x1b0(%rbp), %rax
movq %rax, -0x128(%rbp)
movl $0x4, -0x12c(%rbp)
movq -0x128(%rbp), %rax
addq $0x80, %rax
movl -0x12c(%rbp), %ecx
shll $0x3, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x138(%rbp)
movq -0x138(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x1b8(%rbp), %rax
leaq -0x1a8(%rbp), %rcx
movq %rcx, -0x100(%rbp)
movq %rax, -0x108(%rbp)
movq -0x100(%rbp), %rax
movq -0x108(%rbp), %rcx
movq %rcx, (%rax)
movq -0x1a8(%rbp), %rax
movq %rax, -0x1488(%rbp)
movq -0x1488(%rbp), %rax
movq %rax, -0x13c0(%rbp)
movq -0x13c0(%rbp), %rax
movq %rax, -0x1d8(%rbp)
leaq -0x13b8(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x1e0(%rbp), %rax
movq %rax, -0x1490(%rbp)
leaq -0x1d8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
sete %al
testb $0x1, %al
jne 0xf1a8d
jmp 0xf1aab
movq -0x1490(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq (%rcx), %rcx
movq -0x8(%rcx), %rcx
movq (%rax), %rax
movq %rcx, (%rax)
jmp 0xf1ad3
movq -0x1490(%rbp), %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, -0xe8(%rbp)
movq -0xe8(%rbp), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
movq (%rax), %rax
movq %rcx, (%rax)
jmp 0xf1ad5
jmp 0xf1c74
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2f8(%rbp)
movl %eax, -0x2fc(%rbp)
leaq -0x1380(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x178(%rbp), %rdi
movq %rdi, -0x1498(%rbp)
addq $0x38, %rdi
callq 0xf2210
movq -0x1498(%rbp), %rdi
addq $0x30, %rdi
callq 0xf2270
jmp 0xf1cd4
movq -0x2b0(%rbp), %rax
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rax
movq (%rax), %rax
addq $0x18, %rax
leaq -0x240(%rbp), %rcx
movq %rcx, -0x50(%rbp)
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq -0x58(%rbp), %rcx
movq %rcx, (%rax)
movq -0x240(%rbp), %rax
movq %rax, -0x14a0(%rbp)
movq -0x14a0(%rbp), %rax
movq %rax, -0x13c8(%rbp)
leaq -0x13a8(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x190(%rbp), %rax
movq %rax, -0x14a8(%rbp)
cmpq $0x0, (%rax)
sete %al
testb $0x1, %al
jne 0xf1ba1
jmp 0xf1baa
callq 0xf99b0
jmp 0xf1ba8
jmp 0xf1baa
movq -0x14a8(%rbp), %rax
movq (%rax), %rax
leaq -0x188(%rbp), %rcx
movq %rcx, -0x18(%rbp)
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, (%rax)
movq -0x188(%rbp), %rax
movq %rax, -0x14b0(%rbp)
movq -0x14b0(%rbp), %rax
movq %rax, -0x13d0(%rbp)
movq -0x13d0(%rbp), %rax
movq %rax, -0x198(%rbp)
leaq -0x13c8(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movq -0x1a0(%rbp), %rax
movq %rax, -0x14b8(%rbp)
leaq -0x198(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
sete %al
testb $0x1, %al
jne 0xf1c30
jmp 0xf1c4e
movq -0x14b8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rcx
movq (%rcx), %rcx
movq -0x8(%rcx), %rcx
movq (%rax), %rax
movq %rcx, (%rax)
jmp 0xf1c70
movq -0x14b8(%rbp), %rax
leaq -0x198(%rbp), %rcx
movq %rcx, -0x8(%rbp)
movq -0x8(%rbp), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
movq (%rax), %rax
movq %rcx, (%rax)
jmp 0xf1c72
jmp 0xf1c74
leaq -0x1380(%rbp), %rax
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rdi
movq %rdi, -0x14c0(%rbp)
addq $0x38, %rdi
callq 0xf2210
movq -0x14c0(%rbp), %rdi
addq $0x30, %rdi
callq 0xf2270
movl $0x0, -0x133c(%rbp)
leaq -0x320(%rbp), %rdi
callq 0xe6af0
leaq -0x2d0(%rbp), %rdi
callq 0x12fd00
addq $0x14e0, %rsp           # imm = 0x14E0
popq %rbp
retq
leaq -0x320(%rbp), %rdi
callq 0xe6af0
leaq -0x2d0(%rbp), %rdi
callq 0x12fd00
movq -0x2f8(%rbp), %rdi
callq 0xe6960
nopl (%rax,%rax)