Function at 0x6f252f60
Capabilities:
Access peb ldr_data
Extract resource via kernel32 functions
Get ntdll base address
Get number of processors
Get process heap flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x268
mov eax, dword [ecx]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x23c], eax
test byte [0x6f2661e0], 8
jne 0x6f253580
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 4]
mov edx, eax
not edx
mov dword [ebp - 0x240], ebx
and edx, 0x40004
je 0x6f253720
test al, 4
jne 0x6f253458
test eax, 0x10000
jne 0x6f253030
test eax, 0x20000
jne 0x6f25391c
lea esi, [ebp - 0x22c]
test eax, 0x30004
je 0x6f2534d5
test byte [0x6f2661e0], 8
je 0x6f2530c0
mov eax, dword [ebp - 0x23c]
mov edx, dword [eax + 4]
mov dword [ebp - 0x244], 0
xor edi, edi
mov ebx, 0x6f26bc71
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x240], 0
jmp 0x6f2535f1
mov edi, dword [ebp - 0x23c]
mov ecx, eax
not ecx
and ecx, 0x110000
mov edx, dword [edi + 4]
jne 0x6f2530f8
and eax, 0xffefffff
mov dword [edi + 0xc], eax
cmp edx, 0x2a53
je 0x6f2530e8
cmp edx, 0x4453
je 0x6f253a53
cmp edx, 0x2153
je 0x6f253a6a
cmp edx, 0x4553
je 0x6f2539e3
cmp edx, 0x4853
je 0x6f253b47
cmp edx, 0x3f53
je 0x6f253cf7
cmp edx, 0x5353
je 0x6f253d66
cmp edx, 0x5753
je 0x6f253d4f
test byte [0x6f2661e0], 8
jne 0x6f253003
nop
mov dword [ebp - 0x244], 0
xor edi, edi
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x240], 0
jmp 0x6f253624
mov dword [edi + 4], str.SystemAsterisk
mov edx, str.SystemAsterisk
lea esi, [esi]
call fcn.6f252ae0
mov edi, eax
test eax, eax
je 0x6f253900
mov eax, dword [ebp - 0x23c]
lea esi, [ebp - 0x22c]
mov eax, dword [eax + 0xc]
test eax, 0x30004
je 0x6f2534d5
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], edi
call sym.winmm.dll_mmioDescend
sub esp, 0x10
mov dword [ebp - 0x244], eax
test eax, eax
jne 0x6f2535b8
test byte [0x6f2661e0], 8
jne 0x6f253880
cmp dword [ebp - 0x22c], 0x46464952
jne 0x6f2537b0
cmp dword [ebp - 0x224], 0x45564157
jne 0x6f253818
mov dword [ebp - 0x218], 0x20746d66
lea edx, [ebp - 0x218]
mov dword [esp + 4], edx
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], esi
mov dword [ebp - 0x240], edx
mov dword [esp], edi
call sym.winmm.dll_mmioDescend
mov edx, dword [ebp - 0x240]
sub esp, 0x10
test eax, eax
jne 0x6f2538cc
test byte [0x6f2661e0], 8
jne 0x6f253996
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x244], edx
mov eax, dword fs:[0x18]
mov dword [esp + 4], 0
mov ebx, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov edx, dword [ebp - 0x244]
sub esp, 0xc
test eax, eax
mov dword [ebp - 0x240], eax
je 0x6f25379c
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0x244], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x240]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym.winmm.dll_mmioRead
mov edx, dword [ebp - 0x244]
sub esp, 0xc
cmp eax, 0xf
jle 0x6f253970
test byte [0x6f2661e0], 8
jne 0x6f253b5e
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [ebp - 0x244], edx
mov dword [esp], edi
call sym.winmm.dll_mmioAscend
mov dword [ebp - 0x218], 0x61746164
sub esp, 0xc
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], esi
mov edx, dword [ebp - 0x244]
mov dword [esp + 4], edx
mov dword [ebp - 0x248], edx
mov dword [esp], edi
call sym.winmm.dll_mmioDescend
mov edx, dword [ebp - 0x248]
sub esp, 0x10
test eax, eax
mov dword [ebp - 0x244], eax
jne 0x6f253970
test byte [0x6f2661e0], 8
jne 0x6f253d0e
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_CreateEventW]
sub esp, 0x10
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x234], eax
test eax, eax
je 0x6f253da7
mov eax, dword [0x6f27a528]
mov dword [ebp - 0x250], eax
test eax, eax
jne 0x6f253b1d
lea eax, [ebp - 0x234]
mov dword [esp + 0x14], 0x30000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x6f252e90
mov eax, dword [ebp - 0x240]
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], eax
lea eax, [ebp - 0x238]
mov dword [esp], eax
call sym.winmm.dll_waveOutOpen
sub esp, 0x18
test eax, eax
jne 0x6f253b1d
mov eax, dword [ebp - 0x240]
mov edx, 0xaaaaaaab
movzx ecx, word [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [ebp - 0x244], eax
mul edx
mov eax, edx
xor edx, edx
shr eax, 1
sub eax, 1
div ecx
add eax, 1
imul eax, ecx
mov esi, eax
mov dword [ebp - 0x24c], eax
lea edx, [esi + esi + 0x40]
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov dword [ebp - 0x248], eax
test eax, eax
je 0x6f254000
mov esi, dword [ebp - 0x248]
mov ebx, dword [ebp - 0x24c]
lea eax, [esi + 0x40]
mov dword [esi + 0x34], 0
mov dword [esi], eax
lea eax, [esi + ebx + 0x40]
mov dword [esi + 0x20], eax
mov dword [esi + 0x14], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x24], ebx
mov dword [esi + 4], ebx
mov dword [esp + 8], 0x20
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym.winmm.dll_waveOutPrepareHeader
sub esp, 0xc
mov dword [ebp - 0x244], eax
test eax, eax
je 0x6f253db9
mov dword [ebp - 0x244], 0
test byte [0x6f2661e0], 8
je 0x6f253624
mov eax, dword [ebp - 0x23c]
mov ebx, 0x6f26bc71
mov edx, dword [eax + 4]
jmp 0x6f2535f1
lea edx, [ebp - 0x218]
xor eax, eax
mov ecx, 0x12
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x214], 0x204d454d
mov dword [ebp - 0x204], 0xffffffff
mov dword [ebp - 0x200], eax
test byte [0x6f2661e0], 8
jne 0x6f2537d8
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov dword [esp], 0
call sym.winmm.dll_mmioOpenW
mov edi, eax
mov eax, dword [ebp - 0x23c]
sub esp, 0xc
mov eax, dword [eax + 0xc]
test edi, edi
je 0x6f252fca
lea esi, [ebp - 0x22c]
test eax, 0x30004
jne 0x6f253121
mov edx, dword [ebp - 0x23c]
or eax, 2
mov edx, dword [edx + 4]
call fcn.6f252ae0
mov edi, eax
test eax, eax
jne 0x6f253121
mov eax, dword [ebp - 0x23c]
mov ebx, dword [eax + 4]
mov dword [esp + 8], 0x10020
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym.winmm.dll_mmioOpenW
sub esp, 0xc
mov edi, eax
test eax, eax
jne 0x6f253121
lea edi, [ebp - 0x218]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], str..wav
mov dword [esp + 4], ebx
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_SearchPathW]
sub esp, 0x18
test eax, eax
jne 0x6f253d7d
mov eax, dword [ebp - 0x23c]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0xc]
call fcn.6f252ae0
mov edi, eax
test edi, edi
jne 0x6f253121
jmp 0x6f252fed
mov eax, dword [eax + 4]
call fcn.6f2527f0
mov dword [esp + 0xc], str.SoundName_s___n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
call fcn.6f252a90
jmp 0x6f252fa0
test byte [0x6f2661e0], 8
je 0x6f2537b0
mov eax, dword [ebp - 0x23c]
mov ebx, 0x6f26bc71
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x240], 0
mov edx, dword [eax + 4]
mov eax, edx
call fcn.6f2527f0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Done_playing_s____s__n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
call fcn.6f252a90
mov esi, dword [ebp - 0x240]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], esi
mov eax, dword [eax + 0x30]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x238]
sub esp, 0xc
test eax, eax
je 0x6f2536b2
mov dword [esp], 0x6f266460
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x23c]
sub esp, 4
mov dword [eax + 0x10], 0
mov dword [esp], 0x6f266460
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov ebx, dword [sym.imp.kernel32.dll_Sleep]
sub esp, 4
jmp 0x6f25369c
mov dword [esp], 0x64
call ebx
sub esp, 4
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym.winmm.dll_waveOutClose
sub esp, 4
cmp eax, 0x21
je 0x6f253690
mov eax, dword [ebp - 0x234]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov ebx, dword [ebp - 0x248]
sub esp, 4
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], ebx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
test edi, edi
je 0x6f253701
mov dword [esp + 4], 0
mov dword [esp], edi
call sym.winmm.dll_mmioClose
sub esp, 8
mov eax, dword [ebp - 0x23c]
call fcn.6f2526f0
mov eax, dword [ebp - 0x244]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 4
mov dword [esp + 8], str.WAVE
mov dword [esp + 4], ebx
mov eax, dword [ecx + 8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindResourceW]
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x6f253838
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x23c]
mov eax, dword [eax + 8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LoadResource]
sub esp, 8
mov edi, eax
test eax, eax
je 0x6f253838
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LockResource]
sub esp, 4
mov dword [ebp - 0x240], eax
mov dword [esp], edi
test eax, eax
je 0x6f253a81
call dword [sym.imp.kernel32.dll_FreeResource]
mov eax, dword [ebp - 0x23c]
sub esp, 4
mov eax, dword [eax + 0xc]
jmp 0x6f252fc2
test byte [0x6f2661e0], 8
jne 0x6f253af6
lea esi, [esi]
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x240], 0
jmp 0x6f253624
mov dword [ebp - 0x244], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Memory_sound__p_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
call fcn.6f252a90
mov edx, dword [ebp - 0x244]
jmp 0x6f253496
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x240], 0
jmp 0x6f253624
test byte [0x6f2661e0], 8
je 0x6f2530c0
mov eax, dword [ebp - 0x23c]
mov ebx, 0x6f26bc71
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x244], 0
mov edx, dword [eax + 4]
jmp 0x6f2535f1
mov eax, dword [ebp - 0x228]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.ParentChunk_ckid_.4s_fccType_.4s_cksize_08lX_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x224]
mov dword [esp + 0x14], eax
mov dword [esp], 3
call fcn.6f252a90
cmp dword [ebp - 0x22c], 0x46464952
je 0x6f253952
test byte [0x6f2661e0], 8
je 0x6f2537b0
mov eax, dword [ebp - 0x23c]
mov ebx, 0x6f26bc71
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x240], 0
mov edx, dword [eax + 4]
jmp 0x6f2535f1
mov esi, dword [ebp - 0x23c]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x240], eax
and eax, 0xfffeffff
or eax, 0x20000
mov dword [esi + 0xc], eax
mov esi, dword [ebp - 0x23c]
mov ebx, dword [esi + 4]
mov dword [esp + 8], 0x10020
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym.winmm.dll_mmioOpenW
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x6f2539fa
mov eax, dword [esi + 0xc]
jmp 0x6f2534c4
cmp dword [ebp - 0x224], 0x45564157
jne 0x6f2538cc
jmp 0x6f25317b
test byte [0x6f2661e0], 8
jne 0x6f253af6
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x248], 0
jmp 0x6f253624
mov eax, dword [ebp - 0x214]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x210]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [ebp - 0x240], edx
mov dword [esp + 0xc], str.Chunk_Found_ckid_.4s_fccType_08lx_cksize_08lX_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
call fcn.6f252a90
mov edx, dword [ebp - 0x240]
jmp 0x6f2531c7
mov esi, dword [ebp - 0x23c]
mov edx, str.SystemExit
mov dword [esi + 4], str.SystemExit
jmp 0x6f2530f8
lea esi, [ebp - 0x22c]
mov dword [esp + 0xc], 0x100
lea edi, [ebp - 0x218]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov dword [esp + 8], str..wav
mov dword [esp + 4], ebx
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_SearchPathW]
sub esp, 0x18
test eax, eax
jne 0x6f253ac0
mov eax, dword [ebp - 0x23c]
mov eax, dword [eax + 0xc]
test eax, 0x30004
jne 0x6f252fed
jmp 0x6f2534d5
mov edi, dword [ebp - 0x23c]
mov edx, str.SystemDefault
mov dword [edi + 4], str.SystemDefault
jmp 0x6f2530f8
mov edi, dword [ebp - 0x23c]
mov edx, str.SystemExclamation
mov dword [edi + 4], str.SystemExclamation
jmp 0x6f2530f8
call dword [sym.imp.kernel32.dll_FreeResource]
sub esp, 4
test byte [0x6f2661e0], 8
je 0x6f2530c0
mov eax, dword [ebp - 0x23c]
xor edi, edi
mov dword [ebp - 0x248], 0
mov ebx, 0x6f26bc71
mov dword [ebp - 0x244], 0
mov edx, dword [eax + 4]
jmp 0x6f2535f1
mov dword [esp], edi
mov dword [esp + 8], 0x10020
mov dword [esp + 4], 0
call sym.winmm.dll_mmioOpenW
mov edi, eax
mov eax, dword [ebp - 0x23c]
sub esp, 0xc
mov eax, dword [eax + 0xc]
test eax, 0x30004
jne 0x6f25356b
jmp 0x6f2534d5
mov eax, dword [ebp - 0x23c]
mov ebx, 0x6f26bc71
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x248], 0
mov edx, dword [eax + 4]
jmp 0x6f2535f1
test byte [0x6f2661e0], 8
je 0x6f25397d
mov eax, dword [ebp - 0x23c]
mov ebx, 0x6f26bc71
mov dword [ebp - 0x248], 0
mov edx, dword [eax + 4]
jmp 0x6f2535f1
mov edi, dword [ebp - 0x23c]
mov edx, str.SystemHand
mov dword [edi + 4], str.SystemHand
jmp 0x6f2530f8
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x244], edx
movzx eax, word [eax]
mov dword [esp + 0xc], str.wFormatTag_04X___n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6f252a90
test byte [0x6f2661e0], 8
mov edx, dword [ebp - 0x244]
je 0x6f25324e
mov eax, dword [ebp - 0x240]
movzx eax, word [eax + 2]
mov dword [esp + 0xc], str.nChannels_d_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6f252a90
test byte [0x6f2661e0], 8
mov edx, dword [ebp - 0x244]
je 0x6f25324e
mov eax, dword [ebp - 0x240]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], str.nSamplesPerSec_ld_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6f252a90
test byte [0x6f2661e0], 8
mov edx, dword [ebp - 0x244]
je 0x6f25324e
mov eax, dword [ebp - 0x240]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], str.nAvgBytesPerSec_ld_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6f252a90
test byte [0x6f2661e0], 8
mov edx, dword [ebp - 0x244]
je 0x6f25324e
mov eax, dword [ebp - 0x240]
movzx eax, word [eax + 0xc]
mov dword [esp + 0xc], str.nBlockAlign_d_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6f252a90
test byte [0x6f2661e0], 8
mov edx, dword [ebp - 0x244]
je 0x6f25324e
mov eax, dword [ebp - 0x240]
movzx eax, word [eax + 0xe]
mov dword [esp + 0xc], str.wBitsPerSample_u___n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6f252a90
mov edx, dword [ebp - 0x244]
jmp 0x6f25324e
mov edi, dword [ebp - 0x23c]
mov edx, str.SystemQuestion
mov dword [edi + 4], str.SystemQuestion
jmp 0x6f2530f8
mov eax, dword [ebp - 0x214]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x210]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Chunk_Found_ckid_.4s_fccType_08lx_cksize_08lX_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 3
call fcn.6f252a90
jmp 0x6f2532bd
mov edi, dword [ebp - 0x23c]
mov edx, str.SystemWelcome
mov dword [edi + 4], str.SystemWelcome
jmp 0x6f2530f8
mov edi, dword [ebp - 0x23c]
mov edx, str.SystemStart
mov dword [edi + 4], str.SystemStart
jmp 0x6f2530f8
mov dword [esp], edi
mov dword [esp + 8], 0x10020
mov dword [esp + 4], 0
call sym.winmm.dll_mmioOpenW
sub esp, 0xc
mov edi, eax
test eax, eax
jne 0x6f253121
jmp 0x6f253558
test byte [0x6f2661e0], 8
je 0x6f25397d
jmp 0x6f253440
mov eax, dword [ebp - 0x248]
mov dword [esp + 8], 0x20
lea esi, [eax + 0x20]
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym.winmm.dll_waveOutPrepareHeader
sub esp, 0xc
test eax, eax
jne 0x6f253fee
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x254], esi
mov ebx, dword [ebp - 0x23c]
mov dword [ebp - 0x244], edi
mov dword [ebp - 0x230], 1
mov esi, dword [ebp - 0x250]
mov dword [ebx + 0x10], eax
mov ebx, dword [ebp - 0x214]
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x20c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x244]
mov dword [esp], eax
call sym.winmm.dll_mmioSeek
sub esp, 0xc
lea esi, [esi]
nop
test ebx, ebx
je 0x6f253f28
mov edx, dword [0x6f27a528]
test edx, edx
jne 0x6f253f1f
mov eax, dword [ebp - 0x248]
mov edx, esi
shl edx, 5
lea edi, [eax + edx]
mov eax, dword [ebp - 0x24c]
cmp eax, ebx
cmovg eax, ebx
mov dword [esp + 8], eax
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x244]
mov dword [esp], eax
call sym.winmm.dll_mmioRead
sub esp, 0xc
test eax, eax
jle 0x6f253f28
mov dword [edi + 4], eax
sub ebx, eax
mov dword [esp + 8], 0x20
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym.winmm.dll_waveOutWrite
sub esp, 0xc
test eax, eax
jne 0x6f253ef2
xor esi, 1
lea esi, [esi]
nop
lock sub dword [ebp - 0x230], 1
jns 0x6f253e40
lock add dword [ebp - 0x230], 1
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebp - 0x234]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
sub esp, 8
jmp 0x6f253ec0
test byte [0x6f2661e0], 2
je 0x6f253f1f
mov dword [esp + 0xc], str.Aborting_play_loop__waveOutWrite_error_n
mov dword [esp + 8], str.proc_PlaySound
mov dword [esp + 4], 0x6f2661e0
mov dword [esp], 1
call fcn.6f252a90
mov eax, dword [ebp - 0x23c]
and byte [eax], 0xfe
mov eax, dword [ebp - 0x23c]
test byte [eax], 1
jne 0x6f253e12
mov esi, dword [ebp - 0x254]
mov edi, dword [ebp - 0x244]
mov ebx, dword [sym.imp.kernel32.dll_WaitForSingleObject]
jmp 0x6f253f69
lock add dword [ebp - 0x230], 1
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebp - 0x234]
mov dword [esp], eax
call ebx
sub esp, 8
lock sub dword [ebp - 0x230], 1
js 0x6f253f4b
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym.winmm.dll_waveOutReset
sub esp, 4
mov dword [esp + 8], 0x20
mov eax, dword [ebp - 0x248]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym.winmm.dll_waveOutUnprepareHeader
sub esp, 0xc
mov dword [esp + 8], 0x20
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym.winmm.dll_waveOutUnprepareHeader
mov dword [ebp - 0x244], 1
sub esp, 0xc
test byte [0x6f2661e0], 8
je 0x6f253624
mov eax, dword [ebp - 0x23c]
mov ebx, 0x6f26bc6e
mov edx, dword [eax + 4]
jmp 0x6f2535f1
test byte [0x6f2661e0], 8
je 0x6f253624
jmp 0x6f253440
test byte [0x6f2661e0], 8
je 0x6f25397d
mov eax, dword [ebp - 0x23c]
xor ecx, ecx
mov ebx, 0x6f26bc71
mov dword [ebp - 0x244], ecx
mov edx, dword [eax + 4]
jmp 0x6f2535f1