Function at 0x47c1e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x4f72bc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 0x210], eax
push ebx
mov edx, 0x7ffffffe
mov eax, 0x104
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x214], ebx
call fcn.004010b0
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x108]
push ecx
call edi
mov esi, eax
test esi, esi
jle 0x47c248
mov bl, 0x5c
cmp byte [ebp + esi - 0x108], bl
je 0x47c27f
dec esi
test esi, esi
jg 0x47c234
mov ebx, dword [ebp - 0x214]
push ebx
call edi
cmp eax, 0x20
jge 0x47c6d0
push 0x104
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edx, 0x104
lea eax, [ebp - 0x108]
cmp byte [eax], 0
je 0x47c2d6
inc eax
dec edx
jne 0x47c271
jmp 0x47c2fe
lea edx, [ebp - 0x108]
push edx
mov byte [ebp + esi - 0x108], 0
call edi
cmp eax, 3
jge 0x47c2a4
mov byte [ebp + esi - 0x108], bl
mov byte [ebp + esi - 0x107], 0
mov esi, dword [ebp - 0x210]
lea eax, [ebp - 0x108]
push eax
mov edx, 0x7ffffffe
mov eax, 0x104
mov ecx, esi
call fcn.004010b0
push esi
call edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cf2b6
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x47c2fe
mov ecx, 0x104
sub ecx, edx
mov eax, 0x104
sub eax, ecx
push 0x4e28bc
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
mov eax, 0x104
lea ecx, [ebp - 0x108]
lea esp, [esp]
cmp byte [ecx], 0
je 0x47c31b
inc ecx
dec eax
jne 0x47c310
jmp 0x47c33f
test eax, eax
je 0x47c33f
mov ecx, 0x104
sub ecx, eax
mov eax, 0x104
sub eax, ecx
push ebx
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
push 0x104
lea edx, [ebp - 0x20c]
push edx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
test eax, eax
je 0x47c3d0
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea ecx, [ebp - 0x20c]
push ecx
call edi
mov esi, eax
cmp esi, 0xffffffff
je 0x47c3d0
push 0x104
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, dword [ebp - 0x210]
lea eax, [ebp - 0x108]
push eax
mov edx, 0x7ffffffe
mov eax, 0x104
mov ecx, edi
call fcn.004010b0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cf2b6
mov esp, ebp
pop ebp
ret
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 0x104
lea ecx, [ebp - 0x108]
push ecx
call ebx
mov eax, 0x104
lea ecx, [ebp - 0x108]
nop
cmp byte [ecx], 0
je 0x47c3fb
inc ecx
dec eax
jne 0x47c3f0
jmp 0x47c423
test eax, eax
je 0x47c423
mov ecx, 0x104
sub ecx, eax
mov eax, 0x104
sub eax, ecx
push 0x4e28bc
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
mov eax, 0x104
lea ecx, [ebp - 0x108]
mov edi, edi
cmp byte [ecx], 0
je 0x47c43b
inc ecx
dec eax
jne 0x47c430
jmp 0x47c465
test eax, eax
je 0x47c465
mov edx, dword [ebp - 0x214]
mov ecx, 0x104
sub ecx, eax
mov eax, 0x104
push edx
sub eax, ecx
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
push 0x104
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
test eax, eax
je 0x47c4ec
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea edx, [ebp - 0x20c]
push edx
call edi
mov esi, eax
cmp esi, 0xffffffff
je 0x47c4ec
push 0x104
lea eax, [ebp - 0x108]
push eax
call ebx
mov edi, dword [ebp - 0x210]
lea ecx, [ebp - 0x108]
push ecx
mov edx, 0x7ffffffe
mov eax, 0x104
mov ecx, edi
call fcn.004010b0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cf2b6
mov esp, ebp
pop ebp
ret
mov ebx, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x104
lea edx, [ebp - 0x108]
push edx
call ebx
mov eax, 0x104
lea ecx, [ebp - 0x108]
jmp 0x47c510
cmp byte [ecx], 0
je 0x47c51b
inc ecx
dec eax
jne 0x47c510
jmp 0x47c543
test eax, eax
je 0x47c543
mov ecx, 0x104
sub ecx, eax
mov eax, 0x104
sub eax, ecx
push 0x4e28bc
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
mov edx, 0x104
lea eax, [ebp - 0x108]
mov edi, edi
cmp byte [eax], 0
je 0x47c55b
inc eax
dec edx
jne 0x47c550
jmp 0x47c583
test edx, edx
je 0x47c583
mov ecx, 0x104
sub ecx, edx
mov eax, 0x104
sub eax, ecx
push str.SysWOW64_
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
mov eax, 0x104
lea ecx, [ebp - 0x108]
mov edi, edi
cmp byte [ecx], 0
je 0x47c59b
inc ecx
dec eax
jne 0x47c590
jmp 0x47c5c5
test eax, eax
je 0x47c5c5
mov ecx, 0x104
sub ecx, eax
mov eax, dword [ebp - 0x214]
push eax
mov eax, 0x104
sub eax, ecx
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
test eax, eax
je 0x47c6d0
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea eax, [ebp - 0x20c]
push eax
call edi
mov esi, eax
cmp esi, 0xffffffff
je 0x47c6d0
push 0x104
lea ecx, [ebp - 0x108]
push ecx
call ebx
mov eax, 0x104
lea ecx, [ebp - 0x108]
cmp byte [ecx], 0
je 0x47c62d
inc ecx
dec eax
jne 0x47c622
jmp 0x47c655
test eax, eax
je 0x47c655
mov ecx, 0x104
sub ecx, eax
mov eax, 0x104
sub eax, ecx
push 0x4e28bc
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
mov eax, 0x104
lea ecx, [ebp - 0x108]
cmp byte [ecx], 0
je 0x47c66b
inc ecx
dec eax
jne 0x47c660
jmp 0x47c693
test eax, eax
je 0x47c693
mov ecx, 0x104
sub ecx, eax
mov eax, 0x104
sub eax, ecx
push str.SysWOW64_
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.004010b0
mov edi, dword [ebp - 0x210]
lea edx, [ebp - 0x108]
push edx
mov edx, 0x7ffffffe
mov eax, 0x104
mov ecx, edi
call fcn.004010b0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cf2b6
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.004cf2b6
mov esp, ebp
pop ebp
ret