Function at 0x140015cf0
Capabilities:
Check if file exists
Copy file
Delete file
Get file attributes
Read .ini file
Set file attributes

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2680]
mov eax, 0x2780
call fcn.14005a020
sub rsp, rax
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x27c8], rbx
mov rax, qword [0x140092690]
xor rax, rsp
mov qword [rbp + 0x2670], rax
mov rbx, r8
mov edi, edx
mov r13, rcx
xor edx, edx
mov r8d, Ordinal_266
lea rcx, [rbp + 0x190]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, Ordinal_266
lea rcx, [rbp + 0x2a0]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, Ordinal_266
lea rcx, [rbp + 0x3b0]
call sub.VCRUNTIME140.dll_memset
mov word [rbp + 0x4c0], 0
xor edx, edx
mov r8d, 0x21a3
lea rcx, [rbp + 0x4c2]
call sub.VCRUNTIME140.dll_memset
or r9, 0xffffffffffffffff
mov r8, rbx
mov edx, Ordinal_265
lea rcx, [rbp + 0x190]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
or r9, 0xffffffffffffffff
mov r8, rbx
mov edx, Ordinal_265
lea rcx, [rbp + 0x2a0]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
or r9, 0xffffffffffffffff
mov r8, rbx
mov edx, Ordinal_265
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
lea rdx, str.IntelWirelessSettings
lea rcx, [rbp + 0x2a0]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rdx, str.Settings.ini
lea rcx, [rbp + 0x2a0]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rbp + 0x190]
test edi, edi
je 0x140015e3c
lea rdx, str.IntelWirelessSettings.sav
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rdx, str.Settings.ini
lea rcx, [rbp + 0x190]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rdx, str.IntelWirelessSettings.sav
jmp 0x140015e55
lea r8, [rbp + 0x2a0]
mov edx, Ordinal_265
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
lea rdx, str.IntelWirelessSettings
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rdx, str._version.ini
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rbp + 0x190]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x1400161cf
lea rcx, [r13 + 0x10]
lea rdx, str.10.0.0.0
call qword [sym.imp.mfc140.dll_Ordinal_2899]
lea rcx, [rbp + 0x190]
test eax, eax
jne 0x140015ebc
xor r8d, r8d
lea rdx, [rbp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_CopyFileA]
jmp 0x1400161cf
mov edx, Ordinal_265
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strnlen]
mov r14, rax
lea r12, str.BalloonTipTimeout
mov rdi, r12
lea rsi, [rbp + 0x4c0]
mov ebx, 0xa
mov r15d, ebx
lea rax, [rbp + 0x190]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
mov r9, rsi
lea r8, [0x140064d60]
mov rdx, qword [rdi]
lea rcx, [0x140065cb4]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add rsi, 0x105
lea rdi, [rdi + 8]
sub r15, 1
jne 0x140015ee3
mov r15d, 0x11
lea rsi, str.1xCurrCredentialRetries
lea rdi, str.LaunchLowTime
movsxd rax, r15d
imul rcx, rax, 0x105
lea r9, [rbp + 0x4c0]
add r9, rcx
lea rax, [rbp + 0x190]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
lea r8, [0x140064d60]
mov rdx, qword [rsi]
lea rcx, str.ZCfgSvc
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
inc r15d
add rsi, 8
cmp rsi, rdi
jl 0x140015f33
mov esi, 0x1d
lea r15, str.HideEaseOfUse
nop word [rax + rax]
movsxd rax, esi
imul rcx, rax, 0x105
lea r9, [rbp + 0x4c0]
add r9, rcx
lea rax, [rbp + 0x190]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
lea r8, [0x140064d60]
mov rdx, qword [rdi]
lea rcx, [0x140065d64]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
inc esi
add rdi, 8
cmp rdi, r15
jl 0x140015f90
lea rax, [rbp + 0x190]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
lea r9, [rbp + 0x2560]
lea r8, [0x140064d60]
mov rdx, qword [str.Chksum]
lea rcx, str.ChkSum
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
nop word [rax + rax]
movsxd rax, ebx
mov edx, 0x21
sub rdx, rax
imul rcx, rax, 0x105
lea rax, [rbp + 0x4c0]
add rcx, rax
cmp ebx, 0xe
lea r8, [0x14006544c]
je 0x14001603f
lea r8, [0x140064d60]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
inc ebx
cmp ebx, 0x11
jl 0x140016010
lea r8, [0x140064d60]
mov edx, 2
lea rcx, [rbp + 0x245b]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
xor eax, eax
mov qword [rbp + 0x150], rax
mov qword [rbp + 0x158], rax
mov qword [rbp + 0x160], rax
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x170], rax
mov qword [rbp + 0x178], rax
mov word [rbp + 0x180], ax
lea rcx, [rbp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 0xfffffffe
mov edx, eax
lea rcx, [rbp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rbp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
xor ebx, ebx
cmp ebx, 0x11
jge 0x1400160d4
lea r8, [0x140065cb4]
jmp 0x1400160f9
cmp ebx, 0x1d
jge 0x1400160e2
lea r8, str.ZCfgSvc
jmp 0x1400160f9
cmp ebx, 0x20
jge 0x1400160f0
lea r8, [0x140065d64]
jmp 0x1400160f9
jne 0x14001610b
lea r8, str.ChkSum
mov edx, 0x32
lea rcx, [rbp + 0x150]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
movsxd rax, ebx
imul rcx, rax, 0x105
lea r8, [rbp + 0x4c0]
add r8, rcx
lea r9, [rbp + 0x2a0]
mov rdx, qword [r12]
lea rcx, [rbp + 0x150]
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
test eax, eax
jne 0x140016165
lea edx, [rax + 1]
mov rcx, qword [r13 + 8]
call fcn.140025ed0
lea rdx, str._tCGolanSetting::UpdateUserIni90To100_______Write_INI_error_
mov rcx, qword [r13 + 8]
call fcn.140025be0
mov edx, 1
mov rcx, qword [r13 + 8]
call fcn.140025ed0
inc ebx
add r12, 8
cmp ebx, 0x21
jl 0x1400160c6
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x40]
call qword [sym.imp.IntStngs.dll_public:_void___cdecl_CUserSettings::constructor_unsigned_long_int__int____ptr64]
nop
lea rdx, [rbp + 0x2a0]
lea rcx, [rsp + 0x40]
call qword [sym.imp.IntStngs.dll_public:_int___cdecl_CUserSettings::SetChecksum_char_const____ptr64____ptr64]
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 0xfffffffe
mov edx, eax
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rbp + 0x3b0]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.IntStngs.dll_public:_void___cdecl_CUserSettings::destructor_void____ptr64]
mov rcx, qword [rbp + 0x2670]
xor rcx, rsp
call fcn.140059ef0
mov rbx, qword [rsp + 0x27c8]
add rsp, 0x2780
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret