Function at 0x44f58d
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
and dword [ebp - 8], 0
push esi
mov esi, 0x3f40
push esi
call sub.mfc100u.dll_new
pop ecx
mov dword [ebp - 4], eax
test eax, eax
jne 0x44f5b3
or eax, 0xffffffff
jmp 0x44f911
push ebx
push edi
push esi
push 0
push eax
call sub.MSVCR100.dll_memset
mov ebx, dword [ebp + 0xc]
mov esi, dword [sym.imp.MSVCR100.dll_wcslen]
xor eax, eax
mov edi, str._SYSDIR_
push edi
mov word [ebx], ax
call esi
push eax
push edi
mov edi, dword [ebp + 8]
push edi
call dword [sym.imp.MSVCR100.dll__wcsnicmp]
add esp, 0x1c
test eax, eax
jne 0x44f633
push 0x1fa0
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x44f70a
mov eax, dword [ebp + 0x10]
dec eax
push eax
push dword [ebp - 4]
push ebx
call dword [sym.imp.MSVCR100.dll_wcsncpy]
push str._SYSDIR_
call esi
lea eax, [edi + eax*2]
push eax
push dword [ebp + 0x10]
push ebx
call fcn.0044cd4b
add esp, 0x1c
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x44f903
jmp 0x44f8fd
push str._SYSTEMDRIVE_
call esi
push eax
push str._SYSTEMDRIVE_
push edi
call dword [sym.imp.MSVCR100.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x44f697
push 0x1fa0
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x44f70a
push 0x5c
push dword [ebp - 4]
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
test eax, eax
je 0x44f70a
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp + 0x10]
dec eax
push eax
push dword [ebp - 4]
push ebx
call dword [sym.imp.MSVCR100.dll_wcsncpy]
push str._SYSTEMDRIVE_
jmp 0x44f611
push str._WINDIR_
call esi
push eax
push str._WINDIR_
push edi
call dword [sym.imp.MSVCR100.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x44f6dd
push 0x1fa0
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x44f70a
mov eax, dword [ebp + 0x10]
dec eax
push eax
push dword [ebp - 4]
push ebx
call dword [sym.imp.MSVCR100.dll_wcsncpy]
push str._WINDIR_
jmp 0x44f611
push str._TEMP_
call esi
push eax
push str._TEMP_
push edi
call dword [sym.imp.MSVCR100.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x44f713
push ebx
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x44f623
or dword [ebp - 8], 0xffffffff
jmp 0x44f903
push str._systemroot_
call esi
push eax
push str._systemroot_
push edi
call dword [sym.imp.MSVCR100.dll__wcsnicmp]
add esp, 0x10
test eax, eax
jne 0x44f759
push 0x1fa0
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x44f70a
mov eax, dword [ebp + 0x10]
dec eax
push eax
push dword [ebp - 4]
push ebx
call dword [sym.imp.MSVCR100.dll_wcsncpy]
push str._systemroot_
jmp 0x44f611
push str.SystemRoot
push edi
call fcn.0044d1a8
pop ecx
pop ecx
test eax, eax
je 0x44f7b3
push 0x1fa0
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x44f70a
mov eax, dword [ebp + 0x10]
dec eax
push eax
push dword [ebp - 4]
push ebx
call dword [sym.imp.MSVCR100.dll_wcsncpy]
push ebx
call fcn.0044cda5
push str.SystemRoot
call esi
lea eax, [edi + eax*2]
push eax
push dword [ebp + 0x10]
push ebx
call fcn.0044cd4b
push ebx
call fcn.0044ce09
add esp, 0x24
jmp 0x44f623
push str.system32
push edi
call fcn.0044d1a8
pop ecx
pop ecx
test eax, eax
je 0x44f7f6
push 0x1fa0
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x44f70a
mov eax, dword [ebp + 0x10]
dec eax
push eax
push dword [ebp - 4]
push ebx
call dword [sym.imp.MSVCR100.dll_wcsncpy]
push ebx
call fcn.0044cda5
push str.system32
jmp 0x44f796
push str.globalroot
push edi
call fcn.0044d1a8
pop ecx
pop ecx
test eax, eax
je 0x44f813
push 0x1f9f
push str.globalroot
jmp 0x44f82e
push str._globalroot
push edi
call fcn.0044d1a8
pop ecx
pop ecx
test eax, eax
je 0x44f864
push 0x1f9f
push str._globalroot
call esi
pop ecx
lea eax, [edi + eax*2]
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCR100.dll_wcsncpy]
mov esi, dword [ebp + 0x14]
push esi
push dword [ebp + 0x10]
push ebx
push dword [ebp - 4]
call fcn.0044f58d
add esp, 0x1c
test esi, esi
je 0x44f903
mov dword [esi], 1
jmp 0x44f903
push 0x25
push edi
call dword [sym.imp.MSVCR100.dll_wcschr]
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x44f903
lea eax, [esi + 2]
push 0x25
push eax
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x44f903
lea edx, [esi + 2]
sub eax, edx
sar eax, 1
mov ecx, 0x1f9f
cmp eax, ecx
jbe 0x44f8a0
mov eax, ecx
push eax
push edx
push dword [ebp - 4]
call dword [sym.imp.MSVCR100.dll_wcsncpy]
push dword [ebp - 4]
call dword [sym.imp.MSVCR100.dll__wgetenv]
add esp, 0x10
mov dword [ebp - 0xc], eax
test eax, eax
je 0x44f903
mov eax, dword [ebp + 0x10]
sub esi, edi
sar esi, 1
dec eax
cmp esi, eax
jbe 0x44f8cc
mov esi, eax
push esi
push edi
push ebx
call dword [sym.imp.MSVCR100.dll_wcsncpy]
push dword [ebp - 0xc]
xor eax, eax
push dword [ebp + 0x10]
mov word [ebx + esi*2], ax
push ebx
call fcn.0044cd4b
mov eax, dword [ebp - 0x10]
add eax, 2
push eax
push dword [ebp + 0x10]
push ebx
call fcn.0044cd4b
mov eax, dword [ebp + 0x14]
add esp, 0x24
mov dword [eax], 1
push dword [ebp - 4]
call sub.mfc100u.dll_delete
mov eax, dword [ebp - 8]
pop ecx
pop edi
pop ebx
pop esi
leave
ret