                .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,L309
                movl    0x8(%ebp),%eax
                movl    %eax,L319
                movl    dsmMixBuffer,%eax
                movl    %eax,L310
                movl    0xc(%ebp),%eax
                movl    %eax,L315
                movl    dsmChannels,%ebx
                imull   $0x5c,0x8(%ebp),%eax
                addl    %eax,%ebx
                movl    %ebx,L302
                movl    0x58(%ebx),%eax
                movl    %eax,L320
                cmpl    $0x00000000,0x4(%ebx)
                je      L34
                movl    0x38(%ebx),%eax
                movl    %eax,L306
                movl    0x2c(%ebx),%eax
                movl    %eax,L313
                movl    0x30(%ebx),%eax
                movl    %eax,L314
                movl    0x44(%ebx),%eax
                movl    %eax,L317
                movl    0x34(%ebx),%eax
                movl    %eax,%edx
                shll    $0x10,%eax
                shrl    $0x10,%edx
                movl    dsmMixRate,%ecx
                divl    %ecx
                movl    %eax,L311
                movl    0x14(%ebp),%eax
                mull    L311
                shrdl   $0x10,%edx,%eax
                addl    $0x00000002,%eax
                movl    %eax,L312
L1:             movl    0x50(%ebx),%eax
                cmpl    $0x00000000,%eax
                je      L34
                cmpl    $0x00000001,%eax
                je      L34
                cmpl    $0x00000002,%eax
                je      L3
                cmpl    $0x00000002,0x54(%ebx)
                je      L2
                movl    $0x00000001,L307
                jmp     L4
L2:             movl    0x20(%ebx),%eax
                movl    %eax,L303
                movl    0x24(%ebx),%eax
                movl    %eax,L304
                movl    0x28(%ebx),%eax
                movl    %eax,L305
                jmp     L5
L3:             movl    $0x00000000,L307
L4:             movl    0x14(%ebx),%eax
                movl    %eax,L303
                movl    0x18(%ebx),%eax
                movl    %eax,L304
                movl    0x1c(%ebx),%eax
                movl    %eax,L305
L5:             cmpl    $0x00000000,0x40(%ebx)
                je      L8
                cmpl    $0x00000005,0x10(%ebx)
                je      L6
                cmpl    $0x00000004,0x10(%ebx)
                jne     L8
L6:             movl    dsmSamples,%esi
                imull   $0x34,0x3c(%ebx),%eax
                addl    %eax,%esi
                cmpl    $0x00000004,0x10(%esi)
                je      L7
                cmpl    $0x00000005,0x10(%esi)
                jne     L8
L7:             movl    $0x00000001,L308
                jmp     L9
L8:             movl    $0x00000000,L308
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,L301
L13:            cmpl    $0x00000000,L309
                je      L35
                movl    L305,%eax
                cmpl    $0x00000000,%eax
                je      L16
                cmpl    $0x00000001,%eax
                je      L15
                cmpl    $0xffffffff,L306
                je      L14
                movl    L304,%eax
                subl    L313,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                subl    L314,%eax
                sbbl    $0x00000000,%edx
                jmp     L17
L14:            movl    L313,%eax
                subl    L303,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                addl    L314,%eax
                adcl    $0x00000000,%edx
                jmp     L17
L15:            movl    L304,%eax
                subl    L313,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                subl    L314,%eax
                sbbl    $0x00000000,%edx
                jmp     L17
L16:            movl    0xc(%ebx),%eax
                subl    L313,%eax
                movl    %eax,%edx
                shrl    $0x10,%edx
                shll    $0x10,%eax
                subl    L314,%eax
                sbbl    $0x00000000,%edx
L17:            movl    L312,%ecx
                shrl    $0x10,%ecx
                cmpl    %edx,%ecx
                jb      L19
                movl    L312,%ecx
                shll    $0x10,%ecx
                cmpl    %eax,%ecx
                jb      L19
                divl    L311
                testl   %edx,%edx
                je      L18
                incl    %eax
L18:            cmpl    L309,%eax
                jbe     L20
                movl    L309,%eax
                jmp     L20
L19:            movl    L309,%eax
L20:            subl    %eax,L309
                cmpl    $0x00000000,0x10(%ebp)
                je      L22
                pushl   %ebx
                pushl   %ebp
                movl    L301,%esi
                addl    L313,%esi
                movb    0x8(%ebp),%bl
                movb    0x10(%ebp),%bh
                movl    L314,%ebp
                movl    L311,%edx
                movl    %eax,%ecx
                movl    L310,%edi
                cmpl    $0xffffffff,L306
                jne     L21
                negl    %edx
L21:            movl    L315,%eax
                call    %eax
                movl    %ebp,L314
                subl    L301,%esi
                movl    %esi,L313
                movl    %edi,L310
                popl    %ebp
                popl    %ebx
                jmp     L24
L22:            movl    %eax,%ecx
                movl    L311,%edx
                cmpl    $0xffffffff,L306
                jne     L23
                negl    %edx
L23:            imull   %edx
                movl    L313,%esi
                movl    %esi,%edi
                shll    $0x10,%esi
                sarl    $0x10,%edi
                movw    L314,%si
                addl    %eax,%esi
                adcl    %edx,%edi
                movw    %si,L314
                shrl    $0x10,%esi
                shll    $0x10,%edi
                orl     %edi,%esi
                movl    %esi,L313
                cmpl    $0x00000000,0x8(%ebp)
                jne     L24
                pushl   %ebx
                movl    L310,%edi
                call    L298
                movl    %edi,L310
                popl    %ebx
L24:            cmpl    $0x00000000,L305
                je      L29
                cmpl    $0xffffffff,L306
                je      L27
                movl    L313,%eax
                cmpl    L304,%eax
                jb      L35
                cmpl    $0x00000000,L320
                je      L25
                movl    L320,%eax
                pushl   0x8(%ebp)
                call    %eax
                addl    $0x00000004,%esp
L25:            cmpl    $0x00000001,L308
                je      L31
                cmpl    $0x00000001,L307
                je      L33
                cmpl    $0x00000001,L305
                je      L26
                movl    $0xffffffff,L306
                movl    L304,%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    L314,%ax
                subl    %eax,%esi
                sbbl    %edx,%edi
                movw    %si,L314
                shrl    $0x10,%esi
                shll    $0x10,%edi
                orl     %edi,%esi
                movl    %esi,L313
                jmp     L30
L26:            movl    L304,%eax
                subl    L303,%eax
                subl    %eax,L313
                jmp     L30
L27:            movl    L313,%eax
                cmpl    L303,%eax
                jge     L35
                cmpl    $0x00000000,L320
                je      L28
                movl    L320,%eax
                pushl   0x8(%ebp)
                call    %eax
                addl    $0x00000004,%esp
L28:            movl    $0x00000001,L306
                movl    L303,%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    L314,%ax
                subl    %eax,%esi
                sbbl    %edx,%edi
                movw    %si,L314
                shrl    $0x10,%esi
                shll    $0x10,%edi
                orl     %edi,%esi
                movl    %esi,L313
                jmp     L30
L29:            movl    L313,%eax
                cmpl    0xc(%ebx),%eax
                jb      L35
                cmpl    $0x00000001,L308
                je      L31
                movl    $0x00000001,0x50(%ebx)
                jmp     L34
L30:            cmpl    $0x00000000,L309
                je      L35
                jmp     L13
L31:            pushl   %ebx
                pushl   0x8(%ebp)
                call    dsmChangeSample
                addl    $0x00000004,%esp
                popl    %ebx
                testl   %eax,%eax
                jne     L36
                cmpl    $0x00000005,0x10(%ebx)
                jne     L32
                movl    0x14(%ebx),%eax
                movl    %eax,L313
                movl    $0x00000000,L314
                jmp     L1
L32:            movl    $0x00000001,0x50(%ebx)
                jmp     L34
L33:            movl    $0x00000002,0x54(%ebx)
                movl    $0x00000000,L307
                movl    0x20(%ebx),%eax
                movl    %eax,L303
                movl    0x24(%ebx),%eax
                movl    %eax,L304
                movl    0x28(%ebx),%eax
                movl    %eax,L305
                jmp     L13
L34:            cmpl    $0x00000000,0x8(%ebp)
                jne     L35
                pushl   %ebx
                movl    L309,%ecx
                movl    L310,%edi
                call    L298
                popl    %ebx
L35:            movl    L313,%eax
                movl    %eax,0x2c(%ebx)
                movl    L314,%eax
                movl    %eax,0x30(%ebx)
                movl    L306,%eax
                movl    %eax,0x38(%ebx)
                xorl    %eax,%eax
                jmp     L37
L36:            pushl   %eax
                pushl   $0x000000e7
                pushl   %eax
                call    errAdd
                addl    $0x00000008,%esp
                popl    %eax
L37:            popl    %ebx
                popl    %edi
                popl    %esi
                leave   
                ret     
L38:            .long   L39
                .long   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
L39:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
L40:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x4(%edi)
L41:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x8(%edi)
L42:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0xc(%edi)
L43:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x10(%edi)
L44:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x14(%edi)
L45:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x18(%edi)
L46:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x1c(%edi)
L47:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x20(%edi)
L48:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x24(%edi)
L49:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x28(%edi)
L50:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x2c(%edi)
L51:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x30(%edi)
L52:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x34(%edi)
L53:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x38(%edi)
L54:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x3c(%edi)
L55:            addw    $0x0040,%di
                decw    %bp
                jne     L39
                ret     
L56:            .long   L57
                .long   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
L57:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,(%edi)
L58:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x4(%edi)
L59:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x8(%edi)
L60:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0xc(%edi)
L61:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x10(%edi)
L62:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x14(%edi)
L63:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x18(%edi)
L64:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x1c(%edi)
L65:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x20(%edi)
L66:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x24(%edi)
L67:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x28(%edi)
L68:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x2c(%edi)
L69:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x30(%edi)
L70:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x34(%edi)
L71:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x38(%edi)
L72:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                movl    %eax,0x3c(%edi)
L73:            addw    $0x0040,%di
                decw    %bp
                jne     L57
                ret     
dsmMix8bitMonoMono:
                testl   %ecx,%ecx
                je      L76
                testb   %bl,%bl
                jne     L74
                movl    $L56,L316
                jmp     L75
L74:            movl    $L38,L316
L75:            call    L77
L76:            ret     
L77:            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    L316,%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     
L78:            .long   L79
                .long   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
L79:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
L80:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x8(%edi)
L81:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x10(%edi)
L82:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x18(%edi)
L83:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x20(%edi)
L84:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x28(%edi)
L85:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x30(%edi)
L86:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x38(%edi)
L87:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x40(%edi)
L88:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x48(%edi)
L89:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x50(%edi)
L90:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x58(%edi)
L91:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x60(%edi)
L92:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x68(%edi)
L93:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x70(%edi)
L94:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x78(%edi)
L95:            addw    $0x0080,%di
                decw    %bp
                jne     L79
                ret     
L96:            .long   L97
                .long   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
L97:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x4(%edi)
L98:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0xc(%edi)
L99:            movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x14(%edi)
L100:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x1c(%edi)
L101:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x24(%edi)
L102:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x2c(%edi)
L103:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x34(%edi)
L104:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x3c(%edi)
L105:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x44(%edi)
L106:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x4c(%edi)
L107:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x54(%edi)
L108:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x5c(%edi)
L109:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x64(%edi)
L110:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x6c(%edi)
L111:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x74(%edi)
L112:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x7c(%edi)
L113:           addw    $0x0080,%di
                decw    %bp
                jne     L97
                ret     
L114:           .long   L115
                .long   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
L115:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
                addl    %eax,0x4(%edi)
L116:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x8(%edi)
                addl    %eax,0xc(%edi)
L117:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x10(%edi)
                addl    %eax,0x14(%edi)
L118:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x18(%edi)
                addl    %eax,0x1c(%edi)
