Function at 0x7c631508
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x8124]
mov eax, 0x81a4
call fcn.7c63c640
mov eax, dword [0x7c6451a0]
xor eax, ebp
mov dword [ebp + 0x8120], eax
push esi
push edi
push 0x7c640404
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x7c631542
xor eax, eax
inc eax
jmp 0x7c6316e6
push str.FindActCtxSectionStringW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [ebp - 0x40], eax
je 0x7c63153a
push ebx
mov ebx, 0x1f40
push ebx
lea eax, [ebp + 0x218]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x7c6316e2
cmp eax, ebx
jae 0x7c6316e2
push ebx
lea eax, [ebp + 0x4098]
push eax
lea eax, [ebp + 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x7c6316e2
cmp eax, ebx
jae 0x7c6316e2
lea eax, [ebp + 0x4098]
push 0x5c
push eax
call fcn.7c63bfad
test eax, eax
pop ecx
pop ecx
je 0x7c6316e2
and word [eax + 2], 0
lea eax, [ebp + 0x4098]
push ebx
push eax
call fcn.7c63bfdd
pop ecx
pop ecx
mov dword [ebp - 0x3c], eax
mov esi, 0x104
push esi
lea eax, [ebp + 0x7f18]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x7c6316e2
cmp eax, esi
jae 0x7c6316e2
cmp word [ebp + eax*2 + 0x7f16], 0x5c
je 0x7c63161b
push 0xffffffffffffffff
push 0x7c6403e4
lea eax, [ebp + 0x7f18]
push esi
push eax
call fcn.7c63c460
add esp, 0x10
test eax, eax
jne 0x7c6316e2
lea eax, [ebp + 0x7f18]
push esi
push eax
call fcn.7c63bfdd
cmp dword [ebp - 0x3c], eax
mov edi, dword [sym.imp.KERNEL32.dll_CompareStringW]
pop ecx
pop ecx
jne 0x7c63165a
push eax
lea eax, [ebp + 0x7f18]
push eax
push dword [ebp - 0x3c]
lea eax, [ebp + 0x4098]
push eax
push 1
push 0x7f
call edi
test eax, eax
je 0x7c6316e2
cmp eax, 2
je 0x7c631687
push 0x3c
lea eax, [ebp - 0x7c]
push 0
push eax
mov dword [ebp - 0x80], 0x40
call fcn.7c63c670
add esp, 0xc
lea eax, [ebp - 0x80]
push eax
push str.atl80.dll
push 2
push 0
push 0
call dword [ebp - 0x40]
test eax, eax
jne 0x7c63168b
xor eax, eax
jmp 0x7c6316e5
push 0x7c640404
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x7c6316e2
push str.GetSystemWindowsDirectoryW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x7c6316e2
push esi
lea ecx, [ebp + 0x7f18]
push ecx
call eax
test eax, eax
je 0x7c6316e2
cmp eax, esi
jae 0x7c6316e2
cmp word [ebp + eax*2 + 0x7f16], 0x5c
push 0xffffffffffffffff
lea eax, [ebp + 0x7f18]
je 0x7c6316fd
push str.WinSxS_
push esi
push eax
call fcn.7c63c460
add esp, 0x10
test eax, eax
je 0x7c631704
xor eax, eax
inc eax
pop ebx
mov ecx, dword [ebp + 0x8120]
pop edi
xor ecx, ebp
pop esi
call fcn.7c63c62c
add ebp, 0x8124
leave
ret
push 0x7c640390
jmp 0x7c6316d4
lea eax, [ebp + 0x7f18]
push esi
push eax
call fcn.7c63bfdd
pop ecx
pop ecx
push eax
lea ecx, [ebp + 0x7f18]
push ecx
push eax
lea eax, [ebp + 0x4098]
push eax
xor esi, esi
inc esi
push esi
push 0x7f
call edi
xor edi, edi
cmp eax, edi
je 0x7c631780
cmp eax, 2
je 0x7c631780
push 0x24c
lea eax, [ebp - 0x34]
push edi
push eax
mov dword [ebp - 0x38], edi
call fcn.7c63c670
push 0xffffffffffffffff
push str.Microsoft.VC80.ATL.manifest
lea eax, [ebp + 0x4098]
push ebx
push eax
call fcn.7c63c460
add esp, 0x1c
test eax, eax
jne 0x7c631780
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x4098]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x7c631787
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, esi
jmp 0x7c6316e5
mov eax, dword [ebp - 0x3c]
jmp 0x7c631687