// File: /workspace/github_c_makefile_star2_O1/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 0x66e6b
movq -0xb0(%rbp), %r15
movq %rbx, %rdi
callq 0x309f2
movq %r15, (%rbx)
movl $0xfffffe90, %r15d      # imm = 0xFFFFFE90
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12cfb(%rip), %rsi     # 0x7992b
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movq -0xa8(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12cc1(%rip), %rsi     # 0x79921
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movslq -0x98(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12c95(%rip), %rsi     # 0x79925
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movslq -0xa0(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x125b8(%rip), %rsi     # 0x79278
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movslq -0x94(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12685(%rip), %rsi     # 0x79375
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movslq -0x90(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x1265c(%rip), %rsi     # 0x7937c
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movslq -0x88(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12bda(%rip), %rsi     # 0x7992a
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movq -0x80(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x13549(%rip), %rsi     # 0x7a2c6
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movq -0x68(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12517(%rip), %rsi     # 0x792c1
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movq -0x58(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x124f4(%rip), %rsi     # 0x792cb
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movq -0x48(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x124d1(%rip), %rsi     # 0x792d5
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movslq -0x78(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
movl 0x8(%rbx), %eax
andl %r15d, %eax
orl $0x2, %eax
movl %eax, 0x8(%rbx)
leaq 0x12afe(%rip), %rsi     # 0x7992f
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
movslq -0x70(%rbp), %r12
movq %rbx, %rdi
callq 0x309f2
movq %r12, (%rbx)
andl 0x8(%rbx), %r15d
orl $0x2, %r15d
movl %r15d, 0x8(%rbx)
leaq 0x12ad9(%rip), %rsi     # 0x79937
movq %r14, %rdi
movq %rbx, %rdx
callq 0x3106a
xorl %eax, %eax
addq $0x90, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq