// File: /workspace/github_c_makefile_star2_O0/haxlang[P]hax/haxCmdMZ.c
// Function: Hax_StringCmd
int
Hax_StringCmd(
    ClientData dummy,			/* Not used. */
    Hax_Interp *interp,			/* Current interpreter. */
    int argc,				/* Number of arguments. */
    char **argv				/* Argument strings. */)
{
    int length;
    char *p, c;
    int match;
    int first;
    int left = 0, right = 0;

    if (argc < 2) {
	Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		" option arg ?arg ...?\"", (char *) NULL);
	return HAX_ERROR;
    }
    c = argv[1][0];
    length = strlen(argv[1]);
    if ((c == 'c') && (strncmp(argv[1], "compare", length) == 0)) {
	if (argc != 4) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " compare string1 string2\"", (char *) NULL);
	    return HAX_ERROR;
	}
	match = strcmp(argv[2], argv[3]);
	if (match > 0) {
	    interp->result = (char *) "1";
	} else if (match < 0) {
	    interp->result = (char *) "-1";
	} else {
	    interp->result = (char *) "0";
	}
	return HAX_OK;
    } else if ((c == 'f') && (strncmp(argv[1], "first", length) == 0)) {
	if (argc != 4) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " first string1 string2\"", (char *) NULL);
	    return HAX_ERROR;
	}
	first = 1;

	firstLast:
	match = -1;
	c = *argv[2];
	length = strlen(argv[2]);
	for (p = argv[3]; *p != 0; p++) {
	    if (*p != c) {
		continue;
	    }
	    if (strncmp(argv[2], p, length) == 0) {
		match = p-argv[3];
		if (first) {
		    break;
		}
	    }
	}
	sprintf(interp->result, "%d", match);
	return HAX_OK;
    } else if ((c == 'i') && (strncmp(argv[1], "index", length) == 0)) {
	long int index;

	if (argc != 4) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " index string charIndex\"", (char *) NULL);
	    return HAX_ERROR;
	}
	if (Hax_GetLong(interp, argv[3], &index) != HAX_OK) {
	    return HAX_ERROR;
	}
	if ((index >= 0) && (index < strlen(argv[2]))) {
	    interp->result[0] = argv[2][index];
	    interp->result[1] = 0;
	}
	return HAX_OK;
    } else if ((c == 'l') && (strncmp(argv[1], "last", length) == 0)
	    && (length >= 2)) {
	if (argc != 4) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " last string1 string2\"", (char *) NULL);
	    return HAX_ERROR;
	}
	first = 0;
	goto firstLast;
    } else if ((c == 'l') && (strncmp(argv[1], "length", length) == 0)
	    && (length >= 2)) {
	if (argc != 3) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " length string\"", (char *) NULL);
	    return HAX_ERROR;
	}
	sprintf(interp->result, "%lu", (unsigned long)strlen(argv[2]));
	return HAX_OK;
    } else if ((c == 'm') && (strncmp(argv[1], "match", length) == 0)) {
	if (argc != 4) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " match pattern string\"", (char *) NULL);
	    return HAX_ERROR;
	}
	if (Hax_StringMatch(argv[3], argv[2]) != 0) {
	    interp->result = (char *) "1";
	} else {
	    interp->result = (char *) "0";
	}
	return HAX_OK;
    } else if ((c == 'r') && (strncmp(argv[1], "range", length) == 0)) {
	long int first, last, stringLength;

	if (argc != 5) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " range string first last\"", (char *) NULL);
	    return HAX_ERROR;
	}
	stringLength = strlen(argv[2]);
	if (Hax_GetLong(interp, argv[3], &first) != HAX_OK) {
	    return HAX_ERROR;
	}
	if ((*argv[4] == 'e')
		&& (strncmp(argv[4], "end", strlen(argv[4])) == 0)) {
	    last = stringLength-1;
	} else {
	    if (Hax_GetLong(interp, argv[4], &last) != HAX_OK) {
		Hax_ResetResult(interp);
		Hax_AppendResult(interp,
			"expected integer or \"end\" but got \"",
			argv[4], "\"", (char *) NULL);
		return HAX_ERROR;
	    }
	}
	if (first < 0) {
	    first = 0;
	}
	if (last >= stringLength) {
	    last = stringLength-1;
	}
	if (last >= first) {
	    char saved, *p;

	    p = argv[2] + last + 1;
	    saved = *p;
	    *p = 0;
	    Hax_SetResult(interp, argv[2] + first, HAX_VOLATILE);
	    *p = saved;
	}
	return HAX_OK;
    } else if ((c == 't') && (strncmp(argv[1], "tolower", length) == 0)
	    && (length >= 3)) {
	char *p;

	if (argc != 3) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " tolower string\"", (char *) NULL);
	    return HAX_ERROR;
	}
	Hax_SetResult(interp, argv[2], HAX_VOLATILE);
	for (p = interp->result; *p != 0; p++) {
	    if (isupper(*p)) {
		*p = tolower(*p);
	    }
	}
	return HAX_OK;
    } else if ((c == 't') && (strncmp(argv[1], "toupper", length) == 0)
	    && (length >= 3)) {
	char *p;

	if (argc != 3) {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " toupper string\"", (char *) NULL);
	    return HAX_ERROR;
	}
	Hax_SetResult(interp, argv[2], HAX_VOLATILE);
	for (p = interp->result; *p != 0; p++) {
	    if (islower(*p)) {
		*p = toupper(*p);
	    }
	}
	return HAX_OK;
    } else if ((c == 't') && (strncmp(argv[1], "trim", length) == 0)
	    && (length == 4)) {
	char *trimChars;
	char *p, *checkPtr;

	left = right = 1;

	trim:
	if (argc == 4) {
	    trimChars = argv[3];
	} else if (argc == 3) {
	    trimChars = (char *) " \t\n\r";
	} else {
	    Hax_AppendResult(interp, "wrong # args: should be \"", argv[0],
		    " ", argv[1], " string ?chars?\"", (char *) NULL);
	    return HAX_ERROR;
	}
	p = argv[2];
	if (left) {
	    for (c = *p; c != 0; p++, c = *p) {
		for (checkPtr = trimChars; *checkPtr != c; checkPtr++) {
		    if (*checkPtr == 0) {
			goto doneLeft;
		    }
		}
	    }
	}
	doneLeft:
	Hax_SetResult(interp, p, HAX_VOLATILE);
	if (right) {
	    char *donePtr;

	    p = interp->result + strlen(interp->result) - 1;
	    donePtr = &interp->result[-1];
	    for (c = *p; p != donePtr; p--, c = *p) {
		for (checkPtr = trimChars; *checkPtr != c; checkPtr++) {
		    if (*checkPtr == 0) {
			goto doneRight;
		    }
		}
	    }
	    doneRight:
	    p[1] = 0;
	}
	return HAX_OK;
    } else if ((c == 't') && (strncmp(argv[1], "trimleft", length) == 0)
	    && (length > 4)) {
	left = 1;
	argv[1] = (char *) "trimleft";
	goto trim;
    } else if ((c == 't') && (strncmp(argv[1], "trimright", length) == 0)
	    && (length > 4)) {
	right = 1;
	argv[1] = (char *) "trimright";
	goto trim;
    } else {
	Hax_AppendResult(interp, "bad option \"", argv[1],
		"\": should be compare, first, index, last, length, match, ",
		"range, tolower, toupper, trim, trimleft, or trimright",
		(char *) NULL);
	return HAX_ERROR;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq %rcx, -0x28(%rbp)
movl $0x0, -0x48(%rbp)
movl $0x0, -0x4c(%rbp)
cmpl $0x2, -0x1c(%rbp)
jge 0xe2cf
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xf6c4(%rip), %rsi      # 0x1d974
leaq 0x101ee(%rip), %rcx     # 0x1e4a5
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movb (%rax), %al
movb %al, -0x39(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x41b0
movl %eax, -0x2c(%rbp)
movsbl -0x39(%rbp), %eax
cmpl $0x63, %eax
jne 0xe3b1
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0x101b0(%rip), %rsi     # 0x1e4bc
callq 0x40a0
cmpl $0x0, %eax
jne 0xe3b1
cmpl $0x4, -0x1c(%rbp)
je 0xe351
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xf642(%rip), %rsi      # 0x1d974
leaq 0x1018b(%rip), %rcx     # 0x1e4c4
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rsi
callq 0x4300
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x40(%rbp)
jle 0xe37f
movq -0x18(%rbp), %rax
leaq 0xff53(%rip), %rcx      # 0x1e2cd
movq %rcx, (%rax)
jmp 0xe3a5
cmpl $0x0, -0x40(%rbp)
jge 0xe395
movq -0x18(%rbp), %rax
leaq 0xff3c(%rip), %rcx      # 0x1e2cc
movq %rcx, (%rax)
jmp 0xe3a3
movq -0x18(%rbp), %rax
leaq 0xfb03(%rip), %rcx      # 0x1dea3
movq %rcx, (%rax)
jmp 0xe3a5
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x66, %eax
jne 0xe4d4
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0x10755(%rip), %rsi     # 0x1eb26
callq 0x40a0
cmpl $0x0, %eax
jne 0xe4d4
cmpl $0x4, -0x1c(%rbp)
je 0xe416
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xf57d(%rip), %rsi      # 0x1d974
leaq 0x100e0(%rip), %rcx     # 0x1e4de
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movl $0x1, -0x44(%rbp)
movl $0xffffffff, -0x40(%rbp) # imm = 0xFFFFFFFF
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movb (%rax), %al
movb %al, -0x39(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x41b0
movl %eax, -0x2c(%rbp)
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xe4b0
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
movsbl -0x39(%rbp), %ecx
cmpl %ecx, %eax
je 0xe46a
jmp 0xe4a2
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x38(%rbp), %rsi
movslq -0x2c(%rbp), %rdx
callq 0x40a0
cmpl $0x0, %eax
jne 0xe4a0
movq -0x38(%rbp), %rax
movq -0x28(%rbp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x44(%rbp)
je 0xe49e
jmp 0xe4b0
jmp 0xe4a0
jmp 0xe4a2
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xe44d
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movl -0x40(%rbp), %edx
leaq 0xee13(%rip), %rsi      # 0x1d2d4
movb $0x0, %al
callq 0x45d0
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x69, %eax
jne 0xe5bc
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xee9a(%rip), %rsi      # 0x1d38e
callq 0x40a0
cmpl $0x0, %eax
jne 0xe5bc
cmpl $0x4, -0x1c(%rbp)
je 0xe539
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xf45a(%rip), %rsi      # 0x1d974
leaq 0xffd5(%rip), %rcx      # 0x1e4f6
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rsi
leaq -0x58(%rbp), %rdx
callq 0x44b0
cmpl $0x0, %eax
je 0xe55f
movl $0x1, -0x4(%rbp)
jmp 0xee62
cmpq $0x0, -0x58(%rbp)
jl 0xe5b0
movq -0x58(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x41b0
movq %rax, %rcx
movq -0xb8(%rbp), %rax
cmpq %rcx, %rax
jae 0xe5b0
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x58(%rbp), %rcx
movb (%rax,%rcx), %cl
movq -0x18(%rbp), %rax
movq (%rax), %rax
movb %cl, (%rax)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movb $0x0, 0x1(%rax)
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x6c, %eax
jne 0xe62b
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xff37(%rip), %rsi      # 0x1e50f
callq 0x40a0
cmpl $0x0, %eax
jne 0xe62b
cmpl $0x2, -0x2c(%rbp)
jl 0xe62b
cmpl $0x4, -0x1c(%rbp)
je 0xe61f
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xf374(%rip), %rsi      # 0x1d974
leaq 0xff0d(%rip), %rcx      # 0x1e514
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movl $0x0, -0x44(%rbp)
jmp 0xe41d
movsbl -0x39(%rbp), %eax
cmpl $0x6c, %eax
jne 0xe6d1
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xed52(%rip), %rsi      # 0x1d39d
callq 0x40a0
cmpl $0x0, %eax
jne 0xe6d1
cmpl $0x2, -0x2c(%rbp)
jl 0xe6d1
cmpl $0x3, -0x1c(%rbp)
je 0xe692
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xf301(%rip), %rsi      # 0x1d974
leaq 0xfeb1(%rip), %rcx      # 0x1e52b
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xc0(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x41b0
movq -0xc0(%rbp), %rdi
movq %rax, %rdx
leaq 0xfe7d(%rip), %rsi      # 0x1e53b
movb $0x0, %al
callq 0x45d0
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x6d, %eax
jne 0xe776
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xfe4e(%rip), %rsi      # 0x1e53f
callq 0x40a0
cmpl $0x0, %eax
jne 0xe776
cmpl $0x4, -0x1c(%rbp)
je 0xe732
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xf261(%rip), %rsi      # 0x1d974
leaq 0xfe2b(%rip), %rcx      # 0x1e545
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x4460
cmpl $0x0, %eax
je 0xe75c
movq -0x18(%rbp), %rax
leaq 0xfb76(%rip), %rcx      # 0x1e2cd
movq %rcx, (%rax)
jmp 0xe76a
movq -0x18(%rbp), %rax
leaq 0xf73c(%rip), %rcx      # 0x1dea3
movq %rcx, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x72, %eax
jne 0xe942
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xe9ce(%rip), %rsi      # 0x1d164
callq 0x40a0
cmpl $0x0, %eax
jne 0xe942
cmpl $0x5, -0x1c(%rbp)
je 0xe7db
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xf1b8(%rip), %rsi      # 0x1d974
leaq 0xfd99(%rip), %rcx      # 0x1e55c
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x41b0
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rsi
leaq -0x60(%rbp), %rdx
callq 0x44b0
cmpl $0x0, %eax
je 0xe812
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rax
movsbl (%rax), %eax
cmpl $0x65, %eax
jne 0xe867
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0xc8(%rbp)
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x41b0
movq -0xc8(%rbp), %rdi
movq %rax, %rdx
leaq 0xe8e1(%rip), %rsi      # 0x1d130
callq 0x40a0
cmpl $0x0, %eax
jne 0xe867
movq -0x70(%rbp), %rax
subq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0xe8be
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rsi
leaq -0x68(%rbp), %rdx
callq 0x44b0
cmpl $0x0, %eax
je 0xe8bc
movq -0x18(%rbp), %rdi
callq 0x42b0
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rdx
leaq 0xf760(%rip), %rsi      # 0x1dffd
leaq 0xe9cc(%rip), %rcx      # 0x1d270
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
jmp 0xe8be
cmpq $0x0, -0x60(%rbp)
jge 0xe8cd
movq $0x0, -0x60(%rbp)
movq -0x68(%rbp), %rax
cmpq -0x70(%rbp), %rax
jl 0xe8e3
movq -0x70(%rbp), %rax
subq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
cmpq -0x60(%rbp), %rax
jl 0xe936
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
addq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movb (%rax), %al
movb %al, -0x71(%rbp)
movq -0x80(%rbp), %rax
movb $0x0, (%rax)
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rsi
addq -0x60(%rbp), %rsi
movq $-0x1, %rdx
callq 0x44e0
movb -0x71(%rbp), %cl
movq -0x80(%rbp), %rax
movb %cl, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x74, %eax
jne 0xea45
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xfc14(%rip), %rsi      # 0x1e576
callq 0x40a0
cmpl $0x0, %eax
jne 0xea45
cmpl $0x3, -0x2c(%rbp)
jl 0xea45
cmpl $0x3, -0x1c(%rbp)
je 0xe9b1
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xefe2(%rip), %rsi      # 0x1d974
leaq 0xfbe5(%rip), %rcx      # 0x1e57e
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rsi
movq $-0x1, %rdx
callq 0x44e0
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xea39
callq 0x4630
movq (%rax), %rax
movq -0x88(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0xea23
movq -0x88(%rbp), %rax
movsbl (%rax), %edi
callq 0x4400
movb %al, %cl
movq -0x88(%rbp), %rax
movb %cl, (%rax)
jmp 0xea25
movq -0x88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x88(%rbp)
jmp 0xe9d7
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x74, %eax
jne 0xeb48
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xfb2a(%rip), %rsi      # 0x1e58f
callq 0x40a0
cmpl $0x0, %eax
jne 0xeb48
cmpl $0x3, -0x2c(%rbp)
jl 0xeb48
cmpl $0x3, -0x1c(%rbp)
je 0xeab4
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
leaq 0xeedf(%rip), %rsi      # 0x1d974
leaq 0xfafb(%rip), %rcx      # 0x1e597
xorl %eax, %eax
movl %eax, %r8d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rsi
movq $-0x1, %rdx
callq 0x44e0
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xeb3c
callq 0x4630
movq (%rax), %rax
movq -0x90(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0xeb26
movq -0x90(%rbp), %rax
movsbl (%rax), %edi
callq 0x40f0
movb %al, %cl
movq -0x90(%rbp), %rax
movb %cl, (%rax)
jmp 0xeb28
movq -0x90(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x90(%rbp)
jmp 0xeada
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x74, %eax
jne 0xeda0
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xfa40(%rip), %rsi      # 0x1e5a8
callq 0x40a0
cmpl $0x0, %eax
jne 0xeda0
cmpl $0x4, -0x2c(%rbp)
jne 0xeda0
movl $0x1, -0x4c(%rbp)
movl $0x1, -0x48(%rbp)
cmpl $0x4, -0x1c(%rbp)
jne 0xeba5
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x98(%rbp)
jmp 0xec02
cmpl $0x3, -0x1c(%rbp)
jne 0xebbb
leaq 0xf9fb(%rip), %rax      # 0x1e5ad
movq %rax, -0x98(%rbp)
jmp 0xec00
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rdx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %r8
leaq 0xed9f(%rip), %rsi      # 0x1d974
leaq 0x10294(%rip), %rcx     # 0x1ee70
leaq 0xf9cf(%rip), %r9       # 0x1e5b2
xorl %eax, %eax
movq $0x0, (%rsp)
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
jmp 0xee62
jmp 0xec02
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xa0(%rbp)
cmpl $0x0, -0x48(%rbp)
je 0xec9b
movq -0xa0(%rbp), %rax
movb (%rax), %al
movb %al, -0x39(%rbp)
movsbl -0x39(%rbp), %eax
cmpl $0x0, %eax
je 0xec99
movq -0x98(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movsbl (%rax), %eax
movsbl -0x39(%rbp), %ecx
cmpl %ecx, %eax
je 0xec77
movq -0xa8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0xec61
jmp 0xec9d
jmp 0xec63
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
jmp 0xec3e
jmp 0xec79
movq -0xa0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movb (%rax), %al
movb %al, -0x39(%rbp)
jmp 0xec27
jmp 0xec9b
jmp 0xec9d
movq -0x18(%rbp), %rdi
movq -0xa0(%rbp), %rsi
movq $-0x1, %rdx
callq 0x44e0
cmpl $0x0, -0x4c(%rbp)
je 0xed94
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x41b0
movq %rax, %rcx
movq -0xd0(%rbp), %rax
addq %rcx, %rax
addq $-0x1, %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
addq $-0x1, %rax
movq %rax, -0xb0(%rbp)
movq -0xa0(%rbp), %rax
movb (%rax), %al
movb %al, -0x39(%rbp)
movq -0xa0(%rbp), %rax
cmpq -0xb0(%rbp), %rax
je 0xed87
movq -0x98(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movsbl (%rax), %eax
movsbl -0x39(%rbp), %ecx
cmpl %ecx, %eax
je 0xed65
movq -0xa8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0xed4f
jmp 0xed89
jmp 0xed51
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
jmp 0xed2c
jmp 0xed67
movq -0xa0(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movb (%rax), %al
movb %al, -0x39(%rbp)
jmp 0xed0e
jmp 0xed89
movq -0xa0(%rbp), %rax
movb $0x0, 0x1(%rax)
movl $0x0, -0x4(%rbp)
jmp 0xee62
movsbl -0x39(%rbp), %eax
cmpl $0x74, %eax
jne 0xede7
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xf807(%rip), %rsi      # 0x1e5c3
callq 0x40a0
cmpl $0x0, %eax
jne 0xede7
cmpl $0x4, -0x2c(%rbp)
jle 0xede7
movl $0x1, -0x48(%rbp)
movq -0x28(%rbp), %rax
leaq 0xf7e5(%rip), %rcx      # 0x1e5c3
movq %rcx, 0x8(%rax)
jmp 0xeb8e
movsbl -0x39(%rbp), %eax
cmpl $0x74, %eax
jne 0xee2e
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movslq -0x2c(%rbp), %rdx
leaq 0xf82f(%rip), %rsi      # 0x1e632
callq 0x40a0
cmpl $0x0, %eax
jne 0xee2e
cmpl $0x4, -0x2c(%rbp)
jle 0xee2e
movl $0x1, -0x4c(%rbp)
movq -0x28(%rbp), %rax
leaq 0xf80d(%rip), %rcx      # 0x1e632
movq %rcx, 0x8(%rax)
jmp 0xeb8e
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0xe8dd(%rip), %rsi      # 0x1d71e
leaq 0xf784(%rip), %rcx      # 0x1e5cc
leaq 0xf7b7(%rip), %r8       # 0x1e606
xorl %eax, %eax
movl %eax, %r9d
movb $0x0, %al
callq 0x4500
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xe0, %rsp
popq %rbp
retq
nop