// File: /workspace/github_cpp_makefile_star2_O1/attractivechaos[P]udb2/stb/./stb.h
// Function: stb_shorten_path_readable
char * stb_shorten_path_readable(char *path, int len)
{
   static char buffer[1024];
   int n = strlen(path),n1,n2,r1,r2;
   char *s;
   if (n <= len) return path;
   if (len > 1024) return path;
   s = stb_strrchr2(path, '/', '\\');
   if (s) {
      n1 = s - path + 1;
      n2 = n - n1;
      ++s;
   } else {
      n1 = 0;
      n2 = n;
      s = path;
   }
   // now we need to reduce r1 and r2 so that they fit in len
   if (n1 < len>>1) {
      r1 = n1;
      r2 = len - r1;
   } else if (n2 < len >> 1) {
      r2 = n2;
      r1 = len - r2;
   } else {
      r1 = n1 * len / n;
      r2 = n2 * len / n;
      if (r1 < len>>2) r1 = len>>2, r2 = len-r1;
      if (r2 < len>>2) r2 = len>>2, r1 = len-r2;
   }
   assert(r1 <= n1 && r2 <= n2);
   if (n1)
      stb__add_section(buffer, path, n1, r1);
   stb__add_section(buffer+r1, s, n2, r2);
   buffer[len] = 0;
   return buffer;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %r15d
movq %rdi, %r14
callq 0x2100
movq %rax, %rcx
cmpl %r15d, %ecx
setle %al
cmpl $0x401, %r15d           # imm = 0x401
setge %dl
orb %al, %dl
jne 0x4c76
movb (%r14), %sil
xorl %eax, %eax
xorl %edx, %edx
testb %sil, %sil
je 0x4b0b
movq %r14, %rdi
cmpb $0x5c, %sil
cmoveq %rdi, %rdx
cmpb $0x2f, %sil
cmoveq %rdi, %rdx
movb 0x1(%rdi), %sil
incq %rdi
testb %sil, %sil
jne 0x4aef
movl %edx, %r12d
subl %r14d, %r12d
incl %r12d
testq %rdx, %rdx
cmovel %eax, %r12d
leaq 0x1(%rdx), %rsi
cmoveq %r14, %rsi
movl %ecx, %r13d
subl %r12d, %r13d
movl %r15d, %eax
sarl %eax
cmpl %eax, %r12d
jge 0x4b3e
movl %r15d, %ebp
subl %r12d, %ebp
movl %r12d, %ebx
jmp 0x4b81
cmpl %eax, %r13d
jge 0x4b4e
movl %r15d, %ebx
subl %r13d, %ebx
movl %r13d, %ebp
jmp 0x4b81
movl %r12d, %eax
imull %r15d, %eax
cltd
idivl %ecx
movl %eax, %ebx
movl %r13d, %eax
imull %r15d, %eax
cltd
idivl %ecx
movl %eax, %ebp
movl %r15d, %eax
sarl $0x2, %eax
movl %r15d, %ecx
subl %eax, %ecx
cmpl %eax, %ebx
cmovlel %eax, %ebx
cmovll %ecx, %ebp
cmpl %eax, %ebp
cmovll %ecx, %ebx
cmovlel %eax, %ebp
cmpl %r12d, %ebx
jg 0x4c88
cmpl %r13d, %ebp
jg 0x4c88
testl %r12d, %r12d
movl %r15d, 0x8(%rsp)
je 0x4c11
movq %rsi, 0x10(%rsp)
cmpl %r12d, %ebx
jge 0x4bf5
movl %ebx, %eax
sarl %eax
movl %ebx, %ecx
subl %eax, %ecx
movl %ecx, 0xc(%rsp)
movslq %eax, %r15
leaq -0x1(%r15), %rdx
leaq 0x18f5f(%rip), %rdi     # 0x1db20
movq %r14, %rsi
callq 0x2230
leaq 0x18f50(%rip), %rax     # 0x1db20
leaq (%r15,%rax), %rdi
incq %rdi
movw $0x2e2e, -0x2(%rdi)     # imm = 0x2E2E
movslq %r12d, %rsi
addq %r14, %rsi
movslq 0xc(%rsp), %rax
subq %rax, %rsi
incq %rsi
decl %eax
movslq %eax, %rdx
jmp 0x4c02
movslq %r12d, %rdx
leaq 0x18f21(%rip), %rdi     # 0x1db20
movq %r14, %rsi
callq 0x2230
movq 0x10(%rsp), %rsi
movl 0x8(%rsp), %r15d
movslq %ebx, %r12
leaq 0x18f05(%rip), %r14     # 0x1db20
addq %r14, %r12
cmpl %r13d, %ebp
jge 0x4c63
movl %ebp, %eax
sarl %eax
subl %eax, %ebp
movslq %eax, %rbx
leaq -0x1(%rbx), %rdx
movq %r12, %rdi
movq %rsi, %r15
callq 0x2230
leaq (%r12,%rbx), %rdi
incq %rdi
movw $0x2e2e, -0x2(%rdi)     # imm = 0x2E2E
movslq %r13d, %rsi
addq %r15, %rsi
movl 0x8(%rsp), %r15d
movslq %ebp, %rax
subq %rax, %rsi
incq %rsi
decl %eax
movslq %eax, %rdx
jmp 0x4c69
movslq %r13d, %rdx
movq %r12, %rdi
callq 0x2230
movslq %r15d, %rax
movb $0x0, (%rax,%r14)
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xd989(%rip), %rdi      # 0x12618
leaq 0xd86b(%rip), %rsi      # 0x12501
leaq 0xd990(%rip), %rcx      # 0x1262d
movl $0x900, %edx            # imm = 0x900
callq 0x2140