L119:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x20(%edi)
                addl    %eax,0x24(%edi)
L120:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x28(%edi)
                addl    %eax,0x2c(%edi)
L121:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x30(%edi)
                addl    %eax,0x34(%edi)
L122:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x38(%edi)
                addl    %eax,0x3c(%edi)
L123:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x40(%edi)
                addl    %eax,0x44(%edi)
L124:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x48(%edi)
                addl    %eax,0x4c(%edi)
L125:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x50(%edi)
                addl    %eax,0x54(%edi)
L126:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x58(%edi)
                addl    %eax,0x5c(%edi)
L127:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x60(%edi)
                addl    %eax,0x64(%edi)
L128:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x68(%edi)
                addl    %eax,0x6c(%edi)
L129:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x70(%edi)
                addl    %eax,0x74(%edi)
L130:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x78(%edi)
                addl    %eax,0x7c(%edi)
L131:           addw    $0x0080,%di
                decw    %bp
                jne     L115
                ret     
L132:           .long   L133
                .long   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
L133:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
                subl    %eax,0x4(%edi)
L134:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x8(%edi)
                subl    %eax,0xc(%edi)
L135:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x10(%edi)
                subl    %eax,0x14(%edi)
L136:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x18(%edi)
                subl    %eax,0x1c(%edi)
L137:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x20(%edi)
                subl    %eax,0x24(%edi)
L138:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x28(%edi)
                subl    %eax,0x2c(%edi)
L139:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x30(%edi)
                subl    %eax,0x34(%edi)
L140:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x38(%edi)
                subl    %eax,0x3c(%edi)
L141:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x40(%edi)
                subl    %eax,0x44(%edi)
L142:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x48(%edi)
                subl    %eax,0x4c(%edi)
L143:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x50(%edi)
                subl    %eax,0x54(%edi)
L144:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x58(%edi)
                subl    %eax,0x5c(%edi)
L145:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x60(%edi)
                subl    %eax,0x64(%edi)
L146:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x68(%edi)
                subl    %eax,0x6c(%edi)
L147:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x70(%edi)
                subl    %eax,0x74(%edi)
L148:           movb    (%esi),%bl
                addl    %ecx,%ebp
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,0x78(%edi)
                subl    %eax,0x7c(%edi)
L149:           addw    $0x0080,%di
                decw    %bp
                jne     L133
                ret     
L150:           .long   L151
                .long   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
L151:           movb    (%esi),%bl
                addl    L318,%ebp
                movb    %bl,%cl
                movl    0x0(,%ebx,4),%eax
                adcl    %edx,%esi
                addl    %eax,(%edi)
                movl    0x0(,%ecx,4),%eax
                addl    %eax,0x4(%edi)
L152:           movb    (%esi),%bl
                addl    L318,%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)
L153:           movb    (%esi),%bl
                addl    L318,%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)
L154:           movb    (%esi),%bl
                addl    L318,%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)
L155:           movb    (%esi),%bl
                addl    L318,%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)
L156:           movb    (%esi),%bl
                addl    L318,%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)
L157:           movb    (%esi),%bl
                addl    L318,%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)
L158:           movb    (%esi),%bl
                addl    L318,%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)
L159:           movb    (%esi),%bl
                addl    L318,%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)
L160:           movb    (%esi),%bl
                addl    L318,%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)
L161:           movb    (%esi),%bl
                addl    L318,%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)
L162:           movb    (%esi),%bl
                addl    L318,%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)
L163:           movb    (%esi),%bl
                addl    L318,%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)
L164:           movb    (%esi),%bl
                addl    L318,%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)
L165:           movb    (%esi),%bl
                addl    L318,%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)
L166:           movb    (%esi),%bl
                addl    L318,%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)
L167:           addw    $0x0080,%di
                decw    %bp
                jne     L151
                ret     
dsmMix8bitMonoStereo:
                testl   %ecx,%ecx
                je      L174
                testb   %bl,%bl
                jne     L168
                pushl   %edi
                pushl   %ecx
                shll    $1,%ecx
                xorl    %eax,%eax
                rep;    stosl    
                popl    %ecx
                popl    %edi
L168:           movl    L317,%eax
                cmpl    $0xffffffc0,%eax
                je      L169
                cmpl    $0x00000040,%eax
                je      L170
                cmpl    $0x00000000,%eax
                je      L171
                cmpl    $0x00000080,%eax
                je      L172
                movl    $L150,L316
                call    L175
                jmp     L174
L169:           movl    $L78,L316
                jmp     L173
L170:           movl    $L96,L316
                jmp     L173
L171:           movl    $L114,L316
                jmp     L173
L172:           movl    $L132,L316
                jmp     L173
L173:           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    L316,%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
L174:           ret     
L175:           movb    L317,%bl
                movb    %bh,%al
                testb   %bl,%bl
                jns     L176
                movb    %al,L321
                addb    $0x40,%bl
                mulb    %bl
                shrl    $0x06,%eax
                movb    %al,L322
                jmp     L177
L176:           movb    %al,L322
                negb    %bl
                addb    $0x40,%bl
                mulb    %bl
                shrl    $0x06,%eax
                movb    %al,L321
L177:           movl    %edx,%eax
                shll    $0x10,%eax
                movl    %eax,L318
                movl    %ecx,%eax
                andl    $0x0000000f,%eax
                shll    $0x02,%eax
                negl    %eax
                addl    $0x00000040,%eax
                subl    %eax,%edi
                subl    %eax,%edi
                addl    L316,%eax
                movl    (%eax),%eax
                shrl    $0x04,%ecx
                incl    %ecx
                shll    $0x10,%ebp
                movw    %cx,%bp
                sarl    $0x10,%edx
                pushl   %eax
                movb    L321,%bh
                addb    $0x01,%bh
                shrb    $1,%bh
                andl    $0x0000ff00,%ebx
                movl    dsmVolumeTable,%eax
                shrl    $0x02,%eax
                addl    %eax,%ebx
                movb    L322,%ch
                addb    $0x01,%ch
                shrb    $1,%ch
                andl    $0x0000ff00,%ecx
                addl    %eax,%ecx
                popl    %eax
                call    %eax
                shrl    $0x10,%ebp
                ret     
L178:           .long   L179
                .long   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
L179:           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)
L180:           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)
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,0x8(%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,0xc(%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,0x10(%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,0x14(%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,0x18(%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,0x1c(%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,0x20(%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,0x24(%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,0x28(%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,0x2c(%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,0x30(%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,0x34(%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,0x38(%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,0x3c(%edi)
L195:           addw    $0x0040,%di
                decw    %bp
                jne     L179
                ret     
dsmMix8bitStereoMono:
                testl   %ecx,%ecx
                je      L197
                testb   %bl,%bl
                jne     L196
                pushl   %edi
                pushl   %ecx
                xorl    %eax,%eax
                rep;    stosl    
                popl    %ecx
                popl    %edi
L196:           incb    %bh
                shrb    $1,%bh
                movl    $L178,L316
                call    L77
L197:           ret     
L198:           .long   L199
                .long   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
L199:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L200:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L201:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L202:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L203:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L204:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L205:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L206:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L207:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L208:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L209:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L210:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L211:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L212:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L213:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L214:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L215:           addw    $0x0080,%di
                decw    %bp
                jne     L199
                ret     
dsmMix8bitStereoStereo:
                testl   %ecx,%ecx
                je      L217
                testb   %bl,%bl
                jne     L216
                pushl   %edi
                pushl   %ecx
                shll    $1,%ecx
                xorl    %eax,%eax
                rep;    stosl    
                popl    %ecx
                popl    %edi
L216:           movl    $L198,L316
                call    L175
L217:           ret     
L218:           .long   L219
                .long   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
L219:           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)
L220:           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)
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,0x8(%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,0xc(%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,0x10(%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,0x14(%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,0x18(%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,0x1c(%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,0x20(%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,0x24(%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,0x28(%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,0x2c(%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,0x30(%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,0x34(%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,0x38(%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,0x3c(%edi)
L235:           addw    $0x0040,%di
                decw    %bp
                jne     L219
                ret     
dsmMix16bitMonoMono:
                testl   %ecx,%ecx
                je      L237
                testb   %bl,%bl
                jne     L236
                pushl   %edi
                pushl   %ecx
                xorl    %eax,%eax
                rep;    stosl    
                popl    %ecx
                popl    %edi
L236:           movl    $L218,L316
                call    L77
L237:           ret     
L238:           .long   L239
                .long   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
L239:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L240:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L241:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L242:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L243:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L244:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L245:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L246:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L247:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L248:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L249:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L250:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L251:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L252:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L253:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L254:           movb    0x0(,%esi,2),%bl
                addl    L318,%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)
L255:           addw    $0x0080,%di
                decw    %bp
                jne     L239
                ret     
dsmMix16bitMonoStereo:
                testl   %ecx,%ecx
                je      L257
                testb   %bl,%bl
                jne     L256
                pushl   %edi
                pushl   %ecx
                shll    $1,%ecx
                xorl    %eax,%eax
                rep;    stosl    
                popl    %ecx
                popl    %edi
L256:           movl    $L238,L316
                call    L175
L257:           ret     
L258:           .long   L259
                .long   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
L259:           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)
L260:           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)
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,0x8(%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,0xc(%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,0x10(%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,0x14(%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,0x18(%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,0x1c(%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,0x20(%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,0x24(%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,0x28(%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,0x2c(%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,0x30(%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,0x34(%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,0x38(%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,0x3c(%edi)
L275:           addw    $0x0040,%di
                decw    %bp
                jne     L259
                ret     
dsmMix16bitStereoMono:
                testl   %ecx,%ecx
                je      L277
                testb   %bl,%bl
                jne     L276
                pushl   %edi
                pushl   %ecx
                xorl    %eax,%eax
                rep;    stosl    
                popl    %ecx
                popl    %edi
L276:           incb    %bh
                shrb    $1,%bh
                movl    $L258,L316
                call    L77
L277:           ret     
L278:           .long   L279
                .long   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
L279:           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    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x4(%edi)
L280:           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    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0xc(%edi)
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,0x10(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x14(%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,0x18(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x1c(%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,0x20(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x24(%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,0x28(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x2c(%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,0x30(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x34(%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,0x38(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x3c(%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,0x40(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x44(%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,0x48(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x4c(%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,0x50(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x54(%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,0x58(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x5c(%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,0x60(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x64(%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,0x68(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x6c(%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,0x70(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x74(%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,0x78(%edi)
                movb    0x2(,%esi,4),%cl
                movl    0x0(,%ecx,4),%eax
                movb    0x3(,%esi,4),%cl
                sarl    $0x08,%eax
                xorb    $0x80,%cl
                addl    L318,%ebp
                adcl    %edx,%esi
                addl    0x0(,%ecx,4),%eax
                addl    %eax,0x7c(%edi)
L295:           addw    $0x0080,%di
                decw    %bp
                jne     L279
                ret     
dsmMix16bitStereoStereo:
                testl   %ecx,%ecx
                je      L297
                testb   %bl,%bl
                jne     L296
                pushl   %edi
                pushl   %ecx
                shll    $1,%ecx
                xorl    %eax,%eax
                rep;    stosl    
                popl    %ecx
                popl    %edi
L296:           movl    $L278,L316
                call    L175
L297:           ret     
dsmClearBuffer: enter   $0x00,$0x0000
                pushl   %esi
                pushl   %edi
                pushl   %ebx
                movl    dsmMixBuffer,%edi
                movl    0x8(%ebp),%ecx
                call    L298
                xorl    %eax,%eax
                popl    %ebx
                popl    %edi
                popl    %esi
                leave   
                ret     
L298:           testl   %ecx,%ecx
                je      L300
                movw    %ds,%ax
                movw    %ax,%es
                xorl    %eax,%eax
                cld     
                cmpl    $0x00000002,dsmMode
                jne     L299
                shll    $1,%ecx
L299:           rep;    stosl    
L300:           ret     

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

