Function at 0x1400015b0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov r12, r8
mov rbx, rdx
mov r13, rcx
xor r15d, r15d
mov esi, r15d
mov dword [rbp + 0x50], r15d
mov r14d, pe_nt_image_headers64
lea rdi, [rcx + 0x10]
nop dword [rax]
mov edx, r14d
mov rcx, r12
call qword [sym.imp.CrlPlatform.dll_public:_wchar_t____ptr64___cdecl_CrlPlatform::CrlStringT_wchar_t_::GetBuffer_int____ptr64]
mov qword [rsp + 0x50], rax
mov rcx, rdi
call qword [sym.imp.CrlPlatform.dll_public:_wchar_t_const____ptr64___cdecl_CrlPlatform::CrlStringT_wchar_t_::operator_wchar_t_const____ptr64_void_const___ptr64]
mov qword [rsp + 0x68], rax
mov edx, 0x2f
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.CrlPlatform.dll_public:_int___cdecl_CrlPlatform::CrlStringT_wchar_t_::ReverseFind_wchar_t__enum_CrlPlatform::CompareCase_const___ptr64]
test eax, eax
js 0x140001638
lea r8d, [rax + 1]
lea rdx, [rsp + 0x48]
mov rcx, rbx
call qword [sym.imp.CrlPlatform.dll_public:_class_CrlPlatform::CrlStringT_wchar_t____cdecl_CrlPlatform::CrlStringT_wchar_t_::Mid_int____ptr64]
jmp 0x140001646
mov rdx, rbx
lea rcx, [rsp + 0x48]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t__const____ptr64____ptr64]
or esi, 1
lea rcx, [rsp + 0x48]
call qword [sym.imp.CrlPlatform.dll_public:_wchar_t_const____ptr64___cdecl_CrlPlatform::CrlStringT_wchar_t_::operator_wchar_t_const____ptr64_void_const___ptr64]
mov qword [rsp + 0x58], rax
mov edx, 0x2f
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.CrlPlatform.dll_public:_int___cdecl_CrlPlatform::CrlStringT_wchar_t_::ReverseFind_wchar_t__enum_CrlPlatform::CompareCase_const___ptr64]
test eax, eax
js 0x140001680
mov r8d, eax
lea rdx, [rbp + 0x68]
mov rcx, rbx
call qword [sym.imp.CrlPlatform.dll_public:_class_CrlPlatform::CrlStringT_wchar_t____cdecl_CrlPlatform::CrlStringT_wchar_t_::Left_int____ptr64]
jmp 0x14000168a
lea rcx, [rbp + 0x68]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_void____ptr64]
or esi, 8
or esi, 2
mov dword [rbp + 0x50], esi
lea rcx, [rbp + 0x68]
call qword [sym.imp.CrlPlatform.dll_public:_bool___cdecl_CrlPlatform::CrlStringT_wchar_t_::IsEmpty_void_const___ptr64]
test al, al
jne 0x1400016b4
lea rcx, [r13 + 0x18]
call qword [sym.imp.CrlPlatform.dll_public:_bool___cdecl_CrlPlatform::CrlStringT_wchar_t_::IsEmpty_void_const___ptr64]
test al, al
jne 0x1400016b4
mov dil, 1
jmp 0x1400016b7
xor dil, dil
test sil, 2
je 0x1400016ca
and esi, 0xfffffffd
lea rcx, [rbp + 0x68]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
mov edx, 0x2f
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.CrlPlatform.dll_public:_int___cdecl_CrlPlatform::CrlStringT_wchar_t_::ReverseFind_wchar_t__enum_CrlPlatform::CompareCase_const___ptr64]
test dil, dil
je 0x1400017a3
test eax, eax
js 0x1400016fb
mov r8d, eax
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.CrlPlatform.dll_public:_class_CrlPlatform::CrlStringT_wchar_t____cdecl_CrlPlatform::CrlStringT_wchar_t_::Left_int____ptr64]
jmp 0x140001706
lea rcx, [rsp + 0x30]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_void____ptr64]
or esi, 0x10
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x60]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringViewT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t__const____ptr64____ptr64]
mov rdi, rax
lea rdx, [0x140014fd0]
lea rcx, [rbp - 0x50]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringViewT_wchar_t_::constructor_wchar_t_const____ptr64____ptr64]
mov rcx, qword [rax]
mov qword [rsp + 0x70], rcx
mov ecx, dword [rax + 8]
mov dword [rsp + 0x78], ecx
lea rdx, [r13 + 0x18]
lea rcx, [rbp - 0x40]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringViewT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t__const____ptr64____ptr64]
lea r8, [rsp + 0x70]
mov rdx, rax
lea rcx, [rsp + 0x60]
call qword [sym.imp.CrlPlatform.dll_class_CrlPlatform::CrlStringT_wchar_t____cdecl_CrlPlatform::operator_wchar_t__class_CrlPlatform::CrlStringViewT_wchar_t___class_CrlPlatform::CrlStringViewT_wchar_t__]
or esi, 0x20
mov rax, qword [rdi]
mov qword [rbp - 0x80], rax
mov eax, dword [rdi + 8]
mov dword [rbp - 0x78], eax
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x30]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringViewT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t__const____ptr64____ptr64]
lea r8, [rbp - 0x80]
mov rdx, rax
lea rcx, [rsp + 0x40]
call qword [sym.imp.CrlPlatform.dll_class_CrlPlatform::CrlStringT_wchar_t____cdecl_CrlPlatform::operator_wchar_t__class_CrlPlatform::CrlStringViewT_wchar_t___class_CrlPlatform::CrlStringViewT_wchar_t__]
or esi, 0x44
lea rcx, [rsp + 0x60]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x30]
jmp 0x140001810
test eax, eax
js 0x1400017ba
mov r8d, eax
lea rdx, [rsp + 0x38]
mov rcx, rbx
call qword [sym.imp.CrlPlatform.dll_public:_class_CrlPlatform::CrlStringT_wchar_t____cdecl_CrlPlatform::CrlStringT_wchar_t_::Left_int____ptr64]
jmp 0x1400017c5
lea rcx, [rsp + 0x38]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_void____ptr64]
bts esi, 7
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x20]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringViewT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t__const____ptr64____ptr64]
mov rcx, qword [rax]
mov qword [rbp - 0x70], rcx
mov eax, dword [rax + 8]
mov dword [rbp - 0x68], eax
lea rdx, [r13 + 0x18]
lea rcx, [rbp - 0x10]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringViewT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t__const____ptr64____ptr64]
lea r8, [rbp - 0x70]
mov rdx, rax
lea rcx, [rsp + 0x40]
call qword [sym.imp.CrlPlatform.dll_class_CrlPlatform::CrlStringT_wchar_t____cdecl_CrlPlatform::operator_wchar_t__class_CrlPlatform::CrlStringViewT_wchar_t___class_CrlPlatform::CrlStringViewT_wchar_t__]
or esi, 0x104
lea rcx, [rsp + 0x38]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
lea rcx, [rsp + 0x40]
call qword [sym.imp.CrlPlatform.dll_public:_wchar_t_const____ptr64___cdecl_CrlPlatform::CrlStringT_wchar_t_::operator_wchar_t_const____ptr64_void_const___ptr64]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r14d
mov r9, qword [rsp + 0x50]
lea r8, str.D2D90953_6E3B_4a5c_818C_1A0DA77231B8
mov rdx, qword [rsp + 0x58]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, eax
lea rcx, [rsp + 0x40]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
mov edx, edi
mov rcx, r12
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::ReleaseBufferSetLength_int____ptr64]
lea rdx, str.D2D90953_6E3B_4a5c_818C_1A0DA77231B8
lea rcx, [rbp]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringViewT_wchar_t_::constructor_wchar_t_const____ptr64____ptr64]
mov rdx, rax
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.CrlPlatform.dll_public:_int___cdecl_CrlPlatform::CrlStringT_wchar_t_::Compare_class_CrlPlatform::CrlStringViewT_wchar_t___enum_CrlPlatform::CompareCase_const___ptr64]
test eax, eax
je 0x1400019c9
lea eax, [rdi + 1]
cmp eax, r14d
jb 0x1400018aa
add r14d, r14d
lea rdi, [r13 + 0x10]
jmp 0x1400015f0
mov rdx, r12
lea rcx, [rsp + 0x58]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t__const____ptr64____ptr64]
mov rdi, rax
mov qword [rsp + 0x68], rax
mov rcx, rax
call qword [sym.imp.CrlPlatform.dll_public:_bool___cdecl_CrlPlatform::CrlStringT_wchar_t_::IsEmpty_void_const___ptr64]
test al, al
je 0x1400018dc
lea rcx, [rbp + 0x50]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_void____ptr64]
jmp 0x1400019a5
xor edx, edx
mov rcx, rdi
call qword [sym.imp.CrlPlatform.dll_public:_wchar_t___cdecl_CrlPlatform::CrlStringT_wchar_t_::operator___int_const___ptr64]
cmp ax, 0x3e
je 0x1400018ff
mov rdx, rdi
lea rcx, [rbp + 0x50]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t_____ptr64____ptr64]
jmp 0x1400019a5
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, rdi
call qword [sym.imp.CrlPlatform.dll_public:_int___cdecl_CrlPlatform::CrlStringT_wchar_t_::Delete_int__int____ptr64]
lea rcx, [rbp + 0x68]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_void____ptr64]
nop
mov rcx, rdi
call qword [sym.imp.CrlPlatform.dll_public:_int___cdecl_CrlPlatform::CrlStringT_wchar_t_::GetLength_void_const___ptr64]
test eax, eax
jle 0x14000198b
nop word [rax + rax]
mov r9d, 4
mov r8d, r15d
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.CrlPlatform.dll_public:_class_CrlPlatform::CrlStringT_wchar_t____cdecl_CrlPlatform::CrlStringT_wchar_t_::Mid_int__int____ptr64]
mov rcx, rax
call qword [sym.imp.CrlPlatform.dll_public:_wchar_t_const____ptr64___cdecl_CrlPlatform::CrlStringT_wchar_t_::operator_wchar_t_const____ptr64_void_const___ptr64]
mov rcx, rax
xor edx, edx
lea r8d, [rdx + 0x10]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstol]
mov ebx, eax
lea rcx, [rsp + 0x50]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
movzx edx, bx
lea rcx, [rbp + 0x68]
call qword [sym.imp.CrlPlatform.dll_public:_class_CrlPlatform::CrlStringT_wchar_t_____ptr64___cdecl_CrlPlatform::CrlStringT_wchar_t_::operator_wchar_t____ptr64]
add r15d, 4
mov rcx, rdi
call qword [sym.imp.CrlPlatform.dll_public:_int___cdecl_CrlPlatform::CrlStringT_wchar_t_::GetLength_void_const___ptr64]
cmp r15d, eax
jl 0x140001930
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x50]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::constructor_class_CrlPlatform::CrlStringT_wchar_t_____ptr64____ptr64]
nop
lea rcx, [rbp + 0x68]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
nop
mov rcx, rdi
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
lea rdx, [rbp + 0x50]
mov rcx, r12
call qword [sym.imp.CrlPlatform.dll_public:_class_CrlPlatform::CrlStringT_wchar_t_____ptr64___cdecl_CrlPlatform::CrlStringT_wchar_t_::operator_class_CrlPlatform::CrlStringT_wchar_t_____ptr64____ptr64]
lea rcx, [rbp + 0x50]
call qword [sym.imp.CrlPlatform.dll_public:_void___cdecl_CrlPlatform::CrlStringT_wchar_t_::destructor_void____ptr64]
mov al, 1
jmp 0x1400019cb
xor al, al
mov rbx, qword [rsp + 0x158]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret