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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x100250c0]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x1003e120], 0
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push edi
jne 0x10004445
cmp dword [0x1003e624], 0
jne 0x10004445
mov eax, dword [0x11dd2758]
push 0x5c
mov ebx, dword [eax]
call fcn.1001d5ad
add esp, 4
mov edi, eax
lea eax, [ebp - 0x10]
push eax
push 0x40
push 0x5c
push edi
call esi
push 0x5c
push ebx
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov dword [0x1003e624], edi
test ebx, ebx
je 0x10004400
lea eax, [ebp - 8]
push eax
push 0x40
push 0x5c
push edi
call esi
push 0x5c
push ebx
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push 0x5c
push edi
call esi
mov edi, dword [0x1003e624]
mov ebx, dword [0x11dd2758]
test ebx, ebx
je 0x1000442d
test edi, edi
je 0x1000442d
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push ebx
call esi
lea eax, [ebp - 0xc]
mov dword [ebx], edi
push eax
push dword [ebp - 8]
push 4
push ebx
call esi
mov edi, dword [0x1003e624]
push edi
push str.MemoryFakeImportCB_:__p_n
call fcn.10002050
add esp, 8
mov dword [0x1003e120], 1
mov edi, dword [0x1003e624]
add edi, 0x40
je 0x1000446d
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push edi
call esi
lea eax, [ebp - 0xc]
mov dword [edi], fcn.100041b0
push eax
push dword [ebp - 8]
push 4
push edi
call esi
mov edi, dword [0x1003e624]
add edi, 0x44
je 0x10004495
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push edi
call esi
lea eax, [ebp - 0xc]
mov dword [edi], fcn.100041b0
push eax
push dword [ebp - 8]
push 4
push edi
call esi
mov edi, dword [0x1003e624]
add edi, 0x48
je 0x100044bd
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push edi
call esi
lea eax, [ebp - 0xc]
mov dword [edi], fcn.100041b0
push eax
push dword [ebp - 8]
push 4
push edi
call esi
mov edi, dword [0x1003e624]
add edi, 0x4c
je 0x100044e5
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push edi
call esi
lea eax, [ebp - 0xc]
mov dword [edi], fcn.100041b0
push eax
push dword [ebp - 8]
push 4
push edi
call esi
mov edi, dword [0x1003e624]
add edi, 0x50
je 0x1000450d
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push edi
call esi
lea eax, [ebp - 0xc]
mov dword [edi], fcn.100041b0
push eax
push dword [ebp - 8]
push 4
push edi
call esi
mov edi, dword [0x1003e624]
add edi, 0x54
je 0x10004535
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push edi
call esi
lea eax, [ebp - 0xc]
mov dword [edi], fcn.100041b0
push eax
push dword [ebp - 8]
push 4
push edi
call esi
mov edi, dword [0x1003e624]
add edi, 0x58
je 0x1000455d
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push edi
call esi
lea eax, [ebp - 0xc]
mov dword [edi], fcn.100041b0
push eax
push dword [ebp - 8]
push 4
push edi
call esi
cmp dword [0x11dd293c], 0
jne 0x100045b1
mov edi, dword [0x1003dfac]
test edi, edi
je 0x100045a9
push 0xc
call fcn.1001d5ad
add esp, 4
mov ebx, eax
lea eax, [ebp - 0xc]
push eax
push 0x40
push 0xc
push ebx
call esi
mov ecx, dword [edi]
mov dword [ebx], ecx
mov ax, word [edi + 4]
mov word [ebx + 4], ax
mov al, byte [edi + 6]
mov byte [ebx + 6], al
lea eax, [ebx + 7]
sub edi, eax
mov byte [eax], 0xe9
add edi, 2
mov dword [eax + 1], edi
jmp 0x100045ab
xor ebx, ebx
mov dword [0x11dd293c], ebx
cmp dword [0x11dd2a70], 0
jne 0x100045ee
mov edi, dword [0x1003e624]
add edi, 0x38
je 0x100045e6
mov ebx, dword [edi]
lea eax, [ebp - 8]
push eax
push 0x40
push 4
push edi
call esi
lea eax, [ebp - 0xc]
mov dword [edi], 0x10004300
push eax
push dword [ebp - 8]
push 4
push edi
call esi
jmp 0x100045e8
xor ebx, ebx
mov dword [0x11dd2a70], ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001d045
mov esp, ebp
pop ebp
ret