Function at 0x41b500
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Enumerate gui resources
Get common file path
Get file attributes
Get hostname
Manipulate console buffer
Read .ini file
Terminate process

Disassembly:
mov eax, 0x1bbc
call fcn.00410a60
cmp dword [0x2bc9684], 0x422
push ebx
push ebp
push esi
push edi
jne 0x41b5a3
push 0
push 0
push 0
call fcn.004041bd
add esp, 0xc
push 0x40365c
push 0
call fcn.004041bd
push 0
call fcn.00403f1d
add esp, 0xc
push 0
push 0
call fcn.00403dc1
push 0
call fcn.00403f1d
fldz
add esp, 8
fstp dword [esp]
call fcn.004039f0
fstp st(0)
push 0x403668
push 0x40366c
push 0x49fe70
call fcn.004041bd
add esp, 0xc
push 0
push 0
call fcn.0040431f
push 0
push 0
push 0
push 0
push 0
call fcn.00403bcc
add esp, 0x1c
push 0
push 0
push 0
push 0
call fcn.0040403c
add esp, 0x10
mov edi, dword [sym.imp.KERNEL32.dll_EnumDateFormatsExW]
xor esi, esi
jmp 0x41b5b0
cmp esi, 0xc0a
jne 0x41b5c3
mov eax, 0x38d6
add dword [0x2bc9684], eax
cmp dword [0x2bc9684], 0xd04
jne 0x41b5d7
push 0
push 0
push 0
call edi
inc esi
cmp esi, 0x33a146
jl 0x41b5b0
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
cmp esi, 0x1c275
jge 0x41b5fc
push 0
call edi
cmp esi, 0x1ea070f3
jle 0x41b614
cmp ebx, 0xacd436
je 0x41b614
cmp ebp, 0xad1af0c
jne 0x41b61f
inc esi
cmp esi, 0x8c238a18
jb 0x41b5f0
jmp 0x41b62c
cmp dword [0x2bc9684], 0x28
jne 0x41b62c
push 0
call edi
mov eax, dword [0x2bc9684]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, dword [sym.imp.KERNEL32.dll_EnumCalendarInfoExA]
mov edi, dword [sym.imp.KERNEL32.dll_EnumCalendarInfoA]
mov ebp, dword [sym.imp.KERNEL32.dll_GetComputerNameExW]
mov ebx, dword [sym.imp.KERNEL32.dll_SearchPathW]
mov dword [0x2bc9168], eax
mov eax, dword [0x2bc9684]
mov dword [esp + 0x14], 0x962ae8
cmp eax, 3
jne 0x41b67e
lea ecx, [esp + 0x178]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov eax, dword [0x2bc9684]
cmp eax, 0xd
jne 0x41b702
push 0
push 0
push 0
push 0
call esi
push 0
push 0
push 0
push 0
call edi
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x3cc]
push eax
push 0
call ebp
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xbcc]
push edx
push 0
push 0x403674
push 0x4036c8
push 0x403768
call ebx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
push 0x40368c
push 0
lea eax, [esp + 0x13d0]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
lea ecx, [esp + 0x1c]
push ecx
push 0
push 0x403734
push 0
call dword [sym.imp.KERNEL32.dll_GetStringTypeW]
mov eax, dword [0x2bc9684]
dec dword [esp + 0x14]
jne 0x41b664
xor esi, esi
test eax, eax
je 0x41b744
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
mov ebx, dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov edi, edi
cmp eax, 0xfe
jne 0x41b735
push 0
push 0
push 0
call edi
push 0
push 0
call ebx
call fcn.0041b230
mov eax, dword [0x2bc9684]
inc esi
cmp esi, eax
jb 0x41b720
cmp eax, 0x19c
jne 0x41b78a
push 0x4037d4
call dword [sym.imp.KERNEL32.dll_AddAtomW]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumTimeFormatsW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetCalendarInfoA]
push 0x403814
push 0x403844
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
mov edi, dword [sym.imp.USER32.dll_LoadMenuA]
mov esi, 0x8dc
push 0
push 0
call edi
dec esi
jne 0x41b795
mov esi, dword [sym.imp.KERNEL32.dll_AddAtomA]
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, 0x25865
mov ebp, 0x15a
cmp dword [0x2bc9684], ebp
jne 0x41b7c6
push 0
call esi
push 0
push 0
call edi
dec ebx
jne 0x41b7b4
mov byte [0x49fe70], bl
call fcn.0041ad70
call fcn.0041b4d0
call fcn.0041b210
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, dword [sym.imp.KERNEL32.dll_GetConsoleAliasW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [esp + 0x14], 0xdd7b3
mov edi, edi
cmp dword [0x2bc9684], 0x21
jne 0x41b82d
call esi
push 0
push 0
lea edx, [esp + 0x13d0]
push edx
push 0
call edi
lea eax, [esp + 0x18]
push eax
push 0x40387c
push 0
call ebx
push 0
call ebp
dec dword [esp + 0x14]
jne 0x41b800
call fcn.0041b470
cmp dword [0x2bc9684], 0x58c
mov byte [0x49fe71], 0x73
jne 0x41b8e9
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
lea ecx, [esp + 0x178]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumResourceTypesA]
push 0x403888
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenWaitableTimerW]
push 0x30
lea edx, [esp + 0x2c]
push 0
push edx
mov dword [esp + 0x30], 0
call fcn.00405540
add esp, 0xc
push 0
lea eax, [esp + 0x28]
push eax
push 0x40389c
call dword [sym.imp.KERNEL32.dll_SetDefaultCommConfigA]
push 0x4038a4
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
lea ecx, [esp + 0x58]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetCPInfoExA]
call fcn.0041b220
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1bbc
ret