Function at 0x10081a30
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x1011888b], 0
jne 0x1008207c
push 0x64
push dword [0x101188a4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x10081a64
push str.Failure_waiting_for_hooking_mutex__n
call fcn.10081660
add esp, 4
mov esp, ebp
pop ebp
ret
cmp byte [0x10118cea], 0
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
jne 0x10081af6
push str.shell32.dll
call esi
mov ebx, eax
test ebx, ebx
je 0x10081af6
push 0
push 0x10118d30
push 0x10083310
push str.ShellExecuteExA
push ebx
call edi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10118d34
push 0x100836b0
push str.ShellExecuteExW
push ebx
call edi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d30], 0
jne 0x10081ad9
push str.Failed_hooking_ShellExecuteExA_calls_n
call fcn.10081660
add esp, 4
cmp dword [0x10118d34], 0
jne 0x10081aef
push str.Failed_hooking_ShellExecuteExW_calls_n
call fcn.10081660
add esp, 4
mov byte [0x10118cea], 1
push str.dxgi.dll
call fcn.10081550
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10081bbc
push str.CreateDXGIFactory
push ebx
call edi
mov dword [ebp - 4], eax
test eax, eax
je 0x10081b4f
push 0x10074530
push eax
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081b4f
push str.Game_is_using_dxgi__dx10_dx11___preparing_to_hook._n
call fcn.10081660
push 0
push 0x10107b68
push 0x10074530
push dword [ebp - 4]
call fcn.1006eaf0
add esp, 0x14
push str.CreateDXGIFactory1
push ebx
call edi
mov dword [ebp - 4], eax
test eax, eax
je 0x10081b87
push 0x10074370
push eax
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081b87
push 0
push 0x10107b6c
push 0x10074370
push dword [ebp - 4]
call fcn.1006eaf0
add esp, 0x10
push str.CreateDXGIFactory2
push ebx
call edi
mov ebx, eax
test ebx, ebx
je 0x10081bbc
push 0x10074480
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081bbc
push 0
push 0x10107b70
push 0x10074480
push ebx
call fcn.1006eaf0
add esp, 0x10
push str.d3d12.dll
call esi
test eax, eax
je 0x10081c06
push str.D3D12CreateDevice
push eax
call edi
mov ebx, eax
test ebx, ebx
je 0x10081c06
push 0x10074640
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081c06
push str.Game_is_using_d3d12__preparing_to_hook._n
call fcn.10081660
push 0
push 0x10107ba4
push 0x10074640
push ebx
call fcn.1006eaf0
add esp, 0x14
push 0x100cf5e4
call fcn.10081550
add esp, 4
mov dword [ebp - 4], eax
test eax, eax
je 0x10081caa
push 0x101280b8
push str.Direct3DCreate9
push eax
call fcn.10081400
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10081c68
push 0x10069fa0
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081c68
push str.Game_is_using_D3D9_or_D3D9Ex__preparing_to_hook._n
call fcn.10081660
push 0
push 0x101076b8
push 0x10069fa0
push ebx
call fcn.1006eaf0
add esp, 0x14
push 0x101280b9
push str.Direct3DCreate9Ex
push dword [ebp - 4]
call fcn.10081400
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10081caa
push 0x100693a0
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081caa
push 0
push 0x101076b4
push 0x100693a0
push ebx
call fcn.1006eaf0
add esp, 0x10
push str.d3d8.dll
call fcn.10081550
add esp, 4
test eax, eax
je 0x10081d05
push 0x101280ba
push str.Direct3DCreate8
push eax
call fcn.10081400
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10081d05
push 0x100667a0
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081d05
push str.Game_is_using_D3D8__preparing_to_hook._n
call fcn.10081660
push 0
push 0x10107658
push 0x100667a0
push ebx
call fcn.1006eaf0
add esp, 0x14
push str.d3d.dll
call fcn.10081550
add esp, 4
test eax, eax
je 0x10081d23
push str.Game_is_using_D3D7_or_earlier__not_yet_supported__n
call fcn.10081660
add esp, 4
push str.ddraw.dll
call fcn.10081550
add esp, 4
mov dword [ebp - 4], eax
test eax, eax
je 0x10081dc7
push 0x101280bb
push str.DirectDrawCreate
push eax
call fcn.10081400
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10081d85
push 0x1006bad0
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081d85
push str.Game_is_using_ddraw.dll__dx7_or_lower_..._hooking._n
call fcn.10081660
push 0
push 0x101076dc
push 0x1006bad0
push ebx
call fcn.1006eaf0
add esp, 0x14
push 0x101280bc
push str.DirectDrawCreateEx
push dword [ebp - 4]
call fcn.10081400
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10081dc7
push 0x1006bb70
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081dc7
push 0
push 0x101076e0
push 0x1006bb70
push ebx
call fcn.1006eaf0
add esp, 0x10
push str.opengl32.dll
call fcn.10081550
add esp, 4
mov dword [ebp - 4], eax
test eax, eax
je 0x10081e5f
push str.wglSwapBuffers
push eax
call edi
mov ebx, eax
test ebx, ebx
je 0x10081e1e
push 0x1007a910
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081e1e
push str.Game_is_using_opengl32.dll..._hooking._n
call fcn.10081660
push 0
push 0x10107cc8
push 0x1007a910
push ebx
call fcn.1006eaf0
add esp, 0x14
push str.wglSwapLayerBuffers
push dword [ebp - 4]
call edi
mov ebx, eax
test ebx, ebx
je 0x10081e5f
push 0x1007a980
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081e5f
push str.Game_is_using_opengl32.dll..._hooking._n
call fcn.10081660
push 0
push 0x10107ccc
push 0x1007a980
push ebx
call fcn.1006eaf0
add esp, 0x14
push 0x100dc440
call esi
mov ebx, eax
test ebx, ebx
jne 0x10081e79
push str.mantle64.dll
call esi
mov ebx, eax
test ebx, ebx
je 0x10081e8c
push str.Game_is_using_mantle_3264_.dll..._hooking._n
call fcn.10081660
push ebx
call fcn.10087fa0
add esp, 8
push str.dinput8.dll
call esi
test eax, eax
je 0x10081ed6
push str.DirectInput8Create
push eax
call edi
mov ebx, eax
test ebx, ebx
je 0x10081ed6
push 0x10072a80
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081ed6
push str.Game_is_using_dinput8__preparing_to_hook._n
call fcn.10081660
push 0
push 0x10107b4c
push 0x10072a80
push ebx
call fcn.1006eaf0
add esp, 0x14
push str.dinput.dll
call esi
mov dword [ebp - 4], eax
test eax, eax
je 0x10081f5a
push str.DirectInputCreateA
push eax
call edi
mov ebx, eax
test ebx, ebx
je 0x10081f23
push 0x1006fb90
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081f23
push str.Game_is_using_dinput.dll__dinput7___preparing_to_hook._n
call fcn.10081660
push 0
push 0x10107b3c
push 0x1006fb90
push ebx
call fcn.1006eaf0
add esp, 0x14
push str.DirectInputCreateW
push dword [ebp - 4]
call edi
mov ebx, eax
test ebx, ebx
je 0x10081f5a
push 0x1006fc20
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10081f5a
push 0
push 0x10107b40
push 0x1006fc20
push ebx
call fcn.1006eaf0
add esp, 0x10
push str.xinput1_4.dll
call esi
test eax, eax
je 0x10081f70
push 0xe
push eax
call fcn.1009be90
add esp, 8
push str.xinput1_3.dll
call esi
test eax, eax
je 0x10081f86
push 0xd
push eax
call fcn.1009be90
add esp, 8
push str.xinput1_2.dll
call esi
test eax, eax
je 0x10081f9c
push 0xc
push eax
call fcn.1009be90
add esp, 8
push str.xinput1_1.dll
call esi
test eax, eax
je 0x10081fb2
push 0xb
push eax
call fcn.1009be90
add esp, 8
push str.XInput9_1_0.dll
call esi
test eax, eax
je 0x10081fc8
push 0xa
push eax
call fcn.1009be90
add esp, 8
push str.winmm.dll
call esi
test eax, eax
je 0x10081fdc
push eax
call fcn.1009bd90
add esp, 4
push str.hid.dll
call esi
test eax, eax
je 0x10081ff0
push eax
call fcn.1008da30
add esp, 4
push str.setupapi.dll
call esi
test eax, eax
je 0x10082004
push eax
call fcn.10094320
add esp, 4
push str.combase.dll
call esi
mov esi, eax
test esi, esi
je 0x1008206d
push str.RoGetActivationFactory
push esi
call edi
mov ebx, eax
test ebx, ebx
je 0x10082046
push 0x1009b7f0
push ebx
call fcn.1006f540
add esp, 8
test al, al
jne 0x10082046
push 0
push 0x1012b588
push 0x1009b7f0
push ebx
call fcn.1006eaf0
add esp, 0x10
push str.WindowsCreateString
push esi
call edi
push str.WindowsDeleteString
push esi
mov dword [0x1012b58c], eax
call edi
push str.WindowsGetStringRawBuffer
push esi
mov dword [0x1012b590], eax
call edi
mov dword [0x1012b594], eax
push dword [0x101188a4]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret