Function at 0x18005df60
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x18007d010]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
xor r15d, r15d
mov dword [rsp + 0x30], r15d
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
movdqa xmm1, xmmword [0x1800721b0]
movdqu xmmword [rbp - 0x58], xmm1
mov word [rbp - 0x68], r15w
lea r9, [rbp - 0x70]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1800688b0]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
je 0x18005dfd9
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x28]
call fcn.18001b610
mov rbx, rax
lea rax, [rbp - 0x68]
cmp rax, rbx
je 0x18005e05f
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x18005e02e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e029
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005e096
call fcn.1800651f4
movdqa xmm0, xmmword [0x1800721b0]
movdqu xmmword [rbp - 0x58], xmm0
mov word [rbp - 0x68], r15w
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x68], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x58], xmm1
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], 7
mov word [rbx], r15w
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x18005e0a2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e09d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e09d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800651f4
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
call fcn.180064c28
lea rcx, str.SOTFconfigconfig.ini
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], 0x17
lea r8, [rbp - 0x80]
mov edx, eax
lea rcx, [rsp + 0x38]
call fcn.180001dd0
nop
mov rdi, qword [rsp + 0x48]
lea r9, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae r9, qword [rsp + 0x38]
mov rsi, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
sub rax, rsi
cmp rdi, rax
ja 0x18005e12e
lea rax, [rsi + rdi]
mov qword [rbp - 0x58], rax
lea rbx, [rbp - 0x68]
cmp rcx, 8
cmovae rbx, qword [rbp - 0x68]
lea rcx, [rbx + rsi*2]
lea r8, [rdi + rdi]
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
lea rax, [rdi + rsi]
mov word [rbx + rax*2], r15w
jmp 0x18005e140
mov qword [rsp + 0x20], rdi
mov rdx, rdi
lea rcx, [rbp - 0x68]
call fcn.18001af40
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x18005e185
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e180
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e180
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800651f4
lea rsi, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rsi, qword [rbp - 0x68]
mov rdi, qword [rbp - 0x58]
call fcn.180064c28
mov r14d, eax
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
movdqa xmm1, xmmword [0x1800721d0]
movdqu xmmword [rbp - 0x38], xmm1
mov byte [rbp - 0x48], 0
mov dword [rsp + 0x30], 0x23
test rdi, rdi
je 0x18005e22d
cmp rdi, 0x7fffffff
ja 0x18005e7f2
mov dword [rsp + 0x20], r15d
xor r9d, r9d
mov r8d, edi
mov rdx, rsi
mov ecx, eax
call fcn.180064c98
mov rbx, rax
shr rax, 0x20
test eax, eax
jne 0x18005e7f8
movsxd rdx, ebx
lea rcx, [rbp - 0x48]
call fcn.18001ac30
lea r9, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae r9, qword [rbp - 0x48]
mov dword [rsp + 0x20], ebx
mov r8d, edi
mov rdx, rsi
mov ecx, r14d
call fcn.180064c98
shr rax, 0x20
test eax, eax
jne 0x18005e7ea
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae rdx, qword [rbp - 0x48]
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
mov rdi, 0xffffffffffffffff
mov r8, rdi
inc r8
cmp byte [rdx + r8], 0
jne 0x18005e256
lea rcx, [rsp + 0x58]
call fcn.180001c70
nop
lea rdx, [rsp + 0x58]
lea rcx, [rbp]
call fcn.18001ab10
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x18005e2ba
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e2b5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e2b5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800651f4
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x20]
call fcn.180060130
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], r15
cmp qword [rbp + 0x10], 0
je 0x18005e55b
xor edx, edx
mov r8d, pe_nt_image_headers64
lea rcx, [rbp + 0x80]
call sub.VCRUNTIME140.dll_memset
xor r8d, r8d
lea rdx, [rbp]
lea rcx, [rbp + 0x80]
call fcn.18005b660
nop
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x80]
call fcn.18005b8c0
movzx esi, al
mov rbx, qword [rbp + 0x198]
test rbx, rbx
je 0x18005e365
mov edx, edi
lock xadd dword [rbx + 8], edx
cmp edx, 1
jne 0x18005e365
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x18005e365
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x80], rax
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x7c], edx
lea rcx, [rbp + 0x90]
call fcn.18005fc20
lea rcx, [rbp + 0x98]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x130]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
test sil, sil
je 0x18005e55b
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov r8d, 0xe
lea rdx, str.Open_close_key
lea rcx, [rsp + 0x58]
call fcn.180001c70
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x20]
call fcn.18005ecf0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r15
mov r8d, 9
lea rdx, str.key_value
lea rcx, [rsp + 0x38]
call fcn.180001c70
lea r8, [rsp + 0x38]
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.18005e900
nop
mov r8d, 0x10
mov rcx, rax
call fcn.18005a590
mov dword [0x18007d034], eax
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x18005e48a
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e485
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e485
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800651f4
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov r8d, 0xd
lea rdx, str.Show_Terminal
lea rcx, [rsp + 0x58]
call fcn.180001c70
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x20]
call fcn.18005ecf0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r15
mov r8d, 5
lea rdx, str.value
lea rcx, [rsp + 0x38]
call fcn.180001c70
lea r8, [rsp + 0x38]
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.18005e900
nop
mov r8d, 0xa
mov rcx, rax
call fcn.18005a590
test eax, eax
setne byte [0x180112c64]
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x18005e6cb
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e6c5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e6c5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov r8d, 0xe
lea rdx, str.Open_close_key
lea rcx, [rsp + 0x58]
call fcn.180001c70
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x20]
call fcn.18005ecf0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r15
mov r8d, 9
lea rdx, str.key_value
lea rcx, [rsp + 0x38]
call fcn.180001c70
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.18005eab0
mov r8d, 4
lea rdx, str.0x50
mov rcx, rax
call fcn.18001acc0
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov r8d, 0xd
lea rdx, str.Show_Terminal
lea rcx, [rsp + 0x58]
call fcn.180001c70
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x20]
call fcn.18005ecf0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r15
mov r8d, 5
lea rdx, str.value
lea rcx, [rsp + 0x38]
call fcn.180001c70
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.18005eab0
mov r8d, 1
lea rdx, [0x18006fff0]
mov rcx, rax
call fcn.18001acc0
cmp qword [rbp + 0x10], 0
je 0x18005e6cb
lea rdx, [rbp]
lea rcx, [rbp - 0x28]
call fcn.18001ab10
nop
mov byte [rbp - 8], 1
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x28]
call fcn.18005d780
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x18005e6cb
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e6c5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e6c5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800651f4
nop
lea rcx, [rbp + 0x60]
call fcn.18005ef10
lea rcx, [rbp + 0x20]
call fcn.18005ddf0
nop
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x18005e71c
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e717
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e717
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800651f4
mov qword [rbp + 0x10], r15
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
mov rdx, qword [rbp - 0x30]
cmp rdx, 0x10
jb 0x18005e76a
inc rdx
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e765
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e765
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800651f4
movdqa xmm0, xmmword [0x1800721d0]
movdqu xmmword [rbp - 0x38], xmm0
mov byte [rbp - 0x48], 0
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x18005e7be
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18005e7b9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18005e7b9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800651f4
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.180064e10
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov ecx, eax
call fcn.180001d90
int3
call fcn.180001750
int3
mov ecx, eax
call fcn.180001d90
int3