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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1010e758
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5c
push esi
push edi
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 0
push eax
push str.SkipLoadingGameSettings
mov edx, str.Misc
mov ecx, str.._sfall.ini
call fcn.100052a0
mov dword [0x10154e3c], eax
cmp eax, 1
je 0x10090a3c
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x18]
cmp edx, 0x10
jb 0x10090a37
mov ecx, dword [ebp - 0x2c]
inc edx
push 1
call fcn.1000d8e0
mov eax, dword [0x10154e3c]
or edi, 0xffffffff
jmp 0x10090a70
cmp dword [ebp - 0x18], 0x10
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
or edx, 0xffffffff
call fcn.10005410
mov dword [ebp - 4], 0xffffffff
mov edi, eax
mov edx, dword [ebp - 0x18]
cmp edx, 0x10
jb 0x10090a6b
mov ecx, dword [ebp - 0x2c]
inc edx
push 1
call fcn.1000d8e0
mov eax, dword [0x10154e3c]
cmp byte [0x10153f67], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
je 0x10090aa8
cmp eax, 1
je 0x10090aa8
push str..ddraw.ini
push 0xffffffffffffffff
mov edx, str.SkipLoadingGameSettings
mov ecx, str.Misc
call fcn.10005480
mov edi, eax
test edi, edi
je 0x10090c37
cmp byte [0x10174f84], 0
je 0x10090afb
test byte [0x10174f88], 1
je 0x10090afb
mov edx, str.Applying_skip_loading_game_settings_from_a_saved_game_patch.
mov ecx, 0x10153db8
call fcn.10012ce0
push eax
call fcn.10012f80
add esp, 4
cmp dword [0x101553d8], 0
je 0x10090afb
mov edx, str.Applying_skip_loading_game_settings_from_a_saved_game_patch.
mov ecx, 0x10141e60
call fcn.10012ce0
push eax
call fcn.10012f80
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x493421
call esi
lea eax, [ebp - 0x10]
mov dword [0x493421], 0x441f0f
push eax
push dword [ebp - 0x10]
push 4
push 0x493421
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 1
push 0x4935a8
call esi
lea eax, [ebp - 0x10]
mov byte [0x4935a8], 0x1f
push eax
push dword [ebp - 0x10]
push 1
push 0x4935a8
call esi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x4935ab
call esi
lea eax, [ebp - 0x10]
mov dword [0x4935ab], 0x90901b75
push eax
push dword [ebp - 0x10]
push 4
push 0x4935ab
call esi
cmp edi, 2
jne 0x10090bad
mov ecx, dword [0x10132a70]
sub esp, 8
mov dl, byte [0x10132a74]
mov eax, esp
mov dword [ebp - 0x14], 0x49341c
mov dword [ebp - 0x10], 0x49343b
mov dword [eax], ecx
lea ecx, [ebp - 0x14]
mov byte [eax + 4], dl
lea edx, [ebp - 0xc]
call fcn.10091c00
mov ecx, dword [0x10132a70]
sub esp, 8
mov dl, byte [0x10132a74]
mov eax, esp
mov dword [ebp - 0x68], 0x493450
mov dword [ebp - 0x64], 0x493465
mov dword [ebp - 0x60], 0x49347a
mov dword [eax], ecx
lea ecx, [ebp - 0x68]
mov byte [eax + 4], dl
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x5c], 0x49348f
mov dword [ebp - 0x58], 0x4934a4
mov dword [ebp - 0x54], 0x4934b9
mov dword [ebp - 0x50], 0x4934ce
mov dword [ebp - 0x4c], 0x4934e3
mov dword [ebp - 0x48], 0x4934f8
mov dword [ebp - 0x44], 0x49350d
mov dword [ebp - 0x40], 0x493522
mov dword [ebp - 0x3c], 0x493547
mov dword [ebp - 0x38], 0x493558
mov dword [ebp - 0x34], 0x493569
mov dword [ebp - 0x30], 0x49357a
call fcn.10091c00
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret