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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
push str.WTMR_nnjj3ed4
push 1
xor esi, esi
mov dword [ebp - 0x14], edx
push esi
mov dword [ebp - 0x10], ecx
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
mov ebx, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov edi, dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
test eax, eax
je 0x40ebe1
push eax
call edi
jmp 0x40ebed
push str.s07a8o5e
push str.ilru1mgb
call ebx
push str.ev_mg4mznw4
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 dword [sym.imp.KERNEL32.dll_ResetEvent]
push str.WTMR_s35fyxp2
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
push str.fokl25d6
push str.wv1ntc54
mov esi, eax
call ebx
push esi
call edi
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.log:_rfhad6tv
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push str.XMLa6wziq6t
push 1
push 0
push 0
call esi
push 0
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
push str.MTXc1uovp0b
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x40ec73
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x40ec7f
push str.35b3nm8n
push str.rlg8wap9
call ebx
push 0x55a
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.SMPHR_qvvgjd1b
push 1
push ebx
push ebx
call esi
push str.log:_ux7kl1ib
mov esi, eax
call edi
push ebx
push 1
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
je 0x40ecd0
lea eax, [ebp - 0x18]
push eax
push 0x20019
push ebx
push str.regjbca5nzz
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov eax, dword [0x4161bc]
mov esi, dword [ebp - 0x10]
push esi
mov dword [ebp - 0xc], eax
call dword [0x416090]
lea eax, [eax*2 + 0x100]
push eax
push 0x40
call dword [0x41604c]
push 2
mov ebx, eax
xor edi, edi
cmp word [esi], 0x5c
pop eax
push str.SMPHR_jh4zsapm
push 1
push 0
cmove edi, eax
mov dword [ebp - 4], ebx
push 0
add edi, esi
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov esi, eax
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push str.regd4vmsowa
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push 0
push 1
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test eax, eax
je 0x40ed54
push str.ml82jny3
push str.oytltcu1
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
jmp 0x40ed5a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 9
pop esi
push str.log:_cmh3ldo1
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub esi, 1
jne 0x40ed5d
push str.WTMR_li6j204p
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
test eax, eax
je 0x40ed86
push eax
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push str.ev_x0a02wy6
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 dword [sym.imp.KERNEL32.dll_ResetEvent]
push 0xde7
xor esi, esi
push esi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.MTXf63m8y3q
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
test esi, esi
je 0x40edf1
push str.log:_o4r370lf
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push str.x0yi4xu6
push str.ev3iva6z
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
jmp 0x40ee0c
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
push str.reg81h217jy
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push str.WTMR_hg16mvbm
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
push str.nq0b75qo
push str.kruod3rq
mov esi, eax
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push esi
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push str.XML00si63pt
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]
test edi, edi
je 0x40ef35
push dword [ebp - 0x10]
call dword [0x416090]
lea eax, [eax*2 + 0x100]
push eax
push 0x40
call dword [0x41604c]
push dword [0x41629c]
mov ebx, eax
push edi
mov dword [ebp - 8], ebx
call dword [0x416190]
mov esi, eax
test esi, esi
je 0x40eec1
sub esi, edi
lea edx, [ebp - 8]
sar esi, 1
mov ecx, edi
push esi
push 0
call fcn.0040ef52
mov ebx, dword [ebp - 8]
pop ecx
pop ecx
test eax, eax
je 0x40eeb9
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
call fcn.0040f304
mov edx, ebx
mov ecx, eax
call fcn.0040f304
mov dword [ebp - 4], eax
lea edi, [edi + esi*2]
add edi, 2
jmp 0x40ef23
cmp dword [ebp + 8], 0
je 0x40eee1
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
call fcn.0040f304
mov edx, dword [ebp + 8]
mov ecx, eax
call fcn.0040f304
mov dword [ebp - 4], eax
jmp 0x40ef13
push edi
call dword [0x416090]
push eax
push 0
lea edx, [ebp - 8]
mov ecx, edi
call fcn.0040ef52
pop ecx
pop ecx
test eax, eax
je 0x40ef0d
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
call fcn.0040f304
mov ebx, dword [ebp - 8]
mov edx, ebx
jmp 0x40eed5
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 0x14]
push eax
push dword [esi]
call dword [0x416144]
mov dword [esi], eax
xor edi, edi
push ebx
call dword [0x4160cc]
test edi, edi
jne 0x40ee57
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0x14]
push ebx
push dword [esi]
call dword [0x416144]
push ebx
mov dword [esi], eax
call dword [0x4160cc]
pop edi
xor eax, eax
pop esi
inc eax
pop ebx
leave
ret