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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x41e70b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x27c
push ebx
push ebp
push esi
push edi
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x180]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x10]
push eax
xor ebx, ebx
push 0xf01ff
mov dword [esp + 0x38], 0x104
mov dword [esp + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x404a6a
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x184]
push edx
push eax
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryA]
test eax, eax
jne 0x404a85
mov eax, 1
mov ecx, dword [esp + 0x28c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x180]
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404aa0
sub eax, edx
push eax
lea ecx, [esp + 0x184]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00401d30
push 0x2e
push str.Application_DataMozillaFirefoxprofiles.ini
lea ecx, [esp + 0x1c]
mov dword [esp + 0x29c], ebx
call fcn.00404830
mov ebp, dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
mov byte [esp + 0x78], bl
mov ecx, 0x40
lea edi, [esp + 0x79]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor edi, edi
mov esi, 0x10
push edi
push str.Profile
lea edx, [esp + 0x74]
push str._s_d
push edx
call fcn.0040e136
mov eax, dword [esp + 0x3c]
add esp, 0x10
cmp eax, esi
mov eax, dword [esp + 0x18]
jae 0x404b1b
lea eax, [esp + 0x18]
push eax
push 0x104
lea eax, [esp + 0x80]
push eax
push ebx
push str.Path
lea ecx, [esp + 0x80]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x404c68
lea edx, [esp + 0x78]
push 0x2f
push edx
call fcn.0040db40
add esp, 8
cmp eax, ebx
je 0x404bb1
mov byte [eax], 0x5c
lea eax, [esp + 0x180]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404b65
sub eax, edx
push eax
lea eax, [esp + 0x184]
push eax
lea ecx, [esp + 0x1c]
call fcn.00401d30
push 0x22
push str.Application_DataMozillaFirefox_
lea ecx, [esp + 0x1c]
call fcn.00404830
lea eax, [esp + 0x78]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404b97
sub eax, edx
push eax
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00404830
jmp 0x404bd0
lea eax, [esp + 0x78]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x404bb8
sub eax, edx
push eax
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0x1c]
call fcn.00401d30
push str.compreg.dat
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.00404940
mov ecx, dword [eax + 0x18]
add esp, 0xc
cmp ecx, esi
jb 0x404bf3
mov eax, dword [eax + 4]
jmp 0x404bf6
add eax, 4
push eax
call ebp
cmp dword [esp + 0x4c], esi
jb 0x404c0c
mov edx, dword [esp + 0x38]
push edx
call fcn.00418537
add esp, 4
push str.xpti.dat
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x58]
push ecx
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.00404940
mov ecx, dword [eax + 0x18]
add esp, 0xc
cmp ecx, esi
jb 0x404c3f
mov eax, dword [eax + 4]
jmp 0x404c42
add eax, 4
push eax
call ebp
cmp dword [esp + 0x68], esi
jb 0x404c58
mov edx, dword [esp + 0x54]
push edx
call fcn.00418537
add esp, 4
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], ebx
mov byte [esp + 0x54], bl
inc edi
cmp edi, 0x14
jl 0x404af3
cmp dword [esp + 0x2c], esi
jb 0x404c85
mov eax, dword [esp + 0x18]
push eax
call fcn.00418537
add esp, 4
mov ecx, dword [esp + 0x28c]
pop edi
xor eax, eax
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret