Function at 0x4548f0
Capabilities:
Check mutex on windows
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x488ab3
mov eax, dword fs:[0]
push eax
mov eax, 0x37ac
call fcn.0047e920
mov eax, dword [0x4a4b34]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
mov edi, ecx
call sub.mfc100.dll_Ordinal_1890
mov eax, dword [edi + 0x64]
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
add esp, 4
push eax
push 1
push 0
call esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4549e3
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call sub.mfc100.dll_Ordinal_4345
mov ecx, dword [eax + 0x20]
push 5
push ecx
call dword [sym.imp.USER32.dll_GetWindow]
push eax
call sub.mfc100.dll_Ordinal_4345
mov esi, eax
test esi, esi
je 0x454dbc
mov edx, dword [edi + 0x64]
mov eax, dword [esi + 0x20]
push edx
push eax
call dword [sym.imp.USER32.dll_GetPropA]
test eax, eax
jne 0x4549a5
mov eax, dword [esi + 0x20]
push 2
push eax
call dword [sym.imp.USER32.dll_GetWindow]
push eax
call sub.mfc100.dll_Ordinal_4345
mov esi, eax
test esi, esi
jne 0x454976
jmp 0x454dbc
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4549bc
push 9
mov ecx, esi
call sub.mfc100.dll_Ordinal_12962
mov edx, dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_SetForegroundWindow]
push edx
call edi
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetLastActivePopup]
push eax
call sub.mfc100.dll_Ordinal_4345
mov ecx, dword [eax + 0x20]
push ecx
call edi
jmp 0x454dbc
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x37ac], esp
push str.Error
call dword [sym.imp.mfc100.dll_Ordinal_310]
mov ecx, 0x8c42b4
call fcn.004010d7
push 0
push 0
push 0
call esi
mov dword [0x4ac6ec], eax
test eax, eax
je 0x454dbc
push 0x496fa8
push 0
push 0
call esi
mov dword [0x4ac6f0], eax
call fcn.0040236a
call dword [sym.imp.MC8041A.dll_MC8041A_Open]
mov esi, dword [sym.imp.MC8041A.dll_MC8041A_WriteByte]
push 0x92
push 3
push 2
call esi
push 0x92
push 7
push 2
call esi
push 0x88
push 0xb
push 2
call esi
add esp, 0x24
push 0x496f9c
mov ecx, edi
call sub.mfc100.dll_Ordinal_12672
push 0x100
push 0x4ac238
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push 0x4ac238
call dword [sym.imp.MSVCR100.dll_strrchr]
add esp, 8
push 0x4ac238
mov ecx, 0x4ac718
mov byte [eax + 1], 0
call dword [sym.imp.mfc100.dll_Ordinal_1316]
push str.alarm.log
mov ecx, 0x4ac718
call dword [sym.imp.mfc100.dll_Ordinal_1483]
push 0x4ac238
mov ecx, 0x4ac71c
call dword [sym.imp.mfc100.dll_Ordinal_1316]
push str.system.log
mov ecx, 0x4ac71c
call dword [sym.imp.mfc100.dll_Ordinal_1483]
push 0x100
push 0x4ac138
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov eax, 0x4ac138
or esi, 0xffffffff
add eax, esi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x454af0
mov edx, dword [str._system32_]
mov ecx, dword [0x496f74]
mov dword [eax], edx
mov dx, word [0x496f78]
mov dword [eax + 4], ecx
mov cl, byte [0x496f7a]
mov word [eax + 8], dx
push 0x4ac708
lea edx, [ebp - 0x37ac]
push 0x4ac138
push edx
mov byte [eax + 0xa], cl
call fcn.004029f5
push str..cfg
push eax
lea eax, [ebp - 0x37b0]
push eax
mov dword [ebp - 4], 0
call fcn.004010b9
add esp, 0x18
push eax
mov ecx, 0x4ac720
mov byte [ebp - 4], 1
call dword [sym.imp.mfc100.dll_Ordinal_1313]
lea ecx, [ebp - 0x37b0]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x37ac]
mov dword [ebp - 4], esi
call dword [sym.imp.mfc100.dll_Ordinal_901]
push 0x4ac708
lea ecx, [ebp - 0x37b0]
push 0x4ac138
push ecx
call fcn.004029f5
push str..prg
push eax
lea edx, [ebp - 0x37ac]
push edx
mov dword [ebp - 4], 2
call fcn.004010b9
add esp, 0x18
push eax
mov ecx, 0x4ac724
mov byte [ebp - 4], 3
call dword [sym.imp.mfc100.dll_Ordinal_1313]
lea ecx, [ebp - 0x37ac]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x37b0]
mov dword [ebp - 4], esi
call dword [sym.imp.mfc100.dll_Ordinal_901]
push 0x4ac708
lea eax, [ebp - 0x37b0]
push 0x4ac138
push eax
call fcn.004029f5
push str..par
push eax
lea ecx, [ebp - 0x37ac]
push ecx
mov dword [ebp - 4], 4
call fcn.004010b9
add esp, 0x18
push eax
mov ecx, 0x4ac728
mov byte [ebp - 4], 5
call dword [sym.imp.mfc100.dll_Ordinal_1313]
lea ecx, [ebp - 0x37ac]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x37b0]
mov dword [ebp - 4], esi
call dword [sym.imp.mfc100.dll_Ordinal_901]
push 0x4ac708
push 0x4ac138
lea edx, [ebp - 0x37b0]
push edx
call fcn.004029f5
push str..pot
push eax
lea eax, [ebp - 0x37ac]
push eax
mov dword [ebp - 4], 6
call fcn.004010b9
add esp, 0x18
push eax
mov ecx, 0x4ac730
mov byte [ebp - 4], 7
call dword [sym.imp.mfc100.dll_Ordinal_1313]
lea ecx, [ebp - 0x37ac]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x37b0]
mov dword [ebp - 4], esi
call dword [sym.imp.mfc100.dll_Ordinal_901]
push 0x4ac708
lea ecx, [ebp - 0x37b8]
push 0x4ac138
push ecx
call fcn.004029f5
push str..val
push eax
lea edx, [ebp - 0x37b4]
push edx
mov dword [ebp - 4], 8
call fcn.004010b9
add esp, 0x18
push eax
mov ecx, 0x4ac72c
mov byte [ebp - 4], 9
call dword [sym.imp.mfc100.dll_Ordinal_1313]
lea ecx, [ebp - 0x37b4]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x37b8]
mov dword [ebp - 4], esi
call dword [sym.imp.mfc100.dll_Ordinal_901]
push 0x4ac238
push str._sPrgBk_
push 0x4ac73c
call dword [sym.imp.mfc100.dll_Ordinal_4283]
add esp, 0xc
push 0
mov ecx, 0x4ac73c
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
xor eax, eax
mov dword [0x4a7a4c], 0
mov dword [0x4a7430], eax
mov dword [0x4a7434], eax
mov dword [0x4a7438], eax
mov dword [0x4a743c], eax
call fcn.004012bc
call fcn.0040219e
call fcn.00401078
call fcn.00402b71
call fcn.00401bf4
push 0
lea ecx, [ebp - 0x37a8]
call fcn.0040132a
lea eax, [ebp - 0x37a8]
mov ecx, eax
mov dword [edi + 0x20], eax
mov dword [ebp - 4], 0xa
mov dword [0x4ac690], ecx
call sub.mfc100.dll_Ordinal_3620
call dword [sym.imp.MC8041A.dll_MC8041A_Close]
call fcn.00401352
call fcn.0040316b
call fcn.00401a6e
call fcn.00401c3a
mov edx, dword [0x4ac6ec]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call edi
mov eax, dword [0x4ac6f0]
push eax
call edi
lea ecx, [ebp - 0x37a8]
mov dword [ebp - 4], esi
call fcn.004010b4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047e7ac
mov esp, ebp
pop ebp
ret