// File: /workspace/github_c_makefile_star2_O0/alexgirao[P]aimant/str.c
// Function: str_shiftl
void str_shiftl(struct str *s, int start, int end, int n, int pad)
{
  int i, window_size;
  char *ss;

  if (start < 0) {
    start = s->len + start;
  }

  if (end < 0) {
    end = s->len + end;
  }

  assert(n >= 0);
  assert(start >= 0);
  assert(start <= s->len);

  window_size = end - start;

  assert(end >= 0);
  assert(start <= end);
  assert(n <= window_size);

  assert(end <= s->len);

  ss = s->s + start;
  bcopyl(ss, window_size - n, ss + n);

  ss += window_size - n;
  for (i=0; i<n; i++) {
    ss[i] = pad;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
cmpl $0x0, -0xc(%rbp)
jge 0xf35c
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
cmpl $0x0, -0x10(%rbp)
jge 0xf36f
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
addl -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0xf377
jmp 0xf396
leaq 0xfda(%rip), %rdi       # 0x10358
leaq 0x3093(%rip), %rsi      # 0x12418
movl $0x1e9, %edx            # imm = 0x1E9
leaq 0x3259(%rip), %rcx      # 0x125ea
callq 0x21a0
cmpl $0x0, -0xc(%rbp)
jl 0xf39e
jmp 0xf3bd
leaq 0x3203(%rip), %rdi      # 0x125a8
leaq 0x306c(%rip), %rsi      # 0x12418
movl $0x1ea, %edx            # imm = 0x1EA
leaq 0x3232(%rip), %rcx      # 0x125ea
callq 0x21a0
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jg 0xf3cb
jmp 0xf3ea
leaq 0x31e1(%rip), %rdi      # 0x125b3
leaq 0x303f(%rip), %rsi      # 0x12418
movl $0x1eb, %edx            # imm = 0x1EB
leaq 0x3205(%rip), %rcx      # 0x125ea
callq 0x21a0
movl -0x10(%rbp), %eax
subl -0xc(%rbp), %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, -0x10(%rbp)
jl 0xf3fb
jmp 0xf41a
leaq 0x31c1(%rip), %rdi      # 0x125c3
leaq 0x300f(%rip), %rsi      # 0x12418
movl $0x1ef, %edx            # imm = 0x1EF
leaq 0x31d5(%rip), %rcx      # 0x125ea
callq 0x21a0
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jg 0xf424
jmp 0xf443
leaq 0x31a1(%rip), %rdi      # 0x125cc
leaq 0x2fe6(%rip), %rsi      # 0x12418
movl $0x1f0, %edx            # imm = 0x1F0
leaq 0x31ac(%rip), %rcx      # 0x125ea
callq 0x21a0
movl -0x14(%rbp), %eax
cmpl -0x20(%rbp), %eax
jg 0xf44d
jmp 0xf46c
leaq 0x3185(%rip), %rdi      # 0x125d9
leaq 0x2fbd(%rip), %rsi      # 0x12418
movl $0x1f1, %edx            # imm = 0x1F1
leaq 0x3183(%rip), %rcx      # 0x125ea
callq 0x21a0
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jg 0xf47a
jmp 0xf499
leaq 0x319b(%rip), %rdi      # 0x1261c
leaq 0x2f90(%rip), %rsi      # 0x12418
movl $0x1f3, %edx            # imm = 0x1F3
leaq 0x3156(%rip), %rcx      # 0x125ea
callq 0x21a0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
subl -0x14(%rbp), %esi
movq -0x28(%rbp), %rdx
movslq -0x14(%rbp), %rax
addq %rax, %rdx
callq 0xf510
movl -0x20(%rbp), %ecx
subl -0x14(%rbp), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0xf503
movl -0x18(%rbp), %eax
movb %al, %dl
movq -0x28(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xf4e0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)