Function at 0x49d330
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x515d2b
mov eax, dword fs:[0]
push eax
sub esp, 0x128
mov eax, dword [0x58fa2c]
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.00480950
mov dword [ebp - 4], esi
test ebx, ebx
jle 0x49d555
lea eax, [ebp - 0x134]
cmp dword [ebp + 0x14], esi
je 0x49d399
push esi
push esi
push esi
jmp 0x49d3a8
push str._AMZ2112
push str.shelloldbuild
push str.shelloldmake
push 0x58f688
push str.shellfolder
push eax
call fcn.00495b20
add esp, 0x18
mov dword [ebp - 0x11c], eax
test eax, eax
jle 0x49d54f
cmp byte [0x592180], 0
je 0x49d469
mov esi, 0x592180
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x49d3e0
sub esi, ecx
lea ecx, [ebp - 0x134]
call fcn.004812d0
mov edi, eax
test edi, edi
je 0x49d469
nop word [eax + eax]
mov ecx, edi
call fcn.0042e490
mov ebx, eax
test ebx, ebx
je 0x49d420
push esi
push 0x592180
push ebx
call fcn.004d2228
add esp, 0xc
test eax, eax
je 0x49d434
push edi
lea ecx, [ebp - 0x134]
call fcn.00481380
mov edi, eax
test edi, edi
jne 0x49d400
jmp 0x49d469
cmp dword [ebp + 0x10], 0
push dword [ebp - 0x118]
je 0x49d443
push ebx
jmp 0x49d447
lea eax, [ebx + esi]
push eax
mov esi, dword [ebp - 0x120]
push esi
call fcn.004c59d0
mov eax, dword [ebp - 0x118]
add esp, 0xc
mov byte [eax + esi - 1], 0
test edi, edi
jne 0x49d54f
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 0x49d484
sub esi, ecx
lea ecx, [ebp - 0x134]
call fcn.004812d0
mov ebx, eax
test ebx, ebx
je 0x49d4d8
nop
mov ecx, ebx
call fcn.0042e490
mov edi, eax
test edi, edi
je 0x49d4c6
push esi
lea eax, [ebp - 0x114]
push eax
push edi
call fcn.004d2228
add esp, 0xc
test eax, eax
jne 0x49d592
push ebx
lea ecx, [ebp - 0x134]
call fcn.00481380
mov ebx, eax
test ebx, ebx
jne 0x49d4a0
mov edi, dword [ebp - 0x118]
cmp dword [ebp + 0x10], 0
je 0x49d627
lea ecx, [ebp - 0x134]
call fcn.004812d0
test eax, eax
je 0x49d54f
mov ecx, eax
call fcn.0042e490
mov esi, eax
test esi, esi
je 0x49d54f
cmp byte [0x592180], 0
jne 0x49d539
mov edx, 0x592180
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x49d516
push 0x5c
push 0x592180
call fcn.004b8c50
add esp, 8
test eax, eax
je 0x49d539
mov byte [eax], 0
mov ebx, dword [ebp - 0x120]
push edi
push esi
push ebx
call fcn.004c59d0
add esp, 0xc
mov byte [edi + ebx - 1], 0
mov esi, dword [ebp - 0x11c]
push 1
lea ecx, [ebp - 0x134]
call fcn.00481020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x134]
call fcn.00480a10
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.004a4566
mov esp, ebp
pop ebp
ret
cmp byte [0x592180], 0
jne 0x49d5c7
mov edx, 0x592180
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x49d5a4
push 0x5c
push 0x592180
call fcn.004b8c50
add esp, 8
test eax, eax
je 0x49d5c7
mov byte [eax], 0
cmp dword [ebp + 0x10], 0
je 0x49d5e4
push dword [ebp - 0x118]
push edi
push dword [ebp - 0x120]
call fcn.004c59d0
add esp, 0xc
jmp 0x49d609
push 0x5c
push edi
call fcn.004b8c50
push dword [ebp - 0x118]
test eax, eax
lea ecx, [eax + 1]
cmovne edi, ecx
push edi
push dword [ebp - 0x120]
call fcn.004c59d0
add esp, 0x14
mov edi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x120]
mov byte [edi + eax - 1], 0
test ebx, ebx
jne 0x49d54f
jmp 0x49d4de
xor esi, esi
jmp 0x49d555