// File: /workspace/github_c_makefile_star2_O1/haxlang[P]hax/haxUnixAZ.c
// Function: Hax_FileCmd
int
Hax_FileCmd(
    ClientData clientData,		/* Unix ClientData */
    Hax_Interp *interp,			/* Current interpreter. */
    int argc,				/* Number of arguments. */
    char **argv				/* Argument strings. */)
{
    char *p;
    int length, statOp;
    int mode = 0;			/* Initialized only to prevent
					 * compiler warning message. */
    struct stat statBuf;
    char *fileName, c;

    if (argc < 3) {
	Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		" option name ?arg ...?\"", (char *) NULL);
	return HAX_ERROR;
    }
    c = argv[1][0];
    length = strlen(argv[1]);

    /*
     * First handle operations on the file name.
     */

    fileName = Hax_TildeSubst(interp, clientData, argv[2]);
    if (fileName == NULL) {
	return HAX_ERROR;
    }
    if ((c == 'd') && (strncmp(argv[1], "dirname", length) == 0)) {
	if (argc != 3) {
	    argv[1] = (char *) "dirname";
	    not3Args:
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " ", argv[1], " name\"", (char *) NULL);
	    return HAX_ERROR;
	}
	p = strrchr(fileName, '/');
	if (p == NULL) {
	    interp->result = (char *) ".";
	} else if (p == fileName) {
	    interp->result = (char *) "/";
	} else {
	    *p = 0;
	    Hax_SetResult(interp, fileName, HAX_VOLATILE);
	    *p = '/';
	}
	return HAX_OK;
    } else if ((c == 'r') && (strncmp(argv[1], "rootname", length) == 0)
	    && (length >= 2)) {
	char *lastSlash;

	if (argc != 3) {
	    argv[1] = (char *) "rootname";
	    goto not3Args;
	}
	p = strrchr(fileName, '.');
	lastSlash = strrchr(fileName, '/');
	if ((p == NULL) || ((lastSlash != NULL) && (lastSlash > p))) {
	    Hax_SetResult(interp, fileName, HAX_VOLATILE);
	} else {
	    *p = 0;
	    Hax_SetResult(interp, fileName, HAX_VOLATILE);
	    *p = '.';
	}
	return HAX_OK;
    } else if ((c == 'e') && (strncmp(argv[1], "extension", length) == 0)
	    && (length >= 3)) {
	char *lastSlash;

	if (argc != 3) {
	    argv[1] = (char *) "extension";
	    goto not3Args;
	}
	p = strrchr(fileName, '.');
	lastSlash = strrchr(fileName, '/');
	if ((p != NULL) && ((lastSlash == NULL) || (lastSlash < p))) {
	    Hax_SetResult(interp, p, HAX_VOLATILE);
	}
	return HAX_OK;
    } else if ((c == 't') && (strncmp(argv[1], "tail", length) == 0)
	    && (length >= 2)) {
	if (argc != 3) {
	    argv[1] = (char *) "tail";
	    goto not3Args;
	}
	p = strrchr(fileName, '/');
	if (p != NULL) {
	    Hax_SetResult(interp, p+1, HAX_VOLATILE);
	} else {
	    Hax_SetResult(interp, fileName, HAX_VOLATILE);
	}
	return HAX_OK;
    }

    /*
     * Next, handle operations that can be satisfied with the "access"
     * kernel call.
     */

    if (fileName == NULL) {
	return HAX_ERROR;
    }
    if ((c == 'r') && (strncmp(argv[1], "readable", length) == 0)
	    && (length >= 5)) {
	if (argc != 3) {
	    argv[1] = (char *) "readable";
	    goto not3Args;
	}
	mode = R_OK;
	checkAccess:
	if (access(fileName, mode) == -1) {
	    interp->result = (char *) "0";
	} else {
	    interp->result = (char *) "1";
	}
	return HAX_OK;
    } else if ((c == 'w') && (strncmp(argv[1], "writable", length) == 0)) {
	if (argc != 3) {
	    argv[1] = (char *) "writable";
	    goto not3Args;
	}
	mode = W_OK;
	goto checkAccess;
    } else if ((c == 'e') && (strncmp(argv[1], "executable", length) == 0)
	    && (length >= 3)) {
	if (argc != 3) {
	    argv[1] = (char *) "executable";
	    goto not3Args;
	}
	mode = X_OK;
	goto checkAccess;
    } else if ((c == 'e') && (strncmp(argv[1], "exists", length) == 0)
	    && (length >= 3)) {
	if (argc != 3) {
	    argv[1] = (char *) "exists";
	    goto not3Args;
	}
	mode = F_OK;
	goto checkAccess;
    }

    /*
     * Lastly, check stuff that requires the file to be stat-ed.
     */

    if ((c == 'a') && (strncmp(argv[1], "atime", length) == 0)) {
	if (argc != 3) {
	    argv[1] = (char *) "atime";
	    goto not3Args;
	}
	if (stat(fileName, &statBuf) == -1) {
	    goto badStat;
	}
	sprintf(interp->result, "%ld", statBuf.st_atime);
	return HAX_OK;
    } else if ((c == 'i') && (strncmp(argv[1], "isdirectory", length) == 0)
	    && (length >= 3)) {
	if (argc != 3) {
	    argv[1] = (char *) "isdirectory";
	    goto not3Args;
	}
	statOp = 2;
    } else if ((c == 'i') && (strncmp(argv[1], "isfile", length) == 0)
	    && (length >= 3)) {
	if (argc != 3) {
	    argv[1] = (char *) "isfile";
	    goto not3Args;
	}
	statOp = 1;
    } else if ((c == 'l') && (strncmp(argv[1], "lstat", length) == 0)) {
	if (argc != 4) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " lstat name varName\"", (char *) NULL);
	    return HAX_ERROR;
	}

	if (lstat(fileName, &statBuf) == -1) {
	    Hax_AppendResult(interp, "couldn't lstat \"", argv[2],
		    "\": ", Hax_UnixError(interp), (char *) NULL);
	    return HAX_ERROR;
	}
	return StoreStatData(interp, argv[3], &statBuf);
    } else if ((c == 'm') && (strncmp(argv[1], "mtime", length) == 0)) {
	if (argc != 3) {
	    argv[1] = (char *) "mtime";
	    goto not3Args;
	}
	if (stat(fileName, &statBuf) == -1) {
	    goto badStat;
	}
	sprintf(interp->result, "%ld", statBuf.st_mtime);
	return HAX_OK;
    } else if ((c == 'o') && (strncmp(argv[1], "owned", length) == 0)) {
	if (argc != 3) {
	    argv[1] = (char *) "owned";
	    goto not3Args;
	}
	statOp = 0;
    /*
     * This option is only included if symbolic links exist on this system
     * (in which case S_IFLNK should be defined).
     */
    } else if ((c == 'r') && (strncmp(argv[1], "readlink", length) == 0)
	    && (length >= 5)) {
	char linkValue[MAXPATHLEN+1];
	int linkLength;

	if (argc != 3) {
	    argv[1] = (char *) "readlink";
	    goto not3Args;
	}
	linkLength = readlink(fileName, linkValue, sizeof(linkValue) - 1);
	if (linkLength == -1) {
	    Hax_AppendResult(interp, "couldn't readlink \"", argv[2],
		    "\": ", Hax_UnixError(interp), (char *) NULL);
	    return HAX_ERROR;
	}
	linkValue[linkLength] = 0;
	Hax_SetResult(interp, linkValue, HAX_VOLATILE);
	return HAX_OK;
    } else if ((c == 's') && (strncmp(argv[1], "size", length) == 0)
	    && (length >= 2)) {
	if (argc != 3) {
	    argv[1] = (char *) "size";
	    goto not3Args;
	}
	if (stat(fileName, &statBuf) == -1) {
	    goto badStat;
	}
	sprintf(interp->result, "%ld", statBuf.st_size);
	return HAX_OK;
    } else if ((c == 's') && (strncmp(argv[1], "stat", length) == 0)
	    && (length >= 2)) {
	if (argc != 4) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " stat name varName\"", (char *) NULL);
	    return HAX_ERROR;
	}

	if (stat(fileName, &statBuf) == -1) {
	    badStat:
	    Hax_AppendResult(interp, "couldn't stat \"", argv[2],
		    "\": ", Hax_UnixError(interp), (char *) NULL);
	    return HAX_ERROR;
	}
	return StoreStatData(interp, argv[3], &statBuf);
    } else if ((c == 't') && (strncmp(argv[1], "type", length) == 0)
	    && (length >= 2)) {
	if (argc != 3) {
	    argv[1] = (char *) "type";
	    goto not3Args;
	}
	if (lstat(fileName, &statBuf) == -1) {
	    goto badStat;
	}
	interp->result = GetFileType((int) statBuf.st_mode);
	return HAX_OK;
    } else {
	Hax_AppendResult(interp, "bad option \"", argv[1],
		"\": should be atime, dirname, executable, exists, ",
		"extension, isdirectory, isfile, lstat, mtime, owned, ",
		"readable, ",
		"readlink, ",
		"root, size, stat, tail, type, ",
		"or writable",
		(char *) NULL);
	return HAX_ERROR;
    }
    if (stat(fileName, &statBuf) == -1) {
	interp->result = (char *) "0";
	return HAX_OK;
    }
    switch (statOp) {
	case 0:
	    mode = (geteuid() == statBuf.st_uid);
	    break;
	case 1:
	    mode = S_ISREG(statBuf.st_mode);
	    break;
	case 2:
	    mode = S_ISDIR(statBuf.st_mode);
	    break;
    }
    if (mode) {
	interp->result = (char *) "1";
    } else {
	interp->result = (char *) "0";
    }
    return HAX_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1038, %rsp           # imm = 0x1038
