Function at 0x4d0668
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
push 0x94
mov eax, 0x588081
call fcn.004fb9d0
push ecx
mov dword [ebp - 0x4c], ecx
mov ecx, esp
mov dword [ebp - 0x50], esp
push str.fpromote
call fcn.0043479c
xor esi, esi
mov dword [ebp - 4], esi
push ecx
mov ecx, esp
mov dword [ebp - 0x48], esp
push str.firefox.exe
call fcn.0043479c
mov byte [ebp - 4], 1
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x4c]
call fcn.004c3632
test al, al
jne 0x4d0b6f
lea ecx, [ebp - 0xa0]
call fcn.00432a3a
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x88]
call fcn.004a86e3
mov byte [ebp - 4], 4
push ecx
mov ecx, esp
mov dword [ebp - 0x50], esp
push str.MozillaFirefoxProfiles
call fcn.0043479c
mov byte [ebp - 4], 5
push ecx
mov eax, esp
mov dword [ebp - 0x48], esp
push eax
lea ecx, [ebp - 0xa0]
call fcn.0049bb8c
mov byte [ebp - 4], 6
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xa0]
call fcn.0049be74
mov byte [ebp - 4], 7
push dword [ebp - 0x54]
lea ecx, [ebp - 0x88]
call fcn.004b6e50
cmp eax, esi
je 0x4d0b37
lea ecx, [ebp - 0x88]
call fcn.004a16b2
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x50], eax
call fcn.004a46c4
test eax, eax
jne 0x4d0b2e
push 0x10
lea ecx, [ebp - 0x88]
call fcn.004a1690
test eax, eax
je 0x4d0b2e
push ecx
mov ecx, esp
mov dword [ebp - 0x40], esp
push str.places.sqlite
call fcn.0043479c
mov byte [ebp - 4], 8
push ecx
mov eax, esp
mov dword [ebp - 0x34], esp
push eax
lea ecx, [ebp - 0x88]
call fcn.004c94f3
mov byte [ebp - 4], 9
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xa0]
call fcn.0049be74
mov byte [ebp - 4], 0xa
push 0x5a5800
push 0x5a3cb4
push str.moz_places
push ecx
lea eax, [ebp - 0x60]
mov ecx, esp
mov dword [ebp - 0x40], esp
push eax
call fcn.004324a9
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x4c]
call fcn.004cb9c1
push ecx
mov ecx, esp
mov dword [ebp - 0x40], esp
push str.prefs.js
call fcn.0043479c
mov byte [ebp - 4], 0xc
push ecx
mov eax, esp
mov dword [ebp - 0x34], esp
push eax
lea ecx, [ebp - 0x88]
call fcn.004c94f3
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x44]
push eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xa0]
call fcn.0049be74
mov byte [ebp - 4], 0xe
push dword [ebp - 0x44]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4d0b10
push esi
push 0x20
push 3
push esi
push 7
push SysReAllocString
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4d0b10
xor eax, eax
mov dword [ebp - 0x5c], esi
lea edi, [ebp - 0x58]
stosd dword es:[edi], eax
lea eax, [ebp - 0x5c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov eax, dword [ebp - 0x5c]
add eax, 2
push eax
call fcn.004f8908
mov esi, eax
mov eax, dword [ebp - 0x5c]
add eax, 2
push eax
xor edi, edi
push edi
push esi
call fcn.004fc1f0
add esp, 0x10
push edi
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x5c]
mov dword [ebp - 0x48], edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
lea ecx, [ebp - 0x3c]
call fcn.00433e48
mov byte [ebp - 4], 0xf
push ecx
mov ecx, esp
mov dword [ebp - 0x40], esp
push 0x5a5d94
call fcn.0043479c
mov byte [ebp - 4], 0x10
push ecx
lea eax, [ebp - 0x3c]
mov ecx, esp
mov dword [ebp - 0x34], esp
push eax
call fcn.004324a9
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 4], 0xf
call fcn.004b3873
add esp, 0xc
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x3c]
call fcn.00431e55
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x34], edi
cmp eax, edi
jle 0x4d0af3
cmp dword [ebp - 0x34], edi
jl 0x4d0b75
cmp dword [ebp - 0x34], eax
jge 0x4d0b75
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x34]
lea eax, [eax + ecx*4]
push eax
lea ecx, [ebp - 0x30]
call fcn.004324a9
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x30]
cmp dword [eax - 0xc], edi
jne 0x4d092c
jmp 0x4d0aae
push edi
push str._browser.startup.page_
lea ecx, [ebp - 0x30]
call fcn.00432533
test eax, eax
js 0x4d0943
jmp 0x4d0aae
push edi
push 0x5adab4
lea ecx, [ebp - 0x30]
call fcn.00432533
test eax, eax
js 0x4d0a89
push edi
push 0x5adab0
lea ecx, [ebp - 0x30]
call fcn.00432533
cmp eax, edi
jle 0x4d0a89
push eax
mov esi, 0x59adc4
push esi
lea ecx, [ebp - 0x30]
call fcn.00432533
mov ebx, eax
cmp ebx, edi
jle 0x4d0a89
lea edi, [ebx + 1]
push edi
push esi
lea ecx, [ebp - 0x30]
call fcn.00432533
test eax, eax
jle 0x4d0a87
sub eax, ebx
dec eax
push eax
push edi
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x30]
call fcn.00433228
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x38]
xor edi, edi
inc edi
push 0x100
cmp dword [eax - 4], edi
jle 0x4d09d0
push dword [eax - 0xc]
lea ecx, [ebp - 0x38]
call fcn.00431f53
mov eax, dword [ebp - 0x38]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x64], esp
push eax
call fcn.0049b524
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x4c]
call fcn.004c3942
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x18], 8
mov esi, dword [ebp - 0x2c]
jae 0x4d0a02
lea esi, [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
cmp dword [eax - 4], edi
jle 0x4d0a18
push dword [eax - 0xc]
lea ecx, [ebp - 0x38]
call fcn.00431f53
mov eax, dword [ebp - 0x38]
push esi
push eax
call fcn.004fa9a7
pop ecx
pop ecx
test eax, eax
je 0x4d0a69
mov esi, str.user_pref__browser.startup.homepage____
push esi
mov dword [ebp - 0x40], edi
call fcn.004fb22e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
call fcn.0043340b
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x4d0a4a
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x30]
call fcn.0043a9d7
mov esi, 0x5ada54
push esi
call fcn.004fb22e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
call fcn.0043a942
mov byte [ebp - 4], 0x16
push 0
push edi
lea ecx, [ebp - 0x2c]
call fcn.0043c5c3
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.004310e3
xor edi, edi
mov eax, dword [ebp - 0x30]
push dword [eax - 0xc]
lea ecx, [ebp - 0x3c]
push eax
call fcn.0043a942
mov esi, 0x5a5d94
push esi
call fcn.004fb22e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x3c]
call fcn.0043a942
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.004310e3
mov eax, dword [ebp - 0x6c]
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], eax
jl 0x4d08f7
cmp dword [ebp - 0x40], edi
je 0x4d0af3
push ecx
lea eax, [ebp - 0x3c]
mov ecx, esp
mov dword [ebp - 0x64], esp
push eax
call fcn.004324a9
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x44]
push eax
mov byte [ebp - 4], 0x12
call fcn.004a8386
pop ecx
pop ecx
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x70]
call fcn.00433510
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.004310e3
xor esi, esi
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
call fcn.004310e3
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
call fcn.004310e3
cmp dword [ebp - 0x50], esi
jne 0x4d072f
lea ecx, [ebp - 0x88]
call fcn.004a4686
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
call fcn.004310e3
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x88]
call fcn.004a8728
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa0]
call fcn.00432a92
call fcn.004fba53
ret
push edi
push edi
push 1
push 0xc000008c
call dword [sym.imp.KERNEL32.dll_RaiseException]