Function at 0x43a9d0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
sub esp, 0x64
mov eax, dword [0x507b40]
xor eax, esp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x70]
push ebx
mov ebx, dword [esp + 0x70]
push ebp
push esi
mov esi, dword [esp + 0x74]
push edi
mov edi, ecx
mov dword [edi + 0x7c], eax
mov dword [edi + 0x80], 0
cmp eax, 1
jne 0x43ab42
test esi, esi
jne 0x43aa24
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00498846
add esp, 0x64
ret 0xc
mov eax, dword [edi]
test eax, eax
je 0x43aa39
push eax
call fcn.0049889b
add esp, 4
mov dword [edi], 0
push 0x10000
push 0
push esi
call dword [sym.imp.WINMM.dll_mmioOpenA]
mov dword [edi + 4], eax
test eax, eax
jne 0x43aaf7
mov ebp, dword [sym.imp.KERNEL32.dll_FindResourceA]
push str.WAVE
push esi
push eax
call ebp
mov ebx, eax
test ebx, ebx
jne 0x43aa7a
push 0x4cb330
push esi
push eax
call ebp
mov ebx, eax
test ebx, ebx
je 0x43ac3a
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
test esi, esi
je 0x43ac3a
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
test ebx, ebx
je 0x43ac3a
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebp, eax
test ebp, ebp
je 0x43ac3a
push ebx
call fcn.00498892
push ebx
mov esi, eax
push ebp
push esi
call fcn.0049bcf0
push 0x48
lea eax, [esp + 0x28]
push 0
push eax
call fcn.0049c270
add esp, 0x1c
mov dword [esp + 0x18], 0x204d454d
lea eax, [esp + 0x14]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], esi
push 0x10000
push eax
push 0
call dword [sym.imp.WINMM.dll_mmioOpenA]
mov dword [edi + 4], eax
mov ecx, edi
call fcn.0043af00
mov esi, eax
test esi, esi
jns 0x43ab26
push 0
push dword [edi + 4]
call dword [sym.imp.WINMM.dll_mmioClose]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00498846
add esp, 0x64
ret 0xc
mov ecx, edi
call fcn.0043b0b0
mov ecx, eax
test ecx, ecx
js 0x43ac5d
mov eax, dword [edi + 0xc]
mov dword [edi + 0x30], eax
jmp 0x43ac5d
push 0x11002
push 0
push esi
call dword [sym.imp.WINMM.dll_mmioOpenA]
mov ecx, eax
mov dword [edi + 4], ecx
test ecx, ecx
je 0x43ac3a
mov ebp, dword [sym.imp.WINMM.dll_mmioCreateChunk]
lea eax, [edi + 0x1c]
push 0x20
push eax
push ecx
mov dword [esp + 0x1c], 0xffffffff
mov dword [edi + 0x24], 0x45564157
mov dword [edi + 0x20], 0
call ebp
test eax, eax
jne 0x43ac2f
push eax
lea esi, [edi + 8]
mov dword [edi + 0xc], 0x10
mov dword [esi], 0x20746d66
push esi
push dword [edi + 4]
call ebp
test eax, eax
jne 0x43ac2f
cmp word [ebx], 1
mov ebp, dword [sym.imp.WINMM.dll_mmioWrite]
jne 0x43abc4
push 0x10
push ebx
push dword [edi + 4]
call ebp
cmp eax, 0x10
je 0x43abdd
jmp 0x43ac2f
movzx eax, word [ebx + 0x10]
add eax, 0x12
push eax
push ebx
push dword [edi + 4]
call ebp
movzx ecx, word [ebx + 0x10]
add ecx, 0x12
cmp eax, ecx
jne 0x43ac2f
push 0
push esi
push dword [edi + 4]
mov esi, dword [sym.imp.WINMM.dll_mmioAscend]
call esi
test eax, eax
jne 0x43ac2f
push eax
mov dword [esp + 0x64], eax
lea eax, [esp + 0x60]
push eax
push dword [edi + 4]
mov dword [esp + 0x68], 0x74636166
call dword [sym.imp.WINMM.dll_mmioCreateChunk]
test eax, eax
jne 0x43ac2f
push 4
lea eax, [esp + 0x14]
push eax
push dword [edi + 4]
call ebp
cmp eax, 4
jne 0x43ac2f
push 0
lea eax, [esp + 0x60]
push eax
push dword [edi + 4]
call esi
test eax, eax
je 0x43ac54
push 0
push dword [edi + 4]
call dword [sym.imp.WINMM.dll_mmioClose]
pop edi
pop esi
pop ebp
mov eax, 0x80004005
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00498846
add esp, 0x64
ret 0xc
mov ecx, edi
call fcn.0043b0b0
mov ecx, eax
pop edi
pop esi
mov eax, ecx
mov ecx, dword [esp + 0x68]
pop ebp
pop ebx
xor ecx, esp
call fcn.00498846
add esp, 0x64
ret 0xc