movq %rcx, %r14
movq %rsi, %rbp
cmpl $0x2, %edx
jg 0x4f8c
movq (%r14), %rdx
leaq 0x41d0(%rip), %rsi      # 0x9143
leaq 0x436f(%rip), %rcx      # 0x92e9
movq %rbp, %rdi
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x3510
jmp 0x5774
movl %edx, %r12d
movq %rdi, %r15
movq 0x8(%r14), %rdi
movzbl (%rdi), %ebx
callq 0x3190
movq %rax, %r13
movq 0x10(%r14), %rdx
movq %rbp, 0x10(%rsp)
movq %rbp, %rdi
movq %r15, %rsi
callq 0x3570
movl $0x1, %ebp
testq %rax, %rax
je 0x5779
movq %rax, 0x18(%rsp)
cmpl $0x64, %ebx
jne 0x4feb
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x4326(%rip), %r15      # 0x9301
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
je 0x5201
cmpl $0x72, %ebx
jne 0x5081
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x4307(%rip), %r15      # 0x9309
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x2, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x5081
cmpl $0x3, %r12d
movq 0x10(%rsp), %rbx
jne 0x5253
movq 0x18(%rsp), %r13
movq %r13, %rdi
movl $0x2e, %esi
callq 0x3200
movq %rax, %r15
movq %r13, %rdi
movl $0x2f, %esi
callq 0x3200
testq %r15, %r15
je 0x52ef
cmpq %r15, %rax
ja 0x52ef
movb $0x0, (%r15)
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
movq $-0x1, %rdx
callq 0x34d0
movb $0x2e, (%r15)
jmp 0x5303
cmpl $0x65, %ebx
jne 0x50fd
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x427e(%rip), %r15      # 0x9312
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x3, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x50fd
cmpl $0x3, %r12d
movq 0x10(%rsp), %rbx
jne 0x5253
movq 0x18(%rsp), %r13
movq %r13, %rdi
movl $0x2e, %esi
callq 0x3200
movq %rax, %r15
movq %r13, %rdi
movl $0x2f, %esi
callq 0x3200
testq %r15, %r15
je 0x5303
cmpq %r15, %rax
jae 0x5303
movq %rbx, %rdi
movq %r15, %rsi
jmp 0x52f7
cmpl $0x74, %ebx
jne 0x5160
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x420c(%rip), %r15      # 0x931c
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x2, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x5160
cmpl $0x3, %r12d
jne 0x573e
movq 0x18(%rsp), %rbx
movq %rbx, %rdi
movl $0x2f, %esi
callq 0x3200
testq %rax, %rax
je 0x53ad
incq %rax
movq 0x10(%rsp), %rdi
movq %rax, %rsi
jmp 0x53b5
cmpl $0x72, %ebx
jne 0x5198
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x41ae(%rip), %r15      # 0x9321
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x5, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x5198
movl $0x4, %esi
jmp 0x5317
cmpl $0x77, %ebx
jne 0x51bb
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x42de(%rip), %r15      # 0x9489
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
je 0x5312
cmpl $0x65, %ebx
jne 0x5292
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x4158(%rip), %r15      # 0x932a
movq %rdi, 0x20(%rsp)
movq %r15, %rsi
movq %rdx, 0x28(%rsp)
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x3, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x525c
movl $0x1, %esi
jmp 0x5317
cmpl $0x3, %r12d
jne 0x573e
movq 0x18(%rsp), %rbx
movq %rbx, %rdi
movl $0x2f, %esi
callq 0x3200
testq %rax, %rax
je 0x534a
movq %rax, %r14
cmpq %rbx, %rax
movq 0x10(%rsp), %rdi
je 0x53a1
movb $0x0, (%r14)
movq %rbx, %rsi
movq $-0x1, %rdx
callq 0x34d0
movb $0x2f, (%r14)
jmp 0x53c1
movq %r15, 0x8(%r14)
jmp 0x5303
cmpl $0x3, %r13d
setge 0xf(%rsp)
leaq 0x40c9(%rip), %r15      # 0x9335
movq 0x20(%rsp), %rdi
movq %r15, %rsi
movq 0x28(%rsp), %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb 0xf(%rsp), %al
cmpb $0x1, %al
jne 0x5292
xorl %esi, %esi
jmp 0x5317
leal -0x69(%rbx), %ecx
cmpl $0x6, %ecx
ja 0x535b
leaq 0x3f5b(%rip), %rax      # 0x9200
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x408a(%rip), %r15      # 0x9346
movq %rdi, 0x20(%rsp)
movq %r15, %rsi
movq %rdx, 0x28(%rsp)
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x3, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x53c8
movl $0x2, %ebx
jmp 0x55b5
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
movq $-0x1, %rdx
callq 0x34d0
cmpl $0x3, %r12d
je 0x53c1
jmp 0x5742
movl $0x2, %esi
cmpl $0x3, %r12d
jne 0x573e
movq 0x18(%rsp), %rdi
callq 0x34f0
cmpl $-0x1, %eax
leaq 0x3f82(%rip), %rax      # 0x92b7
leaq 0x4c03(%rip), %rcx      # 0x9f3f
cmoveq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
jmp 0x53c1
leaq 0x3e7e(%rip), %rax      # 0x91cf
movq 0x10(%rsp), %rcx
movq %rax, (%rcx)
jmp 0x53c1
cmpl $0x61, %ebx
jne 0x54aa
movq %rcx, 0x20(%rsp)
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x3fc5(%rip), %r15      # 0x933c
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
je 0x5401
movq 0x20(%rsp), %rcx
cmpl $0x6, %ecx
ja 0x54aa
leaq 0x3e84(%rip), %rax      # 0x921c
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x3de1(%rip), %rax      # 0x9189
movq %rax, (%rdi)
jmp 0x53c1
movq 0x10(%rsp), %rdi
movq %rbx, %rsi
movq $-0x1, %rdx
callq 0x34d0
xorl %ebp, %ebp
jmp 0x5779
cmpl $0x3, %r13d
setge 0xf(%rsp)
leaq 0x3f7a(%rip), %r15      # 0x9352
movq 0x20(%rsp), %rdi
movq %r15, %rsi
movq 0x28(%rsp), %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb 0xf(%rsp), %al
cmpb $0x1, %al
jne 0x5435
movl $0x1, %ebx
jmp 0x55b5
cmpl $0x3, %r12d
jne 0x573e
leaq 0x30(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x3380
cmpl $-0x1, %eax
je 0x57c8
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq 0x78(%rsp), %rdx
jmp 0x572c
cmpl $0x6f, %ebx
je 0x548c
cmpl $0x6d, %ebx
je 0x5469
cmpl $0x6c, %ebx
jne 0x54aa
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x3f07(%rip), %rsi      # 0x9359
callq 0x30b0
testl %eax, %eax
je 0x578d
cmpl $0x6f, %ebx
je 0x548c
cmpl $0x6d, %ebx
jne 0x54aa
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x3f0e(%rip), %r15      # 0x9385
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
je 0x56fe
cmpl $0x6f, %ebx
jne 0x54aa
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x3ef1(%rip), %r15      # 0x938b
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
je 0x55b3
cmpl $0x72, %ebx
jne 0x553f
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x3ed0(%rip), %r15      # 0x9391
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x5, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x553f
cmpl $0x3, %r12d
jne 0x57c2
leaq 0x30(%rsp), %rsi
movl $0x1000, %edx           # imm = 0x1000
movq 0x18(%rsp), %rdi
callq 0x3140
cmpl $-0x1, %eax
jne 0x581e
movq 0x10(%r14), %r15
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x31b0
leaq 0x3e7f(%rip), %rsi      # 0x939a
leaq 0x3cc9(%rip), %rcx      # 0x91eb
movq %rbx, %rdi
movq %r15, %rdx
movq %rax, %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x3510
movl $0x1, %ebp
jmp 0x583d
cmpl $0x73, %ebx
jne 0x5652
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x3e58(%rip), %r15      # 0x93ae
movq %rdi, 0x20(%rsp)
movq %r15, %rsi
movq %rdx, 0x28(%rsp)
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x2, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x5601
cmpl $0x3, %r12d
jne 0x573e
leaq 0x30(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x3380
cmpl $-0x1, %eax
je 0x57c8
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq 0x60(%rsp), %rdx
jmp 0x572c
xorl %ebx, %ebx
cmpl $0x3, %r12d
jne 0x573e
leaq 0x30(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x3380
cmpl $-0x1, %eax
je 0x57ff
cmpl $0x2, %ebx
movq 0x10(%rsp), %r14
je 0x584c
cmpl $0x1, %ebx
jne 0x585c
movl $0xf000, %eax           # imm = 0xF000
andl 0x48(%rsp), %eax
cmpl $0x8000, %eax           # imm = 0x8000
jmp 0x5865
cmpl $0x2, %r13d
setge %r15b
leaq 0x3d4a(%rip), %rsi      # 0x935a
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb %r15b, %al
cmpb $0x1, %al
jne 0x5652
cmpl $0x4, %r12d
jne 0x5884
leaq 0x30(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x3380
cmpl $-0x1, %eax
jne 0x57ab
jmp 0x57c8
cmpl $0x74, %ebx
jne 0x56b0
movq 0x8(%r14), %rdi
movslq %r13d, %rdx
leaq 0x3d72(%rip), %r15      # 0x93d7
movq %r15, %rsi
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x2, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x56b0
cmpl $0x3, %r12d
jne 0x573e
leaq 0x30(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x3300
cmpl $-0x1, %eax
je 0x57c8
movl 0x48(%rsp), %edi
callq 0x5b90
jmp 0x5351
movq 0x8(%r14), %rdx
leaq 0x3dcb(%rip), %r10      # 0x9486
leaq 0x3da5(%rip), %r11      # 0x9467
leaq 0x3d93(%rip), %rbx      # 0x945c
leaq 0x3d0c(%rip), %rsi      # 0x93dc
leaq 0x3d12(%rip), %rcx      # 0x93e9
leaq 0x3d3d(%rip), %r8       # 0x941b
leaq 0x3d6c(%rip), %r9       # 0x9451
movq 0x10(%rsp), %rdi
xorl %eax, %eax
pushq $0x0
pushq %r10
pushq %r11
pushq %rbx
callq 0x3510
addq $0x20, %rsp
jmp 0x5779
cmpl $0x3, %r12d
jne 0x573e
leaq 0x30(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x3380
cmpl $-0x1, %eax
je 0x57c8
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq 0x88(%rsp), %rdx
leaq 0x3c0f(%rip), %rsi      # 0x9342
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x35a0
jmp 0x5779
movq %r15, 0x8(%r14)
movq (%r14), %rdx
movq 0x8(%r14), %r8
subq $0x8, %rsp
leaq 0x39ef(%rip), %rsi      # 0x9143
leaq 0x3cf4(%rip), %rcx      # 0x944f
leaq 0x3926(%rip), %r9       # 0x9088
movq 0x18(%rsp), %rdi
xorl %eax, %eax
pushq $0x0
callq 0x3510
addq $0x10, %rsp
movl $0x1, %ebp
movl %ebp, %eax
addq $0x1038, %rsp           # imm = 0x1038
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x4, %r12d
jne 0x580b
leaq 0x30(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x3300
cmpl $-0x1, %eax
je 0x58a9
movq 0x18(%r14), %rsi
leaq 0x30(%rsp), %rdx
movq 0x10(%rsp), %rdi
callq 0x58e0
movl %eax, %ebp
jmp 0x5779
movq %r15, 0x8(%r14)
jmp 0x583d
movq 0x10(%r14), %r14
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x31b0
leaq 0x3be7(%rip), %rsi      # 0x93c7
leaq 0x3a04(%rip), %rcx      # 0x91eb
movq %rbx, %rdi
movq %r14, %rdx
movq %rax, %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x3510
jmp 0x5774
leaq 0x3ab1(%rip), %rax      # 0x92b7
jmp 0x5351
movq (%r14), %rdx
leaq 0x392e(%rip), %rsi      # 0x9143
leaq 0x3b43(%rip), %rcx      # 0x935f
jmp 0x5895
cltq
movb $0x0, 0x30(%rsp,%rax)
leaq 0x30(%rsp), %rsi
movq 0x10(%rsp), %rdi
movq $-0x1, %rdx
callq 0x34d0
xorl %ebp, %ebp
cmpl $0x3, %r12d
jne 0x5742
jmp 0x5779
movl $0xf000, %eax           # imm = 0xF000
andl 0x48(%rsp), %eax
cmpl $0x4000, %eax           # imm = 0x4000
jmp 0x5865
callq 0x3260
cmpl 0x4c(%rsp), %eax
sete %al
leaq 0x46d0(%rip), %rcx      # 0x9f3f
leaq 0x3a41(%rip), %rdx      # 0x92b7
testb %al, %al
cmovneq %rcx, %rdx
movq %rdx, (%r14)
jmp 0x53c1
movq (%r14), %rdx
leaq 0x38b5(%rip), %rsi      # 0x9143
leaq 0x3b1e(%rip), %rcx      # 0x93b3
movq 0x10(%rsp), %rdi
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x3510
jmp 0x5779
movq 0x10(%r14), %r14
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x31b0
leaq 0x3ab3(%rip), %rsi      # 0x9374
leaq 0x3923(%rip), %rcx      # 0x91eb
movq %rbx, %rdi
movq %r14, %rdx
movq %rax, %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x3510
jmp 0x5779