Function at 0x4101a4
Capabilities:
Print debug messages
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x29c
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
push edi
push str.WTMR_it0z2h7r
push 1
push 0
call esi
mov edi, dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
mov ebx, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
test eax, eax
je 0x4101e0
push eax
call edi
push str.mzckn70a
push str.8e6tzqxv
call ebx
lea eax, [ebp - 0x158]
push eax
push str.s_0grmsux3
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push str.XMLbhl8j2bt
push 1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push 0
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
push str.0qb1hd8r
push str.4wg4beox
call ebx
push str.WTMR_wan7ldds
push 1
push 0
call esi
push str.log:_vmz2gp2k
mov esi, eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call edi
push str.t6kat95o
push str.0vngai3b
call ebx
push str.SMPHR_u0mu05ci
push 1
xor edi, edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push edi
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x41027a
push str.log:_iz81lawv
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x41027c
call esi
push edi
push 0x12eb
push edi
push 4
push edi
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.log:_7m70ur6h
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push str.ev_2ckuzqtn
push edi
push 1
push edi
call esi
mov edi, dword [sym.imp.KERNEL32.dll_SetEvent]
push eax
call edi
push 0x208
push 0x40
call dword [0x41704c]
mov dword [ebp - 0xc], eax
xor eax, eax
push str.ev_6tydjpzn
inc eax
mov dword [ebp - 8], 0x104
push 0
push eax
push 0
mov dword [ebp - 0x10], eax
call esi
mov esi, eax
push esi
call edi
push esi
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push str.MTXy7f0yydf
xor edi, edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x410319
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push str.46kk27ji
push str.x8k4umhd
call ebx
jmp 0x41031f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 4
pop esi
push str.log:_upc51g8y
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub esi, 1
jne 0x410322
push 0x235
push edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.WTMR_z6migmhh
push 1
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push eax
call esi
push str.WTMR_jhltn5w3
push 1
push 0
call edi
test eax, eax
je 0x410378
push eax
call esi
xor edi, edi
push edi
push 0x10f1
push edi
push 4
push edi
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x298]
push eax
push str.s_ikni7x9t
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x14]
push eax
push 0x20019
push edi
push str.reg3b8go3kn
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push str.SMPHR_01ts7lqp
push 1
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push edi
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
jne 0x4103ef
push str.q25bh9im
push str.dblo35py
call ebx
lea eax, [ebp - 4]
push eax
push 0x20119
push edi
push dword [0x417394]
push 0x80000002
call dword [0x4170a0]
mov ebx, dword [ebp - 0xc]
mov esi, eax
lea eax, [ebp - 8]
push eax
push ebx
lea eax, [ebp - 0x10]
push eax
push edi
push dword [0x4172c4]
push dword [ebp - 4]
call dword [0x4170d4]
test esi, esi
jne 0x410430
test eax, eax
je 0x410439
push dword [ebp - 4]
call dword [0x417068]
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret