Function at 0x43d366
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get program files directory
Set environment variable

Disassembly:
push 0x34c
mov eax, 0x516325
call fcn.004d8af2
mov ebx, ecx
mov dword [ebp - 0x338], ebx
push 0x208
xor edi, edi
mov dword [ebp - 0x338], ebx
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.004d9f30
mov esi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x218]
add esp, 0xc
push eax
push edi
push edi
push 0x26
push edi
call esi
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], edi
call fcn.0040687a
mov dword [ebp - 4], edi
cmp dword [ebp - 0x344], edi
jge 0x43d43d
cmp dword [ebp - 0x340], edi
mov eax, 0xf8
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov edi, dword [ebp - 0x33c]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 1
lea eax, [ebp - 0x350]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x348]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
jmp 0x43e25b
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov edi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
lea eax, [ebp - 0x218]
push eax
push str.ProgramFiles
call edi
test eax, eax
jne 0x43d4c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0xf9
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 2
lea eax, [ebp - 0x350]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x348]
lea ecx, [ecx - 0x10]
jmp 0x43d433
call fcn.004013b8
test al, al
jne 0x43d5b7
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x26
push eax
call esi
and dword [ebp - 0x340], 0
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x344], eax
call fcn.0040687a
mov dword [ebp - 4], 3
cmp dword [ebp - 0x344], 0
jge 0x43d550
cmp dword [ebp - 0x340], 0
mov eax, pe_nt_image_headers32
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov edi, dword [ebp - 0x33c]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 4
jmp 0x43d414
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.ProgramW6432
call edi
test eax, eax
jne 0x43d5b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x111
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 5
jmp 0x43d4a5
lea ecx, [ebp - 0x354]
call fcn.004283a1
push 0x5c
mov ecx, eax
mov dword [ebp - 4], 6
call fcn.004aedc7
push dword [eax]
push str.GET_TEMP_PATH
call edi
or dword [ebp - 4], 0xffffffff
mov esi, eax
mov ecx, dword [ebp - 0x354]
add ecx, 0xfffffff0
call fcn.00407189
test esi, esi
jne 0x43d636
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x114
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 7
jmp 0x43d4a5
mov esi, str.LOCALAPPDATA
lea eax, [ebp - 0x218]
push esi
push eax
push 0x1c
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 8
cmp dword [ebp - 0x344], 0
jge 0x43d6cf
cmp dword [ebp - 0x340], 0
mov eax, 0x116
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 9
lea eax, [ebp - 0x350]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x348]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x33c]
jmp 0x43d4b9
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push esi
call edi
test eax, eax
jne 0x43d732
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x117
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0xa
jmp 0x43d4a5
mov esi, str.APPDATA
lea eax, [ebp - 0x218]
push esi
push eax
push 0x1a
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 0xb
cmp dword [ebp - 0x344], 0
jl 0x43d7b1
lea eax, [ebp - 0x218]
push eax
push esi
call edi
test eax, eax
jne 0x43da0c
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x11c
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov byte [ebp - 4], 0xc
jmp 0x43d6a8
lea ecx, [ebp - 0x354]
call fcn.0040687a
lea eax, [ebp - 0x354]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x350]
call fcn.00428736
pop ecx
push eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0xe
call fcn.004032ed
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x348]
add ecx, 0xfffffff0
call fcn.00407189
cmp dword [ebp - 0x344], 0
jl 0x43d843
mov esi, dword [ebp - 0x354]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x43da04
call fcn.00406710
push 0x124
mov edx, str.Could_not_find_APPDATA_folder__1_
push eax
push ecx
lea eax, [ebp - 0x354]
mov ecx, esp
push eax
call fcn.004093b4
pop ecx
mov ecx, ebx
call fcn.00406620
lea ecx, [esi - 0x10]
jmp 0x43d6bf
push 1
lea eax, [ebp - 0x354]
mov edx, reloc.ACTIVEDS.dll_ADsGetObject
push eax
push str.AppData
push str..DEFAULTSoftwareMicrosoftWindowsCurrentVersionExplorerUser_Shell_Folders
lea ecx, [ebp - 0x350]
call fcn.0042b75b
add esp, 0x10
push eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0xf
call fcn.004032ed
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x348]
add ecx, 0xfffffff0
call fcn.00407189
cmp dword [ebp - 0x344], 0
jge 0x43d8be
push 0x12c
push dword [ebp - 0x344]
push ecx
mov ecx, esp
push str.Could_not_find_APPDATA_folder__2_
call fcn.00406fea
mov ecx, ebx
call fcn.00406620
mov ecx, dword [ebp - 0x354]
jmp 0x43d6bc
mov esi, dword [ebp - 0x354]
push esi
push str._APPDATA_
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
jne 0x43d905
lea ecx, [ebp - 0x334]
call fcn.0042b0ee
cmp dword [eax + 4], 6
jb 0x43d905
mov esi, str._USERPROFILE_AppDataRoaming
push esi
call fcn.004ddaa2
pop ecx
push eax
push esi
lea ecx, [ebp - 0x354]
call fcn.00406efb
mov esi, dword [ebp - 0x354]
push ecx
mov edi, esp
lea ecx, [esi - 0x10]
mov dword [ebp - 0x338], edi
call fcn.004070e7
add eax, 0x10
lea edx, [ebp - 0x354]
lea ecx, [ebp - 0x350]
mov dword [edi], eax
call fcn.00428612
pop ecx
push eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0x10
call fcn.004032ed
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x348]
add ecx, 0xfffffff0
call fcn.00407189
cmp dword [ebp - 0x344], 0
jge 0x43d970
push 0x13a
push dword [ebp - 0x344]
push ecx
mov ecx, esp
push str.Could_not_find_APPDATA_folder__3_
jmp 0x43d8a7
mov esi, dword [ebp - 0x354]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x43d996
call fcn.00406710
push 0x13e
mov edx, str.Could_not_find_APPDATA_folder__4_
jmp 0x43d823
mov edi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push esi
push str.APPDATA
call edi
test eax, eax
jne 0x43da04
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x140
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
lea eax, [ebp - 0x350]
mov byte [ebp - 4], 0x11
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x348]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x43d83b
lea ecx, [esi - 0x10]
call fcn.00407189
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x338]
call fcn.00406fea
push str.MicrosoftInternet_ExplorerQuick_Launch
mov edx, eax
mov dword [ebp - 4], 0x12
lea ecx, [ebp - 0x354]
call fcn.00409442
pop ecx
push dword [eax]
push str.QUICK_LAUNCH
call edi
mov ecx, dword [ebp - 0x354]
mov esi, eax
add ecx, 0xfffffff0
call fcn.00407189
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x338]
add ecx, 0xfffffff0
call fcn.00407189
test esi, esi
jne 0x43dabc
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x147
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x13
jmp 0x43d4a5
push str.Program_Files
lea eax, [ebp - 0x218]
push eax
push 0x2b
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x344], 0
jge 0x43db32
cmp dword [ebp - 0x340], 0
mov eax, 0x149
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x15
jmp 0x43d6a8
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.CommonProgramFiles
call edi
test eax, eax
jne 0x43db99
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x14a
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x16
jmp 0x43d4a5
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
jne 0x43dbf2
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x14c
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x17
jmp 0x43d4a5
lea eax, [ebp - 0x218]
push eax
push str.SystemRoot
call edi
test eax, eax
jne 0x43dc47
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x14d
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x18
jmp 0x43d4a5
push str.common_Desktop
lea eax, [ebp - 0x218]
push eax
push 0x19
pop esi
mov edx, esi
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], esi
cmp dword [ebp - 0x344], 0
jge 0x43dcbb
cmp dword [ebp - 0x340], 0
mov eax, 0x14f
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x1a
jmp 0x43d6a8
or esi, 0xffffffff
mov dword [ebp - 4], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.CSIDL_COMMON_DESKTOPDIRECTORY
call edi
test eax, eax
jne 0x43dd24
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x150
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x1b
jmp 0x43d4a5
push str.Desktop
lea eax, [ebp - 0x218]
push eax
push 0x10
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x344], 0
jge 0x43dd9a
cmp dword [ebp - 0x340], 0
mov eax, 0x152
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x1d
jmp 0x43d6a8
mov dword [ebp - 4], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.CSIDL_DESKTOPDIRECTORY
call edi
test eax, eax
jne 0x43de00
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x153
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x1e
jmp 0x43d4a5
push str.Start_MenuPrograms
lea eax, [ebp - 0x218]
push eax
push 2
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 0x1f
cmp dword [ebp - 0x344], 0
jge 0x43de76
cmp dword [ebp - 0x340], 0
mov eax, 0x155
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x20
jmp 0x43d6a8
mov dword [ebp - 4], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.CSIDL_PROGRAMS
call edi
test eax, eax
jne 0x43dedc
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x156
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x21
jmp 0x43d4a5
push str.Start_Menu
lea eax, [ebp - 0x218]
push eax
push 0xb
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 0x22
cmp dword [ebp - 0x344], 0
jge 0x43df52
cmp dword [ebp - 0x340], 0
mov eax, 0x158
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x23
jmp 0x43d6a8
mov dword [ebp - 4], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.CSIDL_STARTMENU
call edi
test eax, eax
jne 0x43dfb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x159
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x24
jmp 0x43d4a5
push str.All_UsersStart_MenuPrograms
lea eax, [ebp - 0x218]
push eax
push 0x17
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 0x25
cmp dword [ebp - 0x344], 0
jge 0x43e02e
cmp dword [ebp - 0x340], 0
mov eax, 0x15b
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x26
jmp 0x43d6a8
mov dword [ebp - 4], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.CSIDL_COMMON_PROGRAMS
call edi
test eax, eax
jne 0x43e094
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x15c
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x27
jmp 0x43d4a5
push str.All_UsersStart_Menu
lea eax, [ebp - 0x218]
push eax
push 0x16
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 0x28
cmp dword [ebp - 0x344], 0
jge 0x43e10a
cmp dword [ebp - 0x340], 0
mov eax, 0x15e
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x29
jmp 0x43d6a8
mov dword [ebp - 4], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.CSIDL_COMMON_STARTMENU
call edi
test eax, eax
jne 0x43e170
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x15f
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x2a
jmp 0x43d4a5
push str.common_APPDATA
lea eax, [ebp - 0x218]
push eax
push 0x23
pop edx
lea ecx, [ebp - 0x344]
call fcn.0043d2a6
pop ecx
pop ecx
mov dword [ebp - 4], 0x2b
cmp dword [ebp - 0x344], 0
jge 0x43e1e6
cmp dword [ebp - 0x340], 0
mov eax, 0x162
cmovne eax, dword [ebp - 0x340]
push eax
push dword [ebp - 0x344]
push ecx
mov esi, esp
mov dword [ebp - 0x338], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x350]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x2c
jmp 0x43d6a8
mov dword [ebp - 4], esi
mov ecx, dword [ebp - 0x33c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x218]
push eax
push str.CSIDL_COMMON_APPDATA
call edi
test eax, eax
jne 0x43e24c
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x163
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x350]
call fcn.00406620
mov dword [ebp - 4], 0x2d
jmp 0x43d4a5
and dword [ebx], 0
lea ecx, [ebx + 8]
and dword [ebx + 4], 0
call fcn.0040687a
mov eax, ebx
call fcn.004d8aa1
ret