Function at 0x558400
Capabilities:
Check mutex on windows
Get common file path
Get hostname

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5636ee
mov eax, dword fs:[0]
push eax
sub esp, 0x894
mov eax, dword [0x5c8810]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x890], ecx
mov ecx, dword [ebp - 0x890]
call fcn.005206d6
mov eax, dword [ebp - 0x890]
mov dword [eax + 0xd8], 0
push 0x58e894
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x5ccf28], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x894], eax
cmp dword [ebp - 0x894], 0xb7
je 0x55847a
jmp 0x558490
mov ecx, dword [ebp - 0x890]
cmp dword [ecx + 0xd8], 1
je 0x558490
xor eax, eax
jmp 0x5588f2
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x660], eax
push 0x104
lea edx, [ebp - 0x86c]
push edx
mov eax, dword [ebp - 0x660]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ecx, dword [ebp - 0x890]
add ecx, 0xae8
push ecx
lea edx, [ebp - 0x86c]
push edx
mov ecx, dword [ebp - 0x890]
call fcn.00557c80
mov eax, dword [ebp - 0x890]
mov dword [eax + 0xc0], 1
mov ecx, dword [ebp - 0x890]
mov dword [ecx + 0xc4], 1
mov edx, dword [ebp - 0x890]
mov dword [edx + 0xc8], 1
mov eax, dword [ebp - 0x890]
mov dword [eax + 0xd0], 1
mov ecx, dword [ebp - 0x890]
mov dword [ecx + 0xd4], 0
mov edx, dword [ebp - 0x890]
mov dword [edx + 0xcc], 1
mov eax, dword [ebp - 0x890]
mov dword [eax + 0xe0], 0
mov ecx, dword [ebp - 0x890]
mov dword [ecx + 0xaf8], 0x282828
mov edx, dword [ebp - 0x890]
mov dword [edx + 0xafc], 0x464646
mov eax, dword [ebp - 0x890]
add eax, 0xe8
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [ebp - 0x65c], eax
push 0x200
mov ecx, dword [ebp - 0x890]
add ecx, 0x4e8
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x65c], eax
cmp dword [ebp - 0x65c], 0
je 0x5585c5
mov edx, dword [ebp - 0x890]
add edx, 0x4e8
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov dword [ebp - 0x658], eax
cmp dword [ebp - 0x65c], 0
je 0x5585d7
cmp dword [ebp - 0x658], 0
jne 0x5585f4
mov eax, dword [ebp - 0x890]
add eax, 0x4e8
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [ebp - 0x65c], eax
mov ecx, dword [ebp - 0x890]
call fcn.005568b0
mov ecx, dword [ebp - 0x890]
cmp dword [ecx + 0xdc], 0
je 0x558626
push 0
mov ecx, dword [ebp - 0x890]
call fcn.00557440
test eax, eax
je 0x558626
xor eax, eax
jmp 0x5588f2
push 0
mov ecx, dword [ebp - 0x890]
call fcn.005201af
push 0x6c
call fcn.00402a30
mov dword [ebp - 0x874], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x874], 0
je 0x558677
push 0x5917dc
push 0x591cd8
push 0x591700
push 0x80
mov ecx, dword [ebp - 0x874]
call fcn.005212aa
mov dword [ebp - 0x898], eax
jmp 0x558681
mov dword [ebp - 0x898], 0
mov edx, dword [ebp - 0x898]
mov dword [ebp - 0x870], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x870]
mov dword [ebp - 0x420], eax
cmp dword [ebp - 0x420], 0
jne 0x5586b0
xor eax, eax
jmp 0x5588f2
mov ecx, dword [ebp - 0x420]
push ecx
mov ecx, dword [ebp - 0x890]
call fcn.005216fb
lea ecx, [ebp - 0x654]
call fcn.00520d36
mov dword [ebp - 4], 1
lea edx, [ebp - 0x654]
push edx
mov ecx, dword [ebp - 0x890]
call fcn.00520235
lea eax, [ebp - 0x654]
push eax
mov ecx, dword [ebp - 0x890]
call fcn.0052157d
test eax, eax
jne 0x558723
mov dword [ebp - 0x878], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x654]
call fcn.00520d7a
mov eax, dword [ebp - 0x878]
jmp 0x5588f2
push 5
mov ecx, dword [ebp - 0x890]
mov ecx, dword [ecx + 0x20]
call fcn.00518d49
mov edx, dword [ebp - 0x890]
mov ecx, dword [edx + 0x20]
call fcn.00403580
push 0xc
call fcn.005120bc
add esp, 4
mov dword [ebp - 0x880], eax
cmp dword [ebp - 0x880], 0
je 0x55876d
mov ecx, dword [ebp - 0x880]
call fcn.00403180
mov dword [ebp - 0x89c], eax
jmp 0x558777
mov dword [ebp - 0x89c], 0
mov eax, dword [ebp - 0x89c]
mov dword [ebp - 0x87c], eax
mov ecx, dword [ebp - 0x890]
mov edx, dword [ebp - 0x87c]
mov dword [ecx + 0xa4], edx
mov dword [ebp - 0x428], 0x200
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0x41c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
mov dword [ebp - 0x658], eax
push 0
push 0
push 0x200
lea edx, [ebp - 0x62c]
push edx
push 0xffffffffffffffff
lea eax, [ebp - 0x41c]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x14], eax
push 0x118
call fcn.005120bc
add esp, 4
mov dword [ebp - 0x888], eax
mov byte [ebp - 4], 2
cmp dword [ebp - 0x888], 0
je 0x558819
lea ecx, [ebp - 0x62c]
push ecx
mov ecx, dword [ebp - 0x888]
call fcn.0055b0a0
mov dword [ebp - 0x8a0], eax
jmp 0x558823
mov dword [ebp - 0x8a0], 0
mov edx, dword [ebp - 0x8a0]
mov dword [ebp - 0x884], edx
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x884]
mov dword [ebp - 0x424], eax
mov ecx, dword [ebp - 0x424]
push ecx
mov edx, dword [ebp - 0x890]
mov ecx, dword [edx + 0xa4]
call fcn.004031d0
mov eax, dword [ebp - 0x890]
mov ecx, dword [ebp - 0x424]
mov dword [eax + 0xa8], ecx
mov edx, dword [ebp - 0x424]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x424]
mov edx, dword [eax]
call edx
mov dword [ebp - 0x658], eax
mov ecx, dword [ebp - 0x890]
call fcn.005567a0
mov ecx, dword [ebp - 0x890]
call fcn.00557060
mov dword [ebp - 0x658], eax
call fcn.00403570
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x5588bf
push 0
push 0
push 0x9dc
mov ecx, dword [ebp - 0x10]
call fcn.00401820
mov ecx, dword [ebp - 0x890]
call fcn.00558390
mov dword [ebp - 0x658], eax
mov dword [ebp - 0x88c], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x654]
call fcn.00520d7a
mov eax, dword [ebp - 0x88c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.0053081c
mov esp, ebp
pop ebp
ret