Function at 0x1006e512
Capabilities:
Get common file path

Disassembly:
push 0x6c
mov eax, 0x101a75dc
call fcn.1017513a
mov edi, ecx
mov dword [ebp - 0x24], edi
lea eax, [edi + 0x1470]
mov dword [edi], 0x1020733c
xor ebx, ebx
push eax
mov dword [edi + 4], ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [ebp - 4], ebx
lea esi, [edi + 0x1488]
mov dword [ebp - 0x28], esi
mov dword [esi], ebx
mov dword [esi + 4], ebx
call fcn.1006fed8
mov dword [esi], eax
mov byte [ebp - 4], 3
mov ecx, edi
call fcn.1006e22f
test eax, eax
js 0x1006e8e3
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SHGetKnownFolderPath
push dword [edi + 0x146c]
call ebx
push 0x104
lea esi, [edi + 8]
mov dword [edi + 0x1468], eax
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1006e8cb
mov ecx, 0x104
cmp eax, ecx
ja 0x1006e8cb
lea eax, [edi + 0x620]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x1006e8b3
mov ecx, 0x104
cmp eax, ecx
ja 0x1006e8b3
push ecx
lea eax, [edi + 0x828]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1006e89b
mov ecx, 0x104
cmp eax, ecx
ja 0x1006e89b
lea eax, [edi + 0xc38]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x1006e883
cmp eax, 0x104
ja 0x1006e883
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x1006e636
call dword [sym.imp.KERNEL32.dll_GetLastError]
or eax, 0xe0ff0000
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push 0x1026b508
jmp 0x1006e8f3
push str.GetSystemWow64DirectoryW
push eax
call ebx
lea ebx, [edi + 0x210]
test eax, eax
je 0x1006e65b
push 0x104
push ebx
call eax
test eax, eax
je 0x1006e65b
cmp eax, 0x104
jb 0x1006e667
push esi
push 0x208
push ebx
call fcn.100078b2
lea eax, [edi + 0x1250]
push eax
xor eax, eax
push eax
push eax
push 0x10
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x1006e691
lea eax, [edi + 0x1250]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0x208
lea eax, [edi + 0x1250]
push eax
push edi
call fcn.1006ec93
test eax, eax
jns 0x1006e6bc
push eax
lea ecx, [ebp - 0x38]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
push 0x208
lea eax, [edi + 0xc38]
push eax
push edi
call fcn.1006ec93
test eax, eax
jns 0x1006e6e7
push eax
lea ecx, [ebp - 0x40]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
push 0x208
push esi
push edi
call fcn.1006ec93
test eax, eax
jns 0x1006e70c
push eax
lea ecx, [ebp - 0x48]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
push 0x208
lea eax, [edi + 0x620]
push eax
push edi
call fcn.1006ec93
test eax, eax
jns 0x1006e737
push eax
lea ecx, [ebp - 0x50]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
lea eax, [edi + 0x620]
push eax
push 0x208
lea esi, [edi + 0x418]
push esi
call fcn.100078b2
push str.winsxs
push 0x208
push esi
call fcn.100079aa
push 0x208
push esi
push edi
call fcn.1006ec93
test eax, eax
jns 0x1006e784
push eax
lea ecx, [ebp - 0x58]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
mov esi, 0x208
push esi
push ebx
push edi
call fcn.1006ec93
test eax, eax
jns 0x1006e7a0
lea eax, [edi + 8]
push eax
push esi
push ebx
call fcn.100078b2
push esi
lea esi, [edi + 0x828]
push esi
push edi
call fcn.1006ec93
test eax, eax
jns 0x1006e7c7
push eax
lea ecx, [ebp - 0x60]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
push esi
push 0x208
lea ebx, [edi + 0xa30]
push ebx
push edi
call fcn.1006e99c
test eax, eax
jns 0x1006e7f3
push eax
lea ecx, [ebp - 0x68]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
push 0x102086c8
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea esi, [edi + 0xe40]
test eax, eax
je 0x1006e81c
push 0x104
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ebx, 0x208
jmp 0x1006e831
push ebx
push str._lsx3.xem
mov ebx, 0x208
push ebx
push esi
call fcn.10007b06
add esp, 0x10
push ebx
push esi
push edi
call fcn.1006ec93
test eax, eax
jns 0x1006e852
push eax
lea ecx, [ebp - 0x70]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
push esi
push ebx
lea eax, [edi + 0x1048]
push eax
push edi
call fcn.1006e99c
test eax, eax
jns 0x1006e877
push eax
lea ecx, [ebp - 0x78]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
jmp 0x1006e8f3
or dword [ebp - 4], 0xffffffff
mov eax, edi
call fcn.10175103
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
or eax, 0xe0ff0000
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push 0x1026b508
jmp 0x1006e8f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
or eax, 0xe0ff0000
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push 0x1026b508
jmp 0x1006e8f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
or eax, 0xe0ff0000
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push 0x1026b508
jmp 0x1006e8f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
or eax, 0xe0ff0000
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push 0x1026b508
jmp 0x1006e8f3
push eax
lea ecx, [ebp - 0x30]
call fcn.1000786e
push 0x1026b258
mov eax, ecx
push eax
call fcn.100e172b
int3