Starport BBS
VIEWER: postproc.wdisasm MODE: TEXT (ASCII)
                .file   "postproc"
.text
                .align 16
                .globl  _pp16Mono 
                .globl  _pp8Mono 
                .globl  _pp16Stereo 
                .globl  _pp8Stereo 
_pp16Mono:      enter   $0x00,$0x0000
                pushl   %esi
                pushl   %edi
                pushl   %ebx
                movl    +0xc(%ebp),%edi
                addl    +0x10(%ebp),%edi
                movl    +0x14(%ebp),%esi
                movl    L24,%ebx
                movl    +0x8(%ebp),%ecx
                testl   %ecx,%ecx
                je      L4
L1:             movl    (%esi),%eax
                addl    $0x00000004,%esi
                cmpl    $0x00007fff,%eax
                jg      L2
                cmpl    $0xffff8000,%eax
                jl      L3
                movw    %ax,(%edi)
                addl    $0x00000002,%edi
                decl    %ecx
                jne     L1
                jmp     L4
L2:             movw    $0x7fff,(%edi)
                movl    $0x00007fff,%ebx
                addl    $0x00000002,%edi
                decl    %ecx
                jne     L1
                jmp     L4
L3:             movw    $0x8000,(%edi)
                movl    $0xffff8000,%ebx
                addl    $0x00000002,%edi
                decl    %ecx
                jne     L1
L4:             movl    %ebx,L24
                subl    +0xc(%ebp),%edi
                movl    %edi,%eax
                popl    %ebx
                popl    %edi
                popl    %esi
                leave   
                ret     
L5:             .long   L6
                .long   L7
                .long   L8
                .long   L9
                .long   L10
                .long   L11
                .long   L12
                .long   L13
                .long   L14
                .long   L15
                .long   L16
                .long   L17
                .long   L18
                .long   L19
                .long   L20
                .long   L21
                .long   L22
_pp8Mono:       enter   $0x00,$0x0000
                pushl   %esi
                pushl   %edi
                pushl   %ebx
                movl    +0x14(%ebp),%esi
                movl    +0xc(%ebp),%edi
                addl    +0x10(%ebp),%edi
                movl    +0x8(%ebp),%ecx
                testl   %ecx,%ecx
                je      L23
                shrl    $1,%ecx
                movl    %ecx,%eax
                andl    $0x0000000f,%eax
                shll    $1,%eax
                negl    %eax
                addl    $0x00000020,%eax
                subl    %eax,%edi
                shll    $1,%eax
                movl    L5(%eax),%ebx
                shll    $1,%eax
                subl    %eax,%esi
                shrl    $0x04,%ecx
                incl    %ecx
                movl    +0x18(%ebp),%edx
                jmp     %ebx
L6:             movl    (%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x4(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,(%edi)
L7:             movl    +0x8(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0xc(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x2(%edi)
L8:             movl    +0x10(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x14(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x4(%edi)
L9:             movl    +0x18(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x1c(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x6(%edi)
L10:            movl    +0x20(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x24(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x8(%edi)
L11:            movl    +0x28(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x2c(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0xa(%edi)
L12:            movl    +0x30(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x34(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0xc(%edi)
L13:            movl    +0x38(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x3c(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0xe(%edi)
L14:            movl    +0x40(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x44(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x10(%edi)
L15:            movl    +0x48(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x4c(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x12(%edi)
L16:            movl    +0x50(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x54(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x14(%edi)
L17:            movl    +0x58(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x5c(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x16(%edi)
L18:            movl    +0x60(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x64(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x18(%edi)
L19:            movl    +0x68(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x6c(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x1a(%edi)
L20:            movl    +0x70(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x74(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x1c(%edi)
L21:            movl    +0x78(%esi),%ebx
                movb    +0x800(%edx,%ebx),%al
                movl    +0x7c(%esi),%ebx
                movb    +0x800(%edx,%ebx),%ah
                movw    %ax,+0x1e(%edi)
L22:            addl    $0x00000080,%esi
                addl    $0x00000020,%edi
                decl    %ecx
                jne     L6
L23:            subl    +0xc(%ebp),%edi
                movl    %edi,%eax
                popl    %ebx
                popl    %edi
                popl    %esi
                leave   
                ret     
_pp16Stereo:    enter   $0x00,$0x0000
                pushl   %esi
                pushl   %edi
                pushl   %ebx
                movl    +0x8(%ebp),%eax
                shll    $1,%eax
                pushl   +0x18(%ebp)
                pushl   +0x14(%ebp)
                pushl   +0x10(%ebp)
                pushl   +0xc(%ebp)
                pushl   %eax
                call    _pp16Mono
                addl    $0x00000014,%esp
                popl    %ebx
                popl    %edi
                popl    %esi
                leave   
                ret     
_pp8Stereo:     enter   $0x00,$0x0000
                pushl   %esi
                pushl   %edi
                pushl   %ebx
                movl    +0x8(%ebp),%eax
                shll    $1,%eax
                pushl   +0x18(%ebp)
                pushl   +0x14(%ebp)
                pushl   +0x10(%ebp)
                pushl   +0xc(%ebp)
                pushl   %eax
                call    _pp8Mono
                addl    $0x00000014,%esp
                popl    %ebx
                popl    %edi
                popl    %esi
                leave   
                ret     

.data
                .align 16
L24:            .byte   0x00,0x00,0x00,0x00

[ RETURN TO DIRECTORY ]