Function at 0x10001930
Capabilities:
Get common file path
Link many functions at runtime
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x828
mov eax, dword [0x1001d040]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0xc], 1
push ebx
mov ebx, dword [ebp + 8]
jne 0x10001d93
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push edi
push str.ntdll.dll
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x10001972
push str.RtlImageNtHeader
push eax
call edi
push str.Kernel32.dll
call esi
test eax, eax
je 0x100019a5
push str.SetProcessMitigationPolicy
push eax
call edi
mov dword [0x1001e488], eax
test eax, eax
je 0x100019a5
push 4
lea ecx, [ebp - 0x828]
mov dword [ebp - 0x828], 3
push ecx
push 3
call eax
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.100040f0
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.100040f0
add esp, 0x18
lea eax, [ebp - 0x20c]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x10001d75
cmp eax, 0xd8
ja 0x10001d75
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x10001a1b
push 0x10
push str.d3d9
push str.Unable_to_get_dll_path___2___ERROR_INSUFFICIENT_BUFFER_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea eax, [ebp - 0x20c]
push 0x5c
push eax
call fcn.10003a41
add esp, 8
test eax, eax
je 0x10001a35
xor ecx, ecx
mov word [eax], cx
push 0x208
lea eax, [ebp - 0x61c]
push 0
push eax
call fcn.100040f0
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x61c]
push 0x104
push eax
call fcn.10005880
push str.d3d9R.dll
lea eax, [ebp - 0x61c]
push 0x104
push eax
call fcn.100058e4
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileW]
lea eax, [ebp - 0x61c]
add esp, 0x24
push 0
push 0x80
push 3
push 0
push 1
push 0
push eax
call esi
cmp eax, 0xffffffff
je 0x10001aaa
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [0x1001e450], 1
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.10005880
push str.Mirrors_Edge_PC_Fix.dll
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.100058e4
add esp, 0x18
lea eax, [ebp - 0x414]
push 0
push 0x80
push 3
push 0
push 1
push 0
push eax
call esi
mov esi, dword [sym.imp.USER32.dll_MessageBoxW]
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, 0xffffffff
je 0x10001b27
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x414]
push eax
call ebx
test eax, eax
jne 0x10001b27
push 0x10
push str.d3d9
push str.Failed_to_load_game_mod_dll_
push eax
call esi
push 0x208
lea eax, [ebp - 0x824]
push 0
push eax
call fcn.100040f0
add esp, 0xc
lea eax, [ebp - 0x824]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x10001d5d
cmp eax, 0xf5
ja 0x10001d5d
push 0x1001ad30
lea eax, [ebp - 0x824]
push 0x104
push eax
call fcn.100058e4
add esp, 0xc
lea eax, [ebp - 0x61c]
cmp byte [0x1001e450], 1
je 0x10001b90
lea eax, [ebp - 0x824]
push eax
call ebx
mov dword [0x1001e480], eax
push 0x10
test eax, eax
jne 0x10001bb3
push str.d3d9
push str.Failed_to_load_d3d9.dll_
push eax
call esi
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push eax
call edi
push 0x11
push dword [0x1001e480]
mov dword [0x1001e474], eax
call edi
push 0x12
push dword [0x1001e480]
mov dword [0x1001e470], eax
call edi
push 0x13
push dword [0x1001e480]
mov dword [0x1001e440], eax
call edi
push 0x1001ad78
push dword [0x1001e480]
mov dword [0x1001e48c], eax
call edi
push 0x1001ad8c
push dword [0x1001e480]
mov dword [0x1001e438], eax
call edi
push 0x16
push dword [0x1001e480]
mov dword [0x1001e428], eax
call edi
push 0x17
push dword [0x1001e480]
mov dword [0x1001e45c], eax
call edi
push 0x1001ada4
push dword [0x1001e480]
mov dword [0x1001e484], eax
call edi
push 0x1001adc4
push dword [0x1001e480]
mov dword [0x1001e47c], eax
call edi
push 0x1001add0
push dword [0x1001e480]
mov dword [0x1001e448], eax
call edi
push 0x1001ade4
push dword [0x1001e480]
mov dword [0x1001e46c], eax
call edi
push 0x1001adf8
push dword [0x1001e480]
mov dword [0x1001e430], eax
call edi
push 0x1001ae0c
push dword [0x1001e480]
mov dword [0x1001e43c], eax
call edi
push 0x1001ae20
push dword [0x1001e480]
mov dword [0x1001e468], eax
call edi
push 0x1001ae3c
push dword [0x1001e480]
mov dword [0x1001e424], eax
call edi
push 0x1001ae50
push dword [0x1001e480]
mov dword [0x1001e444], eax
call edi
push 0x1001ae64
push dword [0x1001e480]
mov dword [0x1001e458], eax
call edi
push 0x1001ae78
push dword [0x1001e480]
mov dword [0x1001e454], eax
call edi
push 0x1001ae88
push dword [0x1001e480]
mov dword [0x1001e464], eax
call edi
push 0x1001ae98
push dword [0x1001e480]
mov dword [0x1001e460], eax
call edi
push 0x1001aec4
push dword [0x1001e480]
mov dword [0x1001e478], eax
call edi
push 0x1001aed4
push dword [0x1001e480]
mov dword [0x1001e42c], eax
call edi
cmp dword [0x1001e42c], 0
mov dword [0x1001e44c], eax
je 0x10001d45
test eax, eax
jne 0x10001d91
push 0x10
push str.d3d9
push str.Failed_to_get_Direct3DCreate9_or_Direct3DCreate9Ex_in_d3d9.dll_
push 0
call esi
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x10
push str.d3d9
push str.Failed_to_get_System_Directory_
push 0
call esi
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x10
push str.d3d9
push str.Unable_to_get_dll_path___1_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
pop edi
pop esi
mov ecx, dword [ebp - 4]
mov eax, 1
xor ecx, ebp
pop ebx
call fcn.10002823
mov esp, ebp
pop ebp
ret 0xc