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

.data
                .align 16
.zero                   0x00000008
.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 ,   0x00000004
.lcomm            L322 ,   0x00000004
.lcomm            L323 ,   0x00000001
.lcomm            L324 ,   0x00000001

