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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x100248e4]
test al, 1
jne 0x1000d538
or eax, 1
mov dword [0x100248e0], 0x1000fd38
push 0x1000ed50
mov dword [0x100248e4], eax
call fcn.1000dea4
add esp, 4
push ebx
push esi
push edi
push 0x100245a5
push 0xa
mov dword [ebp - 8], 0
call fcn.1000df1c
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov esi, eax
mov ebx, dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
add esp, 8
test esi, esi
je 0x1000d5d3
lea eax, [ebp - 8]
mov byte [esi], 0xe9
push eax
push 0x40
mov ecx, 0x1000d8b0
sub ecx, 0x547cc1
mov dword [esi + 1], ecx
push 0xa
mov dword [esi + 5], 0x90909090
push 0x547cbc
mov byte [esi + 9], 0x90
call edi
test eax, eax
je 0x1000d5d3
mov eax, dword [esi]
mov ecx, 0x547cbc
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov ax, word [esi + 8]
mov word [ecx + 8], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 0xa
push ecx
call edi
test eax, eax
je 0x1000d5d3
push 0xa
push 0x547cbc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebx
push esi
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete___void__]
add esp, 4
push 0x100245a5
push 6
mov dword [ebp - 8], 0
call fcn.1000df1c
mov esi, eax
add esp, 8
test esi, esi
je 0x1000d652
lea eax, [ebp - 8]
mov byte [esi], 0xe9
push eax
push 0x40
mov ecx, 0x1000d8e0
sub ecx, 0x547f04
push 6
mov dword [esi + 1], ecx
push 0x547eff
mov byte [esi + 5], 0x90
call edi
test eax, eax
je 0x1000d652
mov eax, dword [esi]
mov ecx, 0x547eff
mov dword [ecx], eax
mov ax, word [esi + 4]
mov word [ecx + 4], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 6
push ecx
call edi
test eax, eax
je 0x1000d652
push 6
push 0x547eff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebx
push esi
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete___void__]
add esp, 4
push 0x100245a5
push 6
mov dword [ebp - 8], 0
call fcn.1000df1c
mov esi, eax
add esp, 8
test esi, esi
je 0x1000d6d1
lea eax, [ebp - 8]
mov byte [esi], 0xe9
push eax
push 0x40
mov ecx, 0x1000d990
sub ecx, 0x547f85
push 6
mov dword [esi + 1], ecx
push 0x547f80
mov byte [esi + 5], 0x90
call edi
test eax, eax
je 0x1000d6d1
mov eax, dword [esi]
mov ecx, 0x547f80
mov dword [ecx], eax
mov ax, word [esi + 4]
mov word [ecx + 4], ax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 6
push ecx
call edi
test eax, eax
je 0x1000d6d1
push 6
push 0x547f80
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebx
push esi
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete___void__]
add esp, 4
push 0x100245a5
push 7
mov dword [ebp - 8], 0
call fcn.1000df1c
mov esi, eax
add esp, 8
test esi, esi
je 0x1000d75b
mov ecx, 0x1000da10
mov byte [esi], 0xe9
sub ecx, 0x547fb8
mov eax, 0x90909090
mov dword [esi + 1], ecx
mov word [esi + 5], ax
lea eax, [ebp - 8]
push eax
push 0x40
push 7
push 0x547fb3
call edi
test eax, eax
je 0x1000d75b
mov eax, dword [esi]
mov ecx, 0x547fb3
mov dword [ecx], eax
mov ax, word [esi + 4]
mov word [ecx + 4], ax
mov al, byte [esi + 6]
mov byte [ecx + 6], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 7
push ecx
call edi
test eax, eax
je 0x1000d75b
push 7
push 0x547fb3
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebx
push esi
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete___void__]
add esp, 4
push 0x100245a5
push 5
mov dword [ebp - 8], 0
call fcn.1000df1c
mov esi, eax
add esp, 8
test esi, esi
je 0x1000d7d4
lea eax, [ebp - 8]
mov byte [esi], 0xe9
push eax
push 0x40
mov ecx, 0x1000da30
push 5
sub ecx, 0x47db84
push 0x47db7f
mov dword [esi + 1], ecx
call edi
test eax, eax
je 0x1000d7d4
mov eax, dword [esi]
mov ecx, 0x47db7f
mov dword [ecx], eax
mov al, byte [esi + 4]
mov byte [ecx + 4], al
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 5
push ecx
call edi
test eax, eax
je 0x1000d7d4
push 5
push 0x47db7f
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call ebx
push esi
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000dcd0
mov esp, ebp
pop ebp
ret