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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x780293e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.dsound.dll_unsigned_long_int___cdecl_FindPattern_unsigned_long_int__unsigned_long_int__unsigned_char___char__]
push esi
push edi
push 0x78023f04
push 0x78023f18
push 0x60000
push 0xc5c0a0
call ebx
mov edi, eax
add esp, 0x10
test edi, edi
je 0x7800291c
push edi
push 0x78023f2c
push str._s_hook_pes_crt_func____08x_n
call fcn.7800ce8b
mov esi, dword [sym.imp.dsound.dll_void___cdecl__Global_Log_wchar_t_const___wchar_t_const__]
push str.Patch_performance_fix_3.
push 0x78023f94
call esi
push dword [0x7802c8a8]
call fcn.7800c496
push dword [0x7802c8ac]
call fcn.78009467
add esp, 0x1c
push dword [0x7802c8a8]
call fcn.7800adae
push eax
push str.SetMemCache1Limit___0x_08x___d
push 0x78024000
call esi
add esp, 0x10
push dword [0x7802c8ac]
call fcn.78009446
push eax
push str.SetMemCache2Limit___0x_08x___d
push 0x78024058
call esi
add esp, 0xc
lea ecx, [edi + 0x16]
mov edx, fcn.78009480
call fcn.78002710
lea ecx, [edi + 0x2e]
mov edx, fcn.78009200
call fcn.78002710
add esp, 4
jmp 0x78002931
mov esi, dword [sym.imp.dsound.dll_void___cdecl__Global_Log_wchar_t_const___wchar_t_const__]
push str.Error_3.
push 0x78024070
call esi
add esp, 8
push 0x78024088
push str.WVU3
push 0x60000
push 0x1800000
call ebx
mov edi, eax
add esp, 0x10
test edi, edi
je 0x7800298e
push edi
push 0x780240b0
push str._s_hook_pes_crt_func2____08x_n
call fcn.7800ce8b
push str.Patch_performance_fix_4.
push 0x78024118
call esi
add esp, 0x10
lea ecx, [edi - 0x16]
mov edx, 0x7800c710
call fcn.78002710
lea ecx, [edi - 0x10]
mov edx, fcn.7800c7a0
call fcn.78002710
add esp, 4
jmp 0x7800299d
push 0x78024130
push 0x78024144
call esi
add esp, 8
push 0x7802415c
push 0x78024168
push 0x60000
push 0x1430ad2
call ebx
mov edi, eax
add esp, 0x10
test edi, edi
je 0x780029fa
push edi
push 0x78024174
push str._s_hook_pes_crt_func22____08x_n
call fcn.7800ce8b
push str.Patch_performance_fix_4__2_.
push 0x780241e4
call esi
lea ecx, [edi - 5]
add esp, 0x14
test ecx, ecx
je 0x78002a09
mov eax, 0x7800c710
xor edx, edx
mov eax, dword [eax + 2]
push dword [eax]
push 0xe8
call fcn.78002650
jmp 0x78002a06
push str.Error_4__2_.
push 0x78024218
call esi
add esp, 8
push 0x78024230
push 0x78024244
push 0x60000
push 0x98b66d
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add esp, 0x10
mov dword [ebp - 0x14], eax
test eax, eax
je 0x78002ad6
push eax
push 0x78024258
push str._s_hook_pes_crt_func3____08x_n
call fcn.7800ce8b
push str.Patch_performance_fix_5__1_.
push 0x780242c8
call esi
mov eax, dword [ebp - 0x14]
add esp, 0x14
add eax, 0xffffffdf
je 0x78002a93
mov ecx, 0x7800c8d5
test ecx, ecx
je 0x78002a93
lea ecx, [ebp - 8]
push ecx
push 0x40
push 0x10
push eax
mov dword [ebp - 8], 0
call edi
test eax, eax
je 0x78002a93
mov eax, dword [ebp - 0x14]
add eax, 0xffffffdf
mov ecx, 0x7800c8d5
sub ecx, eax
sub ecx, 5
mov byte [eax], 0xe8
mov dword [eax + 1], ecx
mov byte [eax + 5], 0x90
mov eax, dword [ebp - 0x14]
add eax, 0xffffffec
je 0x78002ae5
mov ecx, 0x7800c870
test ecx, ecx
je 0x78002ae5
lea ecx, [ebp - 8]
push ecx
push 0x40
push 0x10
push eax
mov dword [ebp - 8], 0
call edi
test eax, eax
je 0x78002ae5
mov eax, dword [ebp - 0x14]
add eax, 0xffffffec
mov ecx, 0x7800c870
sub ecx, eax
sub ecx, 5
mov byte [eax], 0xe8
mov dword [eax + 1], ecx
mov byte [eax + 5], 0x90
jmp 0x78002ae5
push str.Error_5__1_.
push 0x780242fc
call esi
add esp, 8
push 0x78024314
push 0x78024320
push 0x60000
push 0x1829d08
call ebx
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
je 0x78002b39
push eax
push 0x7802432c
push str._s_hook_pes_crt_func5____08x_n
call fcn.7800ce8b
push str.Patch_performance_fix_5__2_.
push 0x7802439c
call esi
mov ecx, dword [ebp - 8]
add esp, 0x10
add ecx, 0xffffffe8
mov edx, 0x7800c4b0
call fcn.78002710
add esp, 4
jmp 0x78002b48
push str.Error_5__2_.
push 0x780243d0
call esi
add esp, 8
push 0x780243e8
push 0x780243f8
push 0x60000
push 0xca00a6
call ebx
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
je 0x78002bd1
push eax
push 0x78024408
push str._s_hook_pes_crt_func6____08x_n
call fcn.7800ce8b
push str.Patch_performance_fix_6.
push 0x78024470
call esi
mov eax, fcn.7800adf0
add esp, 0x14
mov eax, dword [eax + 2]
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax - 4]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x78002be0
lea ecx, [ebp - 8]
push ecx
push 0x40
push 4
push eax
call edi
test eax, eax
je 0x78002bc1
push 4
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x14]
call fcn.78009480
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 8]
push 4
push dword [ebp - 0x14]
call edi
jmp 0x78002be0
push 0x78024488
push 0x7802449c
call esi
add esp, 8
push 0x780244b4
push 0x780244c4
push 0x60000
push 0x997e9d
call ebx
add esp, 0x10
mov dword [ebp - 0x14], eax
test eax, eax
je 0x78002ca9
push eax
push 0x780244d4
push str._s_hook_pes_crt_func7____08x_n
call fcn.7800ce8b
push str.Patch_performance_fix_7.
push 0x7802453c
call esi
add esp, 0x14
lea eax, [ebp - 0xc]
push eax
push 0x40
push 3
push dword [ebp - 0x14]
call edi
test eax, eax
je 0x78002c46
push 3
push 0x78024554
push dword [ebp - 0x14]
call fcn.78009480
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0xc]
push 3
push dword [ebp - 0x14]
call edi
sub esp, 8
mov edx, 0x7800c9d0
push 1
push ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffffa
call fcn.78002590
mov eax, dword [ebp - 0x14]
add esp, 0x10
add eax, 0xffffffe5
mov dword [ebp - 0x14], eax
je 0x78002cb8
lea ecx, [ebp - 0xc]
push ecx
push 0x40
push 5
push eax
call edi
test eax, eax
je 0x78002c99
push 5
push 0x78024558
push dword [ebp - 0x14]
call fcn.78009480
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0xc]
push 5
push dword [ebp - 0x14]
call edi
jmp 0x78002cb8
push 0x78024560
push 0x78024574
call esi
add esp, 8
push 0x7802458c
push 0x7802459c
push 0x60000
push 0x8a76b3
call ebx
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x78002d9b
push ebx
push 0x780245ac
push str._s_hook_pes_crt_func8____08x_n
call fcn.7800ce8b
push str.Patch_performance_fix_8.
push 0x78024614
call esi
lea esi, [ebx + 0xa]
add esp, 0x14
test esi, esi
je 0x78002d2c
lea eax, [ebp - 0xc]
push eax
push 0x40
push 0xd
push esi
call edi
test eax, eax
je 0x78002d20
push 0xd
push 0x7802462c
push esi
call fcn.78009480
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0xc]
push 0xd
push esi
call edi
sub esp, 8
mov edx, 0x7800c9d0
push 0
push ecx
lea ecx, [ebx + 0xb]
call fcn.78002590
lea esi, [ebx - 0x16]
add esp, 0x10
test esi, esi
je 0x78002d74
lea eax, [ebp - 0xc]
push eax
push 0x40
push 0xd
push esi
call edi
test eax, eax
je 0x78002d68
push 0xd
push 0x7802463c
push esi
call fcn.78009480
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0xc]
push 0xd
push esi
call edi
sub esp, 8
mov edx, 0x7800c9d0
push 0
push ecx
lea ecx, [ebx - 0x15]
call fcn.78002590
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.7800ce67
mov esp, ebp
pop ebp
ret
push 0x7802464c
push 0x78024660
call esi
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.7800ce67
mov esp, ebp
pop ebp
ret