// File: /workspace/github_c_makefile_star2_O2/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, %rbx
pushq $0x1
popq %rbp
cmpl $0x2, %edx
jg 0x4e90
movq (%r14), %rdx
leaq 0x32cc(%rip), %rsi      # 0x8143
leaq 0x348f(%rip), %rcx      # 0x830d
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x3500
jmp 0x56a5
movl %edx, %r12d
movq %rdi, %r15
movq 0x8(%r14), %rdi
movzbl (%rdi), %ebp
callq 0x3190
movq %rax, %r13
movq 0x10(%r14), %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3560
testq %rax, %rax
je 0x4f2d
addl $-0x61, %ebp
cmpl $0x16, %ebp
ja 0x52e0
leaq 0x3334(%rip), %rdx      # 0x8200
movslq (%rdx,%rbp,4), %rcx
addq %rdx, %rcx
movq %rax, 0x28(%rsp)
jmpq *%rcx
movq 0x8(%r14), %r15
movslq %r13d, %rdx
leaq 0x3478(%rip), %r13      # 0x8360
movq %r15, %rdi
movq %r13, %rsi
callq 0x30b0
testl %eax, %eax
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x3, %r12d
jne 0x561c
leaq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x3370
cmpl $-0x1, %eax
je 0x54c8
movq (%rbx), %rdi
movq 0x78(%rsp), %rdx
jmp 0x52cb
pushq $0x1
popq %rbp
jmp 0x56a5
movq 0x8(%r14), %r15
movslq %r13d, %rdx
leaq 0x356a(%rip), %r13      # 0x84ad
movq %r15, %rdi
movq %r13, %rsi
callq 0x30b0
testl %eax, %eax
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x3, %r12d
jne 0x561c
pushq $0x2
popq %rsi
movq 0x28(%rsp), %rdi
jmp 0x53e5
movslq %r13d, %rdx
movq 0x8(%r14), %r15
leaq 0x33ff(%rip), %rsi      # 0x837d
movq %r15, %rdi
callq 0x30b0
testl %eax, %eax
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x4, %r12d
jne 0x5640
leaq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x32f0
cmpl $-0x1, %eax
jne 0x54b0
movq 0x10(%r14), %r14
movq %rbx, %rdi
callq 0x31b0
leaq 0x33d2(%rip), %rsi      # 0x8398
jmp 0x54db
movslq %r13d, %rdx
movq 0x8(%r14), %r15
leaq 0x33d0(%rip), %r13      # 0x83a9
movq %r15, %rdi
movq %r13, %rsi
callq 0x30b0
testl %eax, %eax
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x3, %r12d
jne 0x561c
leaq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x3370
cmpl $-0x1, %eax
je 0x54c8
movq (%rbx), %rdi
movq 0x88(%rsp), %rdx
jmp 0x52cb
movq 0x8(%r14), %r15
movslq %r13d, %rdx
leaq 0x333b(%rip), %rsi      # 0x836a
movq %r15, %rdi
movq %rdx, %rbp
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x3, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x52ec
cmpl $0x3, %r12d
jne 0x54f3
pushq $0x2
jmp 0x532a
movq 0x8(%r14), %r15
movslq %r13d, %rdx
leaq 0x32c6(%rip), %rsi      # 0x8336
movq %r15, %rdi
movq %rdx, %rbp
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x3, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x536b
cmpl $0x3, %r12d
jne 0x54ff
pushq $0x2e
popq %rsi
movq 0x28(%rsp), %r15
movq %r15, %rdi
callq 0x3200
movq %rax, %r14
pushq $0x2f
popq %rsi
movq %r15, %rdi
callq 0x3200
xorl %ebp, %ebp
testq %r14, %r14
je 0x56a5
cmpq %r14, %rax
jae 0x56a5
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x34c0
jmp 0x56a5
movq 0x8(%r14), %r15
movslq %r13d, %rdx
leaq 0x3236(%rip), %r13      # 0x8325
movq %r15, %rdi
movq %r13, %rsi
callq 0x30b0
testl %eax, %eax
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x3, %r12d
jne 0x561c
pushq $0x2f
popq %rsi
movq 0x28(%rsp), %r15
movq %r15, %rdi
callq 0x3200
testq %rax, %rax
je 0x570f
movq %rax, %r14
cmpq %r15, %rax
je 0x5718
movb $0x0, (%r14)
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x34c0
movb $0x2f, (%r14)
jmp 0x573b
movslq %r13d, %rdx
movq 0x8(%r14), %r15
leaq 0x3252(%rip), %r13      # 0x83af
movq %r15, %rdi
movq %r13, %rsi
callq 0x30b0
testl %eax, %eax
pushq $0x1
popq %rbp
jne 0x55cc
xorl %r15d, %r15d
cmpl $0x3, %r12d
je 0x532c
jmp 0x561c
movq 0x8(%r14), %r15
movslq %r13d, %rdx
leaq 0x319a(%rip), %rsi      # 0x832d
movq %r15, %rdi
movq %rdx, %rbp
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x2, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x53aa
cmpl $0x3, %r12d
jne 0x5553
pushq $0x2e
popq %rsi
movq 0x28(%rsp), %r15
movq %r15, %rdi
callq 0x3200
movq %rax, %r14
pushq $0x2f
popq %rsi
movq %r15, %rdi
callq 0x3200
testq %r14, %r14
je 0x5656
cmpq %r14, %rax
ja 0x5656
movb $0x0, (%r14)
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x34c0
movb $0x2e, (%r14)
jmp 0x573b
movq 0x8(%r14), %r15
movslq %r13d, %rdx
leaq 0x3128(%rip), %rsi      # 0x8340
movq %r15, %rdi
movq %rdx, %rbp
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x2, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x5407
cmpl $0x3, %r12d
jne 0x5622
pushq $0x2f
popq %rsi
movq 0x28(%rsp), %r14
movq %r14, %rdi
callq 0x3200
testq %rax, %rax
je 0x5704
incq %rax
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %rax, %rsi
jmp 0x5736
movq 0x8(%r14), %r15
movslq %r13d, %rdx
leaq 0x3156(%rip), %rsi      # 0x83d2
movq %r15, %rdi
movq %rdx, %rbp
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x2, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x5465
cmpl $0x3, %r12d
jne 0x562b
leaq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x3370
cmpl $-0x1, %eax
pushq $0x1
popq %rbp
je 0x54c8
movq (%rbx), %rdi
movq 0x60(%rsp), %rdx
leaq 0x3094(%rip), %rsi      # 0x8366
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x3590
jmp 0x56a5
movq 0x8(%r14), %r15
pushq $0x1
popq %rbp
jmp 0x55cc
cmpl $0x3, %r13d
setge 0x27(%rsp)
leaq 0x307a(%rip), %r13      # 0x8376
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb 0x27(%rsp), %al
cmpb $0x1, %al
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x3, %r12d
jne 0x561c
pushq $0x1
popq %r15
leaq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x3370
cmpl $-0x1, %eax
je 0x5634
cmpl $0x2, %r15d
je 0x56cf
cmpl $0x1, %r15d
jne 0x56df
movl $0xf000, %eax           # imm = 0xF000
andl 0x48(%rsp), %eax
cmpl $0x8000, %eax           # imm = 0x8000
jmp 0x56e8
cmpl $0x3, %r13d
setge 0x27(%rsp)
leaq 0x2fd3(%rip), %rsi      # 0x834e
movq %r15, %rdi
movq %rbp, %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb 0x27(%rsp), %al
cmpb $0x1, %al
jne 0x550b
cmpl $0x3, %r12d
movq 0x28(%rsp), %rdi
jne 0x5664
pushq $0x1
jmp 0x53e4
leaq 0x2f94(%rip), %rsi      # 0x8345
movq %r15, %rdi
movq %rbp, %rdx
callq 0x30b0
testl %eax, %eax
sete %al
cmpl $0x5, %r13d
setge %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x555f
cmpl $0x3, %r12d
movq 0x28(%rsp), %rdi
jne 0x566d
pushq $0x4
popq %rsi
callq 0x34e0
cmpl $-0x1, %eax
leaq 0x2ee7(%rip), %rax      # 0x82db
leaq 0x3b68(%rip), %rcx      # 0x8f63
cmoveq %rax, %rcx
movq %rcx, (%rbx)
jmp 0x573b
cmpl $0x2, %r13d
setge 0x27(%rsp)
leaq 0x2fe4(%rip), %r13      # 0x83fb
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb 0x27(%rsp), %al
cmpb $0x1, %al
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x3, %r12d
jne 0x561c
leaq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x32f0
cmpl $-0x1, %eax
je 0x54c8
movl 0x48(%rsp), %edi
callq 0x59f0
jmp 0x571f
cmpl $0x2, %r13d
setge %r13b
leaq 0x2f0a(%rip), %rsi      # 0x837e
movq %r15, %rdi
movq %rbp, %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb %r13b, %al
cmpb $0x1, %al
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x4, %r12d
jne 0x56b9
leaq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x3370
cmpl $-0x1, %eax
je 0x54c8
movq 0x18(%r14), %rsi
leaq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x5742
movl %eax, %ebp
jmp 0x56a5
movq 0x10(%r14), %r14
movq %rbx, %rdi
callq 0x31b0
leaq 0x2f10(%rip), %rsi      # 0x83eb
leaq 0x2d09(%rip), %rcx      # 0x81eb
movq %rbx, %rdi
movq %r14, %rdx
movq %rax, %r8
xorl %r9d, %r9d
jmp 0x569e
leaq 0x2e70(%rip), %r13      # 0x836a
jmp 0x5674
leaq 0x2e30(%rip), %r13      # 0x8336
jmp 0x5674
cmpl $0x3, %r13d
setge 0x27(%rsp)
leaq 0x2e3e(%rip), %r13      # 0x8359
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb 0x27(%rsp), %al
cmpb $0x1, %al
pushq $0x1
popq %rbp
jne 0x55cc
xorl %esi, %esi
cmpl $0x3, %r12d
movq 0x28(%rsp), %rdi
jne 0x561c
jmp 0x53e5
leaq 0x2dd3(%rip), %r13      # 0x832d
jmp 0x5674
cmpl $0x5, %r13d
setge 0x27(%rsp)
leaq 0x2e46(%rip), %r13      # 0x83b5
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x30b0
testl %eax, %eax
sete %al
andb 0x27(%rsp), %al
cmpb $0x1, %al
pushq $0x1
popq %rbp
jne 0x55cc
cmpl $0x3, %r12d
jne 0x561c
leaq 0x30(%rsp), %rsi
movl $0x1000, %edx           # imm = 0x1000
movq 0x28(%rsp), %rdi
callq 0x3140
cmpl $-0x1, %eax
jne 0x5724
movq 0x10(%r14), %r14
movq %rbx, %rdi
callq 0x31b0
leaq 0x2df7(%rip), %rsi      # 0x83be
jmp 0x54db
leaq 0x2ed7(%rip), %rax      # 0x84aa
movq %rax, 0x10(%rsp)
leaq 0x2eac(%rip), %rax      # 0x848b
movq %rax, 0x8(%rsp)
leaq 0x2e95(%rip), %rax      # 0x8480
andq $0x0, 0x18(%rsp)
movq %rax, (%rsp)
leaq 0x2e04(%rip), %rsi      # 0x8400
leaq 0x2e0a(%rip), %rcx      # 0x840d
leaq 0x2e35(%rip), %r8       # 0x843f
leaq 0x2e64(%rip), %r9       # 0x8475
movq %rbx, %rdi
movq %r15, %rdx
jmp 0x569e
movq %r13, 0x8(%r14)
jmp 0x567b
leaq 0x2d17(%rip), %r13      # 0x8340
jmp 0x5674
leaq 0x2da0(%rip), %r13      # 0x83d2
jmp 0x5674
leaq 0x2ca0(%rip), %rax      # 0x82db
jmp 0x571f
movq (%r14), %rdx
leaq 0x2af9(%rip), %rsi      # 0x8143
leaq 0x2d32(%rip), %rcx      # 0x8383
jmp 0x4e7e
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r15, %rsi
jmp 0x5736
leaq 0x2ce3(%rip), %r13      # 0x834e
jmp 0x5674
leaq 0x2cd1(%rip), %r13      # 0x8345
movq %r13, 0x8(%r14)
pushq $0x1
popq %rbp
movq (%r14), %rdx
andq $0x0, (%rsp)
leaq 0x2ab9(%rip), %rsi      # 0x8143
leaq 0x2de2(%rip), %rcx      # 0x8473
leaq 0x29f0(%rip), %r9       # 0x8088
movq %rbx, %rdi
movq %r13, %r8
xorl %eax, %eax
callq 0x3500
movl %ebp, %eax
addq $0x1038, %rsp           # imm = 0x1038
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r14), %rdx
leaq 0x2a80(%rip), %rsi      # 0x8143
leaq 0x2d0d(%rip), %rcx      # 0x83d7
jmp 0x4e7e
movl $0xf000, %eax           # imm = 0xF000
andl 0x48(%rsp), %eax
cmpl $0x4000, %eax           # imm = 0x4000
jmp 0x56e8
callq 0x3250
cmpl 0x4c(%rsp), %eax
sete %al
leaq 0x3871(%rip), %rcx      # 0x8f63
leaq 0x2be2(%rip), %rdx      # 0x82db
testb %al, %al
cmovneq %rcx, %rdx
movq %rdx, (%rbx)
jmp 0x573b
pushq $-0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
jmp 0x5736
leaq 0x2ab9(%rip), %rax      # 0x81cf
jmp 0x571f
leaq 0x2a6a(%rip), %rax      # 0x8189
movq %rax, (%rbx)
jmp 0x573b
cltq
movb $0x0, 0x30(%rsp,%rax)
leaq 0x30(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %rbx, %rdi
callq 0x34c0
xorl %ebp, %ebp
jmp 0x56a5