Function at 0x41a3d0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x451906
mov eax, dword fs:[0]
push eax
sub esp, 0x270
mov eax, dword [0x460164]
xor eax, esp
mov dword [esp + 0x268], eax
push ebx
push esi
push edi
mov eax, dword [0x460164]
xor eax, esp
push eax
lea eax, [esp + 0x280]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov esi, ecx
lea edi, [esi + 8]
mov eax, ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], ebx
mov dword [esi + 4], 1
call fcn.00403c60
lea eax, [esp + 0x10]
push eax
mov ecx, 0x4551e0
call fcn.00401a60
mov dword [esp + 0x288], 0
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
test eax, eax
je 0x41aaa9
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
test eax, eax
je 0x41aaa9
mov edx, dword [0x461acc]
mov eax, dword [edx + 0xc]
mov ecx, 0x461acc
call eax
add eax, 0x10
mov dword [esp + 0x54], eax
push 0x104
lea ecx, [esp + 0x70]
push 0
push ecx
mov byte [esp + 0x294], 1
call fcn.00439d50
add esp, 0xc
lea edx, [esp + 0x4c]
push edx
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0x6c]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test eax, eax
mov eax, dword [ebx]
push eax
je 0x41aa7f
push 0x455b58
push str.BrowserFirefox
push str.TrackClientData
call edi
push 1
call fcn.00408cd0
add esp, 4
test eax, eax
je 0x41aa90
lea ecx, [esp + 0x48]
push ecx
mov ecx, str._browser.startup.homepage_
call fcn.00401a60
lea edx, [esi + 0x10]
push edx
lea eax, [esp + 0x54]
push eax
mov ebx, str.prefs.js
mov byte [esp + 0x290], 2
call fcn.00401b30
add esp, 8
push 1
push eax
lea edx, [esp + 0x50]
lea ecx, [esp + 0x28]
mov byte [esp + 0x290], 3
call fcn.00416200
mov byte [esp + 0x288], 5
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a566
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x288], 6
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a58e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, str.DeviceVmBrowser_Configuration_UtilityFFStartpage.html
call fcn.00401a60
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x70]
mov byte [esp + 0x28c], 7
call fcn.00401a60
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x294], 8
call fcn.00428b10
add esp, 0xc
mov byte [esp + 0x288], 0xa
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a5fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x288], 0xb
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a622
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
xor ebx, ebx
cmp dword [eax - 0xc], ebx
jl 0x41a65d
push 0x456a2c
push eax
call fcn.00435f8f
add esp, 8
cmp eax, ebx
je 0x41a65d
sub eax, dword [esp + 0x20]
sar eax, 1
cmp eax, ebx
jle 0x41a65d
push 0x45699c
push 0x456a2c
lea ecx, [esp + 0x28]
push ecx
call fcn.0041b310
mov edx, 0x455b58
lea edi, [esp + 0x10]
call fcn.00401c10
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
push edx
push eax
call fcn.0043595f
add esp, 8
test eax, eax
jne 0x41a7c1
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x60]
push edx
mov bl, 0xc
mov byte [esp + 0x290], bl
push 1
mov dword [esp + 0x24], 0xffffffff
call fcn.00406bc0
mov edi, dword [esp + 0x24]
add esp, 0xc
test edi, edi
jl 0x41a7b4
lea esi, [esp + 0x5c]
call fcn.004037c0
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x48], esp
mov esi, esp
call fcn.00401dd0
add eax, 0x10
mov dword [esi], eax
lea esi, [esp + 0x60]
mov byte [esp + 0x28c], 0xd
call fcn.004037c0
add eax, 4
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x60], esp
mov esi, esp
call fcn.00401dd0
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x294], bl
call fcn.00409d80
lea ecx, [esp + 0x44]
push str._META_HTTP_EQUIVREFRESH_CONTENT_0_URL
push ecx
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0xe
call fcn.00405d30
push eax
lea edx, [esp + 0x28]
push edx
mov ebx, 0x456a00
mov byte [esp + 0x298], 0xf
call fcn.00401b30
add esp, 0x10
lea ecx, [esp + 0x44]
mov byte [esp + 0x288], 0x11
call fcn.00401b10
lea eax, [esp + 0x18]
push eax
call fcn.0041a120
mov byte [esp + 0x288], 0x12
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ecx
push edx
call fcn.0043595f
add esp, 8
test eax, eax
jne 0x41a799
mov edx, 0x4551e0
lea edi, [esp + 0x10]
call fcn.00401c10
lea ecx, [esp + 0x18]
call fcn.00401b10
lea ecx, [esp + 0x1c]
call fcn.00401b10
lea ecx, [esp + 0x40]
call fcn.00401b10
lea esi, [esp + 0x5c]
call fcn.00403760
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
push eax
push ecx
push str.FF_HomePageChange
push str.TrackClientData
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov byte [esp + 0x288], 6
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41a805
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x288], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a82d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0x14]
push ecx
mov ecx, str.places.sqlite
call fcn.00401a60
lea edx, [esp + 0x14]
push edx
lea eax, [esi + 0x10]
push eax
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x294], 0x13
call fcn.00428b10
add esp, 0xc
push eax
mov byte [esp + 0x28c], 0x14
call fcn.0041ab20
mov edi, eax
mov byte [esp + 0x288], 0x13
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41a896
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x288], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a8be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
push 0x4551e8
lea edi, [esp + 0x18]
call fcn.00402050
mov ebx, dword [ebx]
mov ecx, dword [esp + 0x18]
add esp, 8
push ebx
push ecx
push str.FF_BookmarkCount
push str.TrackClientData
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x454c34
xor ebx, ebx
mov eax, edi
call fcn.00401e40
xor edi, edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x288], 0x15
mov edx, dword [esi]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
mov dword [esp + 0x34], 0xffffffff
call edx
mov esi, dword [esp + 0x2c]
cmp esi, edi
jl 0x41a9e6
mov ecx, dword [esp + 0x34]
cmp ecx, edi
mov ebx, esi
je 0x41a959
mov edi, dword [esp + 0x38]
mov edx, edi
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x41a96a
call fcn.00435b3c
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
test ecx, ecx
lea eax, [ebx + ebx*2]
mov ebx, dword [ecx + eax*4]
je 0x41a98a
sub edi, ecx
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x41a993
call fcn.00435b3c
mov ecx, dword [esp + 0x34]
lea edx, [esi + esi*2]
lea eax, [ecx + edx*4]
lea esi, [eax + 4]
push ebx
lea eax, [esp + 0x18]
push eax
call fcn.0040a3d0
lea eax, [esp + 0x14]
lea edi, [esp + 0x10]
mov byte [esp + 0x288], 0x16
call fcn.00403c60
mov byte [esp + 0x288], 0x15
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a9e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor edi, edi
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
mov edx, dword [esp + 0x10]
push eax
push edx
push 0x455c98
push str.TrackClientData
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [esp + 0x34]
cmp eax, edi
je 0x41aa2a
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x38]
push ecx
call fcn.00404f00
mov edx, dword [esp + 0x38]
add esp, 4
push edx
call fcn.00435178
add esp, 4
xor edi, edi
mov byte [esp + 0x288], 0
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aa5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x288], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x41aae0
push 0x455bec
push str.BrowserFirefox
push str.TrackClientData
call edi
mov eax, dword [ebx]
push eax
push 0x455bec
push str.FF_HomePageChange
push str.TrackClientData
call edi
jmp 0x41a831
mov ebx, dword [ebx]
mov ecx, dword [esp + 0x10]
push ebx
push ecx
push str.BrowserFirefox
push str.TrackClientData
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov dword [esp + 0x288], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41aaec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x280]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x268]
xor ecx, esp
call fcn.00435245
mov esp, ebp
pop ebp
ret 4