// File: Saevon[P]node-diskfree/build/../src/disk-gyp.cpp
// Function: diskfree::DiskSpace(v8::FunctionCallbackInfo<v8::Value> const&)
void DiskSpace(const FunctionCallbackInfo<Value> &args) {
        Isolate *isolate = args.GetIsolate();

        // Check the input args
        bool shouldRun = checkArgs(args);
        if (!shouldRun) {
            return;
        }

        // Get the Args
        String::Utf8Value diskPath(isolate, args[0]);
        Local<Function> callback = Local<Function>::Cast(args[1]);

        // Copy the string into a C String (+1 or the null char)
        char *diskPathC = (char *) calloc(diskPath.length() + 1, sizeof(char));
        strcpy(diskPathC, *diskPath);

        // Store the args in a request
        reqData_t *requestData = new reqData_t();
        requestData->callback.Reset(isolate, callback);
        requestData->diskPath = diskPathC;

        // Run the worker
        uv_work_t *request = new uv_work_t();
        request->data = requestData;

        uv_queue_work(uv_default_loop(), request, &DiskSpaceWorker, &AfterDiskSpaceWorker);

        // Return to the parent early
        args.GetReturnValue().Set(Undefined(isolate));
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x300, %rsp            # imm = 0x300
movq %rdi, -0x250(%rbp)
movq -0x250(%rbp), %rax
movq %rax, -0x230(%rbp)
movq -0x230(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x258(%rbp)
movq -0x250(%rbp), %rdi
callq 0x2180
andb $0x1, %al
movb %al, -0x259(%rbp)
testb $0x1, -0x259(%rbp)
jne 0x3587
jmp 0x3c5c
movq -0x258(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq -0x250(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movl $0x0, -0x1dc(%rbp)
movq -0x1d8(%rbp), %rax
movq %rax, -0x2b8(%rbp)
cmpl $0x0, -0x1dc(%rbp)
jl 0x35da
movq -0x2b8(%rbp), %rax
movl 0x10(%rax), %eax
cmpl -0x1dc(%rbp), %eax
jg 0x36cd
movq -0x2b8(%rbp), %rax
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x1c0(%rbp)
movq -0x1c0(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x1c0(%rbp), %rax
movq %rax, -0x130(%rbp)
movl $0x4, -0x134(%rbp)
movq -0x130(%rbp), %rax
addq $0x38, %rax
movl -0x134(%rbp), %ecx
shll $0x3, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rax
movq %rax, -0x1c8(%rbp)
movq -0x1c8(%rbp), %rax
leaq -0x1b8(%rbp), %rcx
movq %rcx, -0xf0(%rbp)
movq %rax, -0xf8(%rbp)
movq -0xf0(%rbp), %rax
movq -0xf8(%rbp), %rcx
movq %rcx, (%rax)
movq -0x1b8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x1e8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
movq (%rax), %rax
leaq -0x1d0(%rbp), %rcx
movq %rcx, -0x90(%rbp)
movq %rax, -0x98(%rbp)
movq -0x90(%rbp), %rax
movq -0x98(%rbp), %rcx
movq %rcx, (%rax)
jmp 0x370b
movq -0x2b8(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x1dc(%rbp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
leaq -0x1d0(%rbp), %rcx
movq %rcx, -0x80(%rbp)
movq %rax, -0x88(%rbp)
movq -0x80(%rbp), %rax
movq -0x88(%rbp), %rcx
movq %rcx, (%rax)
movq -0x2c0(%rbp), %rsi
movq -0x1d0(%rbp), %rax
movq %rax, -0x278(%rbp)
movq -0x278(%rbp), %rdx
leaq -0x270(%rbp), %rdi
callq 0x20c0
movq -0x250(%rbp), %rax
movq %rax, -0x218(%rbp)
movl $0x1, -0x21c(%rbp)
movq -0x218(%rbp), %rax
movq %rax, -0x2c8(%rbp)
cmpl $0x0, -0x21c(%rbp)
jl 0x3778
movq -0x2c8(%rbp), %rax
movl 0x10(%rax), %eax
cmpl -0x21c(%rbp), %eax
jg 0x385f
movq -0x2c8(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq -0x1f0(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x200(%rbp)
movq -0x200(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x200(%rbp), %rax
movq %rax, -0x118(%rbp)
movl $0x4, -0x11c(%rbp)
movq -0x118(%rbp), %rax
addq $0x38, %rax
movl -0x11c(%rbp), %ecx
shll $0x3, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x128(%rbp)
movq -0x128(%rbp), %rax
movq %rax, -0x208(%rbp)
movq -0x208(%rbp), %rax
leaq -0x1f8(%rbp), %rcx
movq %rcx, -0xe0(%rbp)
movq %rax, -0xe8(%rbp)
movq -0xe0(%rbp), %rax
movq -0xe8(%rbp), %rcx
movq %rcx, (%rax)
movq -0x1f8(%rbp), %rax
movq %rax, -0x228(%rbp)
leaq -0x228(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq (%rax), %rax
leaq -0x210(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movq %rax, -0x78(%rbp)
movq -0x70(%rbp), %rax
movq -0x78(%rbp), %rcx
movq %rcx, (%rax)
jmp 0x3897
movq -0x2c8(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x21c(%rbp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
leaq -0x210(%rbp), %rcx
movq %rcx, -0x60(%rbp)
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
movq -0x68(%rbp), %rcx
movq %rcx, (%rax)
movq -0x210(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x288(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq -0x1a8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
leaq -0x1a0(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
movq %rax, -0xc8(%rbp)
movq -0xc0(%rbp), %rax
movq -0xc8(%rbp), %rcx
movq %rcx, (%rax)
movq -0x1a0(%rbp), %rax
movq %rax, -0x280(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x2040
addl $0x1, %eax
movslq %eax, %rdi
movl $0x1, %esi
callq 0x2220
movq %rax, -0x290(%rbp)
movq -0x290(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x21a0
movq -0x2e8(%rbp), %rdi
movq %rax, %rsi
callq 0x2170
movl $0x30, %edi
callq 0x2090
movq %rax, %rdi
movq %rdi, -0x2e0(%rbp)
xorl %esi, %esi
movl $0x30, %edx
callq 0x2100
movq -0x2e0(%rbp), %rdi
callq 0x21e0
movq -0x2e0(%rbp), %rax
movq %rax, -0x298(%rbp)
movq -0x298(%rbp), %rcx
movq -0x258(%rbp), %rax
movq %rcx, -0x188(%rbp)
movq %rax, -0x190(%rbp)
leaq -0x280(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x188(%rbp), %rax
movq %rax, -0x2d8(%rbp)
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x39ea
jmp 0x3a07
movq -0x2d0(%rbp), %rax
movq (%rax), %rdi
callq 0x20b0
movq -0x2d0(%rbp), %rax
movq $0x0, (%rax)
movq -0x198(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x3a1e
jmp 0x3a6f
movq -0x190(%rbp), %rcx
movq -0x198(%rbp), %rax
movq (%rax), %rax
movq %rcx, -0x30(%rbp)
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x3a48
movq $0x0, -0x28(%rbp)
jmp 0x3a61
movq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x20e0
movq %rax, -0x28(%rbp)
movq -0x2d8(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, (%rax)
movq -0x290(%rbp), %rcx
movq -0x298(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x80, %edi
callq 0x2090
movq %rax, %rdi
movq %rdi, -0x2f8(%rbp)
xorl %esi, %esi
movl $0x80, %edx
callq 0x2100
movq -0x2f8(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x298(%rbp), %rcx
movq -0x2a0(%rbp), %rax
movq %rcx, (%rax)
callq 0x2280
movq %rax, %rdi
movq -0x2a0(%rbp), %rsi
movq 0x34f2(%rip), %rdx      # 0x6fc8
movq 0x350b(%rip), %rcx      # 0x6fe8
callq 0x2110
movq -0x250(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x178(%rbp), %rax
movq (%rax), %rax
addq $0x18, %rax
leaq -0x170(%rbp), %rcx
movq %rcx, -0x18(%rbp)
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, (%rax)
movq -0x170(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x258(%rbp), %rax
movq %rax, -0x240(%rbp)
movq -0x240(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x240(%rbp), %rax
movq %rax, -0x100(%rbp)
movl $0x4, -0x104(%rbp)
movq -0x100(%rbp), %rax
addq $0x38, %rax
movl -0x104(%rbp), %ecx
shll $0x3, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rax
leaq -0x238(%rbp), %rcx
movq %rcx, -0xd0(%rbp)
movq %rax, -0xd8(%rbp)
movq -0xd0(%rbp), %rax
movq -0xd8(%rbp), %rcx
movq %rcx, (%rax)
movq -0x238(%rbp), %rax
movq %rax, -0x2b0(%rbp)
movq -0x2b0(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x2a8(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rax
movq %rax, -0x2f0(%rbp)
leaq -0x160(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
sete %al
testb $0x1, %al
jne 0x3c0a
jmp 0x3c28
movq -0x2f0(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rcx
movq (%rcx), %rcx
movq -0x8(%rcx), %rcx
movq (%rax), %rax
movq %rcx, (%rax)
jmp 0x3c50
movq -0x2f0(%rbp), %rax
leaq -0x160(%rbp), %rcx
movq %rcx, -0xb8(%rbp)
movq -0xb8(%rbp), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
movq (%rax), %rax
movq %rcx, (%rax)
leaq -0x270(%rbp), %rdi
callq 0x2210
addq $0x300, %rsp            # imm = 0x300
popq %rbp
retq
nopw %cs:(%rax,%rax)