#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  static const int Q14 = 99;
  int P;
  void Callsignal(void) {
    Printstring(_imp_str_literal("Signal called"));
    Newline();
  }
  void Signal(void) {
    asm("STMDB   Sp!, <R1, R2, R3, Fp, Sb, Link>");
    Callsignal();
  }
  void Primdiv(void) {
    __label__ L0;
    __label__ L1;
    __label__ L2;
    asm("CMPS     R2, #0");
    asm("BNE      L0");
    asm("MOV   R1, #14");
    asm("MOV   R2, #2");
    asm("MOV   R3, #0");
    asm("STMDB   Sp!, <R1, R2, R3, Fp, Sb, Link>");
    Callsignal();
  L0:
    asm("MOV      R4, #1                {result sign}");
    asm("RSBLT    R2, R2, #0            {R2 = |R2|}");
    asm("RSBLT    R4, R4, #0            {invert result sign}");
    asm("ADDS     R5, R1, #0            {preserve Dividend & test sign}");
    asm("RSBLT    R1, R1, #0            {R1 = |R1|}");
    asm("RSBLT    R4, R4, #0            {invert result sign}");
    asm("MOV      R3, #1");
  L1:
    asm("CMPS     R2, #16_80000000");
    asm("CMPCCS   R2, R1");
    asm("MOVCC    R2, R2, %LSL #1");
    asm("MOVCC    R3, R3, %LSL #1");
    asm("BCC      L1");
    asm("MOV      R0, #0");
  L2:
    asm("CMPS     R1, R2");
    asm("SUBCS    R1, R1, R2");
    asm("ADDCS    R0, R0, R3");
    asm("MOVS     R3, R3, %LSR #1");
    asm("MOVNE    R2, R2, %LSR #1");
    asm("BNE      L2");
    asm("CMPS     R4, #0");
    asm("RSBLT    R0, R0, #0         {negate quotient}");
    asm("CMPS     R5, #0");
    asm("RSBLT    R1, R1, #0         {negate remainder}");
    asm("MOV      Pc, Link");
  }
  static __int128 Fred;
  int I;
  int J;
  int K;
  int Myebp;
  static const int Ebp = 5;
  __label__ Notok;
  Fred = 100;
  I = Addr(Fred);
Notok:;
  asm("test11   notok, { a comment }#9, I[#12]");
  asm("test13   notok, ~#9, I[12]");
  asm("test14   notok, @#9, I[12]");
  asm("test20   notok, #3    +     #4,      I[#12]");
  asm("MOVCC    R2, R2, %LSL #1");
  exit(0);
  return (1);
}
