Function at 0x41b070
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c2bdb
mov eax, dword fs:[0]
push eax
sub esp, 0x444
mov eax, dword [0x629af0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x434], ecx
mov dword [ebp - 0x18], 8
mov dword [ebp - 0x14], 0xff
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, dword [ebp - 0x434]
call fcn.0047f017
push 0
call fcn.00480bbb
add esp, 4
mov ecx, dword [ebp - 0x434]
mov edx, dword [ecx + 0x48]
push edx
lea ecx, [ebp - 0x424]
call fcn.00409310
mov dword [ebp - 0x438], eax
push 0
push 0x6007c4
mov ecx, dword [ebp - 0x438]
call fcn.0041b860
xor ecx, ecx
test eax, eax
setge cl
mov byte [ebp - 0x41d], cl
lea ecx, [ebp - 0x424]
call fcn.00409390
movzx edx, byte [ebp - 0x41d]
test edx, edx
je 0x41b12c
mov ecx, dword [ebp - 0x434]
call fcn.0041b790
push eax
call fcn.0057bc01
push str.CGameRepairTool
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ecx, dword [ebp - 0x434]
mov dword [ecx + 0xec], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41b241
mov edx, dword [ebp - 0x434]
mov eax, dword [edx + 0xec]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp - 0x434]
mov edx, dword [ecx + 0xec]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x434]
mov dword [eax + 0xec], 0
mov dword [ebp - 0x43c], 0x6007ec
call fcn.00401490
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0x440], ecx
mov edx, dword [ebp - 0x440]
mov ax, word [edx]
mov word [ebp - 0x442], ax
mov ecx, dword [ebp - 0x43c]
cmp ax, word [ecx]
jne 0x41b20c
cmp word [ebp - 0x442], 0
je 0x41b200
mov edx, dword [ebp - 0x440]
mov ax, word [edx + 2]
mov word [ebp - 0x444], ax
mov ecx, dword [ebp - 0x43c]
cmp ax, word [ecx + 2]
jne 0x41b20c
add dword [ebp - 0x440], 4
add dword [ebp - 0x43c], 4
cmp word [ebp - 0x444], 0
jne 0x41b1a6
mov dword [ebp - 0x448], 0
jmp 0x41b217
sbb edx, edx
sbb edx, 0xffffffff
mov dword [ebp - 0x448], edx
mov eax, dword [ebp - 0x448]
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 0
je 0x41b23a
push 0
push 0x30
push 0x6007f8
call fcn.0047ffdf
xor eax, eax
jmp 0x41b30c
mov ecx, dword [ebp - 0x434]
mov edx, dword [ecx + 0x48]
push edx
lea ecx, [ebp - 0x42c]
call fcn.00409310
mov dword [ebp - 0x450], eax
push 0
push 0x600818
mov ecx, dword [ebp - 0x450]
call fcn.0041b860
xor ecx, ecx
test eax, eax
setge cl
mov byte [ebp - 0x425], cl
lea ecx, [ebp - 0x42c]
call fcn.00409390
movzx edx, byte [ebp - 0x425]
test edx, edx
je 0x41b2a2
mov ecx, dword [ebp - 0x434]
call fcn.0041b7e0
push eax
call fcn.0057bc01
mov eax, dword [ebp - 0x434]
add eax, 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call fcn.0041afd0
push 0
lea ecx, [ebp - 0x41c]
call fcn.0041bde0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x434]
lea edx, [ebp - 0x41c]
mov dword [ecx + 0x20], edx
lea ecx, [ebp - 0x41c]
call fcn.00481eb1
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x41c]
call fcn.0041bf50
mov eax, dword [ebp - 0x430]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret