Function at 0x428d60
Capabilities:
Check if file exists
Read .ini file

Disassembly:
mov eax, 0x46471f
call fcn.00451324
sub esp, 0x3c0
push ebx
push esi
push edi
mov esi, str.fs::FF_getPaths_2774
push esi
call fcn.0044f750
mov dword [ebp - 0x18], eax
push esi
xor ebx, ebx
push 0x473e74
push ebx
mov dword [ebp - 4], ebx
call fcn.0043fb8a
add esp, 0x10
push 6
pop ecx
mov esi, str._APPDATA_MozillaFirefox
lea edi, [ebp - 0x1c4]
rep movsd dword es:[edi], dword [esi]
push 0x3a
movsw word es:[edi], word [esi]
pop ecx
xor eax, eax
lea edi, [ebp - 0x1aa]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
lea eax, [ebp - 0x1c4]
push eax
call dword [sym.imp.SHELL32.dll_DoEnvironmentSubstA]
lea eax, [ebp - 0x1c4]
push eax
push str.__ff_path:__s
push ebx
call fcn.0043fb8a
add esp, 0xc
lea eax, [ebp - 0x1c4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x428e03
push str.__no_ff_installed
push ebx
call fcn.0043fb8a
pop ecx
pop ecx
mov byte [ebp - 0xd], bl
jmp 0x429182
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1c4]
push eax
call fcn.0041af92
push str.profiles.ini
push dword [ebp + 8]
lea eax, [ebp - 0x34]
push eax
call fcn.00417e9b
add esp, 0xc
mov byte [ebp - 4], 1
mov dword [ebp - 0x14], ebx
mov esi, str.Profile
push dword [ebp - 0x14]
lea eax, [ebp - 0xc0]
push eax
call fcn.0044c3f0
pop ecx
pop ecx
mov edi, eax
push esi
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 2
call fcn.0041b5d0
push edi
push eax
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 3
call fcn.0041801e
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x88]
call fcn.0041a87c
push ebx
push 1
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 1
call fcn.0041a87c
push 0x40
pop ecx
xor eax, eax
mov byte [ebp - 0x3cc], bl
lea edi, [ebp - 0x3cb]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x30]
stosw word es:[edi], ax
push 0x10
stosb byte es:[edi], al
pop edi
cmp dword [ebp - 0x1c], edi
jae 0x428eab
lea ecx, [ebp - 0x30]
cmp dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x4c]
jae 0x428eb6
lea eax, [ebp - 0x4c]
push ecx
push 0x104
lea ecx, [ebp - 0x3cc]
push ecx
push 0x470e4a
push str.Name
push eax
call dword [sym.imp.KERNEL32.DLL_GetPrivateProfileStringA]
test eax, eax
je 0x428f13
cmp dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x30]
jae 0x428ee3
lea ecx, [ebp - 0x30]
cmp dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x4c]
jae 0x428eee
lea eax, [ebp - 0x4c]
push ecx
push ebx
push str.Default
push eax
call dword [sym.imp.KERNEL32.DLL_GetPrivateProfileIntA]
cmp eax, ebx
push ebx
lea ecx, [ebp - 0x50]
push 1
jne 0x428f3c
call fcn.0041a87c
inc dword [ebp - 0x14]
jmp 0x428e32
push ebx
push 1
lea ecx, [ebp - 0x50]
call fcn.0041a87c
push dword [ebp - 0x14]
push str.__no_default_profile_found__of__d_
push ebx
call fcn.0043fb8a
add esp, 0xc
cmp dword [ebp - 0x14], ebx
jne 0x428f43
mov byte [ebp - 0xd], bl
jmp 0x429177
call fcn.0041a87c
jmp 0x428f46
mov dword [ebp - 0x14], ebx
push dword [ebp - 0x14]
push str.__use_profile__d
push ebx
call fcn.0043fb8a
push dword [ebp - 0x14]
lea eax, [ebp - 0x88]
push eax
call fcn.0044c3f0
add esp, 0x14
mov edi, eax
push esi
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 4
call fcn.0041b5d0
push edi
push eax
lea eax, [ebp - 0xa4]
push eax
mov byte [ebp - 4], 5
call fcn.0041801e
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0xc0]
call fcn.0041a87c
push ebx
push 1
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 7
call fcn.0041a87c
push 0x40
pop ecx
xor eax, eax
mov byte [ebp - 0x2c8], bl
lea edi, [ebp - 0x2c7]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x30]
push 0x10
stosw word es:[edi], ax
pop esi
cmp dword [ebp - 0x1c], esi
stosb byte es:[edi], al
jae 0x428fd1
lea ecx, [ebp - 0x30]
cmp dword [ebp - 0x8c], esi
mov eax, dword [ebp - 0xa0]
jae 0x428fe5
lea eax, [ebp - 0xa0]
push ecx
push 0x104
lea ecx, [ebp - 0x2c8]
push ecx
push 0x470e4a
push str.Path
push eax
call dword [sym.imp.KERNEL32.DLL_GetPrivateProfileStringA]
test eax, eax
jne 0x42900f
mov byte [ebp - 0xd], bl
jmp 0x429169
cmp dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 0x30]
jae 0x42901a
lea ecx, [ebp - 0x30]
cmp dword [ebp - 0x8c], esi
mov eax, dword [ebp - 0xa0]
jae 0x42902e
lea eax, [ebp - 0xa0]
push ecx
push ebx
push str.IsRelative
push eax
call dword [sym.imp.KERNEL32.DLL_GetPrivateProfileIntA]
mov esi, eax
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0041b5d0
mov edi, 0x477568
push edi
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 9
call fcn.0041b5d0
push 0x477464
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xa
call fcn.0041b5d0
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x6c]
push eax
mov byte [ebp - 4], 0xb
call fcn.0044c350
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x50]
call fcn.0041a87c
push ebx
push 1
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 9
call fcn.0041a87c
cmp esi, ebx
je 0x429107
push edi
push dword [ebp + 8]
lea eax, [ebp - 0x88]
push eax
call fcn.00417e9b
lea ecx, [ebp - 0x6c]
push ecx
push eax
lea eax, [ebp - 0xc0]
push eax
mov byte [ebp - 4], 0xc
call fcn.0041801e
add esp, 0x18
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xd
call fcn.0041a38e
push ebx
push 1
lea ecx, [ebp - 0xc0]
call fcn.0041a87c
push ebx
push 1
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 9
call fcn.0041a87c
cmp dword [ebp - 0x54], 0x10
mov eax, dword [ebp - 0x68]
jae 0x429113
lea eax, [ebp - 0x68]
push eax
push str.__profile_path:__s
push ebx
call fcn.0043fb8a
mov eax, dword [ebp - 0x68]
add esp, 0xc
cmp dword [ebp - 0x54], 0x10
jae 0x42912e
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x42914b
push str.__absent_
push ebx
call fcn.0043fb8a
pop ecx
pop ecx
mov byte [ebp - 0xd], bl
jmp 0x42915e
mov ecx, dword [ebp + 0xc]
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x6c]
push eax
call fcn.0041a38e
mov byte [ebp - 0xd], 1
push ebx
push 1
lea ecx, [ebp - 0x6c]
call fcn.0041a87c
push ebx
push 1
lea ecx, [ebp - 0xa4]
call fcn.0041a87c
push ebx
push 1
lea ecx, [ebp - 0x34]
call fcn.0041a87c
or dword [ebp - 4], 0xffffffff
lea esi, [ebp - 0x18]
call fcn.0041b202
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0xd]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret