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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
mov edx, str.Applying_built_in_High_Resolution_Patch...
push 0xffffffffffffffff
push 0x1010f060
push eax
mov dword fs:[0], esp
mov ecx, 0x10153db8
sub esp, 0x1c
call fcn.10012cf0
push eax
call fcn.10012f90
add esp, 4
cmp dword [0x101553d8], 0
je 0x1007ba44
mov edx, str.Applying_built_in_High_Resolution_Patch...
mov ecx, 0x10141e60
call fcn.10012cf0
push eax
call fcn.10012f90
add esp, 4
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.SCR_WIDTH
mov edx, 0x1011f8fc
mov ecx, str.._f2_res.ini
call fcn.100052a0
mov dword [0x10154e3c], eax
cmp eax, 1
je 0x1007ba98
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x1007ba94
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.1000d8e0
xor esi, esi
jmp 0x1007babf
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x28]
xor edx, edx
call fcn.10005410
mov edx, dword [ebp - 0x14]
mov esi, eax
cmp edx, 0x10
jb 0x1007babf
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.1000d8e0
mov dword [0x1013cf04], esi
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 1
push eax
push str.SCR_HEIGHT
mov edx, 0x1011f8fc
mov ecx, str.._f2_res.ini
call fcn.100052a0
mov dword [0x10154e3c], eax
cmp eax, 1
je 0x1007bb1e
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x1007bb1a
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.1000d8e0
xor esi, esi
jmp 0x1007bb4c
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 esi, eax
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x1007bb4c
mov ecx, dword [ebp - 0x28]
inc edx
push 1
call fcn.1000d8e0
mov eax, dword [0x1013cf04]
mov dword [0x1013cf00], esi
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x1007bb66
test esi, esi
jne 0x1007bbc1
push 0x280
mov edx, str.GraphicsWidth
mov ecx, str.Graphics
call fcn.1000dcb0
push 0x1e0
mov edx, str.GraphicsHeight
mov dword [0x1013cf04], eax
mov ecx, str.Graphics
call fcn.1000dcb0
mov esi, eax
mov eax, dword [0x1013cf04]
mov dword [0x1013cf00], esi
test eax, eax
jne 0x1007bbb2
push eax
call ebx
mov esi, dword [0x1013cf00]
mov dword [0x1013cf04], eax
test esi, esi
jne 0x1007bbc1
push 1
call ebx
mov esi, eax
mov eax, dword [0x1013cf04]
mov ecx, 0x280
mov edx, str.NumPathNodes
cmp eax, ecx
push str.._f2_res.ini
cmovl eax, ecx
mov ecx, str.MAPS
mov dword [0x1013cf04], eax
mov eax, 0x1e0
cmp esi, eax
push 1
cmovl esi, eax
mov dword [0x1013cf00], esi
call fcn.10005480
cmp eax, 1
jle 0x1007bc20
cmp eax, 0x14
jge 0x1007bc08
imul eax, eax, 0x7d0
jmp 0x1007bc0d
mov eax, 0x9c40
cmp eax, dword [0x1013cee4]
je 0x1007bc20
push eax
mov dword [0x1013cee4], eax
call fcn.10072040
push 4
mov edx, str.Mode
mov ecx, str.Graphics
call fcn.1000dcb0
mov esi, eax
mov dword [0x10143aac], esi
lea eax, [esi - 1]
cmp eax, 2
jbe 0x1007bd79
or ecx, 0xffffffff
call fcn.1007b370
mov edi, eax
cmp edi, 0xffffffff
je 0x1007bd76
test edi, edi
js 0x1007bc61
cmp edi, 2
jle 0x1007bc66
mov edi, 2
push str.._f2_res.ini
push 0
mov edx, str.WINDOWED
mov ecx, 0x1011f8fc
call fcn.10005480
mov esi, eax
neg esi
sbb esi, esi
neg esi
je 0x1007bca1
push str.._f2_res.ini
push 0
mov edx, str.WINDOWED_FULLSCREEN
mov ecx, 0x1011f8fc
call fcn.10005480
test eax, eax
je 0x1007bca1
inc esi
cmp edi, 1
jg 0x1007bcb0
lea eax, [esi + 1]
mov dword [0x10143aac], eax
jmp 0x1007bcb5
mov eax, dword [0x10143aac]
cmp edi, 2
jne 0x1007bcc2
lea eax, [esi + 4]
mov dword [0x10143aac], eax
cmp eax, 1
jne 0x1007bcfc
push str.._f2_res.ini
push 0x20
mov edx, str.COLOUR_BITS
mov ecx, 0x1011f8fc
call fcn.10005480
mov dword [0x1013cefc], eax
cmp eax, 0x20
je 0x1007bcfc
cmp eax, 0x18
je 0x1007bcfc
cmp eax, 0x10
mov edx, 0x20
cmovne eax, edx
mov dword [0x1013cefc], eax
push str.._f2_res.ini
push 0
mov edx, str.SCALE_2X
mov ecx, 0x1011f8fc
call fcn.10005480
test eax, eax
je 0x1007bdf9
mov ecx, dword [0x1013cf00]
cmp ecx, 0x3c0
jl 0x1007bd56
mov eax, dword [0x1013cf04]
cmp eax, 0x500
jl 0x1007bd56
cdq
sub eax, edx
mov byte [0x101558f1], 1
sar eax, 1
mov dword [0x1013cf04], eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [0x1013cf00], eax
jmp 0x1007bdf9
mov dword [0x1013cf04], 0x280
mov dword [0x1013cf00], 0x1e0
mov byte [0x101558f1], 1
jmp 0x1007bdf9
lea eax, [esi - 1]
cmp eax, 5
ja 0x1007bd9f
mov dword [0x10143aac], esi
cmp esi, 3
jne 0x1007bda9
mov dword [0x1013cf04], 0
mov dword [0x1013cf00], 0
jmp 0x1007bdde
mov dword [0x10143aac], 4
push 0
mov edx, str.GraphicsWidth
mov ecx, str.Graphics
call fcn.1000dcb0
push 0
mov edx, str.GraphicsHeight
mov dword [0x1013cf04], eax
mov ecx, str.Graphics
call fcn.1000dcb0
cmp dword [0x1013cf04], 0
mov dword [0x1013cf00], eax
jne 0x1007bdec
push 0
call ebx
mov dword [0x1013cf04], eax
mov eax, dword [0x1013cf00]
test eax, eax
jne 0x1007bdf9
push 1
call ebx
mov dword [0x1013cf00], eax
push str.._f2_res.ini
push 0
mov edx, str.SCALE_BUTTONS_AND_TEXT_MENU
mov ecx, str.MAINMENU
call fcn.10005480
test eax, eax
mov edx, str.USE_HIRES_IMAGES
push str.._f2_res.ini
push 1
mov ecx, str.MAINMENU
setne byte [0x10143a62]
call fcn.10005480
test eax, eax
mov edx, str.MENU_BG_OFFSET_X
push str.._f2_res.ini
push 0xfffffffffffffff2
mov ecx, str.MAINMENU
setne byte [0x10143a61]
call fcn.10005480
add dword [0x1013cf10], eax
mov edx, str.MENU_BG_OFFSET_Y
push str.._f2_res.ini
push 0xfffffffffffffffc
mov ecx, str.MAINMENU
call fcn.10005480
add dword [0x1013cf0c], eax
mov edx, str.MAIN_MENU_SIZE
push str.._f2_res.ini
push 1
mov ecx, str.MAINMENU
call fcn.10005480
push str.._f2_res.ini
push 1
mov edx, str.SPLASH_SCRN_SIZE
mov dword [0x10143a70], eax
mov ecx, str.STATIC_SCREENS
call fcn.10005480
push str.._f2_res.ini
push 0
mov edx, str.HELP_SCRN_SIZE
mov dword [0x10143a80], eax
mov ecx, str.STATIC_SCREENS
call fcn.10005480
push str.._f2_res.ini
push 1
mov edx, str.DEATH_SCRN_SIZE
mov dword [0x10143a58], eax
mov ecx, str.STATIC_SCREENS
call fcn.10005480
push str.._f2_res.ini
push 1
mov edx, str.END_SLIDE_SIZE
mov dword [0x10143a54], eax
mov ecx, str.STATIC_SCREENS
call fcn.10005480
push str.._f2_res.ini
push 1
mov edx, str.MOVIE_SIZE
mov dword [0x10143a78], eax
mov ecx, str.MOVIES
call fcn.10005480
push str.._f2_res.ini
push 0
mov edx, str.SCROLL_DIST_X
mov dword [0x10143a74], eax
mov ecx, str.MAPS
call fcn.10005480
push str.._f2_res.ini
push 0
mov edx, str.SCROLL_DIST_Y
mov ecx, str.MAPS
mov esi, eax
call fcn.10005480
mov ecx, eax
pop ebx
test esi, esi
jg 0x1007bf5a
mov eax, dword [0x1013cf04]
cdq
sub eax, edx
sar eax, 1
add eax, 0x20
mov dword [0x10143a90], eax
jmp 0x1007bf60
mov dword [0x10143a90], esi
test ecx, ecx
jg 0x1007bf78
mov eax, dword [0x1013cf00]
cdq
sub eax, edx
sar eax, 1
add eax, 0x18
mov dword [0x10143a8c], eax
jmp 0x1007bf7e
mov dword [0x10143a8c], ecx
push str.._f2_res.ini
push 0
mov edx, str.IGNORE_PLAYER_SCROLL_LIMITS
mov ecx, str.MAPS
call fcn.10005480
test eax, eax
mov edx, str.IGNORE_MAP_EDGES
push str.._f2_res.ini
push 0
mov ecx, str.MAPS
setne byte [0x10143a95]
call fcn.10005480
test eax, eax
mov edx, str.EDGE_CLIPPING_ON
push str.._f2_res.ini
push 1
mov ecx, str.MAPS
setne byte [0x10143a94]
call fcn.10005480
test eax, eax
setne byte [0x10143a63]
cmp dword [0x1013cf04], 0x280
jle 0x1007c002
push str.._f2_res.ini
push 0
mov edx, str.IFACE_BAR_MODE
mov ecx, str.IFACE
call fcn.10005480
mov dword [0x10143a5c], eax
push str.._f2_res.ini
push 2
mov edx, str.IFACE_BAR_SIDE_ART
mov ecx, str.IFACE
call fcn.10005480
mov ecx, 0x320
mov dword [0x10143a64], eax
cmp dword [0x1013cf04], ecx
mov eax, 0x280
push str.._f2_res.ini
cmovge eax, ecx
mov edx, str.IFACE_BAR_WIDTH
push eax
mov ecx, str.IFACE
call fcn.10005480
push str.._f2_res.ini
push 0
mov edx, str.IFACE_BAR_SIDES_ORI
mov dword [0x10143a6c], eax
mov ecx, str.IFACE
call fcn.10005480
test eax, eax
mov edx, str.ALTERNATE_AMMO_METRE
push str.._f2_res.ini
push 0
mov ecx, str.IFACE
setne byte [0x10143a60]
call fcn.10005480
push str.._f2_res.ini
push 0xc4
mov edx, str.ALTERNATE_AMMO_LIGHT
mov dword [0x10143a68], eax
mov ecx, str.IFACE
call fcn.10005480
push str.._f2_res.ini
push 0x4b
mov edx, str.ALTERNATE_AMMO_DARK
mov byte [0x1014311f], al
mov ecx, str.IFACE
call fcn.10005480
push str.._f2_res.ini
push 1
mov edx, str.DIALOG_SCRN_ART_FIX
mov byte [0x1014311e], al
mov ecx, str.OTHER_SETTINGS
call fcn.10005480
test eax, eax
mov edx, str.DIALOG_SCRN_BACKGROUND
push str.._f2_res.ini
push 0
mov ecx, str.OTHER_SETTINGS
setne byte [0x1013cef4]
call fcn.10005480
test eax, eax
mov edx, str.FADE_TIME_RECALCULATE_ON_FADE
push str.._f2_res.ini
push 0
mov ecx, str.OTHER_SETTINGS
setne byte [0x1017503f]
call fcn.10005480
test eax, eax
je 0x1007c11a
call fcn.100409d0
cmp byte [0x10174f84], 0
jne 0x1007c148
push str.._f2_res.ini
push 1
mov edx, str.SPLASH_SCRN_TIME
mov ecx, str.OTHER_SETTINGS
call fcn.10005480
mov ecx, 0xa
cmp eax, ecx
cmovg eax, ecx
mov dword [0x10143a7c], eax
push str.._f2_res.ini
push 0
mov edx, str.EXTRA_WIN_MSG_CHECKS
mov ecx, str.INPUT
call fcn.10005480
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
setne al
mov byte [0x101558f3], al
test al, al
je 0x1007c1aa
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x4c73b2
call edi
mov eax, 0x1007b8b0
sub eax, 0x4c73b6
mov dword [0x4c73b2], eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
push 4
push 0x4c73b2
call edi
mov dword [0x10174fb0], 0x1007b8c0
push str.._f2_res.ini
push 1
mov edx, str.CPU_USAGE_FIX
mov ecx, str.OTHER_SETTINGS
call fcn.10005480
mov edx, dword [0x1013cf88]
test eax, eax
mov esi, 1
mov ecx, str.MAPS
cmovne edx, esi
push str.._f2_res.ini
mov dword [0x1013cf88], edx
mov edx, str.FOG_OF_WAR
push 0
call fcn.10005480
test eax, eax
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x482e30
setne byte [0x101558f2]
call edi
lea eax, [ebp - 0x10]
mov dword [0x482e30], 0x51955c
push eax
push dword [ebp - 0x10]
push 4
push 0x482e30
call edi
mov esi, dword [0x1013cf04]
cmp esi, 0x280
jne 0x1007c23c
cmp dword [0x1013cf00], 0x1e0
je 0x1007c3e0
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x4cad6b
call edi
lea eax, [ebp - 0x10]
mov dword [0x4cad6b], esi
push eax
push dword [ebp - 0x10]
push 4
push 0x4cad6b
call edi
mov esi, dword [0x1013cf00]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x4cad66
call edi
lea eax, [ebp - 0x10]
mov dword [0x4cad66], esi
push eax
push dword [ebp - 0x10]
push 4
push 0x4cad66
call edi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x4b9245
call edi
lea eax, [ebp - 0x10]
mov dword [0x4b9245], 0x1013cf04
push eax
push dword [ebp - 0x10]
push 4
push 0x4b9245
call edi
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x4b923f
call edi
lea eax, [ebp - 0x10]
mov dword [0x4b923f], 0x1013cf00
push eax
push dword [ebp - 0x10]
push 4
push 0x4b923f
call edi
mov esi, dword [0x1013cf00]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x480d6c
call edi
lea eax, [ebp - 0x10]
mov dword [0x480d6c], esi
push eax
push dword [ebp - 0x10]
push 4
push 0x480d6c
call edi
mov esi, dword [0x1013cf04]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x480d84
call edi
lea eax, [ebp - 0x10]
mov dword [0x480d84], esi
push eax
push dword [ebp - 0x10]
push 4
push 0x480d84
call edi
mov esi, dword [0x1013cf00]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x47c6e0
call edi
lea eax, [ebp - 0x10]
mov dword [0x47c6e0], esi
push eax
push dword [ebp - 0x10]
push 4
push 0x47c6e0
call edi
mov esi, dword [0x1013cf04]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x47c6e5
call edi
lea eax, [ebp - 0x10]
mov dword [0x47c6e5], esi
push eax
push dword [ebp - 0x10]
push 4
push 0x47c6e5
call edi
mov esi, dword [0x1013cf04]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x47c703
call edi
lea eax, [ebp - 0x10]
mov dword [0x47c703], esi
push eax
push dword [ebp - 0x10]
push 4
push 0x47c703
call edi
mov esi, dword [0x1013cf00]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push 0x47c70d
call edi
lea eax, [ebp - 0x10]
mov dword [0x47c70d], esi
push eax
push dword [ebp - 0x10]
push 4
push 0x47c70d
call edi
call fcn.10083f50
call fcn.1007dcb0
call fcn.10085ba0
call fcn.10084070
call fcn.1007cd70
call fcn.1007a7b0
mov eax, dword [0x1013cf04]
sub eax, dword [0x5190d0]
cdq
sub eax, edx
sar eax, 1
mov dword [0x5190d8], eax
mov eax, dword [0x1013cf00]
sub eax, dword [0x5190d4]
cdq
sub eax, edx
sar eax, 1
mov dword [0x5190dc], eax
call fcn.10079b80
call fcn.1007d450
call fcn.1007de20
call fcn.1007aee0
call fcn.100837c0
call fcn.10079ca0
call fcn.1007e480
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret