// File: /workspace/github_c_makefile_star2_O1/randyrossi[P]fisher-modem/fifi/src/fifi.C
// Function: main
global int main(int argc, char** argv) {
  // set_new_handler(newhandler);
  unless(argc == 3) {
    usage();
    return 2;
  }
  tempfile = tmpfile();
  if (tempfile == NULL)
    giveup("can't create temp file");
  sourcefn = argv[1];
  infile = openfile(sourcefn, "r");
  outfile = openfile(argv[2], "w");
  pass1();
  rewind(tempfile);
  pass2();
  fclose(tempfile);
  fclose(infile);
  fclose(outfile);
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
cmpl $0x3, %edi
jne 0x1789
movq %rsi, %rbx
callq 0x1130
testq %rax, %rax
je 0x17b9
movq %rax, %r13
movq 0x8(%rbx), %rdi
leaq 0xe77(%rip), %rsi       # 0x214c
movq %rdi, 0x10(%rsp)
callq 0x1100
testq %rax, %rax
je 0x17ad
movq %rax, %r14
movq 0x10(%rbx), %rdi
leaq 0xd25(%rip), %rsi       # 0x201b
callq 0x1100
testq %rax, %rax
je 0x17ad
movq %rax, %r15
leaq 0xd45(%rip), %rsi       # 0x2053
leaq 0x70(%rsp), %rdi
callq 0x181a
movl $0x0, 0x2dbe(%rip)      # 0x40e0
movq %r14, %rdi
callq 0x1837
movl %eax, %ebx
movl $0x20, %edi
callq 0x1030
xorl %r12d, %r12d
testb %bl, %bl
movq %r13, 0x20(%rsp)
movq %r14, 0x18(%rsp)
je 0x14b2
movq %rax, %rbp
leaq 0x2d9b(%rip), %rbx      # 0x40f0
xorl %r12d, %r12d
movq %rax, 0x28(%rsp)
movl $0x4, %edx
leaq 0x70(%rsp), %rdi
movq %rbx, %rsi
movq %rbp, %rcx
xorl %r8d, %r8d
callq 0x1120
testl %eax, %eax
jne 0x148a
movl %r12d, (%rsp)
movq %rbx, %r12
movslq 0x8(%rbp), %rbx
movq %rbp, %r14
movslq 0xc(%rbp), %rbp
subq %rbx, %rbp
leaq 0x1(%rbp), %rdi
callq 0x1030
movq %rax, %r13
addq %r12, %rbx
movq %rax, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
callq 0x10a0
xorl %eax, %eax
movq %r13, 0x8(%rsp)
movb %al, (%r13,%rbp)
movslq 0x10(%r14), %rbp
movslq 0x14(%r14), %r12
subq %rbp, %r12
leaq 0x1(%r12), %rdi
callq 0x1030
movq %rax, %rbx
leaq 0x2d16(%rip), %r13      # 0x40f0
addq %r13, %rbp
movq %rax, %rdi
movq %rbp, %rsi
movq %r12, %rdx
callq 0x10a0
xorl %eax, %eax
movb %al, (%rbx,%r12)
movslq 0x18(%r14), %r12
movslq 0x1c(%r14), %r14
subq %r12, %r14
leaq 0x1(%r14), %rdi
callq 0x1030
movq %rax, %rbp
addq %r13, %r12
movq %rax, %rdi
movq %r12, %rsi
movl (%rsp), %r12d
movq %r14, %rdx
callq 0x10a0
xorl %eax, %eax
movb %al, (%rbp,%r14)
cmpl $0x64, %r12d
jge 0x17a1
movslq %r12d, %rax
incl %r12d
leaq 0x2dc5(%rip), %rcx      # 0x4200
movq %rbx, (%rcx,%rax,8)
movq %r13, %rbx
movq %r13, %rdi
leaq 0xc3c(%rip), %rsi       # 0x2088
movq 0x8(%rsp), %r14
movq %r14, %rdx
movl %r12d, %ecx
movq %rbp, %r8
xorl %eax, %eax
callq 0x1050
movl $0x1, %esi
movq %r14, %rdi
callq 0x10d0
movl $0x1, %esi
movq %rbp, %rdi
callq 0x10d0
movq 0x20(%rsp), %r13
movq 0x18(%rsp), %r14
movq 0x28(%rsp), %rbp
movq %rbx, %rdi
movq %r13, %rsi
callq 0x10e0
movl $0xa, %edi
movq %r13, %rsi
callq 0x1160
movq %r14, %rdi
callq 0x1837
testb %al, %al
jne 0x135d
movl %r12d, (%rsp)
leaq 0x70(%rsp), %rdi
callq 0x10c0
movq %r13, %rdi
callq 0x1040
leaq 0xbef(%rip), %rsi       # 0x20be
leaq 0x30(%rsp), %rdi
callq 0x181a
movl $0x0, 0x2bfd(%rip)      # 0x40e0
movq %r13, %rdi
callq 0x1837
movl %eax, %ebp
movl 0x2bed(%rip), %edx      # 0x40e0
leaq 0xc2e(%rip), %rsi       # 0x2128
xorl %ebx, %ebx
movq %r15, %rdi
movq 0x10(%rsp), %rcx
xorl %eax, %eax
callq 0x1150
movl %ebp, %eax
testb %bpl, %bpl
je 0x1568
xorl %ebx, %ebx
leaq 0x2bd5(%rip), %r14      # 0x40f0
leaq 0x30(%rsp), %r12
movl $0x1, %ebp
movq %r14, %rdi
movq %r15, %rsi
callq 0x10e0
movl $0xa, %edi
movq %r15, %rsi
callq 0x1160
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x1120
testl %eax, %eax
movzbl %bl, %ebx
cmovel %ebp, %ebx
movq %r13, %rdi
callq 0x1837
testb %al, %al
je 0x1568
testb $0x1, %bl
je 0x1525
movb %al, 0x8(%rsp)
testb $0x1, %bl
je 0x17c5
leaq 0xbac(%rip), %rsi       # 0x2128
leaq 0xb90(%rip), %rcx       # 0x2113
movq %r15, %rdi
movl $0x1, %edx
xorl %eax, %eax
callq 0x1150
movl $0xa, %edi
movq %r15, %rsi
callq 0x1160
movl (%rsp), %eax
testl %eax, %eax
jle 0x16fc
movl %eax, %eax
movq %rax, (%rsp)
leaq 0xba6(%rip), %rbp       # 0x215d
movabsq $0x100000000, %r14      # imm = 0x100000000
xorl %r13d, %r13d
leaq 0x2c35(%rip), %rax      # 0x4200
movq (%rax,%r13,8), %rbx
movq %rbx, %rdi
callq 0x1080
leaq 0xb67(%rip), %rcx       # 0x2145
cmpl $0x3, %eax
jl 0x160b
movl $0x3, %edx
movq %rbx, %rdi
leaq 0xb45(%rip), %rsi       # 0x2137
callq 0x1090
testl %eax, %eax
leaq 0xb45(%rip), %rcx       # 0x2145
leaq 0xb34(%rip), %rax       # 0x213b
cmoveq %rax, %rcx
leaq 0x70(%rsp), %rdi
leaq 0xb37(%rip), %rsi       # 0x214e
movq %rbp, %rdx
movq %rbx, %r8
xorl %eax, %eax
callq 0x1050
cmpb $0x0, 0x70(%rsp)
je 0x1644
leaq 0x71(%rsp), %rcx
xorl %eax, %eax
addq %r14, %rax
cmpb $0x0, (%rcx)
leaq 0x1(%rcx), %rcx
jne 0x1632
sarq $0x20, %rax
jmp 0x1646
xorl %eax, %eax
leaq (%rsp,%rax), %rdi
addq $0x70, %rdi
leaq 0xb12(%rip), %rsi       # 0x2167
movq %rbp, %r12
movq %rbp, %rdx
xorl %eax, %eax
callq 0x1050
leaq 0x70(%rsp), %rdi
leaq 0xade(%rip), %rsi       # 0x214c
callq 0x1070
testq %rax, %rax
je 0x1795
movq %rax, %rbp
movq %rax, %rdi
callq 0x1060
testl %eax, %eax
js 0x16bf
leal 0x1(%r13), %ebx
cmpl $0x24, %eax
jne 0x16a9
movq %r15, %rdi
leaq 0xaea(%rip), %rsi       # 0x2188
movl %ebx, %edx
xorl %eax, %eax
callq 0x1150
jmp 0x16b3
movl %eax, %edi
movq %r15, %rsi
callq 0x1160
movq %rbp, %rdi
callq 0x1060
testl %eax, %eax
jns 0x168f
movq %rbp, %rdi
callq 0x1140
testl %eax, %eax
jne 0x16dd
incq %r13
cmpq (%rsp), %r13
movq %r12, %rbp
jb 0x15c4
jmp 0x16fc
movq 0x28fc(%rip), %rax      # 0x3fe0
movq (%rax), %rdi
leaq 0xa9d(%rip), %rsi       # 0x218b
leaq 0x70(%rsp), %rdx
xorl %eax, %eax
callq 0x1150
jmp 0x16cb
movl 0x29de(%rip), %edx      # 0x40e0
leaq 0xa1f(%rip), %rsi       # 0x2128
xorl %ebp, %ebp
movq %r15, %rdi
movq 0x10(%rsp), %rcx
xorl %eax, %eax
callq 0x1150
cmpb $0x0, 0x8(%rsp)
movq 0x20(%rsp), %r14
je 0x1751
leaq 0x29c3(%rip), %rbx      # 0x40f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x10e0
movl $0xa, %edi
movq %r15, %rsi
callq 0x1160
movq %r14, %rdi
callq 0x1837
testb %al, %al
jne 0x172d
leaq 0x30(%rsp), %rdi
callq 0x10c0
movq %r14, %rdi
callq 0x10b0
movq 0x18(%rsp), %rdi
callq 0x10b0
movq %r15, %rdi
callq 0x10b0
movl %ebp, %eax
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1190
movl $0x2, %ebp
jmp 0x1775
leaq 0x9d9(%rip), %rdi       # 0x2175
callq 0x17d1
leaq 0x8c9(%rip), %rdi       # 0x2071
callq 0x17d1
leaq 0x885(%rip), %rdi       # 0x2039
callq 0x17d1
leaq 0x844(%rip), %rdi       # 0x2004
callq 0x17d1
leaq 0x913(%rip), %rdi       # 0x20df
callq 0x17d1