// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: reg_decode_escape
static int reg_decode_escape(const char *s, int *ch)
{
	int n;
	const char *s0 = s;

	*ch = *s++;

	switch (*ch) {
		case 'b': *ch = '\b'; break;
		case 'e': *ch = 27; break;
		case 'f': *ch = '\f'; break;
		case 'n': *ch = '\n'; break;
		case 'r': *ch = '\r'; break;
		case 't': *ch = '\t'; break;
		case 'v': *ch = '\v'; break;
		case 'u':
			if (*s == '{') {

				n = parse_hex(s + 1, 6, ch);
				if (n > 0 && s[n + 1] == '}' && *ch >= 0 && *ch <= 0x1fffff) {
					s += n + 2;
				}
				else {

					*ch = 'u';
				}
			}
			else if ((n = parse_hex(s, 4, ch)) > 0) {
				s += n;
			}
			break;
		case 'U':
			if ((n = parse_hex(s, 8, ch)) > 0) {
				s += n;
			}
			break;
		case 'x':
			if ((n = parse_hex(s, 2, ch)) > 0) {
				s += n;
			}
			break;
		case '\0':
			s--;
			*ch = '\\';
			break;
	}
	return s - s0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, -0x8(%rbp)
movsbl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x24(%rbp)
testl %eax, %eax
je 0x3477f
jmp 0x345a2
movl -0x24(%rbp), %eax
subl $0x55, %eax
je 0x34725
jmp 0x345b0
movl -0x24(%rbp), %eax
subl $0x62, %eax
je 0x34615
jmp 0x345ba
movl -0x24(%rbp), %eax
subl $0x65, %eax
je 0x34624
jmp 0x345c4
movl -0x24(%rbp), %eax
subl $0x66, %eax
je 0x34633
jmp 0x345ce
movl -0x24(%rbp), %eax
subl $0x6e, %eax
je 0x34642
jmp 0x345d8
movl -0x24(%rbp), %eax
subl $0x72, %eax
je 0x34651
jmp 0x345e2
movl -0x24(%rbp), %eax
subl $0x74, %eax
je 0x34660
jmp 0x345ec
movl -0x24(%rbp), %eax
subl $0x75, %eax
je 0x3467e
jmp 0x345fa
movl -0x24(%rbp), %eax
subl $0x76, %eax
je 0x3466f
jmp 0x34604
movl -0x24(%rbp), %eax
subl $0x78, %eax
je 0x34752
jmp 0x34795
movq -0x10(%rbp), %rax
movl $0x8, (%rax)
jmp 0x34795
movq -0x10(%rbp), %rax
movl $0x1b, (%rax)
jmp 0x34795
movq -0x10(%rbp), %rax
movl $0xc, (%rax)
jmp 0x34795
movq -0x10(%rbp), %rax
movl $0xa, (%rax)
jmp 0x34795
movq -0x10(%rbp), %rax
movl $0xd, (%rax)
jmp 0x34795
movq -0x10(%rbp), %rax
movl $0x9, (%rax)
jmp 0x34795
movq -0x10(%rbp), %rax
movl $0xb, (%rax)
jmp 0x34795
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7b, %eax
jne 0x346f6
movq -0x8(%rbp), %rdi
addq $0x1, %rdi
movq -0x10(%rbp), %rdx
movl $0x6, %esi
callq 0x34800
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x346ea
movq -0x8(%rbp), %rax
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x7d, %eax
jne 0x346ea
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jl 0x346ea
movq -0x10(%rbp), %rax
cmpl $0x1fffff, (%rax)       # imm = 0x1FFFFF
jg 0x346ea
movl -0x14(%rbp), %ecx
addl $0x2, %ecx
movq -0x8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
jmp 0x346f4
movq -0x10(%rbp), %rax
movl $0x75, (%rax)
jmp 0x34723
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0x4, %esi
callq 0x34800
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jle 0x34721
movl -0x14(%rbp), %ecx
movq -0x8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
jmp 0x34723
jmp 0x34795
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0x8, %esi
callq 0x34800
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jle 0x34750
movl -0x14(%rbp), %ecx
movq -0x8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
jmp 0x34795
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0x2, %esi
callq 0x34800
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jle 0x3477d
movl -0x14(%rbp), %ecx
movq -0x8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
jmp 0x34795
movq -0x8(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rax
movl $0x5c, (%rax)
movq -0x8(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)