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

Disassembly:
push 0xb64
mov eax, 0x432c7c
call fcn.0041cd86
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.0041c7e0
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 0x40e700
lea eax, [ebp - 0x24c]
push eax
lea esi, [ebp - 0xa68]
call fcn.004056d6
push str.MozillaFirefoxprofiles.ini
mov eax, esi
push eax
mov dword [ebp - 4], ebx
call fcn.0040576e
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 0x40e424
lea eax, [ebp - 0xa64]
push eax
mov esi, 0x400
push esi
lea eax, [ebp - 0xa4c]
push eax
push 0x43910c
push 0x43ad2c
push str.Profile0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
sub esi, eax
cmp esi, 2
jle 0x40e6f2
lea eax, [ebp - 0xa4c]
push eax
lea esi, [ebp - 0xa84]
call fcn.004056d6
push ebx
mov esi, 0x43b984
push esi
lea eax, [ebp - 0xa84]
push eax
mov byte [ebp - 4], 1
call fcn.00405816
or edi, 0xffffffff
jmp 0x40e4a2
push 0x43ad38
push 1
push eax
lea eax, [ebp - 0xa84]
push eax
call fcn.0040ebf9
push ebx
push esi
lea eax, [ebp - 0xa84]
push eax
call fcn.00405816
cmp eax, edi
jne 0x40e480
cmp dword [ebp - 0xa6c], 8
mov eax, dword [ebp - 0xa80]
jae 0x40e4bb
lea eax, [ebp - 0xa80]
push eax
push 0xc
push ebx
push 0x43b988
lea eax, [ebp - 0xa68]
push eax
call fcn.00405816
push eax
lea eax, [ebp - 0xa68]
push eax
call fcn.0040ebf9
push str.prefs.js
lea eax, [ebp - 0xa68]
push eax
call fcn.0040576e
cmp dword [ebp - 0xa50], 8
mov eax, dword [ebp - 0xa64]
jae 0x40e503
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xb54]
push eax
call fcn.0040ec28
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 0x40e6be
push 0xf
pop esi
push ebx
lea ecx, [ebp - 0xabc]
mov dword [ebp - 0xaa4], esi
call fcn.00406217
push ebx
lea ecx, [ebp - 0xaa0]
mov dword [ebp - 0xa88], esi
call fcn.00406217
lea eax, [ebp - 0x44]
push eax
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
jmp 0x40e5ae
push 0xa
lea eax, [ebp + eax - 0xb54]
push eax
call fcn.0040f9f7
movzx eax, al
push eax
lea eax, [ebp - 0xabc]
push eax
lea eax, [ebp - 0xb54]
push eax
call fcn.0040fc10
add esp, 0xc
push str.asktb.last_config_req
lea eax, [ebp - 0xabc]
push eax
call fcn.00405674
cmp eax, edi
jne 0x40e5c6
mov eax, dword [ebp - 0xb54]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0xb4c], 1
je 0x40e570
jmp 0x40e66c
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0xabc]
push eax
call fcn.00405674
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.00405695
push edi
push ebx
push eax
lea ecx, [ebp - 0xaa0]
mov byte [ebp - 4], 5
call fcn.0040586e
push ebx
push 1
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.004059be
cmp dword [ebp - 0xa8c], ebx
je 0x40e66c
cmp dword [ebp - 0xa88], 0x10
mov eax, dword [ebp - 0xa9c]
jae 0x40e634
lea eax, [ebp - 0xa9c]
push eax
call fcn.0041c19a
pop ecx
push ebx
push 0x3e8
push edx
push eax
call fcn.004318d0
push edx
push eax
push ebx
call fcn.0041adcb
pop ecx
push edx
push eax
call fcn.0041c1b0
fdiv qword [0x43e2d0]
add esp, 0x10
call fcn.00431980
mov dword [ebp - 0xac0], eax
lea esi, [ebp - 0xb4c]
call fcn.0040f7c8
test eax, eax
jne 0x40e6a2
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 0x40e699
or eax, 4
push ebx
push edx
mov ecx, eax
call fcn.00408452
push ebx
push 1
lea ecx, [ebp - 0xaa0]
call fcn.004059be
push ebx
push 1
lea ecx, [ebp - 0xabc]
call fcn.004059be
lea ecx, [ebp - 0xafc]
mov byte [ebp - 4], 1
call fcn.0040ed59
lea eax, [ebp - 0xafc]
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.00418868
pop ecx
push ebx
push 1
lea esi, [ebp - 0xa84]
call fcn.00405f67
push ebx
push 1
lea esi, [ebp - 0xa68]
call fcn.00405f67
mov eax, dword [ebp - 0xac0]
call fcn.0041cdd0
ret