Function at 0x40e214
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x674
mov eax, dword [0x6ffe74]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0xf
mov ebx, ecx
lea edi, [ebp - 0x54]
pop ecx
push 5
mov esi, str.Tor_BrowserBrowserTorBrowserDataBrowserprofile.default
lea eax, [ebp - 0x260]
rep movsd dword es:[edi], dword [esi]
pop ecx
push eax
xor eax, eax
lea edi, [ebp - 0x18]
push eax
push eax
mov esi, str.Tor_BrowserBrowser
push eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
push eax
call esi
test eax, eax
js 0x40e2e7
lea eax, [ebp - 0x260]
push 0x5c
push eax
call fcn.00639770
pop ecx
pop ecx
test eax, eax
je 0x40e2e7
mov byte [eax], 0
mov edi, str._sDownloads_s
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x260]
push eax
push edi
lea eax, [ebp - 0x468]
push 0x208
push eax
call fcn.00402e0a
add esp, 0x14
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x260]
push eax
push edi
lea eax, [ebp - 0x670]
push 0x208
push eax
call fcn.00402e0a
add esp, 0x14
lea ecx, [ebp - 0x468]
call fcn.004055eb
test eax, eax
je 0x40e2e7
push 1
lea eax, [ebp - 0x670]
mov ecx, ebx
push eax
lea eax, [ebp - 0x468]
push eax
push 0xf
call fcn.0040d9fe
lea eax, [ebp - 0x260]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
call esi
mov edi, 0x6c643c
test eax, eax
js 0x40e367
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x260]
push eax
push edi
lea eax, [ebp - 0x468]
push 0x208
push eax
call fcn.00402e0a
add esp, 0x14
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x260]
push eax
push edi
lea eax, [ebp - 0x670]
push 0x208
push eax
call fcn.00402e0a
add esp, 0x14
lea ecx, [ebp - 0x468]
call fcn.004055eb
test eax, eax
je 0x40e367
push 1
lea eax, [ebp - 0x670]
mov ecx, ebx
push eax
lea eax, [ebp - 0x468]
push eax
push 0xf
call fcn.0040d9fe
lea eax, [ebp - 0x260]
push eax
push 0
push 0
push 0x2a
push 0
call esi
test eax, eax
js 0x40e3e4
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x260]
push eax
push edi
lea eax, [ebp - 0x468]
push 0x208
push eax
call fcn.00402e0a
add esp, 0x14
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x260]
push eax
push edi
lea eax, [ebp - 0x670]
push 0x208
push eax
call fcn.00402e0a
add esp, 0x14
lea ecx, [ebp - 0x468]
call fcn.004055eb
test eax, eax
je 0x40e3e4
push 1
lea eax, [ebp - 0x670]
mov ecx, ebx
push eax
lea eax, [ebp - 0x468]
push eax
push 0xf
call fcn.0040d9fe
lea eax, [ebp - 0x260]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
call esi
test eax, eax
js 0x40e473
lea eax, [ebp - 0x260]
push 0x5c
push eax
call fcn.006393d0
pop ecx
pop ecx
test eax, eax
je 0x40e473
mov byte [eax], 0
mov esi, 0x208
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x260]
push eax
push edi
lea eax, [ebp - 0x468]
push esi
push eax
call fcn.00402e0a
add esp, 0x14
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x260]
push eax
push edi
lea eax, [ebp - 0x670]
push esi
push eax
call fcn.00402e0a
add esp, 0x14
lea ecx, [ebp - 0x468]
call fcn.004055eb
test eax, eax
je 0x40e473
push 1
lea ecx, [ebp - 0x670]
push ecx
lea ecx, [ebp - 0x468]
push ecx
push 0xf
mov ecx, ebx
call fcn.0040d9fe
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.006122f0
leave
ret