Function at 0x78003420
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x780293e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x780250a4
push 0x780250b4
push 0x60000
push 0x18646fa
call dword [sym.imp.dsound.dll_unsigned_long_int___cdecl_FindPattern_unsigned_long_int__unsigned_long_int__unsigned_char___char__]
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov esi, eax
add esp, 0x10
test esi, esi
je 0x78003543
mov ecx, dword [esi - 4]
mov dword [ebp - 0x18], ecx
mov eax, dword [ecx]
lea ecx, [esi - 6]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x78003485
push eax
push 0xe8
mov edx, 1
call fcn.78002650
add esp, 8
push 4
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xb]
push eax
mov byte [ebp - 0xc], 0xbf
call fcn.78009480
lea edi, [esi - 0x84]
add esp, 0xc
mov byte [ebp - 7], 0x90
test edi, edi
je 0x780034d3
lea eax, [ebp - 0x10]
push eax
push 0x40
push 6
push edi
call ebx
test eax, eax
je 0x780034c7
push 6
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.78009480
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x10]
push 6
push edi
call ebx
mov eax, dword [esi - 0x13]
mov dword [ebp - 0x18], eax
mov eax, dword [eax]
lea ecx, [esi - 0x15]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x780034f8
push eax
push 0xe8
mov edx, 1
call fcn.78002650
add esp, 8
push 4
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xb]
push eax
mov byte [ebp - 0xc], 0xbe
call fcn.78009480
add esp, 0xc
mov byte [ebp - 7], 0x90
add esi, 0x50
je 0x78003556
lea eax, [ebp - 0x10]
push eax
push 0x40
push 6
push esi
call ebx
test eax, eax
je 0x78003535
push 6
lea eax, [ebp - 0xc]
push eax
push esi
call fcn.78009480
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x10]
push 6
push esi
call ebx
jmp 0x78003556
push str.Error_1_5.
push 0x780250dc
call dword [sym.imp.dsound.dll_void___cdecl__Global_Log_wchar_t_const___wchar_t_const__]
add esp, 8
push 0x780250f4
push 0x78025104
push 0x100000
push 0xd23dd4
call dword [sym.imp.dsound.dll_unsigned_long_int___cdecl_FindPattern_unsigned_long_int__unsigned_long_int__unsigned_char___char__]
mov esi, eax
add esp, 0x10
xor ebx, ebx
test esi, esi
je 0x7800361b
nop
push 0x78025114
push 0x78025124
push 0x100000
push esi
mov byte [ebp - 0xc], 0xbb
mov byte [ebp - 7], 0x90
call dword [sym.imp.dsound.dll_unsigned_long_int___cdecl_FindPatternNext_unsigned_long_int__unsigned_long_int__unsigned_char___char__]
mov esi, eax
add esp, 0x10
test esi, esi
je 0x7800361b
mov eax, dword [esi - 0x15]
mov dword [ebp - 0x18], eax
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
push 4
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xb]
push eax
call fcn.78009480
lea edi, [esi - 0x17]
add esp, 0xc
test edi, edi
je 0x780035fd
lea eax, [ebp - 0x10]
push eax
push 0x40
push 6
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x780035ed
push 6
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.78009480
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x10]
push 6
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
inc ebx
push ebx
push str.Redirect_function__d.
push 0x78025160
call dword [sym.imp.dsound.dll_void___cdecl__Global_Log_wchar_t_const___wchar_t_const__]
add esp, 0xc
add esi, 6
jne 0x78003580
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.7800ce67
mov esp, ebp
pop ebp
ret