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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1010ea88
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x14]
push edi
push eax
push 0x40
push 4
push 0x51df04
call esi
lea eax, [ebp - 0x14]
mov dword [0x51df04], 0x100aafa0
push eax
push dword [ebp - 0x14]
push 4
push 0x51df04
call esi
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
push str.DebugMode
mov edx, str.Debugging
mov ecx, str..ddraw.ini
call fcn.100052a0
mov dword [0x10154e3c], eax
cmp eax, 1
je 0x100ab081
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x100ab07a
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.1000d8e0
xor edi, edi
jmp 0x100ab358
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x28]
xor edx, edx
call fcn.10005410
mov dword [ebp - 4], 0xffffffff
mov edi, eax
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x100ab0af
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.1000d8e0
test edi, edi
jle 0x100ab358
mov byte [0x10174f85], 1
cmp edi, 4
jl 0x100ab0cd
call fcn.10012540
jmp 0x100ab24d
cmp byte [0x10174f84], 0
je 0x100ab118
test byte [0x10174f88], 1
je 0x100ab118
mov edx, str.Applying_debugmode_patch.
mov ecx, 0x10153db8
call fcn.10012cf0
push eax
call fcn.10012f90
add esp, 4
cmp dword [0x101553d8], 0
je 0x100ab118
mov edx, str.Applying_debugmode_patch.
mov ecx, 0x10141e60
call fcn.10012cf0
push eax
call fcn.10012f90
add esp, 4
cmp dword [0x444a64], 0x82327e8
je 0x100ab161
push ecx
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], 0x82327e8
mov dword [ebp - 0x14], 0x120e900
call fcn.10012160
lea eax, [ebp - 0x14]
push eax
push 0x40
push 1
push 0x444a6d
call esi
lea eax, [ebp - 0x14]
mov byte [0x444a6d], 0
push eax
push dword [ebp - 0x14]
push 1
push 0x444a6d
call esi
lea eax, [ebp - 0x14]
push eax
push 0x40
push 1
push 0x4c6d9b
call esi
lea eax, [ebp - 0x14]
mov byte [0x4c6d9b], 0xb8
push eax
push dword [ebp - 0x14]
push 1
push 0x4c6d9b
call esi
lea eax, [ebp - 0x14]
push eax
push 0x40
push 4
push 0x4c6d9c
call esi
mov ecx, 0x1012523c
cmp edi, 1
mov eax, 0x10125238
cmovne eax, ecx
mov dword [0x4c6d9c], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push 4
push 0x4c6d9c
call esi
cmp edi, 3
jne 0x100ab24d
lea eax, [ebp - 0x14]
push eax
push 0x40
push 2
push 0x4c6e75
call esi
mov eax, 0x66eb
mov word [0x4c6e75], ax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push 2
push 0x4c6e75
call esi
lea eax, [ebp - 0x14]
push eax
push 0x40
push 1
push 0x4c6ef2
call esi
lea eax, [ebp - 0x14]
mov byte [0x4c6ef2], 0xeb
push eax
push dword [ebp - 0x14]
push 1
push 0x4c6ef2
call esi
lea eax, [ebp - 0x14]
push eax
push 0x40
push 1
push 0x4c7034
call esi
lea eax, [ebp - 0x14]
mov byte [0x4c7034], 0
push eax
push dword [ebp - 0x14]
push 1
push 0x4c7034
call esi
push 2
push 0x100aaf30
mov edx, 0x4dc319
mov cl, 0xe8
call fcn.10012100
lea eax, [ebp - 0x14]
push eax
push 0x40
push 4
push 0x419b66
call esi
mov eax, 0x100aaed0
sub eax, 0x419b6a
mov dword [0x419b66], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push 4
push 0x419b66
call esi
lea eax, [ebp - 0x14]
push eax
push 0x40
push 4
push 0x419aa1
call esi
mov eax, 0x100aaf20
sub eax, 0x419aa5
mov dword [0x419aa1], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push 4
push 0x419aa1
call esi
lea eax, [ebp - 0x14]
push eax
push 0x40
push 1
push 0x419b61
call esi
lea eax, [ebp - 0x14]
mov byte [0x419b61], 0x75
push eax
push dword [ebp - 0x14]
push 1
push 0x419b61
call esi
cmp edi, 1
jle 0x100ab332
lea eax, [ebp - 0x14]
push eax
push 0x40
push 5
push 0x4c703f
call esi
mov eax, 0x100aaf40
mov byte [0x4c703f], 0xe8
sub eax, 0x4c7044
mov dword [0x4c7040], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x14]
push 5
push 0x4c703f
call esi
lea eax, [ebp - 0x14]
push eax
push 0x40
push 4
push 0x4c7044
call esi
lea eax, [ebp - 0x14]
mov dword [0x4c7044], 0x441f0f
push eax
push dword [ebp - 0x14]
push 4
push 0x4c7044
call esi
lea eax, [ebp - 0x14]
push eax
push 0x40
push 1
push 0x4dc34d
call esi
lea eax, [ebp - 0x14]
mov byte [0x4dc34d], 0xf
push eax
push dword [ebp - 0x14]
push 1
push 0x4dc34d
call esi
push str.Image
mov edx, 0x1012cd90
mov cl, 0x2e
call fcn.10084110
lea eax, [ebp - 0x10]
mov dword [ebp - 0x20], 0x482240
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x1c], 0x482274
push eax
push ecx
mov ecx, 0x100aaf60
mov dword [ebp - 0x18], 0x4822a0
mov dword [ebp - 0x14], 0x4822d4
call fcn.100122c0
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret