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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
push esi
push edi
push str.WTMR_yu4hu25k
push 1
push 0
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [ebp - 8], esi
call edi
test esi, esi
mov esi, dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
je 0x40f858
push dword [ebp - 8]
call esi
push str.WTMR_ollbk4c4
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
push eax
call esi
push str.SMPHR_hxn3gb7t
push 1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push str.jqh799qz
push str.2xmj5qqq
mov esi, eax
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push 0
push 1
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test eax, eax
je 0x40f8a9
push str.log:_90fgxd0x
call esi
push str.MTXfo21hm8e
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 8], eax
test eax, eax
je 0x40f8e1
push str.log:_ots5bqqj
call esi
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push str.0172732o
push str.21gb1whm
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
jmp 0x40f8e3
call edi
push 0x41
push 0x40
call dword [0x41a04c]
and dword [ebp - 0xc], 0
mov esi, eax
mov dword [ebp - 8], eax
sub esi, ebx
cmp byte [ebx], 0x20
je 0x40fa4a
push str.ca77ed9f61111863e1aeb2022d5f0cbf
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0xc]
div ecx
mov cl, byte [ebx]
xor cl, byte [edx + str.ca77ed9f61111863e1aeb2022d5f0cbf]
mov byte [esi + ebx], cl
mov ecx, dword [ebp - 0xc]
inc ecx
inc ebx
mov dword [ebp - 0xc], ecx
cmp ecx, 0x40
jb 0x40f8f8
push 0xdd8
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.ev_c2a8cgqt
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push str.WTMR_6drf769a
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
test eax, eax
je 0x40f97a
push eax
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push ebx
push 0xf12
push ebx
push 4
push ebx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov esi, eax
push str.log:_oj1u1f2e
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
push str.WTMR_7j4crnhy
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
push eax
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
call edi
push str.MTXidfpkafa
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
test esi, esi
je 0x40f9e1
call edi
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push str.log:_w9ef2wf8
call ebx
lea eax, [ebp - 0x14c]
push eax
push str.s_qzc7z4kg
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
xor ebx, ebx
push str.XMLaisxa2nb
push 1
push ebx
push ebx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
push ebx
push 1
push eax
call edi
push str.SMPHR_f8ayz4d0
push 1
push ebx
push ebx
call esi
push ebx
push 1
push eax
call edi
test eax, eax
jne 0x40fa4e
lea eax, [ebp - 0xc]
push eax
push 0x20019
push ebx
push str.regzheydlwq
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
jmp 0x40fa4e
mov byte [esi + ebx], 0
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret