// File: /workspace/github_c_makefile_star2_O3/thegenemyers[P]DASCRUBBER/DB.c
// Function: Print_Number
void Print_Number(int64 num, int width, FILE *out)
{ if (width == 0)
    { if (num < 1000ll)
        fprintf(out,"%lld",num);
      else if (num < 1000000ll)
        fprintf(out,"%lld%c%03lld",num/1000ll,COMMA,num%1000ll);
      else if (num < 1000000000ll)
        fprintf(out,"%lld%c%03lld%c%03lld",num/1000000ll,
                                           COMMA,(num%1000000ll)/1000ll,COMMA,num%1000ll);
      else
        fprintf(out,"%lld%c%03lld%c%03lld%c%03lld",num/1000000000ll,
                                                   COMMA,(num%1000000000ll)/1000000ll,
                                                   COMMA,(num%1000000ll)/1000ll,COMMA,num%1000ll);
    }
  else
    { if (num < 1000ll)
        fprintf(out,"%*lld",width,num);
      else if (num < 1000000ll)
        { if (width <= 4)
            fprintf(out,"%lld%c%03lld",num/1000ll,COMMA,num%1000ll);
          else
            fprintf(out,"%*lld%c%03lld",width-4,num/1000ll,COMMA,num%1000ll);
        }
      else if (num < 1000000000ll)
        { if (width <= 8)
            fprintf(out,"%lld%c%03lld%c%03lld",num/1000000ll,COMMA,(num%1000000ll)/1000ll,
                                               COMMA,num%1000ll);
          else
            fprintf(out,"%*lld%c%03lld%c%03lld",width-8,num/1000000ll,COMMA,(num%1000000ll)/1000ll,
                                                COMMA,num%1000ll);
        }
      else
        { if (width <= 12)
            fprintf(out,"%lld%c%03lld%c%03lld%c%03lld",num/1000000000ll,COMMA,
                                                       (num%1000000000ll)/1000000ll,COMMA,
                                                       (num%1000000ll)/1000ll,COMMA,num%1000ll);
          else
            fprintf(out,"%*lld%c%03lld%c%03lld%c%03lld",width-12,num/1000000000ll,COMMA,
                                                        (num%1000000000ll)/1000000ll,COMMA,
                                                        (num%1000000ll)/1000ll,COMMA,num%1000ll);
        }
    }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdx, %r11
movq %rdi, %r10
testl %esi, %esi
je 0x2f85
movl %esi, %r8d
cmpq $0x3e7, %r10            # imm = 0x3E7
jg 0x2fa9
leaq 0x8489(%rip), %rsi      # 0xb3f7
movq %r11, %rdi
movl %r8d, %edx
movq %r10, %rcx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x11a0
cmpq $0x3e7, %r10            # imm = 0x3E7
jg 0x2ffb
leaq 0x82a9(%rip), %rsi      # 0xb23e
movq %r11, %rdi
movq %r10, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x11a0
cmpq $0xf423f, %r10          # imm = 0xF423F
ja 0x303f
cmpl $0x4, %r8d
jle 0x3008
addl $-0x4, %r8d
movl %r10d, %eax
imulq $0x10624dd3, %rax, %rcx # imm = 0x10624DD3
shrq $0x26, %rcx
imull $0x3e8, %ecx, %eax      # imm = 0x3E8
subl %eax, %r10d
leaq 0x841f(%rip), %rsi      # 0xb3fd
movq %r11, %rdi
movl %r8d, %edx
movl $0x2c, %r8d
movq %r10, %r9
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x11a0
cmpq $0xf423f, %r10          # imm = 0xF423F
ja 0x30ae
movl %r10d, %eax
imulq $0x10624dd3, %rax, %rdx # imm = 0x10624DD3
shrq $0x26, %rdx
imull $0x3e8, %edx, %eax      # imm = 0x3E8
subl %eax, %r10d
leaq 0x8392(%rip), %rsi      # 0xb3b8
movq %r11, %rdi
movl $0x2c, %ecx
movq %r10, %r8
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x11a0
cmpq $0x3b9ac9ff, %r10       # imm = 0x3B9AC9FF
ja 0x311a
cmpl $0x8, %r8d
jle 0x30b7
addl $-0x8, %r8d
movl %r10d, %eax
imulq $0x431bde83, %rax, %rcx # imm = 0x431BDE83
shrq $0x32, %rcx
imull $0xf4240, %ecx, %edx    # imm = 0xF4240
movl %r10d, %esi
subl %edx, %esi
imulq $0x418938, %rsi, %r9    # imm = 0x418938
shrq $0x20, %r9
imulq $0x10624dd3, %rax, %rax # imm = 0x10624DD3
shrq $0x26, %rax
imull $0x3e8, %eax, %eax      # imm = 0x3E8
subl %eax, %r10d
leaq 0x8376(%rip), %rsi      # 0xb40b
movq %r11, %rdi
movl %r8d, %edx
movl $0x2c, %r8d
xorl %eax, %eax
pushq %r10
pushq $0x2c
callq 0x11a0
jmp 0x3111
cmpq $0x3b9ac9ff, %r10       # imm = 0x3B9AC9FF
ja 0x3124
movl %r10d, %eax
imulq $0x431bde83, %rax, %rdx # imm = 0x431BDE83
shrq $0x32, %rdx
imull $0xf4240, %edx, %ecx    # imm = 0xF4240
movl %r10d, %esi
subl %ecx, %esi
imulq $0x418938, %rsi, %r8    # imm = 0x418938
shrq $0x20, %r8
imulq $0x10624dd3, %rax, %rax # imm = 0x10624DD3
shrq $0x26, %rax
imull $0x3e8, %eax, %eax      # imm = 0x3E8
subl %eax, %r10d
subq $0x8, %rsp
leaq 0x82cb(%rip), %rsi      # 0xb3c5
movq %r11, %rdi
movl $0x2c, %ecx
movl $0x2c, %r9d
xorl %eax, %eax
pushq %r10
callq 0x11a0
addq $0x18, %rsp
jmp 0x3282
cmpl $0xc, %r8d
jg 0x31d2
movq %r10, %rax
shrq $0x9, %rax
movabsq $0x44b82fa09b5a53, %rcx # imm = 0x44B82FA09B5A53
mulq %rcx
movq %rdx, %rcx
shrq $0xb, %rcx
imulq $0x3b9aca00, %rcx, %rax # imm = 0x3B9ACA00
movq %r10, %rdx
subq %rax, %rdx
imulq $0x431bde83, %rdx, %r8  # imm = 0x431BDE83
shrq $0x32, %r8
movabsq $0x431bde82d7b634db, %rdx # imm = 0x431BDE82D7B634DB
movq %r10, %rax
mulq %rdx
shrq $0x12, %rdx
imulq $0xf4240, %rdx, %rax    # imm = 0xF4240
movq %r10, %rdx
subq %rax, %rdx
imulq $0x418938, %rdx, %rbx   # imm = 0x418938
shrq $0x20, %rbx
movq %r10, %rax
shrq $0x3, %rax
movabsq $0x20c49ba5e353f7cf, %rdx # imm = 0x20C49BA5E353F7CF
mulq %rdx
shrq $0x4, %rdx
imulq $0x3e8, %rdx, %rax      # imm = 0x3E8
subq %rax, %r10
subq $0x8, %rsp
leaq 0x822a(%rip), %rsi      # 0xb3da
movq %r11, %rdi
movq %rcx, %rdx
movl $0x2c, %ecx
movl $0x2c, %r9d
xorl %eax, %eax
pushq %r10
pushq $0x2c
pushq %rbx
callq 0x11a0
jmp 0x327e
addl $-0xc, %r8d
movq %r10, %rax
shrq $0x9, %rax
movabsq $0x44b82fa09b5a53, %rcx # imm = 0x44B82FA09B5A53
mulq %rcx
movq %rdx, %rcx
shrq $0xb, %rcx
imulq $0x3b9aca00, %rcx, %rax # imm = 0x3B9ACA00
movq %r10, %rdx
subq %rax, %rdx
imulq $0x431bde83, %rdx, %r9  # imm = 0x431BDE83
shrq $0x32, %r9
movabsq $0x431bde82d7b634db, %rdx # imm = 0x431BDE82D7B634DB
movq %r10, %rax
mulq %rdx
shrq $0x12, %rdx
imulq $0xf4240, %rdx, %rax    # imm = 0xF4240
movq %r10, %rdx
subq %rax, %rdx
imulq $0x418938, %rdx, %rbx   # imm = 0x418938
shrq $0x20, %rbx
movq %r10, %rax
shrq $0x3, %rax
movabsq $0x20c49ba5e353f7cf, %rdx # imm = 0x20C49BA5E353F7CF
mulq %rdx
shrq $0x4, %rdx
imulq $0x3e8, %rdx, %rax      # imm = 0x3E8
subq %rax, %r10
movl $0x2c, %r14d
leaq 0x81bd(%rip), %rsi      # 0xb421
movq %r11, %rdi
movl %r8d, %edx
movl $0x2c, %r8d
xorl %eax, %eax
pushq %r10
pushq %r14
pushq %rbx
pushq %r14
callq 0x11a0
addq $0x28, %rsp
popq %rbx
popq %r14
retq