.text:01DA2BC0 ; int __cdecl sub_1DA2BC0(int, int, char Args, int, float, float, int, int)
.text:01DA2BC0 sub_1DA2BC0 proc near ; CODE XREF: sub_1D17D20+C0p
.text:01DA2BC0 ; sub_1D17DF0+CDp ...
.text:01DA2BC0
.text:01DA2BC0 var_48 = qword ptr -48h
.text:01DA2BC0 Args = byte ptr -40h
.text:01DA2BC0 var_1 = byte ptr -1
.text:01DA2BC0 arg_0 = dword ptr 4
.text:01DA2BC0 arg_4 = dword ptr 8
.text:01DA2BC0 Source = byte ptr 0Ch
.text:01DA2BC0 arg_C = dword ptr 10h
.text:01DA2BC0 arg_10 = dword ptr 14h
.text:01DA2BC0 arg_14 = dword ptr 18h
.text:01DA2BC0 arg_18 = dword ptr 1Ch
.text:01DA2BC0 arg_1C = dword ptr 20h
.text:01DA2BC0
.text:01DA2BC0 sub esp, 48h
.text:01DA2BC3 mov eax, dword_243F75C
.text:01DA2BC8 push ebx
.text:01DA2BC9 push ebp
.text:01DA2BCA push esi
.text:01DA2BCB test eax, eax
.text:01DA2BCD push edi
.text:01DA2BCE mov dword ptr [esp+58h+var_48], 0
.text:01DA2BD6 jz loc_1DA2F22
.text:01DA2BDC mov edi, dword ptr [esp+58h+Source]
.text:01DA2BE0 test edi, edi
.text:01DA2BE2 jz loc_1DA2F22
.text:01DA2BE8 fld flt_1E839B4
.text:01DA2BEE fcomp ds:flt_1E491B0
.text:01DA2BF4 fnstsw ax
.text:01DA2BF6 test ah, 40h
.text:01DA2BF9 jz loc_1DA2F22
.text:01DA2BFF cmp byte ptr [edi], 2Ah
.text:01DA2C02 jnz short loc_1DA2C0F
.text:01DA2C04 mov ebx, 5
.text:01DA2C09 mov [esp+58h+arg_4], ebx
.text:01DA2C0D jmp short loc_1DA2C18
.text:01DA2C0F ; ---------------------------------------------------------------------------
.text:01DA2C0F
.text:01DA2C0F loc_1DA2C0F: ; CODE XREF: sub_1DA2BC0+42j
.text:01DA2C0F mov ebx, [esp+58h+arg_4]
.text:01DA2C13 cmp ebx, 5
.text:01DA2C16 jnz short loc_1DA2C3A
.text:01DA2C18
.text:01DA2C18 loc_1DA2C18: ; CODE XREF: sub_1DA2BC0+4Dj
.text:01DA2C18 mov esi, [esp+58h+arg_1C]
.text:01DA2C1C cmp esi, 64h
.text:01DA2C1F jz short loc_1DA2C3E
.text:01DA2C21 push edi ; Args
.text:01DA2C22 push offset aWarningPitchSh ; "Warning: pitch shift ignored on stream "...
.text:01DA2C27 call sub_1D39D10
.text:01DA2C2C mov esi, 64h
.text:01DA2C31 add esp, 8
.text:01DA2C34 mov [esp+58h+arg_1C], esi
.text:01DA2C38 jmp short loc_1DA2C3E
.text:01DA2C3A ; ---------------------------------------------------------------------------
.text:01DA2C3A
.text:01DA2C3A loc_1DA2C3A: ; CODE XREF: sub_1DA2BC0+56j
.text:01DA2C3A mov esi, [esp+58h+arg_1C]
.text:01DA2C3E
.text:01DA2C3E loc_1DA2C3E: ; CODE XREF: sub_1DA2BC0+5Fj
.text:01DA2C3E ; sub_1DA2BC0+78j
.text:01DA2C3E fld [esp+58h+arg_10]
.text:01DA2C42 fmul ds:flt_1E4921C
.text:01DA2C48 call __ftol
.text:01DA2C4D mov ecx, eax
.text:01DA2C4F cmp ecx, 0FFh
.text:01DA2C55 mov [esp+58h+arg_10], ecx
.text:01DA2C59 jle short loc_1DA2C75
.text:01DA2C5B push edi ; Args
.text:01DA2C5C push offset aS_startdynamic ; "S_StartDynamicSound: %s volume > 255"
.text:01DA2C61 call sub_1D39D10
.text:01DA2C66 mov [esp+60h+arg_10], 0FFh
.text:01DA2C6E add esp, 8
.text:01DA2C71 mov ecx, [esp+58h+arg_10]
.text:01DA2C75
.text:01DA2C75 loc_1DA2C75: ; CODE XREF: sub_1DA2BC0+99j
.text:01DA2C75 mov eax, [esp+58h+arg_18]
.text:01DA2C79 mov ebp, [esp+58h+arg_0]
.text:01DA2C7D mov edi, eax
.text:01DA2C7F and edi, 20h
.text:01DA2C82 jnz short loc_1DA2C88
.text:01DA2C84 test al, 0C0h
.text:01DA2C86 jz short loc_1DA2CAA
.text:01DA2C88
.text:01DA2C88 loc_1DA2C88: ; CODE XREF: sub_1DA2BC0+C2j
.text:01DA2C88 push eax
.text:01DA2C89 mov eax, dword ptr [esp+5Ch+Source]
.text:01DA2C8D push esi
.text:01DA2C8E push ecx
.text:01DA2C8F push eax
.text:01DA2C90 push ebx
.text:01DA2C91 push ebp
.text:01DA2C92 call sub_1DA2AC0
.text:01DA2C97 add esp, 18h
.text:01DA2C9A test eax, eax
.text:01DA2C9C jnz loc_1DA2F22
.text:01DA2CA2 test edi, edi
.text:01DA2CA4 jnz loc_1DA2F22
.text:01DA2CAA
.text:01DA2CAA loc_1DA2CAA: ; CODE XREF: sub_1DA2BC0+C6j
.text:01DA2CAA test esi, esi
.text:01DA2CAC jnz short loc_1DA2CC3
.text:01DA2CAE push offset aWarningS_start ; "Warning: S_StartDynamicSound Ignored, c"...
.text:01DA2CB3 call sub_1D39D10
.text:01DA2CB8 add esp, 4
.text:01DA2CBB pop edi
.text:01DA2CBC pop esi
.text:01DA2CBD pop ebp
.text:01DA2CBE pop ebx
.text:01DA2CBF add esp, 48h
.text:01DA2CC2 retn
.text:01DA2CC3 ; ---------------------------------------------------------------------------
.text:01DA2CC3
.text:01DA2CC3 loc_1DA2CC3: ; CODE XREF: sub_1DA2BC0+ECj
.text:01DA2CC3 fld dword_1E79844
.text:01DA2CC9 fadd ds:flt_1E4971C
.text:01DA2CCF fild [esp+58h+arg_1C]
.text:01DA2CD3 fstp [esp+58h+arg_1C]
.text:01DA2CD7 fmul [esp+58h+arg_1C]
.text:01DA2CDB fmul ds:flt_1E49700
.text:01DA2CE1 call __ftol
.text:01DA2CE6 mov ecx, dword ptr [esp+58h+Source]
.text:01DA2CEA mov [esp+58h+arg_1C], eax
.text:01DA2CEE push ecx
.text:01DA2CEF push 0
.text:01DA2CF1 push ebx
.text:01DA2CF2 push ebp
.text:01DA2CF3 call sub_1DA25F0
.text:01DA2CF8 mov esi, eax
.text:01DA2CFA mov eax, dword_26E451C
.text:01DA2CFF add esp, 10h
.text:01DA2D02 test eax, eax
.text:01DA2D04 jz loc_1DA2D8E
.text:01DA2D0A mov edx, esi
.text:01DA2D0C mov eax, 38E38E39h
.text:01DA2D11 sub edx, offset dword_26FBD40
.text:01DA2D17 mul edx
.text:01DA2D19 mov edi, edx
.text:01DA2D1B shr edi, 4
.text:01DA2D1E call sub_1D5ECE0
.text:01DA2D23 add eax, 4
.text:01DA2D26 cmp edi, eax
.text:01DA2D28 jge short loc_1DA2D8E
.text:01DA2D2A push 1
.text:01DA2D2C push edi
.text:01DA2D2D call sub_1D5EA70
.text:01DA2D32 add esp, 8
.text:01DA2D35 test eax, eax
.text:01DA2D37 jz short loc_1DA2D66
.text:01DA2D39 lea ecx, [ebp+ebp*2+0]
.text:01DA2D3D mov ebx, dword_1EAFBFC
.text:01DA2D43 xor edx, edx
.text:01DA2D45 lea ecx, [ecx+ecx*4]
.text:01DA2D48 lea ecx, [ecx+ecx*4]
.text:01DA2D4B lea ecx, [ecx+ecx*4]
.text:01DA2D4E cmp [ebx+ecx*8+308h], edx
.text:01DA2D55 setz dl
.text:01DA2D58 push edx
.text:01DA2D59 push eax
.text:01DA2D5A call sub_1DE2220
.text:01DA2D5F mov ebx, [esp+60h+arg_4]
.text:01DA2D63 add esp, 8
.text:01DA2D66
.text:01DA2D66 loc_1DA2D66: ; CODE XREF: sub_1DA2BC0+177j
.text:01DA2D66 push edi
.text:01DA2D67 call sub_1D5EB20
.text:01DA2D6C add esp, 4
.text:01DA2D6F cmp eax, 6 ; switch 7 cases
.text:01DA2D72 ja short loc_1DA2D83 ; jumptable 01DA2D74 default case
.text:01DA2D74 jmp ds:off_1DA2F2C[eax*4] ; switch jump
.text:01DA2D7B
.text:01DA2D7B loc_1DA2D7B: ; DATA XREF: .text:off_1DA2F2Co
.text:01DA2D7B push 6 ; jumptable 01DA2D74 cases 2,6
.text:01DA2D7D jmp short loc_1DA2D85
.text:01DA2D7F ; ---------------------------------------------------------------------------
.text:01DA2D7F
.text:01DA2D7F loc_1DA2D7F: ; CODE XREF: sub_1DA2BC0+1B4j
.text:01DA2D7F ; DATA XREF: .text:off_1DA2F2Co
.text:01DA2D7F push 7 ; jumptable 01DA2D74 case 3
.text:01DA2D81 jmp short loc_1DA2D85
.text:01DA2D83 ; ---------------------------------------------------------------------------
.text:01DA2D83
.text:01DA2D83 loc_1DA2D83: ; CODE XREF: sub_1DA2BC0+1B2j
.text:01DA2D83 ; sub_1DA2BC0+1B4j
.text:01DA2D83 ; DATA XREF: ...
.text:01DA2D83 push 5 ; jumptable 01DA2D74 default case
.text:01DA2D85
.text:01DA2D85 loc_1DA2D85: ; CODE XREF: sub_1DA2BC0+1BDj
.text:01DA2D85 ; sub_1DA2BC0+1C1j
.text:01DA2D85 push edi
.text:01DA2D86 call sub_1D5EB50
.text:01DA2D8B add esp, 8
.text:01DA2D8E
.text:01DA2D8E loc_1DA2D8E: ; CODE XREF: sub_1DA2BC0+144j
.text:01DA2D8E ; sub_1DA2BC0+168j
.text:01DA2D8E test esi, esi
.text:01DA2D90 jz loc_1DA2F22
.text:01DA2D96 mov edi, dword ptr [esp+58h+Source]
.text:01DA2D9A mov al, [edi]
.text:01DA2D9C cmp al, 21h
.text:01DA2D9E jz short loc_1DA2DA4
.text:01DA2DA0 cmp al, 23h
.text:01DA2DA2 jnz short loc_1DA2DAC
.text:01DA2DA4
.text:01DA2DA4 loc_1DA2DA4: ; CODE XREF: sub_1DA2BC0+1DEj
.text:01DA2DA4 mov dword ptr [esp+58h+var_48], 1
.text:01DA2DAC
.text:01DA2DAC loc_1DA2DAC: ; CODE XREF: sub_1DA2BC0+1E2j
.text:01DA2DAC push 48h
.text:01DA2DAE push 0
.text:01DA2DB0 push esi
.text:01DA2DB1 call sub_1D365F0
.text:01DA2DB6 fld [esp+64h+arg_14]
.text:01DA2DBA fdiv flt_1E838C4
.text:01DA2DC0 mov eax, [esp+64h+arg_C]
.text:01DA2DC4 push esi
.text:01DA2DC5 mov [esi+18h], ebp
.text:01DA2DC8 mov [esi+1Ch], ebx
.text:01DA2DCB mov ecx, [eax]
.text:01DA2DCD mov edx, [eax+4]
.text:01DA2DD0 mov eax, [eax+8]
.text:01DA2DD3 mov [esi+20h], ecx
.text:01DA2DD6 mov ecx, [esp+68h+arg_10]
.text:01DA2DDA mov [esi+24h], edx
.text:01DA2DDD mov edx, [esp+68h+arg_1C]
.text:01DA2DE4 mov [esi+28h], eax
.text:01DA2DE7 mov [esi+30h], ecx
.text:01DA2DEA mov [esi+3Ch], edx
.text:01DA2DED mov dword ptr [esi+34h], 0FFFFFFFFh
.text:01DA2DF4 fstp dword ptr [esi+2Ch]
.text:01DA2DF7 call sub_1DA27B0
.text:01DA2DFC mov eax, [esi+4]
.text:01DA2DFF add esp, 10h
.text:01DA2E02 test eax, eax
.text:01DA2E04 jnz short loc_1DA2E20
.text:01DA2E06 mov eax, [esi+8]
.text:01DA2E09 test eax, eax
.text:01DA2E0B jnz short loc_1DA2E20
.text:01DA2E0D cmp ebx, 5
.text:01DA2E10 jz short loc_1DA2E20
.text:01DA2E12 mov dword ptr [esi], 0
.text:01DA2E18 pop edi
.text:01DA2E19 pop esi
.text:01DA2E1A pop ebp
.text:01DA2E1B pop ebx
.text:01DA2E1C add esp, 48h
.text:01DA2E1F retn
.text:01DA2E20 ; ---------------------------------------------------------------------------
.text:01DA2E20
.text:01DA2E20 loc_1DA2E20: ; CODE XREF: sub_1DA2BC0+244j
.text:01DA2E20 ; sub_1DA2BC0+24Bj ...
.text:01DA2E20 mov eax, dword ptr [esp+58h+var_48]
.text:01DA2E24 test eax, eax
.text:01DA2E26 jz short loc_1DA2E4D
.text:01DA2E28 inc edi
.text:01DA2E29 push 3Fh
.text:01DA2E2B lea eax, [esp+5Ch+Args]
.text:01DA2E2F push edi
.text:01DA2E30 push eax
.text:01DA2E31 call sub_1D36720
.text:01DA2E36 lea ecx, [esp+64h+Args]
.text:01DA2E3A mov [esp+64h+var_1], 0
.text:01DA2E3F push ecx ; Args
.text:01DA2E40 push esi ; int
.text:01DA2E41 call sub_1DA8690
.text:01DA2E46 add esp, 14h
.text:01DA2E49 mov edi, eax
.text:01DA2E4B jmp short loc_1DA2E5F
.text:01DA2E4D ; ---------------------------------------------------------------------------
.text:01DA2E4D
.text:01DA2E4D loc_1DA2E4D: ; CODE XREF: sub_1DA2BC0+266j
.text:01DA2E4D push esi ; int
.text:01DA2E4E push edi ; Source
.text:01DA2E4F call sub_1DA4770
.text:01DA2E54 mov edx, dword ptr [esp+60h+Source]
.text:01DA2E58 add esp, 8
.text:01DA2E5B mov edi, eax
.text:01DA2E5D mov [esi], edx
.text:01DA2E5F
.text:01DA2E5F loc_1DA2E5F: ; CODE XREF: sub_1DA2BC0+28Bj
.text:01DA2E5F test edi, edi
.text:01DA2E61 jnz short loc_1DA2E6D
.text:01DA2E63 mov [esi], edi
.text:01DA2E65 pop edi
.text:01DA2E66 pop esi
.text:01DA2E67 pop ebp
.text:01DA2E68 pop ebx
.text:01DA2E69 add esp, 48h
.text:01DA2E6C retn
.text:01DA2E6D ; ---------------------------------------------------------------------------
.text:01DA2E6D
.text:01DA2E6D loc_1DA2E6D: ; CODE XREF: sub_1DA2BC0+2A1j
.text:01DA2E6D mov eax, [edi]
.text:01DA2E6F mov ecx, dword_26FA880
.text:01DA2E75 add eax, ecx
.text:01DA2E77 mov dword ptr [esi+10h], 0
.text:01DA2E7E mov [esi+0Ch], eax
.text:01DA2E81 mov eax, dword ptr [esp+58h+var_48]
.text:01DA2E85 test eax, eax
.text:01DA2E87 jnz short loc_1DA2E9C
.text:01DA2E89 mov eax, [esp+58h+arg_1C]
.text:01DA2E8D cmp eax, 64h
.text:01DA2E90 jz short loc_1DA2E9C
.text:01DA2E92 push eax
.text:01DA2E93 push esi
.text:01DA2E94 call sub_1DA8600
.text:01DA2E99 add esp, 8
.text:01DA2E9C
.text:01DA2E9C loc_1DA2E9C: ; CODE XREF: sub_1DA2BC0+2C7j
.text:01DA2E9C ; sub_1DA2BC0+2D0j
.text:01DA2E9C push edi
.text:01DA2E9D push esi
.text:01DA2E9E call sub_1DA8F70
.text:01DA2EA3 push ebx
.text:01DA2EA4 push ebp
.text:01DA2EA5 call sub_1DA7F90
.text:01DA2EAA add esp, 10h
.text:01DA2EAD mov eax, offset unk_26FBE60
.text:01DA2EB2 mov ecx, 4
.text:01DA2EB7
.text:01DA2EB7 loc_1DA2EB7: ; CODE XREF: sub_1DA2BC0+313j
.text:01DA2EB7 cmp eax, esi
.text:01DA2EB9 jz short loc_1DA2ECC
.text:01DA2EBB mov edx, dword ptr [esp+58h+Source]
.text:01DA2EBF mov edi, [eax]
.text:01DA2EC1 cmp edi, edx
.text:01DA2EC3 jnz short loc_1DA2ECC
.text:01DA2EC5 mov edx, [eax+10h]
.text:01DA2EC8 test edx, edx
.text:01DA2ECA jz short loc_1DA2EDD
.text:01DA2ECC
.text:01DA2ECC loc_1DA2ECC: ; CODE XREF: sub_1DA2BC0+2F9j
.text:01DA2ECC ; sub_1DA2BC0+303j
.text:01DA2ECC inc ecx
.text:01DA2ECD add eax, 48h
.text:01DA2ED0 cmp ecx, 0Ch
.text:01DA2ED3 jl short loc_1DA2EB7
.text:01DA2ED5 pop edi
.text:01DA2ED6 pop esi
.text:01DA2ED7 pop ebp
.text:01DA2ED8 pop ebx
.text:01DA2ED9 add esp, 48h
.text:01DA2EDC retn
.text:01DA2EDD ; ---------------------------------------------------------------------------
.text:01DA2EDD
.text:01DA2EDD loc_1DA2EDD: ; CODE XREF: sub_1DA2BC0+30Aj
.text:01DA2EDD mov eax, dword_243F758
.text:01DA2EE2 mov ecx, [eax+20h]
.text:01DA2EE5 mov [esp+58h+arg_1C], ecx
.text:01DA2EE9 fild [esp+58h+arg_1C]
.text:01DA2EED fstp [esp+58h+var_48]
.text:01DA2EF1 fld [esp+58h+var_48]
.text:01DA2EF5 fmul ds:dbl_1E49910
.text:01DA2EFB call __ftol
.text:01DA2F00 push eax
.text:01DA2F01 push 0
.text:01DA2F03 call sub_1D84D70
.text:01DA2F08 mov ecx, [esi+0Ch]
.text:01DA2F0B add esp, 8
.text:01DA2F0E cmp eax, ecx
.text:01DA2F10 jl short loc_1DA2F15
.text:01DA2F12 lea eax, [ecx-1]
.text:01DA2F15
.text:01DA2F15 loc_1DA2F15: ; CODE XREF: sub_1DA2BC0+350j
.text:01DA2F15 mov edi, [esi+10h]
.text:01DA2F18 add edi, eax
.text:01DA2F1A sub ecx, eax
.text:01DA2F1C mov [esi+10h], edi
.text:01DA2F1F mov [esi+0Ch], ecx
.text:01DA2F22
.text:01DA2F22 loc_1DA2F22: ; CODE XREF: sub_1DA2BC0+16j
.text:01DA2F22 ; sub_1DA2BC0+22j ...
.text:01DA2F22 pop edi
.text:01DA2F23 pop esi
.text:01DA2F24 pop ebp
.text:01DA2F25 pop ebx
.text:01DA2F26 add esp, 48h
.text:01DA2F29 retn
.text:01DA2F29 sub_1DA2BC0 endp