// File: /workspace/github_c_makefile_star2_O0/excess-c64[P]lib1541img/src/lib/1541img/petscii.c
// Function: screencodeFromUtf8
static char screencodeFromUtf8(
	const char *str, size_t strlen, size_t *strpos, PetsciiCase *casemode)
{
    if (*strpos >= strlen) return (char)-1;
    unsigned char next = (unsigned char)str[(*strpos)++];
    if (next < 0x80)
    {
	if (next > 0x1f && next < 0x40) return next;
	if (next > 0x60 && next < 0x7b) 
	{
	    return lowerOrInvalid(next - 0x60, casemode);
	}
	if (next > 0x40 && next < 0x5b)
	{
	    if (*casemode & PC_LOWER) return next;
	    return next - 0x40;
	}
	if (next == 0x40 || next == 0x5b || next == 0x5d) return next - 0x40;
	return (char)-1;
    }
    if (*strpos >= strlen) return (char)-1;
    switch (next)
    {
	case 0xc2:
	    next = (unsigned char)str[(*strpos)++];
	    if (next == 0xa3) return 0x1c;
	    if (next == 0xa0) return 0x60;
	    break;

	case 0xe2:
	    next = (unsigned char)str[(*strpos)++];
	    if (*strpos >= strlen) return (char)-1;
	    switch (next)
	    {
		case 0x86:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0x91) return 0x1e;
		    if (next == 0x90) return 0x1f;
		    break;

		case 0x94:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0x80) return 0x40;
		    if (next == 0xbc) return 0x5b;
		    if (next == 0x82) return 0x5d;
		    if (next == 0x9c) return 0x6b;
		    if (next == 0x94) return 0x6d;
		    if (next == 0x90) return 0x6e;
		    if (next == 0x8c) return 0x70;
		    if (next == 0xb4) return 0x71;
		    if (next == 0xac) return 0x72;
		    if (next == 0xa4) return 0x73;
		    if (next == 0x98) return 0x7d;
		    break;

		case 0x99:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0xa0) return upperOrInvalid(0x41, casemode);
		    if (next == 0xa5) return upperOrInvalid(0x53, casemode);
		    if (next == 0xa3) return upperOrInvalid(0x58, casemode);
		    if (next == 0xa6) return upperOrInvalid(0x5a, casemode);
		    break;

		case 0x95:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0xae) return upperOrInvalid(0x49, casemode);
		    if (next == 0xb0) return upperOrInvalid(0x4a, casemode);
		    if (next == 0xaf) return upperOrInvalid(0x4b, casemode);
		    if (next == 0xb2) return upperOrInvalid(0x4d, casemode);
		    if (next == 0xb1) return upperOrInvalid(0x4e, casemode);
		    if (next == 0xad) return upperOrInvalid(0x55, casemode);
		    if (next == 0xb3) return upperOrInvalid(0x56, casemode);
		    break;

		case 0x80:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0xa2) return upperOrInvalid(0x51, casemode);
		    break;

		case 0x97:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0x8b) return upperOrInvalid(0x57, casemode);
		    if (next == 0xa5) return upperOrInvalid(0x5f, casemode);
		    if (next == 0xa4) return upperOrInvalid(0x69, casemode);
		    break;

		case 0x96:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0x8c) return 0x61;
		    if (next == 0x84) return 0x62;
		    if (next == 0x94) return 0x63;
		    if (next == 0x81) return 0x64;
		    if (next == 0x8e) return 0x65;
		    if (next == 0x92) return 0x66;
		    if (next == 0x95) return 0x67;
		    if (next == 0x97) return 0x6c;
		    if (next == 0x82) return 0x6f;
		    if (next == 0x8e) return 0x74;
		    if (next == 0x8d) return 0x75;
		    if (next == 0x83) return 0x79;
		    if (next == 0x96) return 0x7b;
		    if (next == 0x9d) return 0x7c;
		    if (next == 0x98) return 0x7e;
		    if (next == 0x9a) return 0x7f;
		    break;

		case 0x9c:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0x93) return lowerOrInvalid(0x7a, casemode);
		    break;
	    }
	    break;

	case 0xf0:
	    next = (unsigned char)str[(*strpos)++];
	    if (*strpos >= strlen) return (char)-1;
	    if (next != 0x9f) break;
	    next = (unsigned char)str[(*strpos)++];
	    if (*strpos >= strlen) return (char)-1;
	    switch (next)
	    {
		case 0xad:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0xb7) return upperOrInvalid(0x44, casemode);
		    if (next == 0xb6) return upperOrInvalid(0x45, casemode);
		    if (next == 0xba) return upperOrInvalid(0x46, casemode);
		    if (next == 0xb1) return upperOrInvalid(0x47, casemode);
		    if (next == 0xb4) return upperOrInvalid(0x48, casemode);
		    if (next == 0xbc) return upperOrInvalid(0x4c, casemode);
		    if (next == 0xbd) return upperOrInvalid(0x4f, casemode);
		    if (next == 0xbe) return upperOrInvalid(0x50, casemode);
		    if (next == 0xbb) return upperOrInvalid(0x52, casemode);
		    if (next == 0xb0) return upperOrInvalid(0x54, casemode);
		    if (next == 0xb5) return upperOrInvalid(0x59, casemode);
		    if (next == 0xbf) return upperOrInvalid(0x7a, casemode);
		    break;

		case 0xae:
		    next = (unsigned char)str[(*strpos)++];
		    if (next == 0x8c) return 0x5c;
		    if (next == 0x8f) return 0x68;
		    if (next == 0x87) return 0x6a;
		    if (next == 0x88) return 0x76;
		    if (next == 0x82) return 0x77;
		    if (next == 0x83) return 0x78;
		    if (next == 0x95) return lowerOrInvalid(0x5e, casemode);
		    if (next == 0x98) return lowerOrInvalid(0x5f, casemode);
		    if (next == 0x99) return lowerOrInvalid(0x69, casemode);
		    break;
	    }
	    break;

	case 0xcf:
	    next = (unsigned char)str[(*strpos)++];
	    if (*strpos >= strlen) return (char)-1;
	    if (next == 0x80) return upperOrInvalid(0x5e, casemode);
	    break;
    }
    while (*strpos < strlen && ((unsigned char)str[*strpos] & 0xc0) == 0x80)
    {
	++(*strpos);
    }
    return (char)-1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jb 0x11ade
movb $-0x1, -0x1(%rbp)
jmp 0x125e3
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0x80, %eax
jge 0x11bbf
movzbl -0x29(%rbp), %eax
cmpl $0x1f, %eax
jle 0x11b25
movzbl -0x29(%rbp), %eax
cmpl $0x40, %eax
jge 0x11b25
movb -0x29(%rbp), %al
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x60, %eax
jle 0x11b52
movzbl -0x29(%rbp), %eax
cmpl $0x7b, %eax
jge 0x11b52
movzbl -0x29(%rbp), %eax
subl $0x60, %eax
movq -0x28(%rbp), %rsi
movzbl %al, %edi
callq 0x12730
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x40, %eax
jle 0x11b8c
movzbl -0x29(%rbp), %eax
cmpl $0x5b, %eax
jge 0x11b8c
movq -0x28(%rbp), %rax
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x11b7d
movb -0x29(%rbp), %al
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
subl $0x40, %eax
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x40, %eax
je 0x11ba7
movzbl -0x29(%rbp), %eax
cmpl $0x5b, %eax
je 0x11ba7
movzbl -0x29(%rbp), %eax
cmpl $0x5d, %eax
jne 0x11bb6
movzbl -0x29(%rbp), %eax
subl $0x40, %eax
movb %al, -0x1(%rbp)
jmp 0x125e3
movb $-0x1, -0x1(%rbp)
jmp 0x125e3
movq -0x20(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jb 0x11bd5
movb $-0x1, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
movl %eax, -0x30(%rbp)
subl $0xc2, %eax
je 0x11c14
jmp 0x11be5
movl -0x30(%rbp), %eax
subl $0xcf, %eax
je 0x12545
jmp 0x11bf5
movl -0x30(%rbp), %eax
subl $0xe2, %eax
je 0x11c5c
jmp 0x11c01
movl -0x30(%rbp), %eax
subl $0xf0, %eax
je 0x1220a
jmp 0x12593
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0xa3, %eax
jne 0x11c43
movb $0x1c, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xa0, %eax
jne 0x11c57
movb $0x60, -0x1(%rbp)
jmp 0x125e3
jmp 0x12593
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jb 0x11c8d
movb $-0x1, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
addl $-0x80, %eax
movl %eax, %ecx
movq %rcx, -0x38(%rbp)
subl $0x1c, %eax
ja 0x12205
movq -0x38(%rbp), %rax
leaq 0x2c32(%rip), %rcx      # 0x148e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0x91, %eax
jne 0x11ce6
movb $0x1e, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x90, %eax
jne 0x11cfa
movb $0x1f, -0x1(%rbp)
jmp 0x125e3
jmp 0x12205
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0x80, %eax
jne 0x11d2e
movb $0x40, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xbc, %eax
jne 0x11d42
movb $0x5b, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x82, %eax
jne 0x11d56
movb $0x5d, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x9c, %eax
jne 0x11d6a
movb $0x6b, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x94, %eax
jne 0x11d7e
movb $0x6d, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x90, %eax
jne 0x11d92
movb $0x6e, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x8c, %eax
jne 0x11da6
movb $0x70, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb4, %eax
jne 0x11dba
movb $0x71, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xac, %eax
jne 0x11dce
movb $0x72, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xa4, %eax
jne 0x11de2
movb $0x73, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x98, %eax
jne 0x11df6
movb $0x7d, -0x1(%rbp)
jmp 0x125e3
jmp 0x12205
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0xa0, %eax
jne 0x11e37
movq -0x28(%rbp), %rsi
movl $0x41, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xa5, %eax
jne 0x11e58
movq -0x28(%rbp), %rsi
movl $0x53, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xa3, %eax
jne 0x11e79
movq -0x28(%rbp), %rsi
movl $0x58, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xa6, %eax
jne 0x11e9a
movq -0x28(%rbp), %rsi
movl $0x5a, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
jmp 0x12205
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0xae, %eax
jne 0x11edb
movq -0x28(%rbp), %rsi
movl $0x49, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb0, %eax
jne 0x11efc
movq -0x28(%rbp), %rsi
movl $0x4a, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xaf, %eax
jne 0x11f1d
movq -0x28(%rbp), %rsi
movl $0x4b, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb2, %eax
jne 0x11f3e
movq -0x28(%rbp), %rsi
movl $0x4d, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb1, %eax
jne 0x11f5f
movq -0x28(%rbp), %rsi
movl $0x4e, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xad, %eax
jne 0x11f80
movq -0x28(%rbp), %rsi
movl $0x55, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb3, %eax
jne 0x11fa1
movq -0x28(%rbp), %rsi
movl $0x56, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
jmp 0x12205
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0xa2, %eax
jne 0x11fe2
movq -0x28(%rbp), %rsi
movl $0x51, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
jmp 0x12205
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0x8b, %eax
jne 0x12023
movq -0x28(%rbp), %rsi
movl $0x57, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xa5, %eax
jne 0x12044
movq -0x28(%rbp), %rsi
movl $0x5f, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xa4, %eax
jne 0x12065
movq -0x28(%rbp), %rsi
movl $0x69, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
jmp 0x12205
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0x8c, %eax
jne 0x12099
movb $0x61, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x84, %eax
jne 0x120ad
movb $0x62, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x94, %eax
jne 0x120c1
movb $0x63, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x81, %eax
jne 0x120d5
movb $0x64, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x8e, %eax
jne 0x120e9
movb $0x65, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x92, %eax
jne 0x120fd
movb $0x66, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x95, %eax
jne 0x12111
movb $0x67, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x97, %eax
jne 0x12125
movb $0x6c, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x82, %eax
jne 0x12139
movb $0x6f, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x8e, %eax
jne 0x1214d
movb $0x74, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x8d, %eax
jne 0x12161
movb $0x75, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x83, %eax
jne 0x12175
movb $0x79, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x96, %eax
jne 0x12189
movb $0x7b, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x9d, %eax
jne 0x1219d
movb $0x7c, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x98, %eax
jne 0x121b1
movb $0x7e, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x9a, %eax
jne 0x121c5
movb $0x7f, -0x1(%rbp)
jmp 0x125e3
jmp 0x12205
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0x93, %eax
jne 0x12203
movq -0x28(%rbp), %rsi
movl $0x7a, %edi
callq 0x12730
movb %al, -0x1(%rbp)
jmp 0x125e3
jmp 0x12205
jmp 0x12593
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jb 0x1223b
movb $-0x1, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x9f, %eax
je 0x1224b
jmp 0x12593
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jb 0x1227c
movb $-0x1, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
movl %eax, -0x3c(%rbp)
subl $0xad, %eax
je 0x1229f
jmp 0x1228c
movl -0x3c(%rbp), %eax
subl $0xae, %eax
je 0x1244b
jmp 0x12543
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0xb7, %eax
jne 0x122db
movq -0x28(%rbp), %rsi
movl $0x44, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb6, %eax
jne 0x122fc
movq -0x28(%rbp), %rsi
movl $0x45, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xba, %eax
jne 0x1231d
movq -0x28(%rbp), %rsi
movl $0x46, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb1, %eax
jne 0x1233e
movq -0x28(%rbp), %rsi
movl $0x47, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb4, %eax
jne 0x1235f
movq -0x28(%rbp), %rsi
movl $0x48, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xbc, %eax
jne 0x12380
movq -0x28(%rbp), %rsi
movl $0x4c, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xbd, %eax
jne 0x123a1
movq -0x28(%rbp), %rsi
movl $0x4f, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xbe, %eax
jne 0x123c2
movq -0x28(%rbp), %rsi
movl $0x50, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xbb, %eax
jne 0x123e3
movq -0x28(%rbp), %rsi
movl $0x52, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb0, %eax
jne 0x12404
movq -0x28(%rbp), %rsi
movl $0x54, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xb5, %eax
jne 0x12425
movq -0x28(%rbp), %rsi
movl $0x59, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0xbf, %eax
jne 0x12446
movq -0x28(%rbp), %rsi
movl $0x7a, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
jmp 0x12543
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movzbl -0x29(%rbp), %eax
cmpl $0x8c, %eax
jne 0x1247a
movb $0x5c, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x8f, %eax
jne 0x1248e
movb $0x68, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x87, %eax
jne 0x124a2
movb $0x6a, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x88, %eax
jne 0x124b6
movb $0x76, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x82, %eax
jne 0x124ca
movb $0x77, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x83, %eax
jne 0x124de
movb $0x78, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x95, %eax
jne 0x124ff
movq -0x28(%rbp), %rsi
movl $0x5e, %edi
callq 0x12730
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x98, %eax
jne 0x12520
movq -0x28(%rbp), %rsi
movl $0x5f, %edi
callq 0x12730
movb %al, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x99, %eax
jne 0x12541
movq -0x28(%rbp), %rsi
movl $0x69, %edi
callq 0x12730
movb %al, -0x1(%rbp)
jmp 0x125e3
jmp 0x12543
jmp 0x12593
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jb 0x12573
movb $-0x1, -0x1(%rbp)
jmp 0x125e3
movzbl -0x29(%rbp), %eax
cmpl $0x80, %eax
jne 0x12591
movq -0x28(%rbp), %rsi
movl $0x5e, %edi
callq 0x12790
movb %al, -0x1(%rbp)
jmp 0x125e3
jmp 0x12593
jmp 0x12595
movq -0x20(%rbp), %rax
movq (%rax), %rcx
xorl %eax, %eax
cmpq -0x18(%rbp), %rcx
movb %al, -0x3d(%rbp)
jae 0x125c6
movq -0x10(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rcx), %rcx
movzbl (%rax,%rcx), %eax
andl $0xc0, %eax
cmpl $0x80, %eax
sete %al
movb %al, -0x3d(%rbp)
movb -0x3d(%rbp), %al
testb $0x1, %al
jne 0x125cf
jmp 0x125df
movq -0x20(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
jmp 0x12595
movb $-0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)