Function at 0x473500
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x48
push ebx
push ebp
mov ebp, dword [esp + 0x58]
push esi
mov esi, ecx
xor ebx, ebx
cmp ebp, ebx
push edi
mov dword [esi + 0x190], eax
mov dword [esi + 0x194], ebx
je 0x473557
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
push 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
push str..wav
lea edi, [ecx + ebp - 4]
push edi
call fcn.00494350
add esp, 0xc
test eax, eax
jne 0x473557
push 4
push str..wag
push edi
call fcn.00492830
add esp, 0xc
cmp dword [esi + 0x190], 1
jne 0x4736de
cmp ebp, ebx
jne 0x473577
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
add esp, 0x48
ret 0xc
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x47358a
push eax
call fcn.0049354e
add esp, 4
mov dword [esi + 4], ebx
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x47359d
push eax
call fcn.0049354e
add esp, 4
mov dword [esi + 8], ebx
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x4735b0
push eax
call fcn.0049354e
add esp, 4
mov dword [esi + 0xc], ebx
push 0x10000
push ebx
push ebp
call dword [sym.imp.WINMM.dll_mmioOpenA]
cmp eax, ebx
mov dword [esi + 0x10], eax
jne 0x473690
mov ebx, dword [esp + 0x5c]
push str.WAVE
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
test edi, edi
jne 0x473601
push 0x607170
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
test edi, edi
jne 0x473601
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
add esp, 0x48
ret 0xc
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
mov dword [esp + 0x64], eax
jne 0x473620
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
add esp, 0x48
ret 0xc
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
test ebx, ebx
jne 0x47363d
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
add esp, 0x48
ret 0xc
mov ecx, dword [esp + 0x64]
push ecx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edx, eax
test edx, edx
jne 0x47365d
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
add esp, 0x48
ret 0xc
mov ecx, 0x12
xor eax, eax
lea edi, [esp + 0x10]
push 0x10000
rep stosd dword es:[edi], eax
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x20], 0x204d454d
mov dword [esp + 0x30], ebx
call dword [sym.imp.WINMM.dll_mmioOpenA]
mov dword [esi + 0x10], eax
xor ebx, ebx
mov ecx, esi
call fcn.00473740
mov edi, eax
push ebx
cmp edi, ebx
jge 0x4736b4
mov eax, dword [esi + 0x10]
push eax
call dword [sym.imp.WINMM.dll_mmioClose]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0xc
mov ecx, esi
call fcn.00473960
mov edi, eax
cmp edi, ebx
jl 0x473732
mov ecx, dword [esi + 0x18]
push ebp
mov dword [esi + 0x3c], ecx
add esi, 0x44
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0xc
push 0x11002
push ebx
push ebp
call dword [sym.imp.WINMM.dll_mmioOpenA]
cmp eax, ebx
mov dword [esi + 0x10], eax
jne 0x473701
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
add esp, 0x48
ret 0xc
mov edx, dword [esi + 4]
mov ecx, esi
push edx
call fcn.00473cb0
mov edi, eax
push ebx
cmp edi, ebx
jge 0x473729
mov eax, dword [esi + 0x10]
push eax
call dword [sym.imp.WINMM.dll_mmioClose]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0xc
mov ecx, esi
call fcn.00473960
mov edi, eax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0xc