// File: /workspace/github_c_makefile_star2_O0/randyrossi[P]fisher-modem/mkfilter/src/mkfilter.C
// Function: decodeoptions(char*)
static uint decodeoptions(char* s) {
  unless(*(s++) == '-') usage();
  uint m = 0;
  if (seq(s, "Be"))
    m |= opt_be;
  else if (seq(s, "Bu"))
    m |= opt_bu;
  else if (seq(s, "Ch"))
    m |= opt_ch;
  else if (seq(s, "Re"))
    m |= opt_re;
  else if (seq(s, "Pi"))
    m |= opt_pi;
  else if (seq(s, "Lp"))
    m |= opt_lp;
  else if (seq(s, "Hp"))
    m |= opt_hp;
  else if (seq(s, "Bp"))
    m |= opt_bp;
  else if (seq(s, "Bs"))
    m |= opt_bs;
  else if (seq(s, "Ap"))
    m |= opt_ap;
  else {
    until(*s == '\0') {
      uint bit = optbit(*(s++));
      if (bit == 0)
        usage();
      m |= bit;
    }
  }
  return m;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rsp)
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x3d27
callq 0x3f70
movl $0x0, 0xc(%rsp)
movq 0x10(%rsp), %rdi
leaq 0x2431(%rip), %rsi      # 0x616c
callq 0x4ed0
testb $0x1, %al
jne 0x3d46
jmp 0x3d56
movl 0xc(%rsp), %eax
orl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x3f18
movq 0x10(%rsp), %rdi
leaq 0x240d(%rip), %rsi      # 0x616f
callq 0x4ed0
testb $0x1, %al
jne 0x3d6d
jmp 0x3d7d
movl 0xc(%rsp), %eax
orl $0x2, %eax
movl %eax, 0xc(%rsp)
jmp 0x3f16
movq 0x10(%rsp), %rdi
leaq 0x23e9(%rip), %rsi      # 0x6172
callq 0x4ed0
testb $0x1, %al
jne 0x3d94
jmp 0x3da4
movl 0xc(%rsp), %eax
orl $0x4, %eax
movl %eax, 0xc(%rsp)
jmp 0x3f14
movq 0x10(%rsp), %rdi
leaq 0x2787(%rip), %rsi      # 0x6537
callq 0x4ed0
testb $0x1, %al
jne 0x3dbb
jmp 0x3dcb
movl 0xc(%rsp), %eax
orl $0x8, %eax
movl %eax, 0xc(%rsp)
jmp 0x3f12
movq 0x10(%rsp), %rdi
leaq 0x272d(%rip), %rsi      # 0x6504
callq 0x4ed0
testb $0x1, %al
jne 0x3de2
jmp 0x3df2
movl 0xc(%rsp), %eax
orl $0x10, %eax
movl %eax, 0xc(%rsp)
jmp 0x3f10
movq 0x10(%rsp), %rdi
leaq 0x2377(%rip), %rsi      # 0x6175
callq 0x4ed0
testb $0x1, %al
jne 0x3e09
jmp 0x3e19
movl 0xc(%rsp), %eax
orl $0x20, %eax
movl %eax, 0xc(%rsp)
jmp 0x3f0e
movq 0x10(%rsp), %rdi
leaq 0x2353(%rip), %rsi      # 0x6178
callq 0x4ed0
testb $0x1, %al
jne 0x3e30
jmp 0x3e40
movl 0xc(%rsp), %eax
orl $0x40, %eax
movl %eax, 0xc(%rsp)
jmp 0x3f0c
movq 0x10(%rsp), %rdi
leaq 0x232f(%rip), %rsi      # 0x617b
callq 0x4ed0
testb $0x1, %al
jne 0x3e57
jmp 0x3e69
movl 0xc(%rsp), %eax
orl $0x80, %eax
movl %eax, 0xc(%rsp)
jmp 0x3f0a
movq 0x10(%rsp), %rdi
leaq 0x2766(%rip), %rsi      # 0x65db
callq 0x4ed0
testb $0x1, %al
jne 0x3e80
jmp 0x3e8f
movl 0xc(%rsp), %eax
orl $0x100, %eax            # imm = 0x100
movl %eax, 0xc(%rsp)
jmp 0x3f08
movq 0x10(%rsp), %rdi
leaq 0x22e3(%rip), %rsi      # 0x617e
callq 0x4ed0
testb $0x1, %al
jne 0x3ea6
jmp 0x3eb5
movl 0xc(%rsp), %eax
orl $0x200, %eax            # imm = 0x200
movl %eax, 0xc(%rsp)
jmp 0x3f06
jmp 0x3eb7
movq 0x10(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x3ecd
jmp 0x3f04
movq 0x10(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rsp)
movsbl (%rax), %edi
callq 0x40e0
movl %eax, 0x8(%rsp)
cmpl $0x0, 0x8(%rsp)
jne 0x3ef6
callq 0x3f70
movl 0x8(%rsp), %eax
orl 0xc(%rsp), %eax
movl %eax, 0xc(%rsp)
jmp 0x3eb7
jmp 0x3f06
jmp 0x3f08
jmp 0x3f0a
jmp 0x3f0c
jmp 0x3f0e
jmp 0x3f10
jmp 0x3f12
jmp 0x3f14
jmp 0x3f16
jmp 0x3f18
movl 0xc(%rsp), %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)