Function at 0x46b9ea
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 0x51f48c
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00408090
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.00409190
lea ecx, [ebp - 0x358]
push ecx
lea edx, [ebp - 0x20c]
push edx
call dword [0x5429a8]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x46bb65
mov eax, dword [ebp - 0x358]
and eax, 0x10
test eax, eax
jne 0x46bb3c
lea ecx, [ebp - 0x32c]
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409190
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
call fcn.0046c690
test eax, eax
je 0x46bb19
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp + 8], 0
je 0x46bb17
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 0x46bb17
jmp 0x46bb58
jmp 0x46bb3c
cmp dword [ebp + 8], 0
je 0x46bb3c
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 0x46bb3c
jmp 0x46bb58
lea edx, [ebp - 0x358]
push edx
mov eax, dword [ebp - 0x214]
push eax
call dword [0x542974]
test eax, eax
jne 0x46baa6
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x542988]
push 0x104
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x51f49c
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.00408090
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.00409190
lea eax, [ebp - 0x358]
push eax
lea ecx, [ebp - 0x20c]
push ecx
call dword [0x5429a8]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x46bcc9
mov edx, dword [ebp - 0x358]
and edx, 0x10
test edx, edx
jne 0x46bca0
push str.msoss.dll
lea eax, [ebp - 0x32c]
push eax
call fcn.00402b10
add esp, 8
test eax, eax
jne 0x46bc29
jmp 0x46bca0
lea ecx, [ebp - 0x32c]
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409190
mov eax, dword [ebp - 0x108]
push eax
mov ecx, dword [ebp - 0x36c]
call fcn.0046c9f2
test eax, eax
je 0x46bc59
jmp 0x46bca0
push 1
lea ecx, [ebp - 0x20c]
push ecx
call fcn.0042c154
add esp, 8
test eax, eax
jne 0x46bca0
mov edx, dword [ebp - 0x35c]
add edx, 1
mov dword [ebp - 0x35c], edx
cmp dword [ebp + 8], 0
je 0x46bca0
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 0x46bca0
jmp 0x46bcbc
lea eax, [ebp - 0x358]
push eax
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x542974]
test eax, eax
jne 0x46bbfe
mov edx, dword [ebp - 0x214]
push edx
call dword [0x542988]
push 0x104
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x51f4c0
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00408090
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.00409190
lea ecx, [ebp - 0x358]
push ecx
lea edx, [ebp - 0x20c]
push edx
call dword [0x5429a8]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x46bdf7
mov eax, dword [ebp - 0x358]
and eax, 0x10
test eax, eax
jne 0x46bdce
lea ecx, [ebp - 0x32c]
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409190
push 1
lea eax, [ebp - 0x20c]
push eax
call fcn.0042c154
add esp, 8
test eax, eax
jne 0x46bdce
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp + 8], 0
je 0x46bdce
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 0x46bdce
jmp 0x46bdea
lea edx, [ebp - 0x358]
push edx
mov eax, dword [ebp - 0x214]
push eax
call dword [0x542974]
test eax, eax
jne 0x46bd62
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x542988]
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 0x46be49
mov eax, dword [ebp - 0x218]
add eax, 1
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0x218], 0xf
jae 0x46bef9
mov ecx, dword [ebp - 0x218]
mov edx, dword [ecx*4 + 0x4af168]
push edx
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409190
lea ecx, [ebp - 0x104]
push ecx
call fcn.0042ae0a
add esp, 4
test eax, eax
je 0x46bed1
push 0
lea edx, [ebp - 0x104]
push edx
call fcn.0042c154
add esp, 8
test eax, eax
jne 0x46bed1
mov eax, dword [ebp - 0x35c]
add eax, 1
mov dword [ebp - 0x35c], eax
cmp dword [ebp + 8], 0
je 0x46becf
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 0x46becf
jmp 0x46bef9
jmp 0x46bef4
cmp dword [ebp + 8], 0
je 0x46bef4
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 0x46bef4
jmp 0x46bef9
jmp 0x46be3a
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.00408090
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 0x46bf77
mov ecx, dword [ebp - 0x360]
add ecx, 1
mov dword [ebp - 0x360], ecx
cmp dword [ebp - 0x360], 5
jae 0x46c027
mov edx, dword [ebp - 0x360]
mov eax, dword [edx*4 + 0x4af1c8]
push eax
push 0x104
mov ecx, dword [ebp - 0x108]
push ecx
call fcn.00409190
lea edx, [ebp - 0x104]
push edx
call fcn.0042ae0a
add esp, 4
test eax, eax
je 0x46bfff
push 0
lea eax, [ebp - 0x104]
push eax
call fcn.0042c154
add esp, 8
test eax, eax
jne 0x46bfff
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp + 8], 0
je 0x46bffd
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 0x46bffd
jmp 0x46c027
jmp 0x46c022
cmp dword [ebp + 8], 0
je 0x46c022
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 0x46c022
jmp 0x46c027
jmp 0x46bf68
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 0x46c079
mov eax, dword [ebp - 0x364]
add eax, 1
mov dword [ebp - 0x364], eax
cmp dword [ebp - 0x364], 9
jae 0x46c129
mov ecx, dword [ebp - 0x364]
mov edx, dword [ecx*4 + 0x4af1a4]
push edx
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409190
lea ecx, [ebp - 0x104]
push ecx
call fcn.0042ae0a
add esp, 4
test eax, eax
je 0x46c101
push 0
lea edx, [ebp - 0x104]
push edx
call fcn.0042c154
add esp, 8
test eax, eax
jne 0x46c101
mov eax, dword [ebp - 0x35c]
add eax, 1
mov dword [ebp - 0x35c], eax
cmp dword [ebp + 8], 0
je 0x46c0ff
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 0x46c0ff
jmp 0x46c129
jmp 0x46c124
cmp dword [ebp + 8], 0
je 0x46c124
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 0x46c124
jmp 0x46c129
jmp 0x46c06a
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.00408090
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 0x51f760
push 0x104
mov ecx, dword [ebp - 0x108]
push ecx
call fcn.00409190
lea edx, [ebp - 0x358]
push edx
lea eax, [ebp - 0x20c]
push eax
call dword [0x5429a8]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x46c28a
mov ecx, dword [ebp - 0x358]
and ecx, 0x10
test ecx, ecx
jne 0x46c261
lea edx, [ebp - 0x32c]
push edx
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409190
push 1
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, dword [ebp - 0x36c]
call fcn.0046c484
test eax, eax
je 0x46c23e
mov edx, dword [ebp - 0x35c]
add edx, 1
mov dword [ebp - 0x35c], edx
cmp dword [ebp + 8], 0
je 0x46c23c
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 0x46c23c
jmp 0x46c27d
jmp 0x46c261
cmp dword [ebp + 8], 0
je 0x46c261
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 0x46c261
jmp 0x46c27d
lea eax, [ebp - 0x358]
push eax
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x542974]
test eax, eax
jne 0x46c1c9
mov edx, dword [ebp - 0x214]
push edx
call dword [0x542988]
push 0
push 0x23
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x46c3ed
push str.MicrosoftOFFICESystem
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00408090
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 0x51f784
push 0x104
mov eax, dword [ebp - 0x108]
push eax
call fcn.00409190
lea ecx, [ebp - 0x358]
push ecx
lea edx, [ebp - 0x20c]
push edx
call dword [0x5429a8]
mov dword [ebp - 0x368], eax
cmp dword [ebp - 0x368], 0xffffffff
je 0x46c3ed
mov eax, dword [ebp - 0x358]
and eax, 0x10
test eax, eax
jne 0x46c3c4
lea ecx, [ebp - 0x32c]
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
push edx
call fcn.00409190
push 1
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x36c]
call fcn.0046c484
test eax, eax
je 0x46c3a1
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp + 8], 0
je 0x46c39f
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 0x46c39f
jmp 0x46c3e0
jmp 0x46c3c4
cmp dword [ebp + 8], 0
je 0x46c3c4
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 0x46c3c4
jmp 0x46c3e0
lea edx, [ebp - 0x358]
push edx
mov eax, dword [ebp - 0x368]
push eax
call dword [0x542974]
test eax, eax
jne 0x46c32c
mov ecx, dword [ebp - 0x368]
push ecx
call dword [0x542988]
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.00408090
push 0
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, dword [ebp - 0x36c]
call fcn.0046c484
test eax, eax
je 0x46c45b
mov edx, dword [ebp - 0x35c]
add edx, 1
mov dword [ebp - 0x35c], edx
cmp dword [ebp + 8], 0
je 0x46c459
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 0x46c478
cmp dword [ebp + 8], 0
je 0x46c478
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