Function at 0x43f4a0
Capabilities:
Check if file exists
Read .ini file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4695b5
mov eax, dword fs:[0]
push eax
mov eax, 0x7e94
call fcn.0042a4c0
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov word [ebp - 0xc84], 0
push 0x206
push 0
lea eax, [ebp - 0xc82]
push eax
call fcn.00415680
add esp, 0xc
mov word [ebp - 0xa5c], 0
push 0x206
push 0
lea ecx, [ebp - 0xa5a]
push ecx
call fcn.00415680
add esp, 0xc
mov word [ebp - 0xe8c], 0
push 0x206
push 0
lea edx, [ebp - 0xe8a]
push edx
call fcn.00415680
add esp, 0xc
lea ecx, [ebp - 0xa78]
call fcn.00401190
mov dword [ebp - 4], 0
mov word [ebp - 0x854], 0
push 0x206
push 0
lea eax, [ebp - 0x852]
push eax
call fcn.00415680
add esp, 0xc
mov word [ebp - 0x62c], 0
push 0x616
push 0
lea ecx, [ebp - 0x62a]
push ecx
call fcn.00415680
add esp, 0xc
push 0
lea edx, [ebp - 0x648]
push edx
call fcn.00433bb0
add esp, 8
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x648]
call fcn.00401220
push eax
lea eax, [ebp - 0xc84]
push eax
call fcn.00414f38
add esp, 8
lea ecx, [ebp - 0xc84]
push ecx
call fcn.00414d31
add esp, 4
movzx edx, word [ebp + eax*2 - 0xc86]
cmp edx, 0x5c
jne 0x43f5e3
lea eax, [ebp - 0xc84]
push eax
call fcn.00414d31
add esp, 4
mov word [ebp + eax*2 - 0xc86], 0
lea ecx, [ebp - 0xc84]
push ecx
push str._sMozillaFirefox
push 0x208
push 0x104
lea edx, [ebp - 0xc84]
push edx
call fcn.004157ac
add esp, 0x14
lea eax, [ebp - 0xc84]
push eax
call fcn.00414d31
add esp, 4
test eax, eax
jbe 0x43fee9
lea ecx, [ebp - 0xc84]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43fee9
lea edx, [ebp - 0xc84]
push edx
push str._sprofiles.ini
push 0x208
push 0x104
lea eax, [ebp - 0xa5c]
push eax
call fcn.004157ac
add esp, 0x14
lea ecx, [ebp - 0xa5c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43fee9
lea edx, [ebp - 0xa5c]
push edx
push 0x64
lea eax, [ebp - 0xe8c]
push eax
push 0x473584
push str.Path
push str.Profile0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0xe8c]
push ecx
call fcn.00414d31
add esp, 4
test eax, eax
jbe 0x43fee9
push 0x4735a8
lea ecx, [ebp - 0x7e10]
call fcn.004011c0
mov byte [ebp - 4], 2
push 0x4735ac
lea ecx, [ebp - 0x7e2c]
call fcn.004011c0
mov byte [ebp - 4], 3
lea edx, [ebp - 0xe8c]
push edx
lea ecx, [ebp - 0x7e48]
call fcn.004011c0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x7e10]
push eax
lea ecx, [ebp - 0x7e2c]
push ecx
lea edx, [ebp - 0x7e48]
push edx
lea eax, [ebp - 0xa78]
push eax
call fcn.00442b50
add esp, 0x10
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x7e48]
call fcn.00401200
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x7e2c]
call fcn.00401200
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x7e10]
call fcn.00401200
lea ecx, [ebp - 0xa78]
call fcn.00402490
sub eax, 1
push eax
lea ecx, [ebp - 0xa78]
call fcn.00403c70
movzx ecx, word [eax]
cmp ecx, 0x5c
je 0x43f76b
push 0x4735b0
lea ecx, [ebp - 0xa78]
call fcn.00403c10
lea ecx, [ebp - 0xa78]
call fcn.00401220
push eax
lea edx, [ebp - 0xc84]
push edx
push 0x4735b4
push 0x208
push 0x104
lea eax, [ebp - 0x854]
push eax
call fcn.004157ac
add esp, 0x18
lea ecx, [ebp - 0xea8]
call fcn.00401190
mov byte [ebp - 4], 5
push 1
push 0x40
push 1
lea ecx, [ebp - 0x854]
push ecx
lea ecx, [ebp - 0xf3c]
call fcn.00407a10
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0xf3c]
mov eax, dword [edx + 4]
lea ecx, [ebp + eax - 0xf3c]
call fcn.00406ec0
test eax, eax
je 0x43f870
lea ecx, [ebp - 0xea8]
push ecx
lea edx, [ebp - 0xf3c]
push edx
call fcn.00409b50
add esp, 8
mov dword [ebp - 0x7e4c], eax
mov eax, dword [ebp - 0x7e4c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x7e4c]
add edx, dword [ecx + 4]
mov ecx, edx
call fcn.00406ec0
test eax, eax
je 0x43f863
push str._browser.startup.homepage__
lea ecx, [ebp - 0xea8]
call fcn.00401220
push eax
call fcn.0043d3a0
add esp, 8
mov dword [ebp - 0xf44], eax
cmp dword [ebp - 0xf44], 0
jl 0x43f861
lea ecx, [ebp - 0xea8]
call fcn.00401220
push eax
lea eax, [ebp - 0x62c]
push eax
call fcn.00414f38
add esp, 8
jmp 0x43f863
jmp 0x43f7e4
lea ecx, [ebp - 0xf3c]
call fcn.00407b70
jmp 0x43f8bf
lea ecx, [ebp - 0xf3c]
call fcn.00407b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf3c]
call fcn.00407330
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xea8]
call fcn.00401200
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.00401200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa78]
call fcn.00401200
jmp 0x43ff0a
lea ecx, [ebp - 0xea8]
call fcn.00403c30
push 0x473608
lea ecx, [ebp - 0x62c]
push ecx
call fcn.0043d3a0
add esp, 8
mov dword [ebp - 0xf40], eax
cmp dword [ebp - 0xf40], 0
jl 0x43f8fc
mov dword [0x489bac], 1
jmp 0x43fecb
mov dword [0x489bac], 0
mov word [ebp - 0x2abc], 0
push 0x1b56
push 0
lea edx, [ebp - 0x2aba]
push edx
call fcn.00415680
add esp, 0xc
lea ecx, [ebp - 0xf60]
call fcn.00401190
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xf60]
call fcn.00403c30
cmp dword [ebp + 8], 0
je 0x43febc
mov word [ebp - 0x6f34], 0
push 0x1b56
push 0
lea eax, [ebp - 0x6f32]
push eax
call fcn.00415680
add esp, 0xc
mov word [ebp - 0x461c], 0
push 0x1b56
push 0
lea ecx, [ebp - 0x461a]
push ecx
call fcn.00415680
add esp, 0xc
mov byte [ebp - 0x7ce4], 0
push 0xdab
push 0
lea edx, [ebp - 0x7ce3]
push edx
call fcn.00415680
add esp, 0xc
mov byte [ebp - 0x53dc], 0
push 0xdab
push 0
lea eax, [ebp - 0x53db]
push eax
call fcn.00415680
add esp, 0xc
mov dword [ebp - 0x4620], 0
push 0x473620
lea ecx, [ebp - 0x854]
push ecx
call fcn.00414e0d
add esp, 8
mov dword [ebp - 0x4628], eax
cmp dword [ebp - 0x4628], 0
je 0x43fab2
mov edx, dword [ebp - 0x4628]
push edx
call fcn.004170f0
add esp, 4
test eax, eax
jne 0x43faa1
mov eax, dword [ebp - 0x4628]
push eax
push 0xdac
push 1
lea ecx, [ebp - 0x7ce4]
push ecx
call fcn.00417f4f
add esp, 0x10
mov dword [ebp - 0x4620], eax
mov edx, dword [ebp - 0x4628]
push edx
call fcn.0041711f
add esp, 4
test eax, eax
je 0x43fa92
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xf60]
call fcn.00401200
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf3c]
call fcn.00407330
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xea8]
call fcn.00401200
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.00401200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa78]
call fcn.00401200
jmp 0x43ff0a
mov eax, dword [ebp - 0x4628]
push eax
call fcn.00414e92
add esp, 4
mov ecx, dword [ebp - 0x4628]
push ecx
call fcn.00414e92
add esp, 4
jmp 0x43fb1e
mov edx, dword [ebp - 0x4628]
push edx
call fcn.00414e92
add esp, 4
mov dword [ebp - 0x4628], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xf60]
call fcn.00401200
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf3c]
call fcn.00407330
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xea8]
call fcn.00401200
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.00401200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa78]
call fcn.00401200
jmp 0x43ff0a
mov dword [ebp - 0x2ac0], 0
mov dword [ebp - 0x4624], 0
lea eax, [ebp - 0x7ce4]
push eax
call fcn.00415fa0
add esp, 4
mov dword [ebp - 0x2ac0], eax
lea ecx, [ebp - 0x62c]
push ecx
call fcn.00414d31
add esp, 4
mov dword [ebp - 0x4624], eax
push 0xdac
lea edx, [ebp - 0x6f34]
push edx
lea eax, [ebp - 0x7ce4]
push eax
call fcn.00415fa0
add esp, 4
push eax
lea ecx, [ebp - 0x7ce4]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edx, [ebp - 0x6f34]
push edx
call fcn.00414d31
add esp, 4
test eax, eax
jbe 0x43febc
lea eax, [ebp - 0x6f34]
push eax
call fcn.00414d31
add esp, 4
cmp eax, 0xdac
jae 0x43febc
lea ecx, [ebp - 0x62c]
push ecx
call fcn.00414d31
add esp, 4
test eax, eax
jbe 0x43fc67
push str.user_pref__browser.startup.homepage____http:__www.qq.com____
lea ecx, [ebp - 0x7e68]
call fcn.004011c0
mov byte [ebp - 4], 8
lea edx, [ebp - 0x62c]
push edx
lea ecx, [ebp - 0x7e84]
call fcn.004011c0
mov byte [ebp - 4], 9
lea eax, [ebp - 0x6f34]
push eax
lea ecx, [ebp - 0x7ea0]
call fcn.004011c0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x7e68]
push ecx
lea edx, [ebp - 0x7e84]
push edx
lea eax, [ebp - 0x7ea0]
push eax
lea ecx, [ebp - 0xf60]
push ecx
call fcn.00442b50
add esp, 0x10
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x7ea0]
call fcn.00401200
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x7e84]
call fcn.00401200
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x7e68]
call fcn.00401200
jmp 0x43fda7
push 0x4736a4
lea edx, [ebp - 0x854]
push edx
call fcn.00414e0d
add esp, 8
mov dword [ebp - 0x7cec], eax
mov ecx, 0xf
mov esi, str._r_nuser_pref__browser.startup.homepage____http:__www.qq.com____
lea edi, [ebp - 0x7df4]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
push 0xc5
push 0
lea eax, [ebp - 0x7db5]
push eax
call fcn.00415680
add esp, 0xc
cmp dword [ebp - 0x7cec], 0
je 0x43fd45
mov ecx, dword [ebp - 0x7cec]
push ecx
lea edx, [ebp - 0x7df4]
push edx
call fcn.00415fa0
add esp, 4
push eax
push 1
lea eax, [ebp - 0x7df4]
push eax
call fcn.004150b3
add esp, 0x10
mov ecx, dword [ebp - 0x7cec]
push ecx
call fcn.00414e92
add esp, 4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xf60]
call fcn.00401200
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf3c]
call fcn.00407330
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xea8]
call fcn.00401200
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.00401200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa78]
call fcn.00401200
jmp 0x43ff0a
mov edx, dword [ebp - 0x7cec]
push edx
call fcn.00414e92
add esp, 4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xf60]
call fcn.00401200
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf3c]
call fcn.00407330
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xea8]
call fcn.00401200
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.00401200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa78]
call fcn.00401200
jmp 0x43ff0a
lea ecx, [ebp - 0xf60]
call fcn.00401220
push eax
push 0x4736ec
push 0x1b58
push 0xdac
lea eax, [ebp - 0x2abc]
push eax
call fcn.004157ac
add esp, 0x14
push 0
push 0
push 0xdac
lea ecx, [ebp - 0x53dc]
push ecx
push 0xffffffffffffffff
lea edx, [ebp - 0x2abc]
push edx
push 0x200
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0x4736f4
lea eax, [ebp - 0x854]
push eax
call fcn.00414e0d
add esp, 8
mov dword [ebp - 0x7ce8], eax
cmp dword [ebp - 0x7ce8], 0
je 0x43fe53
mov ecx, dword [ebp - 0x7ce8]
push ecx
lea edx, [ebp - 0x53dc]
push edx
call fcn.00415fa0
add esp, 4
push eax
push 1
lea eax, [ebp - 0x53dc]
push eax
call fcn.004150b3
add esp, 0x10
mov ecx, dword [ebp - 0x7ce8]
push ecx
call fcn.00414e92
add esp, 4
jmp 0x43febc
mov edx, dword [ebp - 0x7ce8]
push edx
call fcn.00414e92
add esp, 4
mov dword [ebp - 0x7ce8], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xf60]
call fcn.00401200
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf3c]
call fcn.00407330
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xea8]
call fcn.00401200
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.00401200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa78]
call fcn.00401200
jmp 0x43ff0a
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xf60]
call fcn.00401200
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf3c]
call fcn.00407330
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xea8]
call fcn.00401200
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x648]
call fcn.00401200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa78]
call fcn.00401200
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret