Function at 0x40e237
Capabilities:
Get common file path
Read .ini file

Disassembly:
push 0xb64
mov eax, 0x4332b0
call fcn.0041d016
push 0xc
pop ecx
xor eax, eax
push 0x206
mov word [ebp - 0x24c], ax
xor ebx, ebx
lea eax, [ebp - 0x24a]
push ebx
mov esi, str.user_pref__extensions.asktb.last_config_req____
lea edi, [ebp - 0x44]
push eax
mov dword [ebp - 0xac0], 0xfffffffe
rep movsd dword es:[edi], dword [esi]
call fcn.0041ca70
add esp, 0xc
lea eax, [ebp - 0x24c]
push eax
push ebx
push ebx
push 0x1a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x40e5c7
lea eax, [ebp - 0x24c]
push eax
lea esi, [ebp - 0xa68]
call fcn.00405586
push str.MozillaFirefoxprofiles.ini
mov eax, esi
push eax
mov dword [ebp - 4], ebx
call fcn.0040561e
xor eax, eax
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
cmp dword [ebp - 0xa50], 8
mov ecx, 0x200
lea edi, [ebp - 0xa4c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0xa64]
jae 0x40e2e7
lea eax, [ebp - 0xa64]
push eax
mov esi, 0x400
push esi
lea eax, [ebp - 0xa4c]
push eax
push 0x43a054
push str.Path
push str.Profile0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
sub esi, eax
cmp esi, 2
jle 0x40e5b9
lea eax, [ebp - 0xa4c]
push eax
lea esi, [ebp - 0xa84]
call fcn.00405586
mov byte [ebp - 4], 1
mov esi, 0x43c948
jmp 0x40e346
push 0x43c300
push 1
push eax
lea eax, [ebp - 0xa84]
push eax
call fcn.0040eb22
push ebx
push esi
lea eax, [ebp - 0xa84]
push eax
call fcn.004056c6
cmp eax, 0xffffffff
jne 0x40e332
cmp dword [ebp - 0xa6c], 8
mov eax, dword [ebp - 0xa80]
jae 0x40e36e
lea eax, [ebp - 0xa80]
push eax
push 0xc
push ebx
push 0x43c94c
lea eax, [ebp - 0xa68]
push eax
call fcn.004056c6
push eax
lea eax, [ebp - 0xa68]
push eax
call fcn.0040eb22
push str.prefs.js
lea eax, [ebp - 0xa68]
push eax
call fcn.0040561e
cmp dword [ebp - 0xa50], 8
mov eax, dword [ebp - 0xa64]
jae 0x40e3b6
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xb54]
push eax
call fcn.0040eb51
mov eax, dword [ebp - 0xb54]
mov eax, dword [eax + 4]
lea eax, [ebp + eax - 0xb54]
mov ecx, dword [eax + 8]
and cl, 6
movsx ecx, cl
neg ecx
sbb ecx, ecx
not ecx
test eax, ecx
je 0x40e585
push 0xf
pop esi
push ebx
lea ecx, [ebp - 0xabc]
mov dword [ebp - 0xaa4], esi
call fcn.0040602c
push ebx
lea ecx, [ebp - 0xaa0]
mov dword [ebp - 0xa88], esi
call fcn.0040602c
lea eax, [ebp - 0x44]
push eax
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
jmp 0x40e464
push 0xa
lea eax, [ebp + eax - 0xb54]
push eax
call fcn.0040f9ac
movzx eax, al
push eax
lea eax, [ebp - 0xabc]
push eax
lea eax, [ebp - 0xb54]
push eax
call fcn.0040fbc5
add esp, 0xc
push 0x15
push str.asktb.last_config_req
lea eax, [ebp - 0xabc]
push eax
call fcn.0040f495
cmp eax, 0xffffffff
jne 0x40e47c
mov eax, dword [ebp - 0xb54]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0xb4c], 1
je 0x40e423
jmp 0x40e533
lea eax, [ebp - 0x44]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40e482
sub eax, edi
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0xabc]
push eax
call fcn.0040f495
mov ecx, dword [ebp - 0xaa8]
sub ecx, esi
sub ecx, 3
add eax, esi
push ecx
push eax
lea eax, [ebp - 0xabc]
push eax
lea esi, [ebp - 0xb70]
call fcn.0040e8ed
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 5
call fcn.0040571e
push ebx
push 1
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.004057d3
cmp dword [ebp - 0xa8c], ebx
je 0x40e533
cmp dword [ebp - 0xa88], 0x10
mov eax, dword [ebp - 0xa9c]
jae 0x40e4fb
lea eax, [ebp - 0xa9c]
push eax
call fcn.0041c40a
pop ecx
push ebx
push 0x3e8
push edx
push eax
call fcn.00431f00
push edx
push eax
push ebx
call fcn.0041af85
pop ecx
push edx
push eax
call fcn.0041c441
fdiv qword [0x43f298]
add esp, 0x10
call fcn.00431fb0
mov dword [ebp - 0xac0], eax
lea esi, [ebp - 0xb4c]
call fcn.0040f7b0
test eax, eax
jne 0x40e569
mov eax, dword [ebp - 0xb54]
mov edx, dword [eax + 4]
lea edx, [ebp + edx - 0xb54]
mov eax, dword [edx + 8]
or eax, 2
cmp dword [edx + 0x28], ebx
jne 0x40e560
or eax, 4
push ebx
push edx
mov ecx, eax
call fcn.00408275
push ebx
push 1
lea ecx, [ebp - 0xaa0]
call fcn.004057d3
push ebx
push 1
lea ecx, [ebp - 0xabc]
call fcn.004057d3
lea ecx, [ebp - 0xafc]
mov byte [ebp - 4], 1
call fcn.0040ec82
lea eax, [ebp - 0xafc]
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.0041887e
pop ecx
push ebx
push 1
lea esi, [ebp - 0xa84]
call fcn.00405d7c
push ebx
push 1
lea esi, [ebp - 0xa68]
call fcn.00405d7c
mov eax, dword [ebp - 0xac0]
call fcn.0041d060
ret