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

Disassembly:
push 0x48c
mov eax, 0x100295fd
call fcn.10015c84
mov esi, ecx
mov dword [ebp - 0x474], esi
add esi, 4
mov eax, dword [esi]
mov eax, dword [eax - 0xc]
xor edi, edi
cmp eax, edi
jne 0x10014a70
xor eax, eax
push 0x206
mov word [ebp - 0x460], ax
lea eax, [ebp - 0x45e]
push edi
push eax
call fcn.100154e0
add esp, 0xc
lea eax, [ebp - 0x460]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push str.jxconfig.dat
lea eax, [ebp - 0x460]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x460]
push eax
mov ecx, esi
call fcn.100016e9
mov eax, dword [esi]
cmp dword [eax - 0xc], edi
jne 0x10014a7e
xor al, al
jmp 0x10014e3e
push edi
call fcn.1001a077
pop ecx
push dword [esi]
mov ebx, str.version
push edi
mov edi, str.lastcheck
push edi
push ebx
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x478], edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x47c]
sub ecx, eax
cmp ecx, 0xe10
jb 0x10014b04
lea eax, [ebp - 0x47c]
push eax
call fcn.1001a050
pop ecx
push esi
push str.http:__zhilin.oss_cn_hangzhou.aliyuncs.com_jxconfig3.dat
call fcn.1001379d
pop ecx
pop ecx
xor eax, eax
push 0x3e
push eax
mov word [ebp - 0x50], ax
lea eax, [ebp - 0x4e]
push eax
call fcn.100154e0
push 0xa
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x47c]
call fcn.1001a15e
add esp, 0x18
push dword [esi]
lea eax, [ebp - 0x50]
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov byte [ebp - 0x461], 0
mov dword [ebp - 0x46c], 1
lea ecx, [ebp - 0x494]
call fcn.10013a30
and dword [ebp - 4], 0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x258], ax
lea eax, [ebp - 0x256]
push eax
call fcn.100154e0
add esp, 0xc
push 0x10035d94
lea ecx, [ebp - 0x468]
call fcn.10001494
push dword [ebp - 0x46c]
lea eax, [ebp - 0x468]
push str.config_d
push eax
mov byte [ebp - 4], 1
call fcn.100080a0
add esp, 0xc
push dword [esi]
lea eax, [ebp - 0x258]
push 0x104
push eax
push 0x1002a4d0
push str.host
push dword [ebp - 0x468]
call ebx
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x470]
call fcn.10001758
push dword [esi]
xor eax, eax
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
push 0x104
mov ecx, 0x82
lea edi, [ebp - 0x258]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x258]
push eax
push 0x1002a4d0
push str.newhost
push dword [ebp - 0x468]
mov byte [ebp - 4], 2
call ebx
lea eax, [ebp - 0x258]
push eax
call fcn.1001539a
pop ecx
push eax
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x494]
call fcn.1000162e
push dword [esi]
xor eax, eax
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
push 0x104
mov ecx, 0x82
lea edi, [ebp - 0x258]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x258]
push eax
push 0x1002a4d0
push str.name
push dword [ebp - 0x468]
call ebx
lea eax, [ebp - 0x258]
push eax
call fcn.1001539a
pop ecx
push eax
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x490]
call fcn.1000162e
push dword [esi]
xor eax, eax
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
push 0x104
mov ecx, 0x82
lea edi, [ebp - 0x258]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x258]
push eax
push 0x1002a4d0
push str.value
push dword [ebp - 0x468]
call ebx
lea eax, [ebp - 0x258]
push eax
call fcn.1001539a
pop ecx
push eax
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x48c]
call fcn.1000162e
push dword [esi]
xor eax, eax
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
push 0x104
mov ecx, 0x82
lea edi, [ebp - 0x258]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x258]
push eax
push 0x1002a4d0
push 0x1002e264
push dword [ebp - 0x468]
call ebx
lea eax, [ebp - 0x258]
push eax
call fcn.1001539a
pop ecx
push eax
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x488]
call fcn.1000162e
push dword [esi]
xor eax, eax
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
push 0x104
mov ecx, 0x82
lea edi, [ebp - 0x258]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x468]
lea eax, [ebp - 0x258]
push eax
push 0x1002a4d0
push str.repeat
push edi
call ebx
lea eax, [ebp - 0x258]
push eax
call fcn.1001539a
pop ecx
push eax
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x484]
call fcn.1000162e
push dword [esi]
push 0
push str.interval
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x470]
cmp dword [eax - 0xc], 0
jne 0x10014d99
lea ecx, [eax - 0x10]
call fcn.100013fc
lea ecx, [edi - 0x10]
jmp 0x10014e11
mov edi, dword [ebp - 0x474]
add edi, 8
push edi
mov dword [ebp - 0x498], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 3
call fcn.10001afa
lea ecx, [ebp - 0x494]
call fcn.10001afa
mov ecx, dword [ebp - 0x474]
lea eax, [ebp - 0x494]
push eax
lea eax, [ebp - 0x470]
push eax
add ecx, 0x20
call fcn.10014972
mov ecx, eax
call fcn.10013dd0
push edi
mov byte [ebp - 0x461], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x470]
add ecx, 0xfffffff0
call fcn.100013fc
mov ecx, dword [ebp - 0x468]
add ecx, 0xfffffff0
call fcn.100013fc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x494]
call fcn.10013a68
inc dword [ebp - 0x46c]
cmp dword [ebp - 0x46c], 0x64
jl 0x10014b1b
mov al, byte [ebp - 0x461]
call fcn.10015d07
ret