// File: /workspace/github_c_makefile_star2_O3/coyove[P]chann/./lib/unqlite/unqlite.c
// Function: UnixFile_Stat
static int UnixFile_Stat(void *pUserData, jx9_value *pArray, jx9_value *pWorker)
{
	struct stat st;
	int rc;
	rc = fstat(SX_PTR_TO_INT(pUserData), &st);
	if( rc != 0 ){ 
	 return -1;
	}
	/* dev */
	jx9_value_int64(pWorker, (jx9_int64)st.st_dev);
	jx9_array_add_strkey_elem(pArray, "dev", pWorker); /* Will make it's own copy */
	/* ino */
	jx9_value_int64(pWorker, (jx9_int64)st.st_ino);
	jx9_array_add_strkey_elem(pArray, "ino", pWorker); /* Will make it's own copy */
	/* mode */
	jx9_value_int(pWorker, (int)st.st_mode);
	jx9_array_add_strkey_elem(pArray, "mode", pWorker);
	/* nlink */
	jx9_value_int(pWorker, (int)st.st_nlink);
	jx9_array_add_strkey_elem(pArray, "nlink", pWorker); /* Will make it's own copy */
	/* uid, gid, rdev */
	jx9_value_int(pWorker, (int)st.st_uid);
	jx9_array_add_strkey_elem(pArray, "uid", pWorker);
	jx9_value_int(pWorker, (int)st.st_gid);
	jx9_array_add_strkey_elem(pArray, "gid", pWorker);
	jx9_value_int(pWorker, (int)st.st_rdev);
	jx9_array_add_strkey_elem(pArray, "rdev", pWorker);
	/* size */
	jx9_value_int64(pWorker, (jx9_int64)st.st_size);
	jx9_array_add_strkey_elem(pArray, "size", pWorker); /* Will make it's own copy */
	/* atime */
	jx9_value_int64(pWorker, (jx9_int64)st.st_atime);
	jx9_array_add_strkey_elem(pArray, "atime", pWorker); /* Will make it's own copy */
	/* mtime */
	jx9_value_int64(pWorker, (jx9_int64)st.st_mtime);
	jx9_array_add_strkey_elem(pArray, "mtime", pWorker); /* Will make it's own copy */
	/* ctime */
	jx9_value_int64(pWorker, (jx9_int64)st.st_ctime);
	jx9_array_add_strkey_elem(pArray, "ctime", pWorker); /* Will make it's own copy */
	/* blksize, blocks */
	jx9_value_int(pWorker, (int)st.st_blksize);		
	jx9_array_add_strkey_elem(pArray, "blksize", pWorker);
	jx9_value_int(pWorker, (int)st.st_blocks);
	jx9_array_add_strkey_elem(pArray, "blocks", pWorker);
	return JX9_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x90, %rsp
movq %rdx, %rbx
movq %rsi, %r14
leaq -0xb0(%rbp), %rsi
callq 0xc9b0
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testl %ecx, %ecx
jne 0x652af
movq -0xb0(%rbp), %r15
movq %rbx, %rdi
callq 0x30465
movq %r15, (%rbx)
movl $0xfffffe90, %r15d      # imm = 0xFFFFFE90
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x128c2(%rip), %rsi     # 0x77936
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movq -0xa8(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12888(%rip), %rsi     # 0x7792c
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movslq -0x98(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x1285c(%rip), %rsi     # 0x77930
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movslq -0xa0(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x1217f(%rip), %rsi     # 0x77283
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movslq -0x94(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x1224c(%rip), %rsi     # 0x77380
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movslq -0x90(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12223(%rip), %rsi     # 0x77387
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movslq -0x88(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x127a1(%rip), %rsi     # 0x77935
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movq -0x80(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x13105(%rip), %rsi     # 0x782c6
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movq -0x68(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x120de(%rip), %rsi     # 0x772cc
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movq -0x58(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x120bb(%rip), %rsi     # 0x772d6
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movq -0x48(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12098(%rip), %rsi     # 0x772e0
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movslq -0x78(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x126c5(%rip), %rsi     # 0x7793a
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
movslq -0x70(%rbp), %r12
movq %rbx, %rdi
callq 0x30465
movq %r12, (%rbx)
andl 0x8(%rbx), %r15d
orl $0x2, %r15d
movl %r15d, 0x8(%rbx)
leaq 0x126a0(%rip), %rsi     # 0x77942
movq %r14, %rdi
movq %rbx, %rdx
callq 0x30ad3
xorl %eax, %eax
addq $0x90, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq