Function at 0x100869e0
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
push edi
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 0x10086a5f
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x10086c60
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.1000d8e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
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 0x10086a8d
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.1000d8e0
test edi, edi
jle 0x10086c60
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push 0x43c445
call esi
lea eax, [ebp - 0x10]
mov byte [0x43c445], 0xeb
push eax
push dword [ebp - 0x10]
push 1
push 0x43c445
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push 0x43c446
call esi
lea eax, [ebp - 0x10]
mov byte [0x43c446], 0x19
push eax
push dword [ebp - 0x10]
push 1
push 0x43c446
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push 0x4e5bef
call esi
lea eax, [ebp - 0x10]
mov byte [0x4e5bef], 0xb8
push eax
push dword [ebp - 0x10]
push 1
push 0x4e5bef
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x4e5bf0
call esi
mov ecx, 0x1012523c
cmp edi, 1
mov eax, 0x10125238
cmovne eax, ecx
mov dword [0x4e5bf0], eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 4
push 0x4e5bf0
call esi
cmp edi, 3
jne 0x10086bcf
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push 0x4e5c98
call esi
lea eax, [ebp - 0x10]
mov byte [0x4e5c98], 0x29
push eax
push dword [ebp - 0x10]
push 1
push 0x4e5c98
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push 0x4e5d09
call esi
lea eax, [ebp - 0x10]
mov byte [0x4e5d09], 0xeb
push eax
push dword [ebp - 0x10]
push 1
push 0x4e5d09
call esi
push 2
push 0x10086990
mov edx, 0x502574
mov cl, 0xe8
call fcn.10012100
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push 0x4e5ef7
call esi
lea eax, [ebp - 0x10]
mov byte [0x4e5ef7], 0
push eax
push dword [ebp - 0x10]
push 1
push 0x4e5ef7
jmp 0x10086c0c
cmp edi, 4
jl 0x10086c0e
call fcn.10012540
lea eax, [ebp - 0x10]
push eax
push 0x40
push 5
push 0x4e5eeb
call esi
mov eax, 0x100869d0
mov byte [0x4e5eeb], 0xe8
sub eax, 0x4e5ef0
mov dword [0x4e5eec], eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 5
push 0x4e5eeb
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x411240
call esi
lea eax, [ebp - 0x10]
mov dword [0x411240], 0x441f0f
push eax
push dword [ebp - 0x10]
push 4
push 0x411240
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x411226
call esi
lea eax, [ebp - 0x10]
mov dword [0x411226], 0x441f0f
push eax
push dword [ebp - 0x10]
push 4
push 0x411226
call esi
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret