Function at 0x590650
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6642db
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9e4
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push ebx
push ecx
mov esi, ecx
mov eax, esp
lea ecx, [ebp - 0x9f0]
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], esp
mov dword [eax], 0x7d0
call fcn.005206b0
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x10]
push eax
call fcn.005bd6c0
mov edx, dword [ebp - 0x10]
push 0x104
lea ecx, [ebp - 0x26c]
push ecx
push str.SSDir
push edx
call fcn.005bd4f0
add esp, 0x14
test eax, eax
jne 0x5906ce
lea eax, [ebp - 0x920]
push eax
mov ecx, esi
call fcn.0058ded0
jmp 0x5906f9
lea eax, [ebp - 0x26c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x5906d7
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x26c]
push ecx
lea ecx, [ebp - 0x920]
call fcn.00401670
mov eax, dword [ebp - 0x10]
push 0x104
lea edx, [ebp - 0x26c]
push edx
push str.ReportDir
push eax
call fcn.005bd4f0
add esp, 0x10
test eax, eax
jne 0x59072a
lea ecx, [ebp - 0x91c]
push ecx
mov ecx, esi
call fcn.0058df40
jmp 0x590755
lea eax, [ebp - 0x26c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x590733
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x26c]
push edx
lea ecx, [ebp - 0x91c]
call fcn.00401670
mov ecx, dword [ebp - 0x10]
push 0x104
lea eax, [ebp - 0x26c]
push eax
push str.LogsDir
push ecx
call fcn.005bd4f0
add esp, 0x10
test eax, eax
jne 0x590786
lea edx, [ebp - 0x918]
push edx
mov ecx, esi
call fcn.0058dfb0
jmp 0x590802
mov ecx, 0x66eba8
lea eax, [ebp - 0x26c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x5907b7
cmp dx, bx
je 0x5907b3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x5907b7
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x590791
xor eax, eax
jmp 0x5907bc
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x5907d0
lea eax, [ebp - 0x918]
push eax
mov ecx, esi
call fcn.0058dfb0
jmp 0x590802
lea eax, [ebp - 0x26c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x5907e0
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x26c]
push ecx
lea ecx, [ebp - 0x918]
call fcn.00401670
xor eax, eax
mov dword [ebp - 0x5a], eax
mov dword [ebp - 0x56], eax
mov dword [ebp - 0x52], eax
mov word [ebp - 0x4e], ax
lea eax, [ebp - 0x5c]
xor edx, edx
push eax
mov word [ebp - 0x5c], dx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0x14]
push ecx
push str.AutoGenerateHours
push edx
call fcn.005bd460
add esp, 0xc
test eax, eax
jne 0x590845
mov eax, 1
mov word [ebp - 0x54], ax
jmp 0x59084d
mov cx, word [ebp - 0x14]
mov word [ebp - 0x54], cx
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x14]
push edx
push str.AutoGenerateMins
push eax
call fcn.005bd460
add esp, 0xc
test eax, eax
jne 0x59086e
xor ecx, ecx
mov word [ebp - 0x52], cx
jmp 0x590876
mov dx, word [ebp - 0x14]
mov word [ebp - 0x52], dx
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x14]
push eax
push str.AutoGenerateSecs
push ecx
call fcn.005bd460
add esp, 0xc
test eax, eax
jne 0x590897
xor edx, edx
mov word [ebp - 0x50], dx
jmp 0x59089f
mov ax, word [ebp - 0x14]
mov word [ebp - 0x50], ax
call fcn.005bc840
xor ecx, ecx
push 4
mov word [ebp - 0x4c], cx
mov esi, 7
push str.HKEN
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], ebx
call fcn.00407940
mov byte [ebp - 4], 1
push ebx
lea edx, [ebp - 0x4c]
push edx
push 1
call fcn.005bc840
mov ecx, eax
call fcn.005bc2c0
movzx eax, al
mov dword [ebp - 0x288], eax
mov byte [ebp - 4], bl
mov edi, 8
cmp dword [ebp - 0x38], edi
jb 0x590900
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.0060faf6
add esp, 4
push 5
xor edx, edx
xor eax, eax
push str.HKMOD
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], dx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], ax
call fcn.00407940
mov byte [ebp - 4], 2
push ebx
lea ecx, [ebp - 0x30]
push ecx
push 1
call fcn.005bc840
mov ecx, eax
call fcn.005bc3b0
mov word [ebp - 0x284], ax
mov byte [ebp - 4], bl
cmp dword [ebp - 0x1c], edi
jb 0x590959
mov edx, dword [ebp - 0x30]
push edx
call fcn.0060faf6
add esp, 4
xor ecx, ecx
push 4
xor eax, eax
mov word [ebp - 0x4c], cx
push 0x67df90
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], ax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], ebx
call fcn.00407940
mov byte [ebp - 4], 3
push ebx
lea edx, [ebp - 0x4c]
push edx
push 1
call fcn.005bc840
mov ecx, eax
call fcn.005bc3b0
mov word [ebp - 0x282], ax
mov byte [ebp - 4], bl
cmp dword [ebp - 0x38], edi
jb 0x5909b2
mov eax, dword [ebp - 0x4c]
push eax
call fcn.0060faf6
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], cx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x9f0]
call fcn.0058d8f0
cmp eax, 1
jne 0x590d05
push 4
xor edx, edx
push str.HKEN
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], dx
call fcn.00407940
mov byte [ebp - 4], 4
cmp dword [ebp - 0x288], ebx
lea edx, [ebp - 0x30]
setne al
movzx ecx, al
push ecx
push edx
push 1
call fcn.005bc840
mov ecx, eax
call fcn.005bc240
mov byte [ebp - 4], bl
cmp dword [ebp - 0x1c], edi
jb 0x590a2b
mov eax, dword [ebp - 0x30]
push eax
call fcn.0060faf6
add esp, 4
xor ecx, ecx
push 5
mov word [ebp - 0x30], cx
xor edx, edx
push str.HKMOD
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], dx
call fcn.00407940
mov byte [ebp - 4], 5
movzx eax, word [ebp - 0x284]
push eax
lea ecx, [ebp - 0x4c]
push ecx
push 1
call fcn.005bc840
mov ecx, eax
call fcn.005bc330
mov byte [ebp - 4], bl
cmp dword [ebp - 0x38], edi
jb 0x590a84
mov edx, dword [ebp - 0x4c]
push edx
call fcn.0060faf6
add esp, 4
xor ecx, ecx
push 4
xor eax, eax
mov word [ebp - 0x30], cx
push 0x67df90
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], ax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
call fcn.00407940
mov byte [ebp - 4], 6
movzx edx, word [ebp - 0x282]
push edx
lea eax, [ebp - 0x30]
push eax
push 1
call fcn.005bc840
mov ecx, eax
call fcn.005bc330
mov byte [ebp - 4], bl
cmp dword [ebp - 0x1c], edi
jb 0x590add
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0060faf6
add esp, 4
push 0x67d490
push ebx
xor edx, edx
push 0x1f0003
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], dx
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov edi, eax
cmp edi, ebx
je 0x590b0e
push edi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x918]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
mov eax, dword [ebp - 0x920]
mov ecx, dword [eax - 0xc]
inc ecx
push ecx
mov ecx, dword [ebp - 0x10]
push eax
push str.SSDir
push ecx
call fcn.005bd5a0
mov eax, dword [ebp - 0x91c]
mov ecx, dword [eax - 0xc]
mov edx, dword [ebp - 0x10]
inc ecx
push ecx
push eax
push str.ReportDir
push edx
call fcn.005bd5a0
mov eax, dword [ebp - 0x918]
mov ecx, dword [eax - 0xc]
inc ecx
push ecx
push eax
mov eax, dword [ebp - 0x10]
push str.LogsDir
push eax
call fcn.005bd5a0
movzx ecx, word [ebp - 0x54]
mov edx, dword [ebp - 0x10]
push ecx
push str.AutoGenerateHours
push edx
call fcn.005bd4b0
movzx eax, word [ebp - 0x52]
mov ecx, dword [ebp - 0x10]
push eax
push str.AutoGenerateMins
push ecx
call fcn.005bd4b0
movzx edx, word [ebp - 0x50]
mov eax, dword [ebp - 0x10]
add esp, 0x48
push edx
push str.AutoGenerateSecs
push eax
call fcn.005bd4b0
mov ecx, dword [ebp - 0x10]
add esp, 0xc
push ecx
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
mov eax, dword [ebp - 0x7bc]
cmp eax, 0x12c
jle 0x590bcc
mov dword [ebp - 0x7bc], 0x12c
jmp 0x590bd6
cmp eax, ebx
jge 0x590bd6
mov dword [ebp - 0x7bc], ebx
push 0x17
xor edx, edx
push 0x679a64
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], dx
call fcn.00407940
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x7bc]
mov edi, dword [ebp - 0x60]
push eax
lea ecx, [ebp - 0x30]
push ecx
push 1
mov ecx, edi
call fcn.005bc330
mov byte [ebp - 4], bl
cmp dword [ebp - 0x1c], 8
jb 0x590c21
mov edx, dword [ebp - 0x30]
push edx
call fcn.0060faf6
add esp, 4
xor ecx, ecx
push 0x14
xor eax, eax
mov word [ebp - 0x4c], cx
push str.StaffcopCheckUpdates
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], ax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], ebx
call fcn.00407940
mov byte [ebp - 4], 8
xor edx, edx
cmp dword [ebp - 0x7b8], 1
lea eax, [ebp - 0x4c]
setne dl
mov ecx, edi
push edx
push eax
push 1
call fcn.005bc330
mov byte [ebp - 4], bl
cmp dword [ebp - 0x38], 8
jb 0x590c7b
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.0060faf6
add esp, 4
push ebx
xor edx, edx
push str.RefreshThreadWindowClass
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], dx
call dword [sym.imp.USER32.dll_FindWindowW]
mov ecx, dword [ebp - 0x7bc]
push ebx
push ecx
push 0x8000
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
push 0x67d420
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
cmp eax, 0xb7
sete dl
mov edi, edx
cmp esi, ebx
je 0x590cdb
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x67d3b0
push ebx
push 2
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edi, ebx
jne 0x590d05
mov ecx, dword [ebp - 0x64]
call fcn.005004f0
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9f0]
call fcn.005209f0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10