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

Disassembly:
push ecx
push ebx
push esi
push edi
call fcn.10008040
cmp byte [0x100ae3c4], 0
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
je 0x10008162
mov esi, dword [0x100ae3b0]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae3a4]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae3b4
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae3c4], 0
cmp byte [0x100ae310], 0
je 0x100081a5
mov esi, dword [0x100ae2fc]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae2f0]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae300
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae310], 0
cmp byte [0x100ae334], 0
je 0x100081e8
mov esi, dword [0x100ae320]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae314]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae324
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae334], 0
call fcn.10008040
cmp byte [0x100ae40c], 0
je 0x10008230
mov esi, dword [0x100ae3f8]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae3ec]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae3fc
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae40c], 0
cmp byte [0x100ae3e8], 0
je 0x10008273
mov esi, dword [0x100ae3d4]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae3c8]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae3d8
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae3e8], 0
cmp byte [0x100ae3a0], 0
je 0x100082b6
mov esi, dword [0x100ae38c]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae380]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae390
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae3a0], 0
call fcn.10008040
cmp byte [0x100ae37c], 0
je 0x100082fe
mov esi, dword [0x100ae368]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae35c]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae36c
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae37c], 0
cmp byte [0x100ae358], 0
je 0x10008341
mov esi, dword [0x100ae344]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae338]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae348
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae358], 0
cmp byte [0x100ae280], 0
je 0x10008384
mov esi, dword [0x100ae26c]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae260]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae270
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae280], 0
cmp byte [0x100ae2c8], 0
je 0x100083c7
mov esi, dword [0x100ae2b4]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae2a8]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae2b8
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae2c8], 0
cmp byte [0x100ae2ec], 0
je 0x1000840a
mov esi, dword [0x100ae2d8]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae2cc]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae2dc
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae2ec], 0
call fcn.1000a030
call fcn.10007f60
mov ecx, dword [0x100acf4c]
test ecx, ecx
je 0x10008425
mov al, byte [0x100ab8d7]
mov byte [ecx], al
mov ecx, dword [0x100acf48]
test ecx, ecx
je 0x10008436
mov al, byte [0x100ab8d6]
mov byte [ecx], al
mov eax, dword [0x100acd98]
test eax, eax
je 0x1000845a
mov eax, dword [eax]
test eax, eax
je 0x1000845a
mov eax, dword [eax + 0x68]
test eax, eax
je 0x1000845a
mov eax, dword [eax + 0x54]
test eax, eax
je 0x1000845a
mov dword [eax + 0x28], 0x3f800000
cmp byte [0x100ae4a0], 0
je 0x1000849d
mov esi, dword [0x100ae48c]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae480]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae490
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae4a0], 0
cmp byte [0x100ae430], 0
je 0x100084e0
mov esi, dword [0x100ae41c]
lea eax, [esp + 0xc]
mov edi, dword [0x100ae410]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100ae420
push edi
call fcn.1004f070
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100ae430], 0
call fcn.1000a240
call fcn.10009bd0
mov eax, dword [0x100ace58]
test eax, eax
je 0x10008527
cmp dword [0x100ace04], 0
je 0x10008527
lea ecx, [esp + 0xc]
push ecx
push 0x40
push 5
push eax
call ebx
mov ecx, dword [0x100ace58]
mov eax, dword [0x100ace04]
mov byte [ecx], 0xe9
mov dword [ecx + 1], eax
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push 5
push ecx
call ebx
pop edi
pop esi
pop ebx
pop ecx
ret