Function at 0x1000a080
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Parse pe header
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
push ebx
push esi
push edi
push 0x10010e08
push dword [section..bss]
push str.LogMode
push str.Parameters
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
mov esi, eax
push esi
lea eax, [ebp - 0x100]
push 0x10012bbc
push eax
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea eax, [ebp - 0x100]
add esp, 0xc
push 0x10010e08
push eax
push str.LogMode
push str.Parameters
call edi
movzx eax, byte [0x10010228]
push 0x10010e08
push eax
push str.PLogOnly
push str.Parameters
mov dword [section..bss], esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
lea eax, [ebp - 0x100]
push esi
push 0x10012bbc
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x100]
push 0x10010e08
push eax
push str.PLogOnly
push str.Parameters
call edi
movzx eax, byte [0x10010229]
test esi, esi
push 0x10010e08
push eax
push str.PEnabled
push str.Parameters
setne byte [0x10010228]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
lea eax, [ebp - 0x100]
push esi
push 0x10012bbc
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x100]
push 0x10010e08
push eax
push str.PEnabled
push str.Parameters
call edi
movzx eax, byte [0x100140a0]
test esi, esi
push 0x10010e08
push eax
push str.AllowInject
push str.Parameters
setne byte [0x10010229]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
lea eax, [ebp - 0x100]
push esi
push 0x10012bbc
push eax
call ebx
add esp, 0xc
push 0x10010e08
lea eax, [ebp - 0x100]
push eax
push str.AllowInject
push str.Parameters
call edi
movzx eax, byte [0x100140a1]
test esi, esi
push 0x10010e08
push eax
push str.AllowInjNew
push str.Parameters
setne byte [0x100140a0]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
lea eax, [ebp - 0x100]
push esi
push 0x10012bbc
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x100]
push 0x10010e08
push eax
push str.AllowInjNew
push str.Parameters
call edi
movzx eax, byte [0x100140a2]
test esi, esi
push 0x10010e08
push eax
push str.SuspendProc
push str.Parameters
setne byte [0x100140a1]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
lea eax, [ebp - 0x100]
push esi
push 0x10012bbc
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x100]
push 0x10010e08
push eax
push str.SuspendProc
push str.Parameters
call edi
movzx eax, byte [0x1001022a]
test esi, esi
push 0x10010e08
push eax
push str.SingleCore
push str.Parameters
setne byte [0x100140a2]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
lea eax, [ebp - 0x100]
push esi
push 0x10012bbc
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x100]
push 0x10010e08
push eax
push str.SingleCore
push str.Parameters
call edi
push 0x10010e08
push dword [0x100140a4]
test esi, esi
push str.InjectFlags
push str.Parameters
setne byte [0x1001022a]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
lea eax, [ebp - 0x100]
push esi
push 0x10012bbc
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x100]
push 0x10010e08
push eax
push str.InjectFlags
push str.Parameters
call edi
push 0x10010e08
push dword [0x100140a8]
mov dword [0x100140a4], esi
push str.WaitForInj
push str.Parameters
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
lea eax, [ebp - 0x100]
push esi
push 0x10012bbc
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x100]
push 0x10010e08
push eax
push str.WaitForInj
push str.Parameters
call edi
push str.Initializing...
push str.LoadConfiguration
push 0xf00
mov dword [0x100140a8], esi
call fcn.10002ec0
mov esi, dword [0x1001121c]
add esp, 0xc
test esi, esi
jne 0x1000a3c9
mov eax, dword fs:[0x18]
mov ecx, 0x5a4d
mov esi, dword [eax + 0x30]
mov esi, dword [esi + 0x1c]
and esi, 0xffff0000
cmp word [esi], cx
jne 0x1000a3bb
mov eax, dword [esi + 0x3c]
cmp eax, 0x1000
jae 0x1000a3bb
cmp dword [eax + esi], 0x4550
je 0x1000a3c3
sub esi, 0x10000
jmp 0x1000a3a3
mov dword [0x1001121c], esi
push esi
push str.SystemNtDllBase:__p
push str.LoadConfiguration
push 0xf00
call fcn.10002ec0
add esp, 0x10
push esi
call fcn.10002df0
push 0x40
push 0x1000
push eax
push 0
mov dword [0x10010b9c], eax
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push dword [0x10010b9c]
mov dword [0x10010b98], eax
push eax
push str.CopyNtDllBase_p__NtDllSize_08X
push str.LoadConfiguration
push 0xf00
call fcn.10002ec0
add esp, 0x14
push dword [0x10010b9c]
push dword [0x10010b98]
push esi
call fcn.10002020
push str.Done
push str.LoadConfiguration
push 0xf00
call fcn.10002ec0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret