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

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x3f]
sub rsp, 0xf8
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rbx, rcx
mov rcx, qword [rcx + 0x88]
test rcx, rcx
je 0x140038574
xor esi, esi
cmp si, word [rcx]
je 0x140038574
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140038574
mov dl, 1
lea rcx, [rsp + 0x30]
call fcn.140036640
nop
mov rbx, qword [rbx + 0x88]
call fcn.1400284f0
mov rcx, rax
test rax, rax
jne 0x140038363
mov ecx, 0x80004005
call fcn.140028e20
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x6f], rax
or rdi, 0xffffffffffffffff
test rbx, rbx
je 0x1400383bc
test rbx, 0xffffffffffff0000
jne 0x1400383a5
movzx ebx, bx
xor edx, edx
mov ecx, ebx
call fcn.140027c50
test rax, rax
je 0x1400383ce
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp + 0x6f]
call fcn.140027e70
jmp 0x1400383ce
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400383b0
jmp 0x1400383be
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x6f]
call fcn.140028e40
nop
lea rdx, [rbp + 0x6f]
lea rcx, [rsp + 0x30]
call fcn.1400fb9d0
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 0x1400383fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
jne 0x140038548
mov dword [rbp + 0x67], esi
call fcn.1400284f0
mov rcx, rax
test rax, rax
jne 0x140038421
mov ecx, 0x80004005
call fcn.140028e20
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x7f], rax
lea rdx, str.LastLogIdx
test rdx, 0xffffffffffff0000
jne 0x140038461
movzx ebx, dx
xor edx, edx
mov ecx, ebx
call fcn.140027c50
test rax, rax
je 0x14003847b
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp + 0x7f]
call fcn.140027e70
jmp 0x14003847b
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x140038464
mov r8d, eax
lea rcx, [rbp + 0x7f]
call fcn.140028e40
nop
call fcn.1400284f0
mov rcx, rax
test rax, rax
jne 0x140038493
mov ecx, 0x80004005
call fcn.140028e20
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x77], rax
lea rdx, str.Config
test rdx, 0xffffffffffff0000
jne 0x1400384d3
movzx ebx, dx
xor edx, edx
mov ecx, ebx
call fcn.140027c50
test rax, rax
je 0x1400384ed
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp + 0x77]
call fcn.140027e70
jmp 0x1400384ed
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400384d6
mov r8d, eax
lea rcx, [rbp + 0x77]
call fcn.140028e40
nop
lea r9, [rbp + 0x67]
lea r8, [rbp + 0x7f]
lea rdx, [rbp + 0x77]
lea rcx, [rsp + 0x30]
call fcn.1400fd6c0
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 0x140038526
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x140038541
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
jne 0x140038548
mov esi, dword [rbp + 0x67]
lea rax, vtable.CoreTech::CObfuscatedIniReader.0
mov qword [rsp + 0x30], rax
lea rcx, [rbp - 0x21]
call fcn.140039110
lea rcx, [rbp - 0x69]
call fcn.1400390f0
lea rcx, [rsp + 0x30]
call fcn.140036590
mov eax, esi
jmp 0x140038576
xor eax, eax
add rsp, 0xf8
pop rdi
pop rsi
pop rbx
pop rbp
ret