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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
push ebx
push esi
push edi
mov ebx, ecx
mov edi, edx
push ebx
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], ebx
call dword [0x417090]
push edi
mov esi, eax
call dword [0x417090]
sub eax, 0xffffff80
add esi, eax
mov dword [ebp - 0xc], esi
lea eax, [esi + esi]
push eax
push 0x40
call dword [0x41704c]
push ebx
mov edx, esi
mov dword [ebp - 4], eax
mov ecx, eax
call fcn.00402622
push str.MTXv7nh0o7s
xor edi, edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov esi, eax
test esi, esi
je 0x40fcde
push str.c3gschjc
push str.00pbq394
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push 0x368
push edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
lea eax, [ebp - 0x14]
push eax
push 0x20019
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push str.reg9ogvr0xq
push 0x80000001
call edi
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
push eax
push 0x80c
push eax
push 4
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov esi, eax
lea eax, [ebp - 0x18]
push eax
push 0x20019
push 0
push str.reg7zkajz1y
push 0x80000001
call edi
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
xor esi, esi
push str.SMPHR_9w00jqb8
push 1
push esi
push esi
call edi
push esi
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
je 0x40fd70
push str.7l8u4u8m
push str.87j5ox0s
call ebx
push str.kptwv1ur
push str.q04pfiaa
call ebx
push str.ev_u5fjxky5
push esi
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ebx, dword [sym.imp.KERNEL32.dll_ResetEvent]
push esi
call ebx
push str.XMLaf6ijeup
push 1
xor esi, esi
push esi
push esi
call edi
push esi
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov edi, dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
push str.WTMR_ezfcnhiz
push 1
push esi
call edi
push str.log:_1q5wdw2w
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
call fcn.0040264f
push 0xd5b
push esi
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.32cl1w9n
push str.v19r9fkt
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push str.WTMR_duo9zfet
push 1
push 0
call edi
mov esi, eax
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push str.regbsc0gy31
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push esi
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
mov edi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push str.1w9a7ezv
push str.5xc4rfm6
call edi
push str.XML0c4o0o20
push 1
xor esi, esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push esi
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
push str.ev_5lfr0i9u
push esi
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call ebx
lea eax, [ebp - 0x160]
push eax
push str.s_5v4dwb9r
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push str.SMPHR_pmn3yhef
push 1
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push ebx
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
jne 0x40fec2
push str.log:_zqaxjx1i
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.MTXg35mzup0
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
test esi, esi
je 0x40feee
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push str.iyeph0nr
push str.uvfb6x9g
call edi
push dword [ebp - 0x10]
call dword [0x4170e0]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret