Function at 0x10004d50
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
call fcn.100043b0
test al, al
jne 0x10004d77
push 0x30
push str.Error_wrong_Mod_choice
push str.Error_you_should_select_v1.6_Game_Data__v1.5_RC_will_be_load_instead.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov esp, ebp
pop ebp
ret
push ebx
push esi
push edi
call fcn.1003cb90
push 0
push 0
push 0
push 0x10004870
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, eax
push 0xa
push esi
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call edi
push 0
push 0
push 0
push 0x10004ca0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
push 0xa
push esi
call ebx
push esi
call edi
push 6
call fcn.1003d202
add esp, 4
test eax, eax
je 0x10004de5
mov dword [eax], 0x2ca189e9
mov word [eax + 4], 0x9000
jmp 0x10004de7
xor eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0
push 6
push eax
push 0x520e72
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push eax
call ebx
push 5
call fcn.1003d202
add esp, 4
test eax, eax
je 0x10004e1c
mov dword [eax], 0x3b084be9
mov byte [eax + 4], 0
jmp 0x10004e1e
xor eax, eax
push 0
push 5
push eax
push 0x43aff0
call edi
push eax
call ebx
call fcn.10037110
call fcn.10009e90
call fcn.1002fab0
call fcn.10038510
call fcn.10008980
call fcn.10001e80
call fcn.100013e0
call fcn.10002520
call fcn.1002c2b0
call fcn.1002d5d0
call fcn.100334c0
call fcn.10002170
call fcn.10008c00
call fcn.1002db50
call fcn.10037ed0
call fcn.1002b5d0
call fcn.10030920
lea eax, [ebp - 8]
mov byte [ebp - 4], 0xe9
push eax
push 1
lea eax, [ebp - 4]
push eax
push 0x528809
call edi
push eax
call ebx
mov eax, 0x100020c0
sub eax, 0x52880e
mov dword [ebp - 0xc], eax
lea eax, [ebp - 8]
push eax
push 4
lea eax, [ebp - 0xc]
push eax
push 0x52880a
call edi
push eax
call ebx
call fcn.10030eb0
call fcn.10037590
lea eax, [ebp - 0xc]
mov byte [ebp - 4], 0xe9
push eax
push 1
lea eax, [ebp - 4]
push eax
push 0x52665a
call edi
push eax
call ebx
mov eax, 0x10002070
sub eax, 0x52665f
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
push eax
push 4
lea eax, [ebp - 8]
push eax
push 0x52665b
call edi
push eax
call ebx
call fcn.10001150
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 7
push 0x40239a
call esi
mov eax, 0x40239a
mov ecx, 0x90909090
mov dword [eax], ecx
mov word [eax + 4], cx
mov byte [eax + 6], cl
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x10]
push 7
push 0x40239a
call esi
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.Voobly_ModsAOCPatches_v1.6_RC_Destructioncopylang.dll
call esi
push str.Voobly_ModsAOCPatches_v1.6_RC_Destructionupdate.dll
call esi
push str.Voobly_ModsAOCPatches_v1.6_RC_DestructionEmpireWars.dll
call esi
call fcn.1000c0f0
call fcn.1002ab80
call fcn.10004700
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xe9
push eax
push 0x43b7ff
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xfd
push eax
push 0x43b800
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xea
push eax
push 0x43b8ed
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xfd
push eax
push 0x43b8ee
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xeb
push eax
push 0x446c35
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xfd
push eax
push 0x446c36
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xec
push eax
push 0x446d4e
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xfd
push eax
push 0x446d4f
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xed
push eax
push 0x5004fa
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xfd
push eax
push 0x5004fb
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xee
push eax
push 0x5005cb
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xfd
push eax
push 0x5005cc
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xef
push eax
push 0x43b441
call edi
push eax
call ebx
push 0
push 1
lea eax, [ebp - 4]
mov byte [ebp - 4], 0xfd
push eax
push 0x43b442
call edi
push eax
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret