Function at 0x42e5c0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48e43b
mov eax, dword fs:[0]
push eax
sub esp, 0x128
mov eax, dword [0x4db434]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x134]
mov ebx, dword [ebp + 0xc]
xor esi, esi
push esi
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x118], ebx
call fcn.00440fe0
mov dword [ebp - 4], esi
test ebx, ebx
jle 0x42e7e5
lea eax, [ebp - 0x134]
cmp dword [ebp + 0x14], esi
je 0x42e629
push esi
push esi
push esi
jmp 0x42e638
push str._AMZ2112
push str.shelloldbuild
push str.shelloldmake
push 0x4db008
push str.shellfolder
push eax
call fcn.00432e70
add esp, 0x18
mov dword [ebp - 0x11c], eax
test eax, eax
jle 0x42e7df
cmp byte [0x4dcc98], 0
je 0x42e6f9
mov esi, 0x4dcc98
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x42e670
sub esi, ecx
lea ecx, [ebp - 0x134]
call fcn.00441a30
mov edi, eax
test edi, edi
je 0x42e6f9
nop word [eax + eax]
mov ecx, edi
call fcn.00441a20
mov ebx, eax
test ebx, ebx
je 0x42e6b0
push esi
push 0x4dcc98
push ebx
call fcn.0046944e
add esp, 0xc
test eax, eax
je 0x42e6c4
push edi
lea ecx, [ebp - 0x134]
call fcn.00441ae0
mov edi, eax
test edi, edi
jne 0x42e690
jmp 0x42e6f9
cmp dword [ebp + 0x10], 0
push dword [ebp - 0x118]
je 0x42e6d3
push ebx
jmp 0x42e6d7
lea eax, [ebx + esi]
push eax
mov esi, dword [ebp - 0x120]
push esi
call fcn.00469580
mov eax, dword [ebp - 0x118]
add esp, 0xc
mov byte [eax + esi - 1], 0
test edi, edi
jne 0x42e7df
push 0x104
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea esi, [ebp - 0x114]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x42e714
sub esi, ecx
lea ecx, [ebp - 0x134]
call fcn.00441a30
mov ebx, eax
test ebx, ebx
je 0x42e768
nop
mov ecx, ebx
call fcn.00441a20
mov edi, eax
test edi, edi
je 0x42e756
push esi
lea eax, [ebp - 0x114]
push eax
push edi
call fcn.0046944e
add esp, 0xc
test eax, eax
jne 0x42e822
push ebx
lea ecx, [ebp - 0x134]
call fcn.00441ae0
mov ebx, eax
test ebx, ebx
jne 0x42e730
mov edi, dword [ebp - 0x118]
cmp dword [ebp + 0x10], 0
je 0x42e8b7
lea ecx, [ebp - 0x134]
call fcn.00441a30
test eax, eax
je 0x42e7df
mov ecx, eax
call fcn.00441a20
mov esi, eax
test esi, esi
je 0x42e7df
cmp byte [0x4dcc98], 0
jne 0x42e7c9
mov edx, 0x4dcc98
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x42e7a6
push 0x5c
push 0x4dcc98
call fcn.0045ae00
add esp, 8
test eax, eax
je 0x42e7c9
mov byte [eax], 0
mov ebx, dword [ebp - 0x120]
push edi
push esi
push ebx
call fcn.00469580
add esp, 0xc
mov byte [edi + ebx - 1], 0
mov esi, dword [ebp - 0x11c]
push 1
lea ecx, [ebp - 0x134]
call fcn.00441770
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x134]
call fcn.004410a0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004584f8
mov esp, ebp
pop ebp
ret
cmp byte [0x4dcc98], 0
jne 0x42e857
mov edx, 0x4dcc98
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x42e834
push 0x5c
push 0x4dcc98
call fcn.0045ae00
add esp, 8
test eax, eax
je 0x42e857
mov byte [eax], 0
cmp dword [ebp + 0x10], 0
je 0x42e874
push dword [ebp - 0x118]
push edi
push dword [ebp - 0x120]
call fcn.00469580
add esp, 0xc
jmp 0x42e899
push 0x5c
push edi
call fcn.0045ae00
push dword [ebp - 0x118]
test eax, eax
lea ecx, [eax + 1]
cmovne edi, ecx
push edi
push dword [ebp - 0x120]
call fcn.00469580
add esp, 0x14
mov edi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x120]
mov byte [edi + eax - 1], 0
test ebx, ebx
jne 0x42e7df
jmp 0x42e76e
xor esi, esi
jmp 0x42e7e5