Function at 0x46faea
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x36c
mov dword [ebp - 0x36c], ecx
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x35c], 0
push 0x104
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x527c9c
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00408000
lea edx, [ebp - 0x20c]
push edx
call sub.ntdll.dll_strlen
add esp, 4
lea eax, [ebp + eax - 0x20c]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
mov byte [ecx], 0x5c
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
push str..inf
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409100
lea ecx, [ebp - 0x358]
push ecx
lea edx, [ebp - 0x20c]
push edx
call dword [0x54b4e8]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x46fc65
mov eax, dword [ebp - 0x358]
and eax, 0x10
test eax, eax
jne 0x46fc3c
lea ecx, [ebp - 0x32c]
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409100
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
call fcn.00470790
test eax, eax
je 0x46fc19
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp + 8], 0
je 0x46fc17
mov edx, dword [ebp + 0xc]
push edx
push 4
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
push ecx
call dword [ebp + 8]
test eax, eax
jne 0x46fc17
jmp 0x46fc58
jmp 0x46fc3c
cmp dword [ebp + 8], 0
je 0x46fc3c
mov edx, dword [ebp + 0xc]
push edx
push 0
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
push ecx
call dword [ebp + 8]
test eax, eax
jne 0x46fc3c
jmp 0x46fc58
lea edx, [ebp - 0x358]
push edx
mov eax, dword [ebp - 0x214]
push eax
call dword [0x54b4b4]
test eax, eax
jne 0x46fba6
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x54b4c8]
push 0x104
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x527cac
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.00408000
lea ecx, [ebp - 0x20c]
push ecx
call sub.ntdll.dll_strlen
add esp, 4
lea edx, [ebp + eax - 0x20c]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0x108]
mov byte [eax], 0x5c
mov ecx, dword [ebp - 0x108]
add ecx, 1
mov dword [ebp - 0x108], ecx
push str.msos.dll
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409100
lea eax, [ebp - 0x358]
push eax
lea ecx, [ebp - 0x20c]
push ecx
call dword [0x54b4e8]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x46fdc9
mov edx, dword [ebp - 0x358]
and edx, 0x10
test edx, edx
jne 0x46fda0
push str.msoss.dll
lea eax, [ebp - 0x32c]
push eax
call fcn.00402af0
add esp, 8
test eax, eax
jne 0x46fd29
jmp 0x46fda0
lea ecx, [ebp - 0x32c]
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409100
mov eax, dword [ebp - 0x108]
push eax
mov ecx, dword [ebp - 0x36c]
call fcn.00470af2
test eax, eax
je 0x46fd59
jmp 0x46fda0
push 1
lea ecx, [ebp - 0x20c]
push ecx
call fcn.004304c4
add esp, 8
test eax, eax
jne 0x46fda0
mov edx, dword [ebp - 0x35c]
add edx, 1
mov dword [ebp - 0x35c], edx
cmp dword [ebp + 8], 0
je 0x46fda0
mov eax, dword [ebp + 0xc]
push eax
push 4
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x36c]
push edx
call dword [ebp + 8]
test eax, eax
jne 0x46fda0
jmp 0x46fdbc
lea eax, [ebp - 0x358]
push eax
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x54b4b4]
test eax, eax
jne 0x46fcfe
mov edx, dword [ebp - 0x214]
push edx
call dword [0x54b4c8]
push 0x104
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x527cd0
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00408000
lea edx, [ebp - 0x20c]
push edx
call sub.ntdll.dll_strlen
add esp, 4
lea eax, [ebp + eax - 0x20c]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
mov byte [ecx], 0x5c
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
push str.msos.dat
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409100
lea ecx, [ebp - 0x358]
push ecx
lea edx, [ebp - 0x20c]
push edx
call dword [0x54b4e8]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x46fef7
mov eax, dword [ebp - 0x358]
and eax, 0x10
test eax, eax
jne 0x46fece
lea ecx, [ebp - 0x32c]
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409100
push 1
lea eax, [ebp - 0x20c]
push eax
call fcn.004304c4
add esp, 8
test eax, eax
jne 0x46fece
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp + 8], 0
je 0x46fece
mov edx, dword [ebp + 0xc]
push edx
push 4
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
push ecx
call dword [ebp + 8]
test eax, eax
jne 0x46fece
jmp 0x46feea
lea edx, [ebp - 0x358]
push edx
mov eax, dword [ebp - 0x214]
push eax
call dword [0x54b4b4]
test eax, eax
jne 0x46fe62
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x54b4c8]
push 0x104
lea edx, [ebp - 0x104]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp + eax - 0x104]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
mov byte [ecx], 0x5c
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x218], 0
jmp 0x46ff49
mov eax, dword [ebp - 0x218]
add eax, 1
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0x218], 0xf
jae 0x46fff9
mov ecx, dword [ebp - 0x218]
mov edx, dword [ecx*4 + 0x4b5390]
push edx
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409100
lea ecx, [ebp - 0x104]
push ecx
call fcn.0042f17a
add esp, 4
test eax, eax
je 0x46ffd1
push 0
lea edx, [ebp - 0x104]
push edx
call fcn.004304c4
add esp, 8
test eax, eax
jne 0x46ffd1
mov eax, dword [ebp - 0x35c]
add eax, 1
mov dword [ebp - 0x35c], eax
cmp dword [ebp + 8], 0
je 0x46ffcf
mov ecx, dword [ebp + 0xc]
push ecx
push 4
lea edx, [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x36c]
push eax
call dword [ebp + 8]
test eax, eax
jne 0x46ffcf
jmp 0x46fff9
jmp 0x46fff4
cmp dword [ebp + 8], 0
je 0x46fff4
mov ecx, dword [ebp + 0xc]
push ecx
push 0
lea edx, [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x36c]
push eax
call dword [ebp + 8]
test eax, eax
jne 0x46fff4
jmp 0x46fff9
jmp 0x46ff3a
push 0x104
lea ecx, [ebp - 0x104]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov byte [ebp - 0x102], 0
push str.Program_Files
push 0x104
lea edx, [ebp - 0x104]
push edx
call fcn.00408000
lea eax, [ebp - 0x104]
push eax
call sub.ntdll.dll_strlen
add esp, 4
lea ecx, [ebp + eax - 0x104]
mov dword [ebp - 0x108], ecx
mov edx, dword [ebp - 0x108]
mov byte [edx], 0x5c
mov eax, dword [ebp - 0x108]
add eax, 1
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x360], 0
jmp 0x470077
mov ecx, dword [ebp - 0x360]
add ecx, 1
mov dword [ebp - 0x360], ecx
cmp dword [ebp - 0x360], 5
jae 0x470127
mov edx, dword [ebp - 0x360]
mov eax, dword [edx*4 + 0x4b53f0]
push eax
push 0x104
mov ecx, dword [ebp - 0x108]
push ecx
call fcn.00409100
lea edx, [ebp - 0x104]
push edx
call fcn.0042f17a
add esp, 4
test eax, eax
je 0x4700ff
push 0
lea eax, [ebp - 0x104]
push eax
call fcn.004304c4
add esp, 8
test eax, eax
jne 0x4700ff
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp + 8], 0
je 0x4700fd
mov edx, dword [ebp + 0xc]
push edx
push 2
lea eax, [ebp - 0x104]
push eax
mov ecx, dword [ebp - 0x36c]
push ecx
call dword [ebp + 8]
test eax, eax
jne 0x4700fd
jmp 0x470127
jmp 0x470122
cmp dword [ebp + 8], 0
je 0x470122
mov edx, dword [ebp + 0xc]
push edx
push 0
lea eax, [ebp - 0x104]
push eax
mov ecx, dword [ebp - 0x36c]
push ecx
call dword [ebp + 8]
test eax, eax
jne 0x470122
jmp 0x470127
jmp 0x470068
push 0x104
lea edx, [ebp - 0x104]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp + eax - 0x104]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
mov byte [ecx], 0x5c
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x364], 0
jmp 0x470179
mov eax, dword [ebp - 0x364]
add eax, 1
mov dword [ebp - 0x364], eax
cmp dword [ebp - 0x364], 9
jae 0x470229
mov ecx, dword [ebp - 0x364]
mov edx, dword [ecx*4 + 0x4b53cc]
push edx
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409100
lea ecx, [ebp - 0x104]
push ecx
call fcn.0042f17a
add esp, 4
test eax, eax
je 0x470201
push 0
lea edx, [ebp - 0x104]
push edx
call fcn.004304c4
add esp, 8
test eax, eax
jne 0x470201
mov eax, dword [ebp - 0x35c]
add eax, 1
mov dword [ebp - 0x35c], eax
cmp dword [ebp + 8], 0
je 0x4701ff
mov ecx, dword [ebp + 0xc]
push ecx
push 4
lea edx, [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x36c]
push eax
call dword [ebp + 8]
test eax, eax
jne 0x4701ff
jmp 0x470229
jmp 0x470224
cmp dword [ebp + 8], 0
je 0x470224
mov ecx, dword [ebp + 0xc]
push ecx
push 0
lea edx, [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x36c]
push eax
call dword [ebp + 8]
test eax, eax
jne 0x470224
jmp 0x470229
jmp 0x47016a
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov byte [ebp - 0x20a], 0
push str.Program_FilesMicrosoft_OfficeSYSTEM
push 0x104
lea edx, [ebp - 0x20c]
push edx
call fcn.00408000
lea eax, [ebp - 0x20c]
push eax
call sub.ntdll.dll_strlen
add esp, 4
lea ecx, [ebp + eax - 0x20c]
mov dword [ebp - 0x108], ecx
mov edx, dword [ebp - 0x108]
mov byte [edx], 0x5c
mov eax, dword [ebp - 0x108]
add eax, 1
mov dword [ebp - 0x108], eax
push 0x527f70
push 0x104
mov ecx, dword [ebp - 0x108]
push ecx
call fcn.00409100
lea edx, [ebp - 0x358]
push edx
lea eax, [ebp - 0x20c]
push eax
call dword [0x54b4e8]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x47038a
mov ecx, dword [ebp - 0x358]
and ecx, 0x10
test ecx, ecx
jne 0x470361
lea edx, [ebp - 0x32c]
push edx
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409100
push 1
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, dword [ebp - 0x36c]
call fcn.00470584
test eax, eax
je 0x47033e
mov edx, dword [ebp - 0x35c]
add edx, 1
mov dword [ebp - 0x35c], edx
cmp dword [ebp + 8], 0
je 0x47033c
mov eax, dword [ebp + 0xc]
push eax
push 4
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x36c]
push edx
call dword [ebp + 8]
test eax, eax
jne 0x47033c
jmp 0x47037d
jmp 0x470361
cmp dword [ebp + 8], 0
je 0x470361
mov eax, dword [ebp + 0xc]
push eax
push 0
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x36c]
push edx
call dword [ebp + 8]
test eax, eax
jne 0x470361
jmp 0x47037d
lea eax, [ebp - 0x358]
push eax
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x54b4b4]
test eax, eax
jne 0x4702c9
mov edx, dword [ebp - 0x214]
push edx
call dword [0x54b4c8]
push 0
push 0x23
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x4704ed
push str.MicrosoftOFFICESystem
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00408000
lea edx, [ebp - 0x20c]
push edx
call sub.ntdll.dll_strlen
add esp, 4
lea eax, [ebp + eax - 0x20c]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
mov byte [ecx], 0x5c
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
push 0x527f94
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409100
lea ecx, [ebp - 0x358]
push ecx
lea edx, [ebp - 0x20c]
push edx
call dword [0x54b4e8]
mov dword [ebp - 0x368], eax
cmp dword [ebp - 0x368], 0xffffffff
je 0x4704ed
mov eax, dword [ebp - 0x358]
and eax, 0x10
test eax, eax
jne 0x4704c4
lea ecx, [ebp - 0x32c]
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409100
push 1
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
call fcn.00470584
test eax, eax
je 0x4704a1
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp + 8], 0
je 0x47049f
mov edx, dword [ebp + 0xc]
push edx
push 4
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
push ecx
call dword [ebp + 8]
test eax, eax
jne 0x47049f
jmp 0x4704e0
jmp 0x4704c4
cmp dword [ebp + 8], 0
je 0x4704c4
mov edx, dword [ebp + 0xc]
push edx
push 0
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
push ecx
call dword [ebp + 8]
test eax, eax
jne 0x4704c4
jmp 0x4704e0
lea edx, [ebp - 0x358]
push edx
mov eax, dword [ebp - 0x368]
push eax
call dword [0x54b4b4]
test eax, eax
jne 0x47042c
mov ecx, dword [ebp - 0x368]
push ecx
call dword [0x54b4c8]
push 0x104
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push str._sysloader.dll
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.00408000
push 0
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, dword [ebp - 0x36c]
call fcn.00470584
test eax, eax
je 0x47055b
mov edx, dword [ebp - 0x35c]
add edx, 1
mov dword [ebp - 0x35c], edx
cmp dword [ebp + 8], 0
je 0x470559
mov eax, dword [ebp + 0xc]
push eax
push 4
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x36c]
push edx
call dword [ebp + 8]
jmp 0x470578
cmp dword [ebp + 8], 0
je 0x470578
mov eax, dword [ebp + 0xc]
push eax
push 0
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x36c]
push edx
call dword [ebp + 8]
mov eax, dword [ebp - 0x210]
mov esp, ebp
pop ebp
ret 8