LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_GetNextRawBlock
static playbackstatus MV_GetNextRawBlock
   (
   VoiceNode *voice
   )

   {
   if ( voice->BlockLength <= 0 )
      {
      if ( voice->LoopStart == NULL )
         {
         voice->Playing = FALSE;
         return( NoMoreData );
         }

      voice->BlockLength = voice->LoopSize;
      voice->NextBlock   = voice->LoopStart;
      voice->length = 0;
      voice->position = 0;
      }

   voice->sound        = voice->NextBlock;
   voice->position    -= voice->length;
   voice->length       = min( voice->BlockLength, 0x8000 );
   voice->NextBlock   += voice->length * (voice->channels * voice->bits / 8);
   voice->BlockLength -= voice->length;
   voice->length     <<= 16;

   return( KeepPlaying );
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x48(%rax)
ja 0x6438
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x6404
movq -0x10(%rbp), %rax
movl $0x0, 0x70(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x64eb
movq -0x10(%rbp), %rax
movl 0x44(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x60(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x6c(%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %edx
movq -0x10(%rbp), %rax
movl 0x6c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x6c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8000, 0x48(%rax)     # imm = 0x8000
jae 0x6474
movq -0x10(%rbp), %rax
movl 0x48(%rax), %eax
movl %eax, -0x14(%rbp)
jmp 0x647e
movl $0x8000, %eax           # imm = 0x8000
movl %eax, -0x14(%rbp)
jmp 0x647e
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movsbl 0x15(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl 0x14(%rcx), %ecx
imull %ecx, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl -0x18(%rbp), %edx
imull %eax, %edx
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movl %edx, %edx
addq %rdx, %rcx
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %edx
movq -0x10(%rbp), %rax
movl 0x48(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x48(%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shll $0x10, %ecx
movl %ecx, 0x60(%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_PlayWAV
int MV_PlayWAV
   (
   char *ptr,
   unsigned int length,
   int   pitchoffset,
   int   vol,
   int   left,
   int   right,
   int   priority,
   unsigned int callbackval
   )

   {
   int status;

   status = MV_PlayLoopedWAV( ptr, length, -1, -1, pitchoffset, vol, left, right,
      priority, callbackval );

   return( status );
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x48, %rsp
movl 0x18(%rbp), %eax
movl 0x10(%rbp), %eax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movl %r9d, -0x24(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %r8d
movl -0x1c(%rbp), %r9d
movl -0x20(%rbp), %ebx
movl -0x24(%rbp), %r11d
movl 0x10(%rbp), %r10d
movl 0x18(%rbp), %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, %edx
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
callq 0x6560
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
addq $0x48, %rsp
popq %rbx
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_PlayWAV3D
int MV_PlayWAV3D
   (
   char *ptr,
   unsigned int length,
   int  pitchoffset,
   int  angle,
   int  distance,
   int  priority,
   unsigned int callbackval
   )

   {
   int left;
   int right;
   int mid;
   int volume;
   int status;

   if ( !MV_Installed )
      {
      MV_SetErrorCode( MV_NotInstalled );
      return( MV_Error );
      }

   if ( distance < 0 )
      {
      distance  = -distance;
      angle    += MV_NumPanPositions / 2;
      }

   volume = MIX_VOLUME( distance );

   // Ensure angle is within 0 - 31
   angle &= MV_MaxPanPosition;

   left  = MV_PanTable[ angle ][ volume ].left;
   right = MV_PanTable[ angle ][ volume ].right;
   mid   = max( 0, 255 - distance );

   status = MV_PlayWAV( ptr, length, pitchoffset, mid, left, right, priority,
      callbackval );

   return( status );
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl 0x10(%rbp), %eax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movl %r9d, -0x24(%rbp)
cmpl $0x0, 0xf2b9(%rip)      # 0x15c90
jne 0x69ef
movl $0x2, 0xf2b1(%rip)      # 0x15c94
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6b03
cmpl $0x0, -0x20(%rbp)
jge 0x6a06
xorl %eax, %eax
subl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x1c(%rbp), %eax
addl $0x10, %eax
movl %eax, -0x1c(%rbp)
cmpl $0xff, -0x20(%rbp)
jge 0x6a17
movl -0x20(%rbp), %eax
movl %eax, -0x3c(%rbp)
jmp 0x6a21
movl $0xff, %eax
movl %eax, -0x3c(%rbp)
jmp 0x6a21
movl -0x3c(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x6a31
xorl %eax, %eax
movl %eax, -0x40(%rbp)
jmp 0x6a52
cmpl $0xff, -0x20(%rbp)
jge 0x6a42
movl -0x20(%rbp), %eax
movl %eax, -0x44(%rbp)
jmp 0x6a4c
movl $0xff, %eax
movl %eax, -0x44(%rbp)
jmp 0x6a4c
movl -0x44(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movl 0xecbd(%rip), %ecx      # 0x15718
addl $0x1, %ecx
imull %ecx, %eax
sarl $0x8, %eax
movl %eax, -0x34(%rbp)
movl -0x1c(%rbp), %eax
andl $0x1f, %eax
movl %eax, -0x1c(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0x173a5(%rip), %rax     # 0x1de20
shlq $0x7, %rcx
addq %rcx, %rax
movslq -0x34(%rbp), %rcx
movzbl (%rax,%rcx,2), %eax
movl %eax, -0x28(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0x17388(%rip), %rax     # 0x1de20
shlq $0x7, %rcx
addq %rcx, %rax
movslq -0x34(%rbp), %rcx
movzbl 0x1(%rax,%rcx,2), %eax
movl %eax, -0x2c(%rbp)
movl $0xff, %ecx
subl -0x20(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x6ac0
xorl %eax, %eax
movl %eax, -0x48(%rbp)
jmp 0x6acb
movl $0xff, %eax
subl -0x20(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x28(%rbp), %r8d
movl -0x2c(%rbp), %r9d
movl -0x24(%rbp), %r10d
movl 0x10(%rbp), %eax
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x64f0
movl %eax, -0x38(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_PlayRaw3D
int MV_PlayRaw3D
   (
   char *ptr,
   unsigned int length,
   unsigned rate,
   int  pitchoffset,
   int  angle,
   int  distance,
   int  priority,
   unsigned int callbackval
   )

   {
   int left;
   int right;
   int mid;
   int volume;
   int status;

   if ( !MV_Installed )
      {
      MV_SetErrorCode( MV_NotInstalled );
      return( MV_Error );
      }

   if ( distance < 0 )
      {
      distance  = -distance;
      angle    += MV_NumPanPositions / 2;
      }

   volume = MIX_VOLUME( distance );

   // Ensure angle is within 0 - 31
   angle &= MV_MaxPanPosition;

   left  = MV_PanTable[ angle ][ volume ].left;
   right = MV_PanTable[ angle ][ volume ].right;
   mid   = max( 0, 255 - distance );

   status = MV_PlayRaw( ptr, length, rate, pitchoffset, mid, left, right,
      priority, callbackval );

   return( status );
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl 0x18(%rbp), %eax
movl 0x10(%rbp), %eax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movl %r9d, -0x24(%rbp)
cmpl $0x0, 0xf156(%rip)      # 0x15c90
jne 0x6b52
movl $0x2, 0xf14e(%rip)      # 0x15c94
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6c6f
cmpl $0x0, -0x24(%rbp)
jge 0x6b69
xorl %eax, %eax
subl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
addl $0x10, %eax
movl %eax, -0x20(%rbp)
cmpl $0xff, -0x24(%rbp)
jge 0x6b7a
movl -0x24(%rbp), %eax
movl %eax, -0x3c(%rbp)
jmp 0x6b84
movl $0xff, %eax
movl %eax, -0x3c(%rbp)
jmp 0x6b84
movl -0x3c(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x6b94
xorl %eax, %eax
movl %eax, -0x40(%rbp)
jmp 0x6bb5
cmpl $0xff, -0x24(%rbp)
jge 0x6ba5
movl -0x24(%rbp), %eax
movl %eax, -0x44(%rbp)
jmp 0x6baf
movl $0xff, %eax
movl %eax, -0x44(%rbp)
jmp 0x6baf
movl -0x44(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movl 0xeb5a(%rip), %ecx      # 0x15718
addl $0x1, %ecx
imull %ecx, %eax
sarl $0x8, %eax
movl %eax, -0x34(%rbp)
movl -0x20(%rbp), %eax
andl $0x1f, %eax
movl %eax, -0x20(%rbp)
movslq -0x20(%rbp), %rcx
leaq 0x17242(%rip), %rax     # 0x1de20
shlq $0x7, %rcx
addq %rcx, %rax
movslq -0x34(%rbp), %rcx
movzbl (%rax,%rcx,2), %eax
movl %eax, -0x28(%rbp)
movslq -0x20(%rbp), %rcx
leaq 0x17225(%rip), %rax     # 0x1de20
shlq $0x7, %rcx
addq %rcx, %rax
movslq -0x34(%rbp), %rcx
movzbl 0x1(%rax,%rcx,2), %eax
movl %eax, -0x2c(%rbp)
movl $0xff, %ecx
subl -0x24(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x6c23
xorl %eax, %eax
movl %eax, -0x48(%rbp)
jmp 0x6c2e
movl $0xff, %eax
subl -0x24(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x1c(%rbp), %ecx
movl -0x30(%rbp), %r8d
movl -0x28(%rbp), %r9d
movl -0x2c(%rbp), %r11d
movl 0x10(%rbp), %r10d
movl 0x18(%rbp), %eax
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movl %eax, 0x10(%rsp)
callq 0x61c0
movl %eax, -0x38(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_GetNextWAVBlock
static playbackstatus MV_GetNextWAVBlock
   (
   VoiceNode *voice
   )

   {
   if ( voice->BlockLength <= 0 )
      {
      if ( voice->LoopStart == NULL )
         {
         voice->Playing = FALSE;
         return( NoMoreData );
         }

      voice->BlockLength = voice->LoopSize;
      voice->NextBlock   = voice->LoopStart;
      voice->length      = 0;
      voice->position    = 0;
      }

   voice->sound        = voice->NextBlock;
   voice->position    -= voice->length;
   voice->length       = min( voice->BlockLength, 0x8000 );
   voice->NextBlock   += voice->length * (voice->channels * voice->bits / 8);
   voice->BlockLength -= voice->length;
   voice->length     <<= 16;

   return( KeepPlaying );
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x48(%rax)
ja 0x6ce8
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x6cb4
movq -0x10(%rbp), %rax
movl $0x0, 0x70(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x6d9b
movq -0x10(%rbp), %rax
movl 0x44(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x60(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x6c(%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %edx
movq -0x10(%rbp), %rax
movl 0x6c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x6c(%rax)
movq -0x10(%rbp), %rax
cmpl $0x8000, 0x48(%rax)     # imm = 0x8000
jae 0x6d24
movq -0x10(%rbp), %rax
movl 0x48(%rax), %eax
movl %eax, -0x14(%rbp)
jmp 0x6d2e
movl $0x8000, %eax           # imm = 0x8000
movl %eax, -0x14(%rbp)
jmp 0x6d2e
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movsbl 0x15(%rax), %eax
movq -0x10(%rbp), %rcx
movsbl 0x14(%rcx), %ecx
imull %ecx, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl -0x18(%rbp), %edx
imull %eax, %edx
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movl %edx, %edx
addq %rdx, %rcx
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %edx
movq -0x10(%rbp), %rax
movl 0x48(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x48(%rax)
movq -0x10(%rbp), %rax
movl 0x60(%rax), %ecx
shll $0x10, %ecx
movl %ecx, 0x60(%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_PlayVOC3D
int MV_PlayVOC3D
   (
   char *ptr,
   unsigned int ptrlength,
   int  pitchoffset,
   int  angle,
   int  distance,
   int  priority,
   unsigned int callbackval
   )

   {
   int left;
   int right;
   int mid;
   int volume;
   int status;

   if ( !MV_Installed )
      {
      MV_SetErrorCode( MV_NotInstalled );
      return( MV_Error );
      }

   if ( distance < 0 )
      {
      distance  = -distance;
      angle    += MV_NumPanPositions / 2;
      }

   volume = MIX_VOLUME( distance );

   // Ensure angle is within 0 - 31
   angle &= MV_MaxPanPosition;

   left  = MV_PanTable[ angle ][ volume ].left;
   right = MV_PanTable[ angle ][ volume ].right;
   mid   = max( 0, 255 - distance );

   status = MV_PlayVOC( ptr, ptrlength, pitchoffset, mid, left, right, priority,
      callbackval );

   return( status );
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl 0x10(%rbp), %eax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movl %r9d, -0x24(%rbp)
cmpl $0x0, 0xeec9(%rip)      # 0x15c90
jne 0x6ddf
movl $0x2, 0xeec1(%rip)      # 0x15c94
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6ef3
cmpl $0x0, -0x20(%rbp)
jge 0x6df6
xorl %eax, %eax
subl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x1c(%rbp), %eax
addl $0x10, %eax
movl %eax, -0x1c(%rbp)
cmpl $0xff, -0x20(%rbp)
jge 0x6e07
movl -0x20(%rbp), %eax
movl %eax, -0x3c(%rbp)
jmp 0x6e11
movl $0xff, %eax
movl %eax, -0x3c(%rbp)
jmp 0x6e11
movl -0x3c(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x6e21
xorl %eax, %eax
movl %eax, -0x40(%rbp)
jmp 0x6e42
cmpl $0xff, -0x20(%rbp)
jge 0x6e32
movl -0x20(%rbp), %eax
movl %eax, -0x44(%rbp)
jmp 0x6e3c
movl $0xff, %eax
movl %eax, -0x44(%rbp)
jmp 0x6e3c
movl -0x44(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
movl 0xe8cd(%rip), %ecx      # 0x15718
addl $0x1, %ecx
imull %ecx, %eax
sarl $0x8, %eax
movl %eax, -0x34(%rbp)
movl -0x1c(%rbp), %eax
andl $0x1f, %eax
movl %eax, -0x1c(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0x16fb5(%rip), %rax     # 0x1de20
shlq $0x7, %rcx
addq %rcx, %rax
movslq -0x34(%rbp), %rcx
movzbl (%rax,%rcx,2), %eax
movl %eax, -0x28(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0x16f98(%rip), %rax     # 0x1de20
shlq $0x7, %rcx
addq %rcx, %rax
movslq -0x34(%rbp), %rcx
movzbl 0x1(%rax,%rcx,2), %eax
movl %eax, -0x2c(%rbp)
movl $0xff, %ecx
subl -0x20(%rbp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x6eb0
xorl %eax, %eax
movl %eax, -0x48(%rbp)
jmp 0x6ebb
movl $0xff, %eax
subl -0x20(%rbp), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0x30(%rbp), %ecx
movl -0x28(%rbp), %r8d
movl -0x2c(%rbp), %r9d
movl -0x24(%rbp), %r10d
movl 0x10(%rbp), %eax
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x6f00
movl %eax, -0x38(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_CreateVolumeTable
void MV_CreateVolumeTable
   (
   int index,
   int volume,
   int MaxVolume
   )

   {
   int val;
   int level;
   int i;

   level = ( volume * MaxVolume ) / MV_MaxTotalVolume;
   if ( MV_Bits == 16 )
      {
      for( i = 0; i < 65536; i += 256 )
         {
         val   = i - 0x8000;
         val  *= level;
         val  /= MV_MaxVolume;
         MV_VolumeTable[ index ][ i / 256 ] = val;
         }
      }
   else
      {
      for( i = 0; i < 256; i++ )
         {
         val   = i - 0x80;
         val  *= level;
         val  /= MV_MaxVolume;
         MV_VolumeTable[ volume ][ i ] = val;
         }
      }
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movl -0x8(%rbp), %eax
imull -0xc(%rbp), %eax
movl $0xff, %ecx
cltd
idivl %ecx
movl %eax, -0x14(%rbp)
cmpl $0x10, 0xde3e(%rip)     # 0x15724
jne 0x7964
movl $0x0, -0x18(%rbp)
cmpl $0x10000, -0x18(%rbp)   # imm = 0x10000
jge 0x7962
movl -0x18(%rbp), %eax
subl $0x8000, %eax           # imm = 0x8000
movl %eax, -0x10(%rbp)
movl -0x14(%rbp), %eax
imull -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
movl 0xde05(%rip), %ecx      # 0x15718
movl -0x10(%rbp), %eax
cltd
idivl %ecx
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %eax
movw %ax, -0x22(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0xe4d2(%rip), %rax      # 0x15e00
shlq $0x9, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movl -0x18(%rbp), %eax
movl $0x100, %ecx            # imm = 0x100
cltd
idivl %ecx
movw -0x22(%rbp), %dx
movl %eax, %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movl -0x18(%rbp), %eax
addl $0x100, %eax            # imm = 0x100
movl %eax, -0x18(%rbp)
jmp 0x78ef
jmp 0x79c5
movl $0x0, -0x18(%rbp)
cmpl $0x100, -0x18(%rbp)     # imm = 0x100
jge 0x79c3
movl -0x18(%rbp), %eax
subl $0x80, %eax
movl %eax, -0x10(%rbp)
movl -0x14(%rbp), %eax
imull -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
movl 0xdd89(%rip), %ecx      # 0x15718
movl -0x10(%rbp), %eax
cltd
idivl %ecx
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %eax
movw %ax, %dx
movslq -0x8(%rbp), %rcx
leaq 0xe457(%rip), %rax      # 0x15e00
shlq $0x9, %rcx
addq %rcx, %rax
movslq -0x18(%rbp), %rcx
movw %dx, (%rax,%rcx,2)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x796b
jmp 0x79c5
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_SetVolume
void MV_SetVolume
   (
   int volume
   )

   {
   volume = max( 0, volume );
   volume = min( volume, MV_MaxTotalVolume );

   MV_TotalVolume = volume;

   // Calculate volume table
   MV_CalcVolume( volume );
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
xorl %eax, %eax
cmpl -0x4(%rbp), %eax
jle 0x79e9
xorl %eax, %eax
movl %eax, -0x8(%rbp)
jmp 0x79ef
movl -0x4(%rbp), %eax
movl %eax, -0x8(%rbp)
movl -0x8(%rbp), %eax
movl %eax, -0x4(%rbp)
cmpl $0xff, -0x4(%rbp)
jge 0x7a06
movl -0x4(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x7a10
movl $0xff, %eax
movl %eax, -0xc(%rbp)
jmp 0x7a10
movl -0xc(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
movl %eax, 0xdd19(%rip)      # 0x15738
movl -0x4(%rbp), %edi
callq 0x7a30
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/multivoc.c
// Function: MV_CalcVolume
static void MV_CalcVolume
   (
   int MaxVolume
   )

   {
   int volume;

   for( volume = 0; volume < 128; volume++ )
      {
      MV_HarshClipTable[ volume ] = 0;
      MV_HarshClipTable[ volume + 384 ] = 255;
      }
   for( volume = 0; volume < 256; volume++ )
      {
      MV_HarshClipTable[ volume + 128 ] = volume;
      }

   // For each volume level, create a translation table with the
   // appropriate volume calculated.
   for( volume = 0; volume <= MV_MaxVolume; volume++ )
      {
      MV_CreateVolumeTable( volume, volume, MaxVolume );
      }
   }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movl $0x0, -0x8(%rbp)
cmpl $0x80, -0x8(%rbp)
jge 0x7a7c
movq 0x174f6(%rip), %rax     # 0x1ef48
movslq -0x8(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq 0x174e7(%rip), %rax     # 0x1ef48
movl -0x8(%rbp), %ecx
addl $0x180, %ecx            # imm = 0x180
movslq %ecx, %rcx
movb $-0x1, (%rax,%rcx)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x7a42
movl $0x0, -0x8(%rbp)
cmpl $0x100, -0x8(%rbp)      # imm = 0x100
jge 0x7ab2
movl -0x8(%rbp), %eax
movb %al, %dl
movq 0x174b0(%rip), %rax     # 0x1ef48
movl -0x8(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x7a83
movl $0x0, -0x8(%rbp)
movl -0x8(%rbp), %eax
cmpl 0xdc56(%rip), %eax      # 0x15718
jg 0x7add
movl -0x8(%rbp), %edi
movl -0x8(%rbp), %esi
movl -0x4(%rbp), %edx
callq 0x78c0
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x7ab9
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_Mix8BitMono
void MV_Mix8BitMono( unsigned int position, unsigned int rate,
                    char *start, unsigned int length )
{
    unsigned char *source = (unsigned char *) start;
    unsigned char *dest = (unsigned char *) MV_MixDestination;
    int sample0;
    
    while (length--) {
        sample0 = source[position >> 16];
        position += rate;
        
        sample0 = MV_LeftVolume[sample0] + *dest;
        sample0 = MV_HarshClipTable[sample0 + 128];
        
        *dest = sample0 & 255;
        
        dest += MV_SampleSize;
    }
    
    MV_MixPosition = position;
    MV_MixDestination = (char *) dest;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x16da8(%rip), %rax     # 0x1ef58
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x824e
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x8(%rbp), %eax
addl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x15c1a(%rip), %rax     # 0x1de08
movq (%rax), %rax
movslq -0x2c(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
movzbl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x2c(%rbp)
leaq 0x16d3c(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x28(%rbp), %rax
movb %cl, (%rax)
leaq 0xd4e3(%rip), %rax      # 0x1571c
movl (%rax), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x81b7
movl -0x4(%rbp), %ecx
leaq 0x16d08(%rip), %rax     # 0x1ef60
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
leaq 0x16cf3(%rip), %rax     # 0x1ef58
movq %rcx, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_Mix8BitStereo
void MV_Mix8BitStereo( unsigned int position, unsigned int rate,
                      char *start, unsigned int length )
{
    unsigned char *source = (unsigned char *) start;
    unsigned char *dest = (unsigned char *) MV_MixDestination;
    int sample0, sample1;
    
    while (length--) {
        sample0 = source[position >> 16];
        sample1 = sample0;
        position += rate;
        
        sample0 = MV_LeftVolume[sample0] + *dest;
        sample1 = MV_RightVolume[sample1] + *(dest + MV_RightChannelOffset);
        sample0 = MV_HarshClipTable[sample0 + 128];
        sample1 = MV_HarshClipTable[sample1 + 128];
        
        *dest = sample0 & 255;
        *(dest + MV_RightChannelOffset) = sample1 & 255;
        
        dest += MV_SampleSize;
    }
    
    MV_MixPosition = position;
    MV_MixDestination = (char *) dest;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x16cc8(%rip), %rax     # 0x1ef58
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x8395
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x30(%rbp)
movl -0x8(%rbp), %eax
addl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x15b34(%rip), %rax     # 0x1de08
movq (%rax), %rax
movslq -0x2c(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
movzbl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x2c(%rbp)
leaq 0x15b0e(%rip), %rax     # 0x1de00
movq (%rax), %rax
movslq -0x30(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
leaq 0x16b38(%rip), %rdx     # 0x1ee40
movslq (%rdx), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movl %eax, -0x30(%rbp)
leaq 0x16c2d(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
leaq 0x16c10(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x30(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x28(%rbp), %rax
movb %cl, (%rax)
movl -0x30(%rbp), %eax
andl $0xff, %eax
movb %al, %dl
movq -0x28(%rbp), %rax
leaq 0x16acd(%rip), %rcx     # 0x1ee40
movslq (%rcx), %rcx
movb %dl, (%rax,%rcx)
leaq 0xd39c(%rip), %rax      # 0x1571c
movl (%rax), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x8297
movl -0x4(%rbp), %ecx
leaq 0x16bc1(%rip), %rax     # 0x1ef60
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
leaq 0x16bac(%rip), %rax     # 0x1ef58
movq %rcx, (%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_Mix16BitMono
void MV_Mix16BitMono( unsigned int position, unsigned int rate,
                     char *start, unsigned int length )
{
    unsigned char *source = (unsigned char *) start;
    short *dest = (short *) MV_MixDestination;
    int sample0;
    
    while (length--) {
        sample0 = source[position >> 16];
        position += rate;
        
        sample0 = MV_LeftVolume[sample0] + *dest;
        if (sample0 < -32768) sample0 = -32768;
        else if (sample0 > 32767) sample0 = 32767;
        
        *dest = (short) sample0;
        
        dest += MV_SampleSize / 2;
    }
    
    MV_MixPosition = position;
    MV_MixDestination = (char *) dest;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x16b78(%rip), %rax     # 0x1ef58
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x848f
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x8(%rbp), %eax
addl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x159ea(%rip), %rax     # 0x1de08
movq (%rax), %rax
movslq -0x2c(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
movswl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x2c(%rbp)
cmpl $0xffff8000, -0x2c(%rbp) # imm = 0xFFFF8000
jge 0x8447
movl $0xffff8000, -0x2c(%rbp) # imm = 0xFFFF8000
jmp 0x8459
cmpl $0x7fff, -0x2c(%rbp)    # imm = 0x7FFF
jle 0x8457
movl $0x7fff, -0x2c(%rbp)    # imm = 0x7FFF
jmp 0x8459
movl -0x2c(%rbp), %eax
movw %ax, %cx
movq -0x28(%rbp), %rax
movw %cx, (%rax)
leaq 0xd2af(%rip), %rax      # 0x1571c
movl (%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
shlq %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x83e7
movl -0x4(%rbp), %ecx
leaq 0x16ac7(%rip), %rax     # 0x1ef60
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
leaq 0x16ab2(%rip), %rax     # 0x1ef58
movq %rcx, (%rax)
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_Mix16BitMono16
void MV_Mix16BitMono16( unsigned int position, unsigned int rate,
                       char *start, unsigned int length )
{
    unsigned short *source = (unsigned short *) start;
    short *dest = (short *) MV_MixDestination;
    int sample0l, sample0h, sample0;
    
    while (length--) {
        sample0 = source[position >> 16];
#ifdef BIGENDIAN
        sample0l = sample0 >> 8;
        sample0h = (sample0 & 255) ^ 128;
#else
        sample0l = sample0 & 255;
        sample0h = (sample0 >> 8) ^ 128;
#endif
        position += rate;
        
        sample0l = MV_LeftVolume[sample0l] >> 8;
        sample0h = MV_LeftVolume[sample0h];
        sample0 = sample0l + sample0h + 128 + *dest;
        if (sample0 < -32768) sample0 = -32768;
        else if (sample0 > 32767) sample0 = 32767;
        
        *dest = (short) sample0;
        
        dest += MV_SampleSize / 2;
    }
    
    MV_MixPosition = position;
    MV_MixDestination = (char *) dest;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x168f8(%rip), %rax     # 0x1ef58
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x874e
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
movl %ecx, %ecx
movzwl (%rax,%rcx,2), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x2c(%rbp)
movl -0x34(%rbp), %eax
sarl $0x8, %eax
xorl $0x80, %eax
movl %eax, -0x30(%rbp)
movl -0x8(%rbp), %eax
addl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x15751(%rip), %rax     # 0x1de08
movq (%rax), %rax
movslq -0x2c(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
sarl $0x8, %eax
movl %eax, -0x2c(%rbp)
leaq 0x15739(%rip), %rax     # 0x1de08
movq (%rax), %rax
movslq -0x30(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
addl -0x30(%rbp), %eax
addl $0x80, %eax
movq -0x28(%rbp), %rcx
movswl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x34(%rbp)
cmpl $0xffff8000, -0x34(%rbp) # imm = 0xFFFF8000
jge 0x8706
movl $0xffff8000, -0x34(%rbp) # imm = 0xFFFF8000
jmp 0x8718
cmpl $0x7fff, -0x34(%rbp)    # imm = 0x7FFF
jle 0x8716
movl $0x7fff, -0x34(%rbp)    # imm = 0x7FFF
jmp 0x8718
movl -0x34(%rbp), %eax
movw %ax, %cx
movq -0x28(%rbp), %rax
movw %cx, (%rax)
leaq 0xcff0(%rip), %rax      # 0x1571c
movl (%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
shlq %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x8667
movl -0x4(%rbp), %ecx
leaq 0x16808(%rip), %rax     # 0x1ef60
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
leaq 0x167f3(%rip), %rax     # 0x1ef58
movq %rcx, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_Mix8BitMono16
void MV_Mix8BitMono16( unsigned int position, unsigned int rate,
                      char *start, unsigned int length )
{
    signed char *source = (signed char *) start + 1;
    unsigned char *dest = (unsigned char *) MV_MixDestination;
    int sample0;
    
    while (length--) {
        sample0 = source[(position >> 16) << 1];
        position += rate;
        
        sample0 = MV_LeftVolume[sample0 + 128] + *dest;
        sample0 = MV_HarshClipTable[sample0 + 128];
        
        *dest = sample0 & 255;
        
        dest += MV_SampleSize;
    }
    
    MV_MixPosition = position;
    MV_MixDestination = (char *) dest;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
leaq 0x167c4(%rip), %rax     # 0x1ef58
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x883c
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
shll %ecx
movl %ecx, %ecx
movsbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x8(%rbp), %eax
addl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x15634(%rip), %rax     # 0x1de08
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
movzbl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x2c(%rbp)
leaq 0x1674e(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x28(%rbp), %rax
movb %cl, (%rax)
leaq 0xcef5(%rip), %rax      # 0x1571c
movl (%rax), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x879b
movl -0x4(%rbp), %ecx
leaq 0x1671a(%rip), %rax     # 0x1ef60
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
leaq 0x16705(%rip), %rax     # 0x1ef58
movq %rcx, (%rax)
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_Mix8BitStereo16
void MV_Mix8BitStereo16( unsigned int position, unsigned int rate,
                        char *start, unsigned int length )
{
    signed char *source = (signed char *) start + 1;
    unsigned char *dest = (unsigned char *) MV_MixDestination;
    int sample0, sample1;
    
    while (length--) {
        sample0 = source[(position >> 16) << 1];
        sample1 = sample0;
        position += rate;
        
        sample0 = MV_LeftVolume[sample0 + 128] + *dest;
        sample1 = MV_RightVolume[sample1 + 128] + *(dest + MV_RightChannelOffset);
        sample0 = MV_HarshClipTable[sample0 + 128];
        sample1 = MV_HarshClipTable[sample1 + 128];
        
        *dest = sample0 & 255;
        *(dest + MV_RightChannelOffset) = sample1 & 255;
        
        dest += MV_SampleSize;
    }
    
    MV_MixPosition = position;
    MV_MixDestination = (char *) dest;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
leaq 0x166d4(%rip), %rax     # 0x1ef58
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x899b
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
shll %ecx
movl %ecx, %ecx
movsbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x30(%rbp)
movl -0x8(%rbp), %eax
addl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x1553e(%rip), %rax     # 0x1de08
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
movzbl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x2c(%rbp)
leaq 0x15510(%rip), %rax     # 0x1de00
movq (%rax), %rax
movl -0x30(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
leaq 0x16532(%rip), %rdx     # 0x1ee40
movslq (%rdx), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movl %eax, -0x30(%rbp)
leaq 0x16627(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
leaq 0x1660a(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x30(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x28(%rbp), %rax
movb %cl, (%rax)
movl -0x30(%rbp), %eax
andl $0xff, %eax
movb %al, %dl
movq -0x28(%rbp), %rax
leaq 0x164c7(%rip), %rcx     # 0x1ee40
movslq (%rcx), %rcx
movb %dl, (%rax,%rcx)
leaq 0xcd96(%rip), %rax      # 0x1571c
movl (%rax), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x888b
movl -0x4(%rbp), %ecx
leaq 0x165bb(%rip), %rax     # 0x1ef60
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
leaq 0x165a6(%rip), %rax     # 0x1ef58
movq %rcx, (%rax)
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_16BitReverb
void MV_16BitReverb( char *src, char *dest, VOLUME16 *volume, unsigned int count )
{
    unsigned short * input = (unsigned short *) src;
    short * output = (short *) dest;
    short sample0l, sample0h, sample0;
    
    do {
        sample0 = *input;
#ifdef BIGENDIAN
        sample0l = sample0 >> 8;
        sample0h = (sample0 & 255) ^ 128;
#else
        sample0l = sample0 & 255;
        sample0h = (sample0 >> 8) ^ 128;
#endif
        
        sample0l = ((short *) volume)[sample0l] >> 8;
        sample0h = ((short *) volume)[sample0h];
        *output = (short) (sample0l + sample0h + 128);
        
        input++;
        output++;
    } while (count-- > 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x36(%rbp)
movswl -0x36(%rbp), %eax
andl $0xff, %eax
movw %ax, -0x32(%rbp)
movswl -0x36(%rbp), %eax
sarl $0x8, %eax
xorl $0x80, %eax
movw %ax, -0x34(%rbp)
movq -0x18(%rbp), %rax
movswq -0x32(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
sarl $0x8, %eax
movw %ax, -0x32(%rbp)
movq -0x18(%rbp), %rax
movswq -0x34(%rbp), %rcx
movw (%rax,%rcx,2), %ax
movw %ax, -0x34(%rbp)
movswl -0x32(%rbp), %eax
movswl -0x34(%rbp), %ecx
addl %ecx, %eax
addl $0x80, %eax
movw %ax, %cx
movq -0x30(%rbp), %rax
movw %cx, (%rax)
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x1c(%rbp)
cmpl $0x0, %eax
ja 0x8bd3
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_8BitReverb
void MV_8BitReverb( signed char *src, signed char *dest, VOLUME16 *volume, unsigned int count )
{
    unsigned char * input = (unsigned char *) src;
    unsigned char * output = (unsigned char *) dest;
    
    do {
        *output = ((short *) volume)[*input] + 128;
        
        input++;
        output++;
    } while (count-- > 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq -0x28(%rbp), %rcx
movzbl (%rcx), %ecx
movswl (%rax,%rcx,2), %eax
addl $0x80, %eax
movb %al, %cl
movq -0x30(%rbp), %rax
movb %cl, (%rax)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x1c(%rbp)
cmpl $0x0, %eax
ja 0x8c93
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_16BitReverbFast
void MV_16BitReverbFast( char *src, char *dest, unsigned int count, int shift )
{
    short * input = (short *) src;
    short * output = (short *) dest;
    
    do {
        *output = *input >> shift;
        
        input++;
        output++;
    } while (count-- > 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movswl (%rax), %eax
movl -0x18(%rbp), %ecx
sarl %cl, %eax
movw %ax, %cx
movq -0x28(%rbp), %rax
movw %cx, (%rax)
movq -0x20(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x20(%rbp)
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
ja 0x8d02
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mix.c
// Function: MV_8BitReverbFast
void MV_8BitReverbFast( signed char *src, signed char *dest, unsigned int count, int shift )
{
    unsigned char sample0, c;
    
    c = 128 - (128 >> shift);
    
    do {
        sample0 = *((unsigned char *) src) >> shift;
        *dest = sample0 + c + ((sample0 ^ 128) >> 7);
        
        src++;
        dest++;
    } while (count-- > 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movl -0x18(%rbp), %ecx
movl $0x80, %eax
sarl %cl, %eax
movl %eax, %ecx
movl $0x80, %eax
subl %ecx, %eax
movb %al, -0x1a(%rbp)
movq -0x8(%rbp), %rax
movzbl (%rax), %eax
movl -0x18(%rbp), %ecx
sarl %cl, %eax
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %eax
movzbl -0x1a(%rbp), %ecx
addl %ecx, %eax
movzbl -0x19(%rbp), %ecx
xorl $0x80, %ecx
sarl $0x7, %ecx
addl %ecx, %eax
movb %al, %cl
movq -0x10(%rbp), %rax
movb %cl, (%rax)
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
ja 0x8d78
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mixst.c
// Function: MV_Mix8BitMono8Stereo
void MV_Mix8BitMono8Stereo( unsigned int position, unsigned int rate,
                    char *start, unsigned int length )
{
    unsigned char *source = (unsigned char *) start;
    unsigned char *dest = (unsigned char *) MV_MixDestination;
    int sample0, sample1;
    
    while (length--) {
        sample0 = source[(position >> 16) << 1];
        sample1 = source[((position >> 16) << 1) + 1];
        position += rate;
        
        sample0 = (MV_LeftVolume[sample0] + MV_LeftVolume[sample1]) / 2 + *dest;
        sample0 = MV_HarshClipTable[sample0 + 128];
        
        *dest = sample0 & 255;
        
        dest += MV_SampleSize;
    }
    
    MV_MixPosition = position;
    MV_MixDestination = (char *) dest;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x16158(%rip), %rax     # 0x1ef58
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x8ed4
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
shll %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
shll %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl %eax, -0x30(%rbp)
movl -0x8(%rbp), %eax
addl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x14fb0(%rip), %rax     # 0x1de08
movq (%rax), %rax
movslq -0x2c(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
leaq 0x14f9e(%rip), %rcx     # 0x1de08
movq (%rcx), %rcx
movslq -0x30(%rbp), %rdx
movswl (%rcx,%rdx,2), %ecx
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movq -0x28(%rbp), %rcx
movzbl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x2c(%rbp)
leaq 0x160b6(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x28(%rbp), %rax
movb %cl, (%rax)
leaq 0xc85d(%rip), %rax      # 0x1571c
movl (%rax), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x8e07
movl -0x4(%rbp), %ecx
leaq 0x16082(%rip), %rax     # 0x1ef60
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
leaq 0x1606d(%rip), %rax     # 0x1ef58
movq %rcx, (%rax)
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/jonof[P]jfaudiolib/src/mixst.c
// Function: MV_Mix8BitStereo8Stereo
void MV_Mix8BitStereo8Stereo( unsigned int position, unsigned int rate,
                      char *start, unsigned int length )
{
    unsigned char *source = (unsigned char *) start;
    unsigned char *dest = (unsigned char *) MV_MixDestination;
    int sample0, sample1;
    
    while (length--) {
        sample0 = source[(position >> 16) << 1];
        sample1 = source[((position >> 16) << 1) + 1];
        position += rate;
        
        sample0 = MV_LeftVolume[sample0] + *dest;
        sample1 = MV_RightVolume[sample1] + *(dest + MV_RightChannelOffset);
        sample0 = MV_HarshClipTable[sample0 + 128];
        sample1 = MV_HarshClipTable[sample1 + 128];
        
        *dest = sample0 & 255;
        *(dest + MV_RightChannelOffset) = sample1 & 255;
        
        dest += MV_SampleSize;
    }
    
    MV_MixPosition = position;
    MV_MixDestination = (char *) dest;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x16048(%rip), %rax     # 0x1ef58
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x14(%rbp)
cmpl $0x0, %eax
je 0x9029
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
shll %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movq -0x20(%rbp), %rax
movl -0x4(%rbp), %ecx
shrl $0x10, %ecx
shll %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movzbl (%rax,%rcx), %eax
movl %eax, -0x30(%rbp)
movl -0x8(%rbp), %eax
addl -0x4(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq 0x14ea0(%rip), %rax     # 0x1de08
movq (%rax), %rax
movslq -0x2c(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
movzbl (%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x2c(%rbp)
leaq 0x14e7a(%rip), %rax     # 0x1de00
movq (%rax), %rax
movslq -0x30(%rbp), %rcx
movswl (%rax,%rcx,2), %eax
movq -0x28(%rbp), %rcx
leaq 0x15ea4(%rip), %rdx     # 0x1ee40
movslq (%rdx), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movl %eax, -0x30(%rbp)
leaq 0x15f99(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
leaq 0x15f7c(%rip), %rax     # 0x1ef48
movq (%rax), %rax
movl -0x30(%rbp), %ecx
addl $0x80, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x28(%rbp), %rax
movb %cl, (%rax)
movl -0x30(%rbp), %eax
andl $0xff, %eax
movb %al, %dl
movq -0x28(%rbp), %rax
leaq 0x15e39(%rip), %rcx     # 0x1ee40
movslq (%rcx), %rcx
movb %dl, (%rax,%rcx)
leaq 0xc708(%rip), %rax      # 0x1571c
movl (%rax), %ecx
movq -0x28(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
jmp 0x8f17
movl -0x4(%rbp), %ecx
leaq 0x15f2d(%rip), %rax     # 0x1ef60
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
leaq 0x15f18(%rip), %rax     # 0x1ef58
movq %rcx, (%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)