Function at 0x10001000
Capabilities:
Check mutex on windows
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x314
mov eax, dword [0x10033010]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x314], ecx
push ebx
push esi
push edi
cmp eax, 1
jne 0x1000141a
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [0x10033bd0], ecx
call ebx
mov esi, eax
lea eax, [ebp - 0x104]
push esi
push str.graphics_hook_dup_mutex
push 0x10025260
push 0x40
push eax
call fcn.10001480
add esp, 0x14
lea eax, [ebp - 0x104]
push eax
push 0
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
test eax, eax
je 0x10001096
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str._OBS__Duplicate_hook_library
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000f329
mov esp, ebp
pop ebp
ret 0xc
push esi
push str.graphics_hook_dup_mutex
push 0x10025260
lea eax, [ebp - 0x84]
push 0x40
push eax
call fcn.10001480
add esp, 0x14
lea eax, [ebp - 0x84]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x10033bd8], eax
test eax, eax
jne 0x100010ec
push str._OBS__Duplicate_hook_library
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000f329
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea eax, [ebp - 0x310]
push 0
push 0
push 0x100000
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
jne 0x10001124
push str._OBS__Failed_to_get_current_thread_handle
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call ebx
mov esi, eax
lea eax, [ebp - 0x84]
push esi
push str.CaptureHook_Restart
push 0x10025260
push 0x40
push eax
call fcn.10001480
add esp, 0x14
lea eax, [ebp - 0x84]
push eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edi, eax
test edi, edi
jne 0x10001181
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CaptureHook_Restart
push str.Failed_to_get_event__s:__lu
call fcn.10001f10
add esp, 0xc
mov dword [0x10033920], edi
jmp 0x100010d7
push esi
push str.CaptureHook_Stop
push 0x10025260
lea eax, [ebp - 0x104]
mov dword [0x10033920], edi
push 0x40
push eax
call fcn.10001480
add esp, 0x14
lea eax, [ebp - 0x104]
push eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edi, eax
test edi, edi
jne 0x100011e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CaptureHook_Stop
push str.Failed_to_get_event__s:__lu
call fcn.10001f10
add esp, 0xc
mov dword [0x10033924], edi
jmp 0x100010d7
push esi
push str.CaptureHook_HookReady
mov dword [0x10033924], edi
call fcn.10002030
add esp, 8
mov dword [0x10033928], eax
test eax, eax
je 0x100010d7
push esi
push str.CaptureHook_Exit
call fcn.10002030
add esp, 8
mov dword [0x1003392c], eax
test eax, eax
je 0x100010d7
push esi
push str.CaptureHook_Initialize
call fcn.10002030
add esp, 8
mov dword [0x10033bc8], eax
test eax, eax
je 0x100010d7
push 0x104
push 0x10033938
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x10001264
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_get_windows_system_path:__lu
call fcn.10001f10
add esp, 8
jmp 0x100010d7
call ebx
push eax
push str.CaptureHook_HookInfo_lu
lea eax, [ebp - 0x84]
xor esi, esi
push 0x40
push eax
call fcn.100024b0
add esp, 0x10
test eax, eax
jle 0x1000129d
lea eax, [ebp - 0x84]
push eax
push 0x288
push esi
push 4
push esi
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov esi, eax
mov dword [0x10033bcc], esi
test esi, esi
jne 0x100012ae
mov esi, str.Failed_to_create_hook_info_file_mapping:__lu
jmp 0x100012d1
push 0x288
push 0
push 0
push 0xf001f
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [0x10033918], eax
test eax, eax
jne 0x100012f6
mov esi, str.Failed_to_map_the_hook_info_file_mapping:__lu
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
call fcn.10001f10
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000f329
mov esp, ebp
pop ebp
ret 0xc
call ebx
mov edi, eax
lea eax, [ebp - 0x84]
push edi
push str.CaptureHook_TextureMutex1
push 0x10025260
push 0x40
push eax
call fcn.10001480
mov ebx, dword [sym.imp.KERNEL32.dll_CreateMutexW]
lea eax, [ebp - 0x84]
add esp, 0x14
push eax
push 0
push 0
call ebx
mov esi, eax
test esi, esi
jne 0x10001353
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CaptureHook_TextureMutex1
push str.Failed_to_open_mutex__s:__lu
call fcn.10001f10
add esp, 0xc
mov dword [0x10033930], esi
jmp 0x100010d7
push edi
push str.CaptureHook_TextureMutex2
push 0x10025260
lea eax, [ebp - 0x104]
mov dword [0x10033930], esi
push 0x40
push eax
call fcn.10001480
add esp, 0x14
lea eax, [ebp - 0x104]
push eax
push 0
push 0
call ebx
mov esi, eax
test esi, esi
jne 0x100013ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CaptureHook_TextureMutex2
push str.Failed_to_open_mutex__s:__lu
call fcn.10001f10
add esp, 0xc
mov dword [0x10033934], esi
jmp 0x100010d7
push 0x104
lea eax, [ebp - 0x30c]
mov dword [0x10033934], esi
push eax
push dword [ebp - 0x314]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x30c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0
push 0
push dword [ebp - 0x310]
push 0x100021f0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x10033bdc], eax
test eax, eax
jne 0x10001453
push dword [ebp - 0x310]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000f329
mov esp, ebp
pop ebp
ret 0xc
test eax, eax
jne 0x10001453
cmp dword [0x10033bd8], eax
je 0x10001453
mov eax, dword [0x10033bdc]
test eax, eax
je 0x1000144e
push 0x12c
push eax
mov byte [0x10033bd4], 1
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [0x10033bdc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.10001e30
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000f329
mov esp, ebp
pop ebp
ret 0xc