Starport BBS
VIEWER: dsmmix.wdisasm MODE: TEXT (ASCII)
                .file   "dsmmix"
.text
                .align 16
                .globl  _dsmMix 
                .globl  _dsmMix8bitMonoMono 
                .globl  _dsmMix8bitMonoStereo 
                .globl  _dsmMix8bitStereoMono 
                .globl  _dsmMix8bitStereoStereo 
                .globl  _dsmMix16bitMonoMono 
                .globl  _dsmMix16bitMonoStereo 
                .globl  _dsmMix16bitStereoMono 
                .globl  _dsmMix16bitStereoStereo 
                .globl  _dsmClearBuffer 
_dsmMix:        enter   $0x00,$0x0000
                pushl   %esi
                pushl   %edi
                pushl   %ebx
                cld     
                movw    %ds,%ax
                movw    %ax,%es
                movl    +0x14(%ebp),%eax
                movl    %eax,L311
                movl    +0x8(%ebp),%eax
                movl    %eax,L321
                movl    _dsmMixBuffer,%eax
                movl    %eax,L312
                movl    +0xc(%ebp),%eax
                movl    %eax,L317
                movl    _dsmChannels,%ebx
                imull   $0x60,+0x8(%ebp),%eax
                addl    %eax,%ebx
                movl    %ebx,L304
                movl    +0x5c(%ebx),%eax
                movl    %eax,L322
                cmpl    $0x00000000,+0x4(%ebx)
                je      L36
                movl    +0x3c(%ebx),%eax
                movl    %eax,L308
                movl    +0x2c(%ebx),%eax
                movl    %eax,L315
                movl    +0x30(%ebx),%eax
                movl    %eax,L316
                movl    +0x48(%ebx),%eax
                movl    %eax,L319
                movl    +0x38(%ebx),%eax
                movl    %eax,%edx
                shll    $0x10,%eax
                shrl    $0x10,%edx
                movl    _dsmMixRate,%ecx
                divl    %ecx
                movl    %eax,L313
                movl    +0x14(%ebp),%eax
                mull    L313
                shrdl   $0x10,%edx,%eax
                addl    $0x00000002,%eax
                movl    %eax,L314
L1:             movl    +0x54(%ebx),%eax
                cmpl    $0x00000000,%eax
                je      L36
                cmpl    $0x00000001,%eax
                je      L36
                cmpl    $0x00000002,%eax
                je      L3
                cmpl    $0x00000002,+0x58(%ebx)
                je      L2
                movl    $0x00000001,L309
                jmp     L4
L2:             movl    +0x20(%ebx),%eax
                movl    %eax,L305
                movl    +0x24(%ebx),%eax
                movl    %eax,L306
                movl    +0x28(%ebx),%eax
                movl    %eax,L307
                jmp     L5
L3:             movl    $0x00000000,L309
L4:             movl    +0x14(%ebx),%eax
                movl    %eax,L305
                movl    +0x18(%ebx),%eax
                movl    %eax,L306
                movl    +0x1c(%ebx),%eax
                movl    %eax,L307
L5:             cmpl    $0x00000000,+0x44(%ebx)
                je      L8
                cmpl    $0x00000005,+0x10(%ebx)
                je      L6
                cmpl    $0x00000004,+0x10(%ebx)
                jne     L8
L6:             movl    _dsmSamples,%esi
                imull   $0x34,+0x40(%ebx),%eax
                addl    %eax,%esi
                cmpl    $0x00000004,+0x10(%esi)
                je      L7
                cmpl    $0x00000005,+0x10(%esi)
                jne     L8
L7:             movl    $0x00000001,L310
                jmp     L9
L8:             movl    $0x00000000,L310
L9:             movl    (%ebx),%edx
                movl    +0x4(%ebx),%eax
                cmpl    $0x00000003,%eax
                je      L10
                cmpl    $0x00000002,%eax
                je      L10
                cmpl    $0x00000004,%eax
                je      L11
                jmp     L12
L10:            shrl    $1,%edx
                jmp     L12
L11:            shrl    $0x02,%edx
L12:            movl    %edx,L303
L13:            cmpl    $0x00000000,L311
                je      L37
                cmpl    $0x00000100,+0x40(%ebx)
                jne     L14
                movl    +0x34(%ebx),%eax
                cmpl    L315,%eax
                jb      L14
                je      L36
                subl    L315,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                subl    L316,%eax
                sbbl    $0x00000000,%edx
                jmp     L18
L14:            movl    L307,%eax
                cmpl    $0x00000000,%eax
                je      L17
                cmpl    $0x00000001,%eax
                je      L16
                cmpl    $0xffffffff,L308
                je      L15
                movl    L306,%eax
                subl    L315,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                subl    L316,%eax
                sbbl    $0x00000000,%edx
                jmp     L18
L15:            movl    L315,%eax
                subl    L305,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                addl    L316,%eax
                adcl    $0x00000000,%edx
                jmp     L18
L16:            movl    L306,%eax
                subl    L315,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                subl    L316,%eax
                sbbl    $0x00000000,%edx
                jmp     L18
L17:            movl    +0xc(%ebx),%eax
                subl    L315,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                subl    L316,%eax
                sbbl    $0x00000000,%edx
L18:            movl    L314,%ecx
                shrl    $0x10,%ecx
                cmpl    %edx,%ecx
                jb      L20
                movl    L314,%ecx
                shll    $0x10,%ecx
                cmpl    %eax,%ecx
                jb      L20
                divl    L313
                testl   %edx,%edx
                je      L19
                incl    %eax
L19:            cmpl    L311,%eax
                jbe     L21
                movl    L311,%eax
                jmp     L21
L20:            movl    L311,%eax
L21:            subl    %eax,L311
                cmpl    $0x00000000,+0x10(%ebp)
                je      L23
                pushl   %ebx
                pushl   %ebp
                movl    L303,%esi
                addl    L315,%esi
                movb    +0x8(%ebp),%bl
                movb    +0x10(%ebp),%bh
                movl    L316,%ebp
                movl    L313,%edx
                movl    %eax,%ecx
                movl    L312,%edi
                cmpl    $0xffffffff,L308
                jne     L22
                negl    %edx
L22:            movl    L317,%eax
                call    %eax
                movl    %ebp,L316
                subl    L303,%esi
                movl    %esi,L315
                movl    %edi,L312
                popl    %ebp
                popl    %ebx
                jmp     L25
L23:            movl    %eax,%ecx
                movl    L313,%edx
                cmpl    $0xffffffff,L308
                jne     L24
                negl    %edx
L24:            imull   %edx
                movl    L315,%esi
                movl    %esi,%edi
                shll    $0x10,%esi
                sarl    $0x10,%edi
                movw    L316,%si
                addl    %eax,%esi
                adcl    %edx,%edi
                movw    %si,L316
                shrl    $0x10,%esi
                shll    $0x10,%edi
                orl     %edi,%esi
                movl    %esi,L315
                cmpl    $0x00000000,+0x8(%ebp)
                jne     L25
                pushl   %ebx
                movl    L312,%edi
                call    L300
                movl    %edi,L312
                popl    %ebx
L25:            cmpl    $0x00000000,L307
                je      L31
                cmpl    $0xffffffff,L308
                je      L29
                movl    L315,%eax
                cmpl    L306,%eax
                jae     L26
                cmpl    $0x00000100,+0x40(%ebx)
                jne     L37
                jmp     L13
L26:            cmpl    $0x00000000,L322
                je      L27
                movl    L322,%eax
                pushl   +0x8(%ebp)
                call    %eax
                addl    $0x00000004,%esp
L27:            cmpl    $0x00000001,L310
                je      L33
                cmpl    $0x00000001,L309
                je      L35
                cmpl    $0x00000001,L307
                je      L28
                movl    $0xffffffff,L308
                movl    L306,%esi
                movl    %esi,%edi
                shll    $0x10,%esi
                shrl    $0x10,%edi
                addl    %esi,%esi
                adcl    %edi,%edi
                movl    %eax,%edx
                shll    $0x10,%eax
                sarl    $0x10,%edx
                movw    L316,%ax
                subl    %eax,%esi
                sbbl    %edx,%edi
                movw    %si,L316
                shrl    $0x10,%esi
                shll    $0x10,%edi
                orl     %edi,%esi
                movl    %esi,L315
                jmp     L32
L28:            movl    L306,%eax
                subl    L305,%eax
                subl    %eax,L315
                jmp     L32
L29:            movl    L315,%eax
                cmpl    L305,%eax
                jge     L37
                cmpl    $0x00000000,L322
                je      L30
                movl    L322,%eax
                pushl   +0x8(%ebp)
                call    %eax
                addl    $0x00000004,%esp
L30:            movl    $0x00000001,L308
                movl    L305,%esi
                movl    %esi,%edi
                shll    $0x10,%esi
                shrl    $0x10,%edi
                addl    %esi,%esi
                adcl    %edi,%edi
                movl    %eax,%edx
                shll    $0x10,%eax
                sarl    $0x10,%edx
                movw    L316,%ax
                subl    %eax,%esi
                sbbl    %edx,%edi
                movw    %si,L316
                shrl    $0x10,%esi
                shll    $0x10,%edi
                orl     %edi,%esi
                movl    %esi,L315
                jmp     L32
L31:            movl    L315,%eax
                cmpl    +0xc(%ebx),%eax
                jb      L37
                cmpl    $0x00000001,L310
                je      L33
                movl    $0x00000001,+0x54(%ebx)
                jmp     L36
L32:            cmpl    $0x00000000,L311
                je      L37
                jmp     L13
L33:            pushl   %ebx
                pushl   +0x8(%ebp)
                call    _dsmChangeSample
                addl    $0x00000004,%esp
                popl    %ebx
                testl   %eax,%eax
                jne     L38
                cmpl    $0x00000005,+0x10(%ebx)
                jne     L34
                movl    +0x14(%ebx),%eax
                movl    %eax,L315
                movl    $0x00000000,L316
                jmp     L1
L34:            movl    $0x00000001,+0x54(%ebx)
                jmp     L36
L35:            movl    $0x00000002,+0x58(%ebx)
                movl    $0x00000000,L309
                movl    +0x20(%ebx),%eax
                movl    %eax,L305
                movl    +0x24(%ebx),%eax
                movl    %eax,L306
                movl    +0x28(%ebx),%eax
                movl    %eax,L307
                jmp     L13
L36:            cmpl    $0x00000000,+0x8(%ebp)
                jne     L37
                pushl   %ebx
                movl    L311,%ecx
                movl    L312,%edi
                call    L300
                popl    %ebx
L37:            movl    L315,%eax
                movl    %eax,+0x2c(%ebx)
                movl    L316,%eax
                movl    %eax,+0x30(%ebx)
                movl    L308,%eax
                movl    %eax,+0x3c(%ebx)
                xorl    %eax,%eax
                jmp     L39
L38:            pushl   %eax
                pushl   $0x000000e7
                pushl   %eax
                call    _errAdd
                addl    $0x00000008,%esp
                popl    %eax
L39:            popl    %ebx
                popl    %edi
                popl    %esi
                leave   
                ret     
L40:            .long   L41
                .long   L42
                .long   L43
                .long   L44
                .long   L45
                .long   L46
                .long   L47
                .long   L48
                .long   L49
                .long   L50
                .long   L51
                .long   L52
                .long   L53
                .long   L54
                .long   L55
                .long   L56
                .long   L57
L41:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
L42:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x4(%edi)
L43:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x8(%edi)
L44:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0xc(%edi)
L45:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x10(%edi)
L46:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x14(%edi)
L47:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x18(%edi)
L48:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x1c(%edi)
L49:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x20(%edi)
L50:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x24(%edi)
L51:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x28(%edi)
L52:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x2c(%edi)
L53:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x30(%edi)
L54:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x34(%edi)
L55:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x38(%edi)
L56:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x3c(%edi)
L57:            addw    $0x0040,%di
                decw    %bp
                jne     L41
                ret     
L58:            .long   L59
                .long   L60
                .long   L61
                .long   L62
                .long   L63
                .long   L64
                .long   L65
                .long   L66
                .long   L67
                .long   L68
                .long   L69
                .long   L70
                .long   L71
                .long   L72
                .long   L73
                .long   L74
                .long   L75
L59:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,(%edi)
L60:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x4(%edi)
L61:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x8(%edi)
L62:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0xc(%edi)
L63:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x10(%edi)
L64:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x14(%edi)
L65:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x18(%edi)
L66:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x1c(%edi)
L67:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x20(%edi)
L68:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x24(%edi)
L69:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x28(%edi)
L70:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x2c(%edi)
L71:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x30(%edi)
L72:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x34(%edi)
L73:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x38(%edi)
L74:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,+0x3c(%edi)
L75:            addw    $0x0040,%di
                decw    %bp
                jne     L59
                ret     
_dsmMix8bitMonoMono:
                testl   %ecx,%ecx
                je      L78
                testb   %bl,%bl
                jne     L76
                movl    $L58,L318
                jmp     L77
L76:            movl    $L40,L318
L77:            call    L79
L78:            ret     
L79:            addb    $0x01,%bh
                shrb    $1,%bh
                movb    %bh,%al
                xorl    %ebx,%ebx
                movb    %al,%bh
                movl    _dsmVolumeTable,%eax
                shrl    $0x02,%eax
                addl    %eax,%ebx
                movl    %ecx,%eax
                andl    $0x0000000f,%eax
                shll    $0x02,%eax
                negl    %eax
                addl    $0x00000040,%eax
                subl    %eax,%edi
                addl    L318,%eax
                movl    (%eax),%eax
                shrl    $0x04,%ecx
                incl    %ecx
                shll    $0x10,%ebp
                movw    %cx,%bp
                movl    %edx,%ecx
                shll    $0x10,%ecx
                sarl    $0x10,%edx
                call    %eax
                shrl    $0x10,%ebp
                ret     
L80:            .long   L81
                .long   L82
                .long   L83
                .long   L84
                .long   L85
                .long   L86
                .long   L87
                .long   L88
                .long   L89
                .long   L90
                .long   L91
                .long   L92
                .long   L93
                .long   L94
                .long   L95
                .long   L96
                .long   L97
L81:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
L82:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x8(%edi)
L83:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x10(%edi)
L84:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x18(%edi)
L85:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x20(%edi)
L86:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x28(%edi)
L87:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x30(%edi)
L88:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x38(%edi)
L89:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x40(%edi)
L90:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x48(%edi)
L91:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x50(%edi)
L92:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x58(%edi)
L93:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x60(%edi)
L94:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x68(%edi)
L95:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x70(%edi)
L96:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x78(%edi)
L97:            addw    $0x0080,%di
                decw    %bp
                jne     L81
                ret     
L98:            .long   L99
                .long   L100
                .long   L101
                .long   L102
                .long   L103
                .long   L104
                .long   L105
                .long   L106
                .long   L107
                .long   L108
                .long   L109
                .long   L110
                .long   L111
                .long   L112
                .long   L113
                .long   L114
                .long   L115
L99:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x4(%edi)
L100:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0xc(%edi)
L101:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x14(%edi)
L102:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x1c(%edi)
L103:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x24(%edi)
L104:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x2c(%edi)
L105:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x34(%edi)
L106:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x3c(%edi)
L107:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x44(%edi)
L108:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x4c(%edi)
L109:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x54(%edi)
L110:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x5c(%edi)
L111:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x64(%edi)
L112:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x6c(%edi)
L113:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x74(%edi)
L114:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x7c(%edi)
L115:           addw    $0x0080,%di
                decw    %bp
                jne     L99
                ret     
L116:           .long   L117
                .long   L118
                .long   L119
                .long   L120
                .long   L121
                .long   L122
                .long   L123
                .long   L124
                .long   L125
                .long   L126
                .long   L127
                .long   L128
                .long   L129
                .long   L130
                .long   L131
                .long   L132
                .long   L133
L117:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
                addl    %eax,+0x4(%edi)
L118:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x8(%edi)
                addl    %eax,+0xc(%edi)
L119:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x10(%edi)
                addl    %eax,+0x14(%edi)
L120:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x18(%edi)
                addl    %eax,+0x1c(%edi)
L121:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x20(%edi)
                addl    %eax,+0x24(%edi)
L122:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x28(%edi)
                addl    %eax,+0x2c(%edi)
L123:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x30(%edi)
                addl    %eax,+0x34(%edi)
L124:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x38(%edi)
                addl    %eax,+0x3c(%edi)
L125:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x40(%edi)
                addl    %eax,+0x44(%edi)
L126:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x48(%edi)
                addl    %eax,+0x4c(%edi)
L127:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x50(%edi)
                addl    %eax,+0x54(%edi)
L128:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x58(%edi)
                addl    %eax,+0x5c(%edi)
L129:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x60(%edi)
                addl    %eax,+0x64(%edi)
L130:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x68(%edi)
                addl    %eax,+0x6c(%edi)
L131:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x70(%edi)
                addl    %eax,+0x74(%edi)
L132:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x78(%edi)
                addl    %eax,+0x7c(%edi)
L133:           addw    $0x0080,%di
                decw    %bp
                jne     L117
                ret     
L134:           .long   L135
                .long   L136
                .long   L137
                .long   L138
                .long   L139
                .long   L140
                .long   L141
                .long   L142
                .long   L143
                .long   L144
                .long   L145
                .long   L146
                .long   L147
                .long   L148
                .long   L149
                .long   L150
                .long   L151
L135:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
                subl    %eax,+0x4(%edi)
L136:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x8(%edi)
                subl    %eax,+0xc(%edi)
L137:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x10(%edi)
                subl    %eax,+0x14(%edi)
L138:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x18(%edi)
                subl    %eax,+0x1c(%edi)
L139:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x20(%edi)
                subl    %eax,+0x24(%edi)
L140:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x28(%edi)
                subl    %eax,+0x2c(%edi)
L141:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x30(%edi)
                subl    %eax,+0x34(%edi)
L142:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x38(%edi)
                subl    %eax,+0x3c(%edi)
L143:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x40(%edi)
                subl    %eax,+0x44(%edi)
L144:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x48(%edi)
                subl    %eax,+0x4c(%edi)
L145:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x50(%edi)
                subl    %eax,+0x54(%edi)
L146:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x58(%edi)
                subl    %eax,+0x5c(%edi)
L147:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x60(%edi)
                subl    %eax,+0x64(%edi)
L148:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x68(%edi)
                subl    %eax,+0x6c(%edi)
L149:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x70(%edi)
                subl    %eax,+0x74(%edi)
L150:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x78(%edi)
                subl    %eax,+0x7c(%edi)
L151:           addw    $0x0080,%di
                decw    %bp
                jne     L135
                ret     
L152:           .long   L153
                .long   L154
                .long   L155
                .long   L156
                .long   L157
                .long   L158
                .long   L159
                .long   L160
                .long   L161
                .long   L162
                .long   L163
                .long   L164
                .long   L165
                .long   L166
                .long   L167
                .long   L168
                .long   L169
L153:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x4(%edi)
L154:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x8(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0xc(%edi)
L155:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x10(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x14(%edi)
L156:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x18(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x1c(%edi)
L157:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x20(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x24(%edi)
L158:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x28(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x2c(%edi)
L159:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x30(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x34(%edi)
L160:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x38(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x3c(%edi)
L161:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x40(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x44(%edi)
L162:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x48(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x4c(%edi)
L163:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x50(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x54(%edi)
L164:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x58(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x5c(%edi)
L165:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x60(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x64(%edi)
L166:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x68(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x6c(%edi)
L167:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x70(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x74(%edi)
L168:           movb    (%esi),%bl
                addl    L320,%ebp
                movb    %bl,%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x78(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x7c(%edi)
L169:           addw    $0x0080,%di
                decw    %bp
                jne     L153
                ret     
_dsmMix8bitMonoStereo:
                testl   %ecx,%ecx
                je      L176
                testb   %bl,%bl
                jne     L170
                pushl   %edi
                pushl   %ecx
                shll    $1,%ecx
                xorl    %eax,%eax
                repe    stosl    
                popl    %ecx
                popl    %edi
L170:           movl    L319,%eax
                cmpl    $0xffffffc0,%eax
                je      L171
                cmpl    $0x00000040,%eax
                je      L172
                cmpl    $0x00000000,%eax
                je      L173
                cmpl    $0x00000080,%eax
                je      L174
                movl    $L152,L318
                call    L177
                jmp     L176
L171:           movl    $L80,L318
                jmp     L175
L172:           movl    $L98,L318
                jmp     L175
L173:           movl    $L116,L318
                jmp     L175
L174:           movl    $L134,L318
                jmp     L175
L175:           addb    $0x01,%bh
                shrb    $1,%bh
                andl    $0x0000ff00,%ebx
                movl    _dsmVolumeTable,%eax
                shrl    $0x02,%eax
                addl    %eax,%ebx
                movl    %ecx,%eax
                andl    $0x0000000f,%eax
                shll    $0x02,%eax
                negl    %eax
                addl    $0x00000040,%eax
                subl    %eax,%edi
                subl    %eax,%edi
                addl    L318,%eax
                movl    (%eax),%eax
                shrl    $0x04,%ecx
                incl    %ecx
                shll    $0x10,%ebp
                movw    %cx,%bp
                movl    %edx,%ecx
                shll    $0x10,%ecx
                sarl    $0x10,%edx
                call    %eax
                shrl    $0x10,%ebp
L176:           ret     
L177:           movb    L319,%bl
                movb    %bh,%al
                testb   %bl,%bl
                jns     L178
                movb    %al,L323
                addb    $0x40,%bl
                mulb    %bl
                shrl    $0x06,%eax
                movb    %al,L324
                jmp     L179
L178:           movb    %al,L324
                negb    %bl
                addb    $0x40,%bl
                mulb    %bl
                shrl    $0x06,%eax
                movb    %al,L323
L179:           movl    %edx,%eax
                shll    $0x10,%eax
                movl    %eax,L320
                movl    %ecx,%eax
                andl    $0x0000000f,%eax
                shll    $0x02,%eax
                negl    %eax
                addl    $0x00000040,%eax
                subl    %eax,%edi
                subl    %eax,%edi
                addl    L318,%eax
                movl    (%eax),%eax
                shrl    $0x04,%ecx
                incl    %ecx
                shll    $0x10,%ebp
                movw    %cx,%bp
                sarl    $0x10,%edx
                pushl   %eax
                movb    L323,%bh
                addb    $0x01,%bh
                shrb    $1,%bh
                andl    $0x0000ff00,%ebx
                movl    _dsmVolumeTable,%eax
                shrl    $0x02,%eax
                addl    %eax,%ebx
                movb    L324,%ch
                addb    $0x01,%ch
                shrb    $1,%ch
                andl    $0x0000ff00,%ecx
                addl    %eax,%ecx
                popl    %eax
                call    %eax
                shrl    $0x10,%ebp
                ret     
L180:           .long   L181
                .long   L182
                .long   L183
                .long   L184
                .long   L185
                .long   L186
                .long   L187
                .long   L188
                .long   L189
                .long   L190
                .long   L191
                .long   L192
                .long   L193
                .long   L194
                .long   L195
                .long   L196
                .long   L197
L181:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,(%edi)
L182:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x4(%edi)
L183:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x8(%edi)
L184:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0xc(%edi)
L185:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x10(%edi)
L186:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x14(%edi)
L187:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x18(%edi)
L188:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x1c(%edi)
L189:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x20(%edi)
L190:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x24(%edi)
L191:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x28(%edi)
L192:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x2c(%edi)
L193:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x30(%edi)
L194:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x34(%edi)
L195:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x38(%edi)
L196:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x3c(%edi)
L197:           addw    $0x0040,%di
                decw    %bp
                jne     L181
                ret     
_dsmMix8bitStereoMono:
                testl   %ecx,%ecx
                je      L199
                testb   %bl,%bl
                jne     L198
                pushl   %edi
                pushl   %ecx
                xorl    %eax,%eax
                repe    stosl    
                popl    %ecx
                popl    %edi
L198:           incb    %bh
                shrb    $1,%bh
                movl    $L180,L318
                call    L79
L199:           ret     
L200:           .long   L201
                .long   L202
                .long   L203
                .long   L204
                .long   L205
                .long   L206
                .long   L207
                .long   L208
                .long   L209
                .long   L210
                .long   L211
                .long   L212
                .long   L213
                .long   L214
                .long   L215
                .long   L216
                .long   L217
L201:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x4(%edi)
L202:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x8(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0xc(%edi)
L203:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x10(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x14(%edi)
L204:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x18(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x1c(%edi)
L205:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x20(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x24(%edi)
L206:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x28(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x2c(%edi)
L207:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x30(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x34(%edi)
L208:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x38(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x3c(%edi)
L209:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x40(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x44(%edi)
L210:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x48(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x4c(%edi)
L211:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x50(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x54(%edi)
L212:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x58(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x5c(%edi)
L213:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x60(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x64(%edi)
L214:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x68(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x6c(%edi)
L215:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x70(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x74(%edi)
L216:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movb    +0x1(,%esi,2),%cl
                movl    +0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,+0x78(%edi)
                movl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x7c(%edi)
L217:           addw    $0x0080,%di
                decw    %bp
                jne     L201
                ret     
_dsmMix8bitStereoStereo:
                testl   %ecx,%ecx
                je      L219
                testb   %bl,%bl
                jne     L218
                pushl   %edi
                pushl   %ecx
                shll    $1,%ecx
                xorl    %eax,%eax
                repe    stosl    
                popl    %ecx
                popl    %edi
L218:           movl    $L200,L318
                call    L177
L219:           ret     
L220:           .long   L221
                .long   L222
                .long   L223
                .long   L224
                .long   L225
                .long   L226
                .long   L227
                .long   L228
                .long   L229
                .long   L230
                .long   L231
                .long   L232
                .long   L233
                .long   L234
                .long   L235
                .long   L236
                .long   L237
L221:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,(%edi)
L222:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x4(%edi)
L223:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x8(%edi)
L224:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0xc(%edi)
L225:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x10(%edi)
L226:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x14(%edi)
L227:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x18(%edi)
L228:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x1c(%edi)
L229:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x20(%edi)
L230:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x24(%edi)
L231:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x28(%edi)
L232:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x2c(%edi)
L233:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x30(%edi)
L234:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x34(%edi)
L235:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x38(%edi)
L236:           movb    +0x0(,%esi,2),%bl
                addl    %ecx,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x3c(%edi)
L237:           addw    $0x0040,%di
                decw    %bp
                jne     L221
                ret     
_dsmMix16bitMonoMono:
                testl   %ecx,%ecx
                je      L239
                testb   %bl,%bl
                jne     L238
                pushl   %edi
                pushl   %ecx
                xorl    %eax,%eax
                repe    stosl    
                popl    %ecx
                popl    %edi
L238:           movl    $L220,L318
                call    L79
L239:           ret     
L240:           .long   L241
                .long   L242
                .long   L243
                .long   L244
                .long   L245
                .long   L246
                .long   L247
                .long   L248
                .long   L249
                .long   L250
                .long   L251
                .long   L252
                .long   L253
                .long   L254
                .long   L255
                .long   L256
                .long   L257
L241:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x4(%edi)
L242:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x8(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0xc(%edi)
L243:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x10(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x14(%edi)
L244:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x18(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x1c(%edi)
L245:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x20(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x24(%edi)
L246:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x28(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x2c(%edi)
L247:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x30(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x34(%edi)
L248:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x38(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x3c(%edi)
L249:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x40(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x44(%edi)
L250:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x48(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x4c(%edi)
L251:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x50(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x54(%edi)
L252:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x58(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x5c(%edi)
L253:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x60(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x64(%edi)
L254:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x68(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x6c(%edi)
L255:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x70(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x74(%edi)
L256:           movb    +0x0(,%esi,2),%bl
                addl    L320,%ebp
                movl    +0x0(,%ebx,4),%eax
                movb    %bl,%cl
                movb    +0x1(,%esi,2),%bl
                adcl    %edx,%esi
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x78(%edi)
                movl    +0x0(,%ecx,4),%eax
                movb    %bl,%cl
                sarl    $0x08,%eax
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x7c(%edi)
L257:           addw    $0x0080,%di
                decw    %bp
                jne     L241
                ret     
_dsmMix16bitMonoStereo:
                testl   %ecx,%ecx
                je      L259
                testb   %bl,%bl
                jne     L258
                pushl   %edi
                pushl   %ecx
                shll    $1,%ecx
                xorl    %eax,%eax
                repe    stosl    
                popl    %ecx
                popl    %edi
L258:           movl    $L240,L318
                call    L177
L259:           ret     
L260:           .long   L261
                .long   L262
                .long   L263
                .long   L264
                .long   L265
                .long   L266
                .long   L267
                .long   L268
                .long   L269
                .long   L270
                .long   L271
                .long   L272
                .long   L273
                .long   L274
                .long   L275
                .long   L276
                .long   L277
L261:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,(%edi)
L262:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x4(%edi)
L263:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x8(%edi)
L264:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0xc(%edi)
L265:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x10(%edi)
L266:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x14(%edi)
L267:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x18(%edi)
L268:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x1c(%edi)
L269:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x20(%edi)
L270:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x24(%edi)
L271:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x28(%edi)
L272:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x2c(%edi)
L273:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x30(%edi)
L274:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x34(%edi)
L275:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x38(%edi)
L276:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x2(,%esi,4),%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                movb    +0x3(,%esi,4),%bl
                xorb    $0x80,%bl
                addl    %ecx,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x3c(%edi)
L277:           addw    $0x0040,%di
                decw    %bp
                jne     L261
                ret     
_dsmMix16bitStereoMono:
                testl   %ecx,%ecx
                je      L279
                testb   %bl,%bl
                jne     L278
                pushl   %edi
                pushl   %ecx
                xorl    %eax,%eax
                repe    stosl    
                popl    %ecx
                popl    %edi
L278:           incb    %bh
                shrb    $1,%bh
                movl    $L260,L318
                call    L79
L279:           ret     
L280:           .long   L281
                .long   L282
                .long   L283
                .long   L284
                .long   L285
                .long   L286
                .long   L287
                .long   L288
                .long   L289
                .long   L290
                .long   L291
                .long   L292
                .long   L293
                .long   L294
                .long   L295
                .long   L296
                .long   L297
L281:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x4(%edi)
L282:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x8(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0xc(%edi)
L283:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x10(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x14(%edi)
L284:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x18(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x1c(%edi)
L285:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x20(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x24(%edi)
L286:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x28(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x2c(%edi)
L287:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x30(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x34(%edi)
L288:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x38(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x3c(%edi)
L289:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x40(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x44(%edi)
L290:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x48(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x4c(%edi)
L291:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x50(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x54(%edi)
L292:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x58(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x5c(%edi)
L293:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x60(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x64(%edi)
L294:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x68(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x6c(%edi)
L295:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x70(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x74(%edi)
L296:           movb    +0x0(,%esi,4),%bl
                movl    +0x0(,%ebx,4),%eax
                movb    +0x1(,%esi,4),%bl
                sarl    $0x08,%eax
                xorb    $0x80,%bl
                addl    +0x0(,%ebx,4),%eax
                addl    %eax,+0x78(%edi)
                movb    +0x2(,%esi,4),%cl
                movl    +0x0(,%ecx,4),%eax
                movb    +0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L320,%ebp
                adcl    %edx,%esi
                addl    +0x0(,%ecx,4),%eax
                addl    %eax,+0x7c(%edi)
L297:           addw    $0x0080,%di
                decw    %bp
                jne     L281
                ret     
_dsmMix16bitStereoStereo:
                testl   %ecx,%ecx
                je      L299
                testb   %bl,%bl
                jne     L298
                pushl   %edi
                pushl   %ecx
                shll    $1,%ecx
                xorl    %eax,%eax
                repe    stosl    
                popl    %ecx
                popl    %edi
L298:           movl    $L280,L318
                call    L177
L299:           ret     
_dsmClearBuffer: enter   $0x00,$0x0000
                pushl   %esi
                pushl   %edi
                pushl   %ebx
                movl    _dsmMixBuffer,%edi
                movl    +0x8(%ebp),%ecx
                call    L300
                xorl    %eax,%eax
                popl    %ebx
                popl    %edi
                popl    %esi
                leave   
                ret     
L300:           testl   %ecx,%ecx
                je      L302
                movw    %ds,%ax
                movw    %ax,%es
                xorl    %eax,%eax
                cld     
                cmpl    $0x00000002,_dsmMode
                jne     L301
                shll    $1,%ecx
L301:           repe    stosl    
L302:           ret     

.data
                .align 16
.zero                   0x00000008
.bss            L303 ,   0x00000004
.bss            L304 ,   0x00000004
.bss            L305 ,   0x00000004
.bss            L306 ,   0x00000004
.bss            L307 ,   0x00000004
.bss            L308 ,   0x00000004
.bss            L309 ,   0x00000004
.bss            L310 ,   0x00000004
.bss            L311 ,   0x00000004
.bss            L312 ,   0x00000004
.bss            L313 ,   0x00000004
.bss            L314 ,   0x00000004
.bss            L315 ,   0x00000004
.bss            L316 ,   0x00000004
.bss            L317 ,   0x00000004
.bss            L318 ,   0x00000004
.bss            L319 ,   0x00000004
.bss            L320 ,   0x00000004
.bss            L321 ,   0x00000004
.bss            L322 ,   0x00000004
.bss            L323 ,   0x00000001
.bss            L324 ,   0x00000001

[ RETURN TO DIRECTORY ]