Function at 0x10083c80
Capabilities:
Check mutex on windows
Enumerate process modules
Link many functions at runtime
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x100cb996
push eax
mov dword fs:[0], esp
sub esp, 0xdf0
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
cmp eax, 1
jne 0x100850ff
mov edi, dword [ebp + 8]
push edi
call dword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
push 0x20a
lea eax, [ebp - 0x358]
push 0
push eax
call fcn.100a3330
push str.GameOverlayRenderer.log
push 0x104
push 0x10127ea0
call fcn.10081210
add esp, 0x18
lea eax, [ebp + 8]
push eax
push 0x20019
push 0
push str.SoftwareValveSteamActiveProcess
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10083daa
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0x208
push eax
lea eax, [ebp - 0x358]
push eax
push 0
push 0
push str.SteamClientDll
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x10083da1
mov eax, dword [ebp + 0xc]
shr eax, 1
xor ecx, ecx
mov word [ebp + eax*2 - 0x358], cx
lea ecx, [ebp - 0x358]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10083d44
sub ecx, edx
sar ecx, 1
add ecx, 0xffffffff
js 0x10083da1
jmp 0x10083d60
movzx eax, word [ebp + ecx*2 - 0x358]
cmp eax, 0x2f
je 0x10083d79
cmp eax, 0x5c
je 0x10083d79
sub ecx, 1
jns 0x10083d60
jmp 0x10083da1
xor eax, eax
mov word [ebp + ecx*2 - 0x358], ax
lea eax, [ebp - 0x358]
push eax
push str._lsGameOverlayRenderer.log
push 0x104
push 0x10127ea0
call fcn.10057c20
add esp, 0x10
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0
push 0
push 0
call esi
push 0
push 0
push 0
mov dword [0x101188a0], eax
call esi
push 0x104
push 0x10118ab0
mov dword [0x101188a4], eax
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x10083de5
cmp eax, 0x104
jbe 0x10083e23
mov eax, dword [str.C:WINDOWS]
mov dword [0x10118ab0], eax
mov eax, dword [0x100dc750]
mov dword [0x10118ab4], eax
mov eax, dword [0x100dc754]
mov dword [0x10118ab8], eax
mov eax, dword [0x100dc758]
mov dword [0x10118abc], eax
mov eax, dword [0x100dc75c]
mov dword [0x10118ac0], eax
mov ax, word [0x100dc760]
mov word [0x10118ac4], ax
mov ecx, 0x10118ab0
lea edx, [ecx + 2]
jmp 0x10083e30
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10083e30
push 0x104
sub ecx, edx
push 0x101188a8
sar ecx, 1
push edi
mov dword [0x10118cb8], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x101188a8
push str.Module_file_name:__ls_n
call fcn.10081660
mov edi, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
lea eax, [ebp - 0x14c]
add esp, 8
push 0x100
push eax
push str.SteamGameId
call edi
test eax, eax
je 0x10083eb5
cmp eax, 0x100
jae 0x10083eb5
push 0xa
lea eax, [ebp - 0x14c]
push 0
push eax
call fcn.100b1602
add esp, 0xc
mov dword [0x10118cd8], eax
mov dword [0x10118cdc], edx
mov dword [0x10118ce0], eax
mov dword [0x10118ce4], edx
push 0x100
lea eax, [ebp - 0x14c]
push eax
push str.SteamOverlayGameId
call edi
test eax, eax
je 0x10083ef3
cmp eax, 0x100
jae 0x10083ef3
push 0xa
lea eax, [ebp - 0x14c]
push 0
push eax
call fcn.100b1602
add esp, 0xc
mov dword [0x10118ce0], eax
mov dword [0x10118ce4], edx
jmp 0x10083efe
mov edx, dword [0x10118ce4]
mov eax, dword [0x10118ce0]
push edx
push eax
push dword [0x10118cdc]
push dword [0x10118cd8]
push str.GameID___llu__OverlayGameID___llu_n
call fcn.10081660
add esp, 0x14
lea eax, [ebp - 0x14c]
push 0x100
push eax
push str.IgnoreChildProcesses
call edi
test eax, eax
je 0x10083f45
cmp eax, 0x100
jae 0x10083f45
cmp byte [ebp - 0x14c], 0
setne byte [0x1011888a]
push 0x100
lea eax, [ebp - 0x14c]
xor bh, bh
push eax
push str.GameOverlay_CompatMode
call edi
test eax, eax
je 0x10083f6e
cmp eax, 0x100
jae 0x10083f6e
cmp byte [ebp - 0x14c], bh
setne bh
push 0x100
lea eax, [ebp - 0x14c]
mov byte [ebp + 0xf], 0
push eax
push str.GameOverlay_TestMode
call edi
test eax, eax
je 0x10083f9b
cmp eax, 0x100
jae 0x10083f9b
cmp byte [ebp - 0x14c], 0
setne byte [ebp + 0xf]
push 0x100
lea eax, [ebp - 0x14c]
xor bl, bl
push eax
push str.GameOverlay_BlockOculusSDK
call edi
test eax, eax
je 0x10083fc4
cmp eax, 0x100
jae 0x10083fc4
cmp byte [ebp - 0x14c], bl
setne bl
push str.EnableConfiguratorSupport
call fcn.100a70e3
add esp, 4
test eax, eax
je 0x10083fed
push str.EnableConfiguratorSupport
call fcn.100a70e3
push eax
call fcn.100b2eda
add esp, 8
mov dword [0x10118858], eax
mov ecx, dword [0x10118cdc]
mov eax, dword [0x10118cd8]
test ecx, ecx
jne 0x1008400b
test eax, eax
je 0x1008400b
test ecx, ecx
jne 0x1008400b
cmp eax, 0x3e8
jb 0x10084013
test bh, bh
jne 0x10084013
test bl, bl
je 0x1008404c
mov byte [0x10127810], 1
test bl, bl
je 0x1008403d
push str.Blocking_Oculus_SDK_n
call fcn.10081660
mov ecx, dword [0x10118cdc]
add esp, 4
mov eax, dword [0x10118cd8]
mov byte [0x10127e6e], 1
cmp byte [ebp + 0xf], 0
je 0x1008404c
mov word [0x10127e6c], 0x101
push ecx
push eax
push str.SteamOverlayRunning__llu
lea eax, [ebp - 0x3d8]
push 0x80
push eax
call fcn.10057be0
push 0
push 0
push 0
lea eax, [ebp - 0x3d8]
push 1
push eax
call fcn.10080a70
add esp, 0x28
mov dword [0x10118cd4], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov esi, eax
lea eax, [ebp - 0x9fc]
push esi
push str.GameOverlay_InputEventStream__d
push 0x400
push eax
call fcn.10057be0
push 0x13c
call fcn.100a19fe
add esp, 0x14
mov dword [ebp + 0xc], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x100840d5
push 0
push 0
push 0x32
push 0x80000
lea ecx, [ebp - 0x9fc]
push ecx
mov ecx, eax
call fcn.10094970
jmp 0x100840d7
xor eax, eax
push esi
push str.GameOverlay_ScreenshotStream__d
mov dword [0x10118890], eax
lea eax, [ebp - 0x9fc]
push 0x400
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.10057be0
push 0x13c
call fcn.100a19fe
add esp, 0x14
mov dword [ebp + 0xc], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x10084130
push 0
push 0
push 0x32
push 0x100000
lea ecx, [ebp - 0x9fc]
push ecx
mov ecx, eax
call fcn.10094970
jmp 0x10084132
xor eax, eax
push esi
push str.GameOverlayRender_PaintCmdStream__d
mov dword [0x10118cc8], eax
lea eax, [ebp - 0x9fc]
push 0x400
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.10057be0
push 0x13c
call fcn.100a19fe
add esp, 0x14
mov dword [ebp + 0xc], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x1008418b
push 0
push 0
push 0x78
push 0x1000000
lea ecx, [ebp - 0x9fc]
push ecx
mov ecx, eax
call fcn.10094970
jmp 0x1008418d
xor eax, eax
mov dword [0x10118894], eax
lea eax, [ebp - 0x4c]
push 1
push eax
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push 0
push 0
push 1
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
push esi
push str.GameOverlay_InGameRenderingCompleted__d
lea eax, [ebp - 0x9fc]
push 0x400
push eax
call fcn.10057be0
push 0
push 0
push 0
lea eax, [ebp - 0x9fc]
push 0
push eax
call fcn.10080a70
add esp, 0x24
mov dword [0x10118898], eax
test eax, eax
jne 0x100841f9
push str.Failed_creating_rendering_event_n
call fcn.10081660
add esp, 4
push esi
push str.GameOverlay_VGUIPaintingCompleted__d
lea eax, [ebp - 0x9fc]
push 0x400
push eax
call fcn.10057be0
push 0
push 0
push 0
lea eax, [ebp - 0x9fc]
push 0
push eax
call fcn.10080a70
add esp, 0x24
mov dword [0x1011889c], eax
test eax, eax
jne 0x1008423d
push str.Failed_creating_paint_event_n
call fcn.10081660
add esp, 4
push esi
push str.GameOverlay_SerializedWorkQueued__d
lea eax, [ebp - 0x9fc]
push 0x400
push eax
call fcn.10057be0
push 0
push 0
push 0
lea eax, [ebp - 0x9fc]
push 0
push eax
call fcn.10080a70
add esp, 0x24
mov dword [0x10118cd0], eax
test eax, eax
jne 0x10084281
push str.Failed_creating_serialized_work_event_n
call fcn.10081660
add esp, 4
push esi
push str.GameOverlay_GameExitingEvent__d
lea eax, [ebp - 0x9fc]
push 0x400
push eax
call fcn.10057be0
push 0
push 0
push 0
lea eax, [ebp - 0x9fc]
push 1
push eax
call fcn.10080a70
add esp, 0x24
mov dword [0x10118ccc], eax
test eax, eax
jne 0x100842c5
push str.Failed_creating_exit_event_n
call fcn.10081660
add esp, 4
call fcn.10074980
push 0
push 0
push 0x64
push 0x400
push str.GameOverlayRender_PIDStream
lea ecx, [ebp - 0x28c]
call fcn.10094970
mov eax, dword [0x10118cd8]
mov ecx, dword [0x10118cdc]
mov dword [ebp - 0x34], eax
mov eax, dword [0x10118ce0]
mov dword [ebp - 0x30], ecx
mov ecx, dword [0x10118ce4]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x38]
push 0x25
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x28c]
push eax
mov dword [ebp - 4], 3
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x14], 0
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x24], 0
call fcn.10095440
lea ecx, [ebp - 0x28c]
mov dword [ebp - 4], 0xffffffff
call fcn.10094c60
push 0x400
lea eax, [ebp - 0xdfc]
push eax
push str._SteamInjectionPIDs
call edi
test eax, eax
je 0x100843e6
cmp eax, 0x400
jae 0x100843e6
lea eax, [ebp - 0xdfc]
push eax
push str.Watching_for_initial_ResumeThread_on_PIDs__s_n
call fcn.10081660
lea eax, [ebp - 0xdfc]
add esp, 8
mov dword [ebp + 0xc], eax
cmp byte [eax], 0
je 0x100843e6
push 0xa
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.100b1656
mov ecx, dword [0x10118d40]
add esp, 0xc
mov dword [ebp + 8], eax
cmp ecx, dword [0x10118d44]
je 0x100843c3
mov dword [ecx], eax
add dword [0x10118d40], 4
jmp 0x100843d2
lea eax, [ebp + 8]
push eax
push ecx
mov ecx, 0x10118d3c
call fcn.100810b0
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100843e6
cmp byte [eax], 0x2c
jne 0x100843e2
inc eax
mov dword [ebp + 0xc], eax
test eax, eax
jne 0x10084393
mov ecx, dword [0x10118cd8]
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov eax, dword [0x10118cdc]
cmp ecx, 0x573a
jne 0x10084432
test eax, eax
jne 0x10084432
push str.Oblivion.exe
call ebx
test eax, eax
je 0x100844ac
push str.obse_steam_loader.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x1008442b
push str.Loaded_OBSE_n
jmp 0x100844a4
push str.OBSE_not_found_n
jmp 0x100844a4
cmp ecx, 0x576c
jne 0x1008443e
test eax, eax
je 0x1008444a
cmp ecx, 0x57da
jne 0x10084472
test eax, eax
jne 0x10084472
push str.FalloutNV.exe
call ebx
test eax, eax
je 0x100844ac
push str.nvse_steam_loader.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x1008446b
push str.Loaded_NVSE_n
jmp 0x100844a4
push str.NVSE_not_found_n
jmp 0x100844a4
cmp ecx, 0x11c92
jne 0x100844ac
test eax, eax
jne 0x100844ac
push str.TESV.exe
call ebx
test eax, eax
je 0x100844ac
push str.skse_steam_loader.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x1008449f
push str.Loaded_SKSE_n
jmp 0x100844a4
push str.SKSE_not_found_n
call fcn.10081660
add esp, 4
push str.ntdll.dll
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
push str.RtlGetCallersAddress
push edi
mov dword [ebp - 0x10], edi
call esi
push str.LdrGetProcedureAddress
push edi
mov dword [0x1011888c], eax
call esi
push 0x100cfe10
mov dword [0x10118d38], eax
call ebx
mov edi, eax
push str.GetProcessIdOfThread
push edi
call esi
push str.GetThreadId
push edi
mov dword [0x10127e84], eax
call esi
cmp byte [0x10127810], 0
mov dword [0x10127e88], eax
je 0x100845d4
push 0
push 0x10118d10
push 0x10083a10
push str.VirtualAlloc
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d10], 0
jne 0x1008453b
push str.Failed_hooking_VirtualAlloc_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118d14
push 0x10083af0
push 0x100dca7c
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d14], 0
jne 0x1008456e
push str.Failed_hooking_VirtualProtect_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118d18
push 0x10083a80
push 0x100dcab4
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d18], 0
jne 0x100845a1
push str.Failed_hooking_VirtualAlloc_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118d1c
push 0x10083b80
push 0x100dcac4
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d1c], 0
jne 0x100845d4
push str.Failed_hooking_VirtualProtectEx_calls_n
call fcn.10081660
add esp, 4
push str.kernelbase.dll
call ebx
mov dword [ebp + 8], eax
test eax, eax
je 0x100846b8
push 0
push 0x10118cf0
push 0x10082b80
push 0x100dcb00
push eax
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118cf0], 0
jne 0x10084619
push str.Failed_hooking_kernelbase_LoadLibraryExW_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118cf8
push 0x10082a60
push 0x100dcb40
push dword [ebp + 8]
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118cf8], 0
jne 0x1008464e
push str.Failed_hooking_kernelbase_LoadLibraryExA_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118d0c
push 0x100829b0
push 0x100cfdd4
push dword [ebp + 8]
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d0c], 0
jne 0x10084683
push str.Failed_hooking_kernelbase_free_library_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118d28
push 0x100830e0
push 0x100dcb80
push dword [ebp + 8]
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d28], 0
jne 0x100846b8
push str.Failed_hooking_kernelbase_ResumeThread_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118cec
push 0x10082f10
push 0x100dcb00
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118cec], 0
jne 0x100846f4
cmp dword [0x10118cf0], 0
jne 0x100846f4
push str.Failed_hooking_LoadLibraryExW_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118cf4
push 0x10082e40
push 0x100dcb40
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118cf4], 0
jne 0x10084730
cmp dword [0x10118cf8], 0
jne 0x10084730
push str.Failed_hooking_LoadLibraryExA_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118cfc
push 0x10083020
push 0x100d90bc
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118cfc], 0
jne 0x10084763
push str.Failed_hooking_LoadLibraryW_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118d00
push 0x10082cc0
push 0x100d90e0
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d00], 0
jne 0x10084796
push str.Failed_hooking_LoadLibraryA_calls_n
call fcn.10081660
add esp, 4
cmp byte [0x10127e6d], 0
je 0x100847d4
push 0
push 0x10118d04
push 0x10082c00
push str.LdrLoadDll
push dword [ebp - 0x10]
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d04], 0
jne 0x100847d4
push str.Failed_hooking_LdrLoadDll_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118d08
push 0x100828e0
push 0x100cfdd4
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d08], 0
jne 0x10084810
cmp dword [0x10118d0c], 0
jne 0x10084810
push str.Failed_hooking_free_library_calls_n
call fcn.10081660
add esp, 4
push 0
push 0x10118d20
push 0x10082710
push 0x100dcc88
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10118d24
push 0x10082560
push 0x100dcc98
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d20], 0
jne 0x10084860
push str.Failed_hooking_CreateProcessW_calls_n
call fcn.10081660
add esp, 4
cmp dword [0x10118d24], 0
jne 0x10084876
push str.Failed_hooking_CreateProcessA_calls_n
call fcn.10081660
add esp, 4
cmp dword [0x10118d28], 0
jne 0x100848b2
push 0
push 0x10118d2c
push 0x100830e0
push 0x100dcb80
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d2c], 0
jne 0x100848b2
push str.Failed_hooking_ResumeThread_calls_n
call fcn.10081660
add esp, 4
push str.shell32.dll
call ebx
mov edi, eax
test edi, edi
jne 0x100848ce
push str.Failed_loading_shell32.dll__not_hooking_ShellExecute_calls_n
call fcn.10081660
add esp, 4
jmp 0x1008493b
push 0
push 0x10118d30
push 0x10083310
push str.ShellExecuteExA
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10118d34
push 0x100836b0
push str.ShellExecuteExW
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10118d30], 0
jne 0x1008491e
push str.Failed_hooking_ShellExecuteExA_calls_n
call fcn.10081660
add esp, 4
cmp dword [0x10118d34], 0
jne 0x10084934
push str.Failed_hooking_ShellExecuteExW_calls_n
call fcn.10081660
add esp, 4
mov byte [0x10118cea], 1
push str.Hooking_SetCursorPos__GetCursorPos__ShowCursor__SetCursor__and_GetCursor_n
call fcn.10081660
add esp, 4
push str.user32.dll
call ebx
mov edi, eax
test edi, edi
jne 0x10084967
push str.Failed_loading_user32.dll__input_not_getting_hooked_n
call fcn.10081660
add esp, 4
jmp 0x100855d3
push 0
push 0x10108430
push 0x100805c0
push 0x100dcde8
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10108440
push 0x10080220
push str.GetCursorPos
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x1010843c
push 0x10080600
push 0x100dce08
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10108434
push 0x10080580
push 0x100dce14
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10108438
push 0x100801a0
push str.GetCursor
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10108430], 0
jne 0x10084a0e
push str.Failed_hooking_SetCursorPos___n
call fcn.10081660
add esp, 4
cmp dword [0x10108440], 0
jne 0x10084a24
push str.Failed_hooking_GetCursorPos___n
call fcn.10081660
add esp, 4
cmp dword [0x1010843c], 0
jne 0x10084a3a
push str.Failed_hooking_ShowCursor___n
call fcn.10081660
add esp, 4
cmp dword [0x10108434], 0
jne 0x10084a50
push str.Failed_hooking_SetCursor___n
call fcn.10081660
add esp, 4
cmp dword [0x10108438], 0
jne 0x10084a66
push str.Failed_hooking_GetCursor___n
call fcn.10081660
add esp, 4
push 0
push 0x10108478
push 0x100801c0
push str.GetCursorInfo
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10108434], 0
jne 0x10084a99
push str.Failed_hooking_GetCursorInfo_____expected_and_ok_if_OS___Win8_n
call fcn.10081660
add esp, 4
push 0
push 0x1010845c
push 0x10080550
push str.SetCapture
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10108460
push 0x10080520
push str.ReleaseCapture
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x1010845c], 0
jne 0x10084ae9
push str.Failed_hooking_SetCapture___n
call fcn.10081660
add esp, 4
cmp dword [0x10108460], 0
jne 0x10084aff
push str.Failed_hooking_ReleaseCapture___n
call fcn.10081660
add esp, 4
push 0
push 0x10108464
push 0x10080110
push str.GetAsyncKeyState
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10108464], 0
jne 0x10084b32
push str.Failed_hooking_GetAsyncKeyState___n
call fcn.10081660
add esp, 4
push 0
push 0x10108468
push 0x10080260
push 0x100dcfac
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10108468], 0
jne 0x10084b65
push str.Failed_hooking_GetKeyState___n
call fcn.10081660
add esp, 4
push 0
push 0x1010846c
push 0x10080370
push str.GetKeyboardState
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x1010846c], 0
jne 0x10084b98
push str.Failed_hooking_GetKeyboardState___n
call fcn.10081660
add esp, 4
push 0
push 0x10108444
push 0x10080050
push str.DispatchMessageA
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10108448
push 0x100800b0
push str.DispatchMessageW
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10108444], 0
jne 0x10084be8
push str.Failed_hooking_DispatchMessageA___n
call fcn.10081660
add esp, 4
cmp dword [0x10108448], 0
jne 0x10084bfe
push str.Failed_hooking_DispatchMessageW___n
call fcn.10081660
add esp, 4
push 0
push 0x1010844c
push 0x100803c0
push str.GetMessageA
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10108450
push 0x10080430
push str.GetMessageW
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x1010844c], 0
jne 0x10084c4e
push str.Failed_hooking_GetMessageA___n
call fcn.10081660
add esp, 4
cmp dword [0x10108450], 0
jne 0x10084c64
push str.Failed_hooking_GetMessageW___n
call fcn.10081660
add esp, 4
push 0
push 0x10108454
push 0x100804a0
push str.PeekMessageA
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10108458
push 0x100804e0
push str.PeekMessageW
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10108454], 0
jne 0x10084cb4
push str.Failed_hooking_PeekMessageA___n
call fcn.10081660
add esp, 4
cmp dword [0x10108458], 0
jne 0x10084cca
push str.Failed_hooking_PeekMessageW___n
call fcn.10081660
add esp, 4
push 0
push 0x10108470
push fcn.1007ffb0
push str.ClipCursor
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
push 0
push 0x10108474
push 0x10080150
push str.GetClipCursor
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10108470], 0
jne 0x10084d1a
push str.Failed_hooking_ClipCursor___n
call fcn.10081660
add esp, 4
cmp dword [0x10108474], 0
jne 0x10084d30
push str.Failed_hooking_GetClipCursor___n
call fcn.10081660
add esp, 4
push 0
push 0x10128220
push 0x1008f9d0
push str.RegisterDeviceNotificationA
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10128220], 0
jne 0x10084d63
push str.Failed_hooking_RegisterDeviceNotificationA___n
call fcn.10081660
add esp, 4
push 0
push 0x10128224
push 0x1008fa70
push str.RegisterDeviceNotificationW
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10128224], 0
jne 0x10084d96
push str.Failed_hooking_RegisterDeviceNotificationW___n
call fcn.10081660
add esp, 4
push 0
push 0x10128228
push 0x1008fd00
push str.UnregisterDeviceNotification
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10128228], 0
jne 0x10084dc9
push str.Failed_hooking_UnregisterDeviceNotification___n
call fcn.10081660
add esp, 4
push 0
push 0x1012822c
push 0x1008f050
push str.GetRawInputDeviceList
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x1012822c], 0
jne 0x10084dfc
push str.Failed_hooking_GetRawInputDeviceList___n
call fcn.10081660
add esp, 4
push 0
push 0x10128230
push 0x1008ee10
push str.GetRawInputDeviceInfoA
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10128230], 0
jne 0x10084e2f
push str.Failed_hooking_GetRawInputDeviceInfoA___n
call fcn.10081660
add esp, 4
push 0
push 0x10128234
push 0x1008ef30
push str.GetRawInputDeviceInfoW
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10128234], 0
jne 0x10084e62
push str.Failed_hooking_GetRawInputDeviceInfoW___n
call fcn.10081660
add esp, 4
push 0
push 0x10128238
push 0x1008fb10
push str.RegisterRawInputDevices
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10128238], 0
jne 0x10084e95
push str.Failed_hooking_RegisterRawInputDevices___n
call fcn.10081660
add esp, 4
push 0
push 0x1012823c
push fcn.1008dc90
push str.GetRegisteredRawInputDevices
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x1012823c], 0
jne 0x10084ec8
push str.Failed_hooking_GetRegisteredRawInputDevices___n
call fcn.10081660
add esp, 4
push 0
push 0x10128240
push 0x1008ec90
push str.GetRawInputData
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10128240], 0
jne 0x10084efb
push str.Failed_hooking_GetRawInputData___n
call fcn.10081660
add esp, 4
push 0
push 0x10128244
push 0x1008ec60
push str.GetRawInputBuffer
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10128244], 0
jne 0x10084f2e
push str.Failed_hooking_GetRawInputBuffer___n
call fcn.10081660
add esp, 4
push 0
push 0x10127e90
push 0x10082870
push str.FlashWindow
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10127e90], 0
jne 0x10084f61
push str.Failed_hooking_FlashWindow___n
call fcn.10081660
add esp, 4
push 0
push 0x10127e94
push 0x100828c0
push str.FlashWindowEx
push edi
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10127e94], 0
jne 0x10084f94
push str.Failed_hooking_FlashWindowEx___n
call fcn.10081660
add esp, 4
push str.gdi32.dll
call ebx
test eax, eax
je 0x10084fd2
push 0
push 0x10127e98
push 0x10083280
push str.SetDeviceGammaRamp
push eax
call esi
push eax
call fcn.1006eaf0
add esp, 0x10
cmp dword [0x10127e98], 0
jne 0x10084fd2
push str.Failed_hooking_SetDeviceGammaRamp___n
call fcn.10081660
add esp, 4
push 0x100dd4e8
call ebx
test eax, eax
je 0x10085015
push 0
push 0x100dd4f4
push eax
call fcn.10081400
push 0
push 0x10127e8c
push 0x10082390
push eax
call fcn.1006eaf0
add esp, 0x1c
cmp dword [0x10127e8c], 0
jne 0x10085015
push str.Failed_hooking_CoCreateInstance___n
call fcn.10081660
add esp, 4
call fcn.1006f0f0
call fcn.10081a30
call fcn.100813b0
push str.steamcompat.inf
push 1
call fcn.100520b0
push str.Modules_at_GameOverlayRenderer.dll_attach_n
xor esi, esi
call fcn.10081660
add esp, 0xc
mov dword [ebp - 0x5fc], 0x224
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 8
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov edi, eax
lea eax, [ebp - 0x5fc]
push eax
push edi
call sub.KERNEL32.dll_Module32First
test eax, eax
je 0x100850d3
lea ebx, [ebx]
mov ecx, dword [ebp - 0x5e8]
inc esi
mov eax, dword [ebp - 0x5e4]
add eax, ecx
push eax
push ecx
lea eax, [ebp - 0x5dc]
push eax
push esi
push str._02d:__s_____p_to__p__n
call fcn.10081660
add esp, 0x14
cmp byte [0x10127810], 0
je 0x100850c2
mov eax, dword [ebp + 4]
mov ecx, 0x10118d48
push 0
push eax
push 0
push dword [ebp - 0x5e8]
lea eax, [ebp - 0x5dc]
push 0
push 0
push eax
call fcn.1006ec10
lea eax, [ebp - 0x5fc]
push eax
push edi
call sub.KERNEL32.dll_Module32Next
test eax, eax
jne 0x10085070
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str._____________________________n
call fcn.10081660
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
test eax, eax
jne 0x100855d3
push str.GameOverlayRenderer.dll_detaching_n
mov byte [0x10118888], 1
call fcn.10081660
add esp, 4
mov ecx, 0x10108480
call fcn.1007e230
mov ecx, dword [0x10118ccc]
test ecx, ecx
je 0x10085145
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [0x10118ccc]
test ecx, ecx
je 0x10085145
mov eax, dword [ecx]
push 1
call dword [eax + 8]
call fcn.100526a0
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push str.user32.dll
call ebx
mov edi, eax
test edi, edi
jne 0x1008516f
push str.Failed_loading_user32.dll__input_not_unhooking_functions_n
call fcn.10081660
add esp, 4
jmp 0x100855d3
push dword [0x10108430]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x100dcde8
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108440]
push str.GetCursorPos
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x1010843c]
push 0x100dce08
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108434]
push 0x100dce14
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108438]
push str.GetCursor
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108478]
push str.GetCursorInfo
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108444]
push str.DispatchMessageA
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108448]
push str.DispatchMessageW
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10128244]
push str.GetRawInputBuffer
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x1010845c]
push str.SetCapture
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108460]
push str.ReleaseCapture
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108464]
push str.GetAsyncKeyState
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108468]
push 0x100dcfac
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x1010846c]
push str.GetKeyboardState
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108470]
push str.ClipCursor
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10108474]
push str.GetClipCursor
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10128238]
push str.RegisterRawInputDevices
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10127e90]
push str.FlashWindow
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10127e94]
push str.FlashWindowEx
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push 0x100cfe10
call ebx
mov edi, eax
test edi, edi
jne 0x10085349
push str.Kernel32.dll_not_loaded__not_unhooking_functions_n
call fcn.10081660
add esp, 4
jmp 0x1008546a
cmp byte [0x10127810], 0
je 0x100853ae
push dword [0x10118d10]
push str.VirtualAlloc
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118d14]
push 0x100dca7c
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118d18]
push 0x100dcab4
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118d1c]
push 0x100dcac4
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118d08]
push 0x100cfdd4
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118cec]
push 0x100dcb00
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118cf4]
push 0x100dcb40
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118cfc]
push 0x100d90bc
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118d00]
push 0x100d90e0
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118d20]
push 0x100dcc88
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118d24]
push 0x100dcc98
push edi
call esi
push eax
call fcn.1006f190
mov eax, dword [0x10118d2c]
add esp, 8
test eax, eax
je 0x1008546a
push eax
push 0x100dcb80
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push str.kernelbase.dll
call ebx
mov edi, eax
test edi, edi
je 0x100854d3
push dword [0x10118d0c]
push 0x100cfdd4
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118cf0]
push 0x100dcb00
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118cf8]
push 0x100dcb40
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push dword [0x10118d28]
push 0x100dcb80
push edi
call esi
push eax
call fcn.1006f190
add esp, 8
push 0x100dd4e8
call ebx
test eax, eax
jne 0x100854ed
push str.ole32.dll_not_loaded__not_unhooking_functions_n
call fcn.10081660
add esp, 4
jmp 0x10085504
push dword [0x10127e8c]
push 0x100dd4f4
push eax
call esi
push eax
call fcn.1006f190
add esp, 8
push 0xffffffffffffffff
push dword [0x101188a0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x10127e9c]
test eax, eax
je 0x1008552e
push eax
call fcn.100b17d6
add esp, 4
mov dword [0x10127e9c], 0
push dword [0x101188a0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call fcn.10074c60
mov ecx, dword [0x10118890]
test ecx, ecx
je 0x1008554f
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [0x10118cc8]
test ecx, ecx
je 0x1008555f
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [0x10118894]
test ecx, ecx
je 0x1008556f
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [0x10118898]
test ecx, ecx
je 0x10085580
mov eax, dword [ecx]
push 1
call dword [eax + 8]
mov ecx, dword [0x1011889c]
test ecx, ecx
je 0x10085591
mov eax, dword [ecx]
push 1
call dword [eax + 8]
mov ecx, dword [0x10118cd0]
test ecx, ecx
je 0x100855a2
mov eax, dword [ecx]
push 1
call dword [eax + 8]
push dword [0x101188a0]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [0x101188a4]
call esi
mov ecx, dword [0x10118cd4]
test ecx, ecx
je 0x100855c9
mov eax, dword [ecx]
push 1
call dword [eax + 8]
mov dword [0x10118890], 0
mov ecx, dword [ebp - 0xc]
xor eax, eax
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc