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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc90]
sub rsp, 0xd90
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0xde0], rbx
mov rax, qword [0x140092690]
xor rax, rsp
mov qword [rbp + 0xc80], rax
mov rsi, r9
mov rdi, r8
mov r14, rdx
mov rbx, rcx
xor edx, edx
mov r8d, 0x200
lea rcx, [rbp + 0x280]
call sub.VCRUNTIME140.dll_memset
lea rax, vtable.CEncrypter.0
mov qword [rsp + 0x40], rax
xor eax, eax
mov qword [rbp + 0x150], rax
mov qword [rbp + 0x158], rax
mov qword [rbp + 0x160], rax
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x480]
call sub.VCRUNTIME140.dll_memset
test rdi, rdi
je 0x14002e800
test r14, r14
je 0x14002e800
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x14002e460
mov edx, 1
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::LoadPreferredProfileList___started_
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
or rdi, 0xffffffffffffffff
mov r9, rdi
mov r8, r14
mov edx, 0x104
lea rcx, [rbp + 0x170]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
lea rdx, str.PreferredProfile.lst
lea rcx, [rbp + 0x170]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rbp + 0x170]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x14002e4f4
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x14002e4ea
lea rdx, str._tThe_preferred_profile_list_file_was_not_found_
call fcn.140025be0
lea edx, [rdi + 2]
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::LoadPreferredProfileList___completed_
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
lea edx, [rdi + 2]
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
mov eax, 0x8004329e
jmp 0x14002e805
lea r9, [rbp + 0x170]
xor r8d, r8d
lea rdx, str.Count
lea rcx, str.WLAN_PREFERRED_PROFILE_LIST
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movsxd r13, eax
test eax, eax
jle 0x14002e786
mov dword [rsi], r13d
mov r12, r13
mov rcx, r13
call sub.mfc140.dll_Ordinal_265
mov qword [rsi + 0x10], rax
test rax, rax
jne 0x14002e562
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x14002e558
lea rdx, str._tSystem_is_out_of_memory_while_allocating_memory_for_conversion_indicators_
call fcn.140025be0
mov rcx, qword [rbx + 0x510]
call fcn.140025dc0
mov eax, 0x80043298
jmp 0x14002e805
mov eax, 4
mul r12
cmovo rax, rdi
mov rcx, rax
call sub.mfc140.dll_Ordinal_265
mov qword [rsi + 0x18], rax
test rax, rax
jne 0x14002e594
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x14002e558
lea rdx, str._tSystem_is_out_of_memory_while_allocating_memory_for_profile_type_in_preferred_profile_list_
jmp 0x14002e547
mov eax, 8
mul r12
cmovo rax, rdi
mov rcx, rax
call sub.mfc140.dll_Ordinal_265
mov qword [rsi + 8], rax
test rax, rax
jne 0x14002e5c6
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x14002e558
lea rdx, str._tSystem_is_out_of_memory_allocating_memory_for_preferred_profile_name_list_
jmp 0x14002e547
test r13d, r13d
jle 0x14002e786
xor edi, edi
mov r15d, 1
lea rax, str.Profile
or r13, 0xffffffffffffffff
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rax
lea r9, str._s_d
mov r8, r13
mov edx, 0x18
lea rcx, [rbp + 0x150]
call fcn.140008c50
lea rax, [rbp + 0x170]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x200
lea r9, [rbp + 0x280]
lea r8, [0x140067a24]
lea rdx, [rbp + 0x150]
lea rcx, str.WLAN_PREFERRED_PROFILE_LIST
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [rsp + 0x20], 2
lea r9, [0x140067a24]
mov r8d, 0x200
lea rdx, [rbp + 0x280]
lea rcx, [rsp + 0x40]
call sym.iconvrtr.exe_public:_char_const____ptr64___cdecl_CEncrypter::DecryptString_char_const____ptr64__unsigned_long_long_unsigned___int64___char_const____ptr64__int____ptr64
mov r9, r13
mov r8, rax
mov edx, 0x200
lea rcx, [rbp + 0x280]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
xor r14d, r14d
mov edx, 0x208
lea rcx, [rbp + 0x280]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strnlen]
test rax, rax
je 0x14002e6ec
mov edx, 0x208
lea rcx, [rbp + 0x280]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strnlen]
lea r14d, [rax + 1]
mov ecx, r14d
call sub.mfc140.dll_Ordinal_265
mov rcx, qword [rsi + 8]
mov qword [rcx + rdi*8], rax
mov rcx, qword [rsi + 8]
cmp qword [rcx + rdi*8], 0
jne 0x14002e6f4
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x14002e6f4
lea rdx, str._tSystem_is_out_of_memory_allocating_memory_for_preferred_profile_name_
call fcn.140025be0
mov rcx, qword [rbx + 0x510]
call fcn.140025dc0
jmp 0x14002e6f4
mov rax, qword [rsi + 8]
mov qword [rax + rdi*8], r14
mov rax, qword [rsi + 8]
mov rcx, qword [rax + rdi*8]
test rcx, rcx
je 0x14002e724
mov edx, r14d
lea r8, [rbp + 0x280]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
mov rax, qword [rsi + 0x10]
mov byte [rdi + rax], 0
mov rax, qword [rsi + 0x18]
mov dword [rax + rdi*4], 0
cmp qword [rbx + 0x510], 0
je 0x14002e769
mov rax, qword [rsi + 8]
mov rcx, qword [rax + rdi*8]
mov qword [rsp + 0x20], rcx
lea r9, str._tLoaded_preferred_profile_name_for__s
mov r8, r13
mov edx, 0x800
lea rcx, [rbp + 0x480]
call fcn.140008c50
lea rdx, [rbp + 0x480]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
inc r15d
inc rdi
cmp rdi, r12
lea rax, str.Profile
jl 0x14002e5e2
mov r13d, r12d
or rdi, 0xffffffffffffffff
cmp qword [rbx + 0x510], 0
je 0x14002e7f9
mov dword [rsp + 0x20], r13d
lea r9, str._tNumber_of_preferred_profiles_found_in_list:__d
mov r8, rdi
mov edx, 0x800
lea rcx, [rbp + 0x480]
call fcn.140008c50
lea rdx, [rbp + 0x480]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::LoadPreferredProfileList___completed_
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
nop
mov eax, 0x43297
jmp 0x14002e805
mov eax, 0x800432b1
mov rcx, qword [rbp + 0xc80]
xor rcx, rsp
call fcn.140059ef0
mov rbx, qword [rsp + 0xde0]
add rsp, 0xd90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret