Function at 0x4b9d60
Capabilities:
Check if file exists
Create directory
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x860
mov eax, dword [0x552a7c]
xor eax, ebp
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x860], ecx
mov dword [ebp - 0x14], 1
lea eax, [ebp - 0x18]
push eax
call fcn.0044d3c0
add esp, 4
lea ecx, [ebp - 0x18]
call fcn.0041d2b0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4b9db3
push 0
lea ecx, [ebp - 0x18]
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x10]
push ecx
call fcn.0044d6f0
add esp, 4
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4b9de6
push 0
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x4b9e01
lea ecx, [ebp - 0x10]
call fcn.0041d100
lea ecx, [ebp - 0x18]
call fcn.0041d100
jmp 0x4ba61d
push 0x5381e4
lea ecx, [ebp - 0x10]
call fcn.0041d180
lea ecx, [ebp - 0xc]
call fcn.0041d080
lea edx, [ebp - 8]
push edx
mov ecx, dword [ebp + 8]
call fcn.004437a0
jmp 0x4b9e35
push 0
lea eax, [ebp - 0x850]
push eax
lea ecx, [ebp - 8]
call fcn.00443d30
lea ecx, [ebp - 0x858]
push ecx
mov ecx, dword [ebp + 8]
call fcn.004437d0
push eax
lea ecx, [ebp - 8]
call fcn.00443dd0
movzx edx, al
test edx, edx
je 0x4ba605
xor eax, eax
mov word [ebp - 0x828], ax
push 0x7fe
push 0
lea ecx, [ebp - 0x826]
push ecx
call fcn.004f7580
add esp, 0xc
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
push 0x400
lea edx, [ebp - 0x828]
push edx
push 0
push 0x5381f4
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x828]
push eax
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x30
mov ecx, eax
call fcn.0041d1c0
test eax, eax
je 0x4b9efd
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x30
mov ecx, eax
call fcn.0041d2b0
push eax
push str.icon
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x800
push 0
lea ecx, [ebp - 0x828]
push ecx
call fcn.004f7580
add esp, 0xc
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
push 0x400
lea edx, [ebp - 0x828]
push edx
push 0
push 0x53820c
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0xa
push 0
lea eax, [ebp - 0x828]
push eax
call fcn.004fefa8
add esp, 0xc
mov dword [ebp - 0x82c], eax
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, dword [eax + 0x28]
cmp ecx, dword [ebp - 0x82c]
je 0x4b9fd7
lea ecx, [ebp - 0x830]
call fcn.0041d080
lea ecx, [ebp - 8]
call fcn.00443d10
mov edx, dword [eax + 0x28]
push edx
push 0x53821c
lea eax, [ebp - 0x830]
push eax
call fcn.0041e770
add esp, 0xc
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 0x830]
call fcn.0041d2b0
push eax
push str.softid
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x830]
call fcn.0041d100
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
push 0
push str.rate
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x7c], ecx
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
push 0
push 0x538240
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x20], 0
jne 0x4ba2ee
cmp dword [ebp - 0x1c], 0
jne 0x4ba2e0
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x30
push eax
lea ecx, [ebp - 0x83c]
call fcn.0041d0a0
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x30
push ecx
mov ecx, esp
push eax
call fcn.0041d0a0
lea edx, [ebp - 0x838]
push edx
call fcn.004c43b0
add esp, 8
lea ecx, [ebp - 8]
call fcn.00443d10
mov dword [eax + 4], 0
lea ecx, [ebp - 8]
call fcn.00443d10
mov dword [eax + 8], 0
push str.360.cn
lea ecx, [ebp - 0x838]
call fcn.0041d1c0
test eax, eax
je 0x4ba115
push str.Qihoo_360_Software__Beijing__Company_Limited
lea ecx, [ebp - 0x838]
call fcn.0041d1c0
test eax, eax
je 0x4ba115
push str.Beijing_Qihoo_Technologies_Co._Ltd
lea ecx, [ebp - 0x838]
call fcn.0041d1c0
test eax, eax
je 0x4ba115
push str.Beijing_Qihu_Technology_Co.__Ltd.
lea ecx, [ebp - 0x838]
call fcn.0041d1c0
test eax, eax
je 0x4ba115
push str.QIHU_360_SOFTWARE_CO._LIMITED
lea ecx, [ebp - 0x838]
call fcn.0041d1c0
test eax, eax
jne 0x4ba155
lea ecx, [ebp - 8]
call fcn.00443d10
mov dword [eax + 4], 1
lea ecx, [ebp - 0x83c]
call fcn.004390b0
push 0
push 0x538388
lea ecx, [ebp - 0x83c]
call fcn.004264c0
cmp eax, 0xffffffff
je 0x4ba155
lea ecx, [ebp - 8]
call fcn.00443d10
mov dword [eax + 8], 1
push 0
call fcn.004ba630
add esp, 4
push eax
call fcn.004f9a8b
add esp, 4
call fcn.004f9a9d
cdq
mov ecx, 0xa
idiv ecx
mov dword [ebp - 0x840], edx
lea ecx, [ebp - 8]
call fcn.00443d10
cmp dword [eax + 4], 1
jne 0x4ba260
lea edx, [ebp - 0x848]
push edx
call fcn.004163f0
add esp, 4
push 0
lea eax, [ebp - 0x844]
push eax
call fcn.00416040
add esp, 8
lea ecx, [ebp - 0x848]
call fcn.0041d2e0
test eax, eax
jg 0x4ba1ce
lea ecx, [ebp - 0x844]
push ecx
lea ecx, [ebp - 0x848]
call fcn.0041d120
lea ecx, [ebp - 0x844]
call fcn.0041d2e0
push eax
lea ecx, [ebp - 0x844]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 0x83c]
call fcn.0041d2b0
push eax
call fcn.004f780c
add esp, 0xc
test eax, eax
je 0x4ba22e
lea ecx, [ebp - 0x848]
call fcn.0041d2e0
push eax
lea ecx, [ebp - 0x848]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 0x83c]
call fcn.0041d2b0
push eax
call fcn.004f780c
add esp, 0xc
test eax, eax
jne 0x4ba23c
mov edx, dword [ebp - 0x840]
add edx, 0x14
mov dword [ebp - 0x1c], edx
jmp 0x4ba248
mov eax, dword [ebp - 0x840]
add eax, 0x28
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x844]
call fcn.0041d100
lea ecx, [ebp - 0x848]
call fcn.0041d100
jmp 0x4ba26c
mov ecx, dword [ebp - 0x840]
add ecx, 0x50
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x834]
call fcn.0041d080
mov edx, dword [ebp - 0x1c]
push edx
push 0x538398
lea eax, [ebp - 0x834]
push eax
call fcn.0041e770
add esp, 0xc
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 0x834]
call fcn.0041d2b0
push eax
push str.rate1
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x834]
call fcn.0041d100
lea ecx, [ebp - 0x838]
call fcn.0041d100
lea ecx, [ebp - 0x83c]
call fcn.0041d100
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x7c], ecx
push 0x800
push 0
lea edx, [ebp - 0x828]
push edx
call fcn.004f7580
add esp, 0xc
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
push 0x400
lea eax, [ebp - 0x828]
push eax
push 0
push 0x5383ac
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x3c
mov ecx, eax
call fcn.0041d300
movzx ecx, al
test ecx, ecx
jne 0x4ba3cc
lea edx, [ebp - 0x828]
push edx
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x3c
mov ecx, eax
call fcn.0041d1c0
test eax, eax
je 0x4ba3a3
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x3c
mov ecx, eax
call fcn.0041d2b0
push eax
push 0x5383b4
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
push 0x5383bc
push 0x5383c0
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0xb4
mov ecx, eax
call fcn.0041d300
movzx eax, al
test eax, eax
jne 0x4ba46c
lea ecx, [ebp - 0x828]
push ecx
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0xb4
mov ecx, eax
call fcn.0041d1c0
test eax, eax
je 0x4ba443
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0xb4
mov ecx, eax
call fcn.0041d2b0
push eax
push 0x5383cc
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
push 0x5383d4
push 0x5383d8
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x6c
mov ecx, eax
call fcn.00487990
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x6c
mov ecx, eax
call fcn.0041d300
movzx edx, al
test edx, edx
jne 0x4ba4ce
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x6c
mov ecx, eax
call fcn.0041d2b0
push eax
push str.PopImage
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x9c
mov ecx, eax
call fcn.00487990
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x9c
mov ecx, eax
call fcn.0041d300
movzx eax, al
test eax, eax
jne 0x4ba536
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x9c
mov ecx, eax
call fcn.0041d2b0
push eax
push str.MPopImage
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x70
mov ecx, eax
call fcn.00487990
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x70
mov ecx, eax
call fcn.0041d300
movzx ecx, al
test ecx, ecx
jne 0x4ba598
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0x70
mov ecx, eax
call fcn.0041d2b0
push eax
push str.PopImageMD5
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0xa0
mov ecx, eax
call fcn.00487990
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0xa0
mov ecx, eax
call fcn.0041d300
movzx edx, al
test edx, edx
jne 0x4ba600
lea ecx, [ebp - 0x10]
call fcn.0041d2b0
push eax
lea ecx, [ebp - 8]
call fcn.00443d10
add eax, 0xa0
mov ecx, eax
call fcn.0041d2b0
push eax
push str.MPopImageMD5
lea ecx, [ebp - 8]
call fcn.00443d10
mov ecx, eax
call fcn.0041d2b0
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x4b9e24
lea ecx, [ebp - 0xc]
call fcn.0041d100
lea ecx, [ebp - 0x10]
call fcn.0041d100
lea ecx, [ebp - 0x18]
call fcn.0041d100
mov ecx, dword [ebp - 0x24]
xor ecx, ebp
call fcn.004f7567
mov esp, ebp
pop ebp
ret 4