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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c0
mov eax, dword [0x1008bb60]
xor eax, ebp
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x14]
call fcn.100016b0
lea ecx, [ebp - 0x54]
call fcn.100016b0
lea ecx, [ebp - 0x2c]
call fcn.100016b0
lea ecx, [ebp - 0x28]
call fcn.100016b0
lea ecx, [ebp - 0x1c]
call fcn.100016b0
mov byte [ebp - 0x290], 0
push 0x1ff
push 0
lea eax, [ebp - 0x28f]
push eax
call fcn.10041d70
add esp, 0xc
lea ecx, [ebp - 0x50]
call fcn.100021d0
lea ecx, [ebp - 0x48]
call fcn.10006410
call fcn.10001600
mov dword [ebp - 0x70], eax
push 0x200
lea ecx, [ebp - 0x290]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [ebp - 0x290]
push edx
push 0x10073790
lea eax, [ebp - 0x54]
push eax
call fcn.100030c0
add esp, 0xc
push 0x5c
lea ecx, [ebp - 0x54]
call fcn.10002970
push eax
lea ecx, [ebp - 0x298]
push ecx
lea ecx, [ebp - 0x54]
call fcn.100029c0
push eax
lea ecx, [ebp - 0x54]
call fcn.100016f0
lea ecx, [ebp - 0x298]
call fcn.100016d0
push 0x10073794
lea edx, [ebp - 0x54]
push edx
lea eax, [ebp - 0x29c]
push eax
call fcn.10002af0
add esp, 0xc
push eax
lea ecx, [ebp - 0x14]
call fcn.100016f0
lea ecx, [ebp - 0x29c]
call fcn.100016d0
push 0x100737a0
lea ecx, [ebp - 0x54]
push ecx
lea edx, [ebp - 0x2a0]
push edx
call fcn.10002af0
add esp, 0xc
push eax
lea ecx, [ebp - 0x2c]
call fcn.100016f0
lea ecx, [ebp - 0x2a0]
call fcn.100016d0
push str.cfgdgsoftpurify.ini
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x2a4]
push ecx
call fcn.10002af0
add esp, 0xc
push eax
lea ecx, [ebp - 0x28]
call fcn.100016f0
lea ecx, [ebp - 0x2a4]
call fcn.100016d0
lea ecx, [ebp - 0x2c]
call fcn.10025f80
push eax
push 0
push str.servicecnt
push 0x100737d0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x2c]
call fcn.10025f80
push eax
push 0
push str.UsageCount
push 0x100737e4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x28]
call fcn.10025f80
push eax
push 0
push str.switch
push str.softpurify
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x5c], eax
lea ecx, [ebp - 0x6c]
call fcn.10030990
lea ecx, [ebp - 0x74]
call fcn.100016b0
push 0x103
push 0x104
lea ecx, [ebp - 0x74]
call fcn.10001730
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0xffffffffffffffff
lea ecx, [ebp - 0x74]
call fcn.10006080
lea ecx, [ebp - 0x74]
call fcn.10005ce0
lea edx, [ebp - 0x8c]
push edx
lea ecx, [ebp - 0x48]
call fcn.10006510
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x2c]
call fcn.10025f80
push eax
push 0
push str.InstallTime
push 0x1007380c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
push 0x10073814
lea ecx, [ebp - 0x1c]
push ecx
call fcn.100030c0
add esp, 0xc
push str.dg_resident
lea ecx, [ebp - 0x50]
call fcn.100022c0
push 1
push 0x10073830
lea ecx, [ebp - 0x50]
call fcn.10002330
push 0
lea ecx, [ebp - 0x14]
call fcn.10001730
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x10018042
push 0
lea ecx, [ebp - 0x14]
call fcn.10001730
push eax
push str.1612
push 0x10073848
push 0x10073850
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0
lea ecx, [ebp - 0x14]
call fcn.10001730
push eax
push 0x10073858
push 0x1007385c
push 0x1007386c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0
push str.dgservice
lea ecx, [ebp - 0x74]
call fcn.10005c60
cmp eax, 0xffffffff
je 0x10018060
push 1
lea ecx, [ebp - 0x6c]
call fcn.100309d0
lea ecx, [ebp - 0x6c]
call fcn.100309f0
test eax, eax
je 0x100180b3
lea ecx, [ebp - 0x6c]
call fcn.10030ad0
push eax
push 0x10073880
lea ecx, [ebp - 0x50]
call fcn.10002330
lea edx, [ebp - 0x2a8]
push edx
lea ecx, [ebp - 0x6c]
call fcn.10030b10
mov ecx, eax
call fcn.10025f80
push eax
push 0x10073890
lea ecx, [ebp - 0x50]
call fcn.100022f0
lea ecx, [ebp - 0x2a8]
call fcn.100016d0
jmp 0x100180d4
push 0
push 0x100738a4
lea ecx, [ebp - 0x50]
call fcn.10002330
push 0x100738b4
push str.homepage
lea ecx, [ebp - 0x50]
call fcn.100022f0
lea ecx, [ebp - 0x6c]
call fcn.10030a80
call fcn.1002f500
push eax
push 0x100738cc
lea ecx, [ebp - 0x50]
call fcn.10002330
call fcn.1002ff60
push eax
push 0x100738d8
lea ecx, [ebp - 0x50]
call fcn.10002330
call fcn.1002ff00
push eax
push 0x100738e4
lea ecx, [ebp - 0x50]
call fcn.10002330
call fcn.10017780
push eax
push str.dubasign
lea ecx, [ebp - 0x50]
call fcn.10002330
lea ecx, [ebp - 0x14]
call fcn.10025f80
push eax
push 0x64b
push 0x10073904
push 0x1007390c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x294], eax
mov eax, dword [ebp - 0x294]
push eax
push 0x10073914
lea ecx, [ebp - 0x50]
call fcn.10002330
lea ecx, [ebp - 0x34]
call fcn.100016b0
lea ecx, [ebp - 0x34]
push ecx
call fcn.100304c0
add esp, 4
lea ecx, [ebp - 0x34]
call fcn.10025f80
push eax
lea ecx, [ebp - 0x3ac]
call fcn.10025e60
mov ecx, eax
call fcn.10025f80
push eax
lea ecx, [ebp - 0x58]
call fcn.10025be0
lea ecx, [ebp - 0x3ac]
call fcn.10025e90
lea ecx, [ebp - 0x58]
call fcn.10025f80
push eax
push str.upver
lea ecx, [ebp - 0x50]
call fcn.100022f0
mov edx, dword [ebp - 0x5c]
imul edx, edx, 0xa
add edx, dword [ebp - 0x20]
push edx
push str.wlansta
lea ecx, [ebp - 0x50]
call fcn.10002330
mov byte [ebp - 0xd], 0
call fcn.1002fa50
test eax, eax
je 0x100181e3
mov byte [ebp - 0xd], 1
jmp 0x100181e7
mov byte [ebp - 0xd], 2
movzx eax, byte [ebp - 0xd]
push eax
push 0x1007393c
lea ecx, [ebp - 0x50]
call fcn.10002330
mov ecx, dword [ebp - 4]
push ecx
push str.usagecount
lea ecx, [ebp - 0x50]
call fcn.10002330
mov edx, dword [ebp - 0x18]
push edx
push str.resicount
lea ecx, [ebp - 0x50]
call fcn.10002330
lea ecx, [ebp - 0x1c]
call fcn.10025f80
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jne 0x10018238
mov dword [ebp - 0x3b8], 0
jmp 0x10018297
mov eax, dword [ebp - 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x3fffffff
jle 0x1001825d
mov dword [ebp - 0x3bc], 0
jmp 0x1001828b
mov eax, dword [ebp - 0xc]
shl eax, 1
call fcn.10041b20
mov dword [ebp - 0x3c0], esp
mov ecx, dword [ebp - 0x70]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x78]
push eax
mov ecx, dword [ebp - 0x3c0]
push ecx
call fcn.10001610
mov dword [ebp - 0x3bc], eax
mov edx, dword [ebp - 0x3bc]
mov dword [ebp - 0x3b8], edx
mov eax, dword [ebp - 0x3b8]
push eax
push str.installtime
lea ecx, [ebp - 0x50]
call fcn.100022f0
lea ecx, [ebp - 0x60]
call fcn.100016b0
mov ecx, dword [ebp + 8]
push ecx
push str.Resident:_d
lea edx, [ebp - 0x60]
push edx
call fcn.100030c0
add esp, 0xc
push ecx
mov ecx, esp
mov dword [ebp - 0x3b0], esp
lea eax, [ebp - 0x60]
push eax
call fcn.10002cc0
call fcn.1001c670
add esp, 4
cmp dword [ebp + 8], 0
jne 0x100182f3
lea ecx, [ebp - 0x50]
call fcn.10002420
mov dword [ebp - 0x30], eax
cmp dword [ebp + 8], 1
jne 0x10018303
push 0
lea ecx, [ebp - 0x50]
call fcn.100024b0
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x3b4], ecx
lea ecx, [ebp - 0x60]
call fcn.100016d0
lea ecx, [ebp - 0x58]
call fcn.100016d0
lea ecx, [ebp - 0x34]
call fcn.100016d0
lea ecx, [ebp - 0x74]
call fcn.100016d0
lea ecx, [ebp - 0x6c]
call fcn.100309c0
lea ecx, [ebp - 0x48]
call fcn.10006450
lea ecx, [ebp - 0x50]
call fcn.10002280
lea ecx, [ebp - 0x1c]
call fcn.100016d0
lea ecx, [ebp - 0x28]
call fcn.100016d0
lea ecx, [ebp - 0x2c]
call fcn.100016d0
lea ecx, [ebp - 0x54]
call fcn.100016d0
lea ecx, [ebp - 0x14]
call fcn.100016d0
mov eax, dword [ebp - 0x3b4]
lea esp, [ebp - 0x3c0]
mov ecx, dword [ebp - 0x7c]
xor ecx, ebp
call fcn.10041acb
mov esp, ebp
pop ebp
ret