Function at 0x1400166a0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x3f]
sub rsp, 0xe8
mov rbx, rcx
mov rcx, qword [rcx + 0x88]
test rcx, rcx
je 0x140016922
xor esi, esi
cmp si, word [rcx]
je 0x140016922
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140016922
mov dl, 1
lea rcx, [rsp + 0x20]
call fcn.140014fa0
nop
mov rbx, qword [rbx + 0x88]
call fcn.140014910
mov rcx, rax
test rax, rax
je 0x14001693b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x6f], rax
lea rdi, [rsi - 1]
test rbx, rbx
je 0x140016740
cmp rbx, 0x10000
jae 0x140016731
movzx edx, bx
lea rcx, [rbp + 0x6f]
call fcn.140016f50
jmp 0x140016752
mov rax, rdi
inc rax
cmp word [rbx + rax*2], 0
jne 0x140016734
jmp 0x140016742
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x6f]
call fcn.140018b00
nop
lea rdx, [rbp + 0x6f]
lea rcx, [rsp + 0x20]
call fcn.14004d500
test al, al
sete bl
mov rdx, qword [rbp + 0x6f]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140016782
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
jne 0x1400168b0
mov dword [rbp + 0x67], esi
mov rbx, qword [str.LastLogIdx]
call fcn.140014910
mov rcx, rax
test rax, rax
je 0x140016946
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x7f], rax
test rbx, rbx
je 0x1400167de
cmp rbx, 0x10000
jae 0x1400167cf
movzx edx, bx
lea rcx, [rbp + 0x7f]
call fcn.140016f50
jmp 0x1400167f0
mov rax, rdi
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400167d2
jmp 0x1400167e0
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x7f]
call fcn.140018b00
nop
mov rbx, qword [str.Config]
call fcn.140014910
mov rcx, rax
test rax, rax
je 0x140016930
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x77], rax
test rbx, rbx
je 0x140016841
cmp rbx, 0x10000
jae 0x140016832
movzx edx, bx
lea rcx, [rbp + 0x77]
call fcn.140016f50
jmp 0x140016853
mov rax, rdi
inc rax
cmp word [rbx + rax*2], 0
jne 0x140016835
jmp 0x140016843
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x77]
call fcn.140018b00
nop
lea r9, [rbp + 0x67]
lea r8, [rbp + 0x7f]
lea rdx, [rbp + 0x77]
lea rcx, [rsp + 0x20]
call fcn.14004bf60
test al, al
sete bl
mov rdx, qword [rbp + 0x77]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001688c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400168a9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
jne 0x1400168b0
mov esi, dword [rbp + 0x67]
lea rax, vtable.CoreTech::CObfuscatedIniReader.0
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x21]
call fcn.140015220
lea rcx, [rbp - 0x69]
call fcn.140015210
lea rax, vtable.CoreTech::CBaseIniReader.0
mov qword [rsp + 0x20], rax
mov rdx, qword [rbp - 0x79]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400168f7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x140016914
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, esi
add rsp, 0xe8
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor eax, eax
add rsp, 0xe8
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.14000b644
nop
mov ecx, 0x80004005
call fcn.14000b644
int3
mov ecx, 0x80004005
call fcn.14000b644
int3