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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7ac
lea eax, [ebp - 0x168]
push ebx
push esi
push edi
push eax
push 0x4117c8
call dword [sym.imp.kernel32.dll_FindFirstFileA]
push eax
call dword [sym.imp.kernel32.dll_pd_3JD9_w_8]
mov edi, dword [sym.imp.kernel32.dll_OutputDebugStringA]
push 0x4117d4
call edi
xor esi, esi
push esi
push 0xbb7
push esi
push 4
push esi
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_CreateFileMappingW]
push eax
call dword [sym.imp.kernel32.dll_]
mov ebx, dword [sym.imp.advapi32.dll_RegOpenKeyExA]
lea eax, [ebp - 0x10]
push eax
push 0x20019
push esi
push 0x4117e0
push 0x80000001
call ebx
push 0xbd6
push esi
call dword [sym.imp.kernel32.dll_LocalAlloc]
push eax
call dword [sym.imp.kernel32.dll_LocalFree]
push 0x4117ec
call edi
push 3
pop esi
push 0x4117f8
call edi
sub esi, 1
jne 0x401724
push 0x411804
push 1
push esi
push esi
call dword [sym.imp.kernel32.dll_CreateSemaphoreA]
push esi
push 1
push eax
call dword [sym.imp.kernel32.dll_ReleaseSemaphore]
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
push 0x411810
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateMutexA]
test eax, eax
je 0x40177d
push eax
call dword [0x411020]
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x41181c
jmp 0x40178d
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x411828
push 0x80000001
call ebx
push 0x411834
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]
test eax, eax
je 0x4017cd
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x411844
push 0x80000001
call ebx
jmp 0x4017cf
call esi
push 0x411850
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
push eax
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 0x411860
push 0
push 1
push 0
call dword [sym.imp.kernel32.dll____TEg_Td:kJ__FfFpIDL_]
mov esi, eax
push esi
call dword [sym.imp.kernel32.dll_SetEvent]
push esi
call dword [sym.imp.kernel32.dll_ResetEvent]
push 0x41186c
push 1
xor esi, esi
push esi
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
test eax, eax
je 0x401821
push eax
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 0x41187c
call edi
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x411888
push esi
push 1
push esi
call dword [sym.imp.kernel32.dll____TEg_Td:kJ__FfFpIDL_]
mov esi, eax
push esi
call dword [sym.imp.kernel32.dll_SetEvent]
push esi
call dword [sym.imp.kernel32.dll_ResetEvent]
push 0x411894
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]
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
push 0x685
push 0
call dword [sym.imp.kernel32.dll_LocalAlloc]
push eax
call dword [sym.imp.kernel32.dll_LocalFree]
lea eax, [ebp - 0x2a8]
push eax
push 0x4118a4
call dword [sym.imp.kernel32.dll_FindFirstFileA]
push eax
call dword [sym.imp.kernel32.dll_pd_3JD9_w_8]
push 0x4118b0
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 0x4118bc
push 0x4118c8
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
push 0x4118d4
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
push eax
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 0x4118e4
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateMutexA]
mov dword [ebp - 4], eax
test eax, eax
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
je 0x40191e
push 0x4118f0
push 0x80000001
call ebx
push dword [ebp - 4]
call dword [0x411020]
push 0x4118fc
call edi
jmp 0x40192a
push 0x411908
push 0x80000001
call ebx
xor eax, eax
push eax
push 0x10ac
push eax
push 4
push eax
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_CreateFileMappingW]
push eax
call dword [sym.imp.kernel32.dll_]
push 0x411914
push 0x411920
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
push 0x41192c
call edi
push 0x411938
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
mov dword [ebp - 4], eax
call esi
mov eax, dword [ebp - 4]
test eax, eax
je 0x401995
push eax
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
push 0x411948
push 0x80000001
call ebx
push 0x411954
call edi
mov eax, dword [0x41519c]
push 0x411d00
call eax
push 0x411960
push 1
push 0
add eax, 0x40
push 0
mov dword [ebp - 4], eax
call dword [sym.imp.kernel32.dll_CreateSemaphoreA]
push 0x411970
push 0x41197c
mov esi, eax
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
push 0
push 1
push esi
mov esi, dword [sym.imp.kernel32.dll_ReleaseSemaphore]
call esi
test eax, eax
jne 0x4019f9
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
push 0x411988
push 0x80000001
call ebx
push 0x411994
push 1
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateSemaphoreA]
push 0
push 1
push eax
call esi
push 0x4119a0
push 0x4119ac
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
push 0x4119b8
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
mov esi, eax
call dword [sym.imp.kernel32.dll_GetLastError]
test esi, esi
je 0x401a43
push esi
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 5
pop esi
push 0x4119c8
call edi
sub esi, 1
jne 0x401a46
push 0x4119d4
push esi
push 1
push esi
call dword [sym.imp.kernel32.dll____TEg_Td:kJ__FfFpIDL_]
mov esi, eax
push esi
call dword [sym.imp.kernel32.dll_SetEvent]
push esi
call dword [sym.imp.kernel32.dll_ResetEvent]
xor eax, eax
push eax
push 0x106b
push eax
push 4
push eax
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_CreateFileMappingW]
push 0x4119e0
mov esi, eax
call edi
push esi
call dword [sym.imp.kernel32.dll_]
mov esi, dword [sym.imp.kernel32.dll_GetLastError]
call esi
push 0x4119ec
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
push eax
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
lea eax, [ebp - 0x14]
push eax
push 0x20019
push 0
push 0x4119fc
push 0x80000001
call ebx
push 0x411a08
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateMutexA]
test eax, eax
je 0x401af4
push eax
call dword [0x411020]
push 0x411a14
push 0x411a20
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
lea eax, [ebp - 0x3e8]
push eax
push 0x411a2c
call dword [sym.imp.kernel32.dll_FindFirstFileA]
push eax
call dword [sym.imp.kernel32.dll_pd_3JD9_w_8]
push 0x591
push 0
call dword [sym.imp.kernel32.dll_LocalAlloc]
push eax
call dword [sym.imp.kernel32.dll_LocalFree]
lea eax, [ebp - 0x18]
push eax
push 0x20019
push 0
push 0x411a38
push 0x80000001
call ebx
push 0x411a44
call edi
push 0x411a50
push 0x411a5c
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
mov eax, dword [ebp - 4]
push 6
mov dword [ebp - 0xc], eax
pop ebx
call esi
sub ebx, 1
jne 0x401b58
push 0x411a68
push ebx
push ebx
call dword [sym.imp.kernel32.dll_CreateMutexA]
test eax, eax
je 0x401b7b
push eax
call dword [0x411020]
call esi
jmp 0x401b84
call esi
push 0x411a74
call edi
push ebx
push 0x28c
push ebx
push 4
push ebx
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_CreateFileMappingW]
push 0x411a80
push 0x411a8c
mov esi, eax
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
push esi
call dword [sym.imp.kernel32.dll_]
push 0x411a98
push 1
push ebx
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
mov esi, eax
call dword [sym.imp.kernel32.dll_GetLastError]
mov ebx, dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test esi, esi
je 0x401be8
push esi
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 0x411aa8
push 0x411ab4
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
jmp 0x401bff
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
push 0x411ac0
push 0x80000001
call ebx
push 0x411acc
push 0
push 1
push 0
call dword [sym.imp.kernel32.dll____TEg_Td:kJ__FfFpIDL_]
mov esi, eax
push esi
call dword [sym.imp.kernel32.dll_SetEvent]
push esi
call dword [sym.imp.kernel32.dll_ResetEvent]
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x5d8
xor esi, esi
push esi
call dword [sym.imp.kernel32.dll_LocalAlloc]
push eax
call dword [sym.imp.kernel32.dll_LocalFree]
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push esi
push 0x411ad8
push 0x80000001
call ebx
push 0x411ae4
push 1
push esi
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
push eax
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 0x411af4
push 0x411b00
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
lea eax, [ebp - 0x528]
push eax
push 0x411b0c
call dword [sym.imp.kernel32.dll_FindFirstFileA]
push eax
call dword [sym.imp.kernel32.dll_pd_3JD9_w_8]
push 0x411b18
push 1
push esi
push esi
call dword [sym.imp.kernel32.dll_CreateSemaphoreA]
push 0x411b28
push 0x411b34
mov esi, eax
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
push 0
push 1
push esi
call dword [sym.imp.kernel32.dll_ReleaseSemaphore]
test eax, eax
jne 0x401ccf
push 0x411b40
push 0x411b4c
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
mov esi, dword [sym.imp.kernel32.dll_CreateSemaphoreA]
push 0x411b58
push 1
push 0
push 0
call esi
push dword [ebp - 4]
mov eax, dword [0x41504c]
push 0x40
call eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x668]
push eax
push 0x411b64
call dword [sym.imp.kernel32.dll_FindFirstFileA]
push eax
call dword [sym.imp.kernel32.dll_pd_3JD9_w_8]
push 0x411b70
push 1
push 0
push 0
call esi
push 0
push 1
push eax
call dword [sym.imp.kernel32.dll_ReleaseSemaphore]
push 0x411b7c
call edi
xor eax, eax
push eax
push 0x779
push eax
push 4
push eax
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_CreateFileMappingW]
push eax
call dword [sym.imp.kernel32.dll_]
push 0x411b88
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
test eax, eax
je 0x401d65
push eax
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 0x411b98
call edi
push 0x411ba4
push 1
push 0
push 0
call esi
mov esi, eax
call dword [sym.imp.kernel32.dll_GetLastError]
push 0
push 1
push esi
call dword [sym.imp.kernel32.dll_ReleaseSemaphore]
push 0x59b
push 0
call dword [sym.imp.kernel32.dll_LocalAlloc]
push eax
call dword [sym.imp.kernel32.dll_LocalFree]
push 0x411bb4
push 1
push 0
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
push 0x411bc4
mov esi, eax
call edi
push esi
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 0x411bd0
call edi
push 0x411bdc
push 0
push 1
push 0
call dword [sym.imp.kernel32.dll____TEg_Td:kJ__FfFpIDL_]
mov esi, eax
push esi
call dword [sym.imp.kernel32.dll_SetEvent]
push esi
call dword [sym.imp.kernel32.dll_ResetEvent]
push 0x411be8
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateMutexA]
test eax, eax
je 0x401dfa
push eax
call dword [0x411020]
push 3
pop esi
push 0x411bf4
call edi
sub esi, 1
jne 0x401dfd
lea eax, [ebp - 0x20]
push eax
push 0x20019
push esi
push 0x411c00
push 0x80000001
call ebx
mov eax, dword [0x41519c]
lea ecx, [ebp - 0xc]
mov esi, dword [0x415040]
push 0
push 0
push ecx
push dword [ebp - 4]
push 1
push 0x411d00
call eax
push eax
push 0x411d00
call esi
test eax, eax
je 0x401faf
cmp dword [ebp - 4], 0
je 0x401faf
lea eax, [ebp - 0x7a8]
push eax
push 0x411c0c
call dword [sym.imp.kernel32.dll_FindFirstFileA]
push eax
call dword [sym.imp.kernel32.dll_pd_3JD9_w_8]
push 0x411c18
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 0x411c24
call edi
push 0x411c30
push 1
push esi
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
push 0x411c40
mov esi, eax
call edi
test esi, esi
je 0x401eb5
push esi
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
xor eax, eax
push eax
push 0xf37
push eax
push 4
push eax
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_CreateFileMappingW]
mov esi, eax
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
push 0x411c4c
push 0x80000001
call ebx
push esi
call dword [sym.imp.kernel32.dll_]
push 0x411c58
push 1
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateSemaphoreA]
push 0x411c68
push 0x411c74
mov esi, eax
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableA]
push 0
push 1
push esi
call dword [sym.imp.kernel32.dll_ReleaseSemaphore]
test eax, eax
jne 0x401f21
call dword [sym.imp.kernel32.dll_GetLastError]
push 0xa91
xor esi, esi
push esi
call dword [sym.imp.kernel32.dll_LocalAlloc]
push eax
call dword [sym.imp.kernel32.dll_LocalFree]
push 0x411c80
push esi
push 1
push esi
call dword [sym.imp.kernel32.dll____TEg_Td:kJ__FfFpIDL_]
mov esi, eax
push esi
call dword [sym.imp.kernel32.dll_SetEvent]
push esi
call dword [sym.imp.kernel32.dll_ResetEvent]
push 0x411c8c
push 1
xor esi, esi
push esi
call dword [sym.imp.kernel32.dll_CreateWaitableTimerA]
push eax
call dword [sym.imp.kernel32.dll_CancelWaitableTimer]
push 0x411c9c
call edi
push 0x411ca8
push esi
push esi
call dword [sym.imp.kernel32.dll_CreateMutexA]
test eax, eax
je 0x401f94
push eax
call dword [0x411020]
push 0x411cb4
call edi
jmp 0x401faa
lea eax, [ebp - 0x24]
push eax
push 0x20019
push esi
push 0x411cc0
push 0x80000001
call ebx
mov eax, dword [ebp - 4]
jmp 0x401fb1
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret