Function at 0x14004e360
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 0x14004e628
xor esi, esi
cmp si, word [rcx]
je 0x14004e628
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14004e628
mov dl, 1
lea rcx, [rsp + 0x20]
call fcn.14004cbc0
nop
mov rbx, qword [rbx + 0x88]
call fcn.140019780
mov rcx, rax
test rax, rax
je 0x14004e641
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14005f7f8.0]
add rax, 0x18
mov qword [rbp + 0x6f], rax
lea rdi, [rsi - 1]
test rbx, rbx
je 0x14004e40c
cmp rbx, 0x10000
jae 0x14004e3f8
movzx edx, bx
lea rcx, [rbp + 0x6f]
call fcn.140049c00
jmp 0x14004e41e
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x14004e400
jmp 0x14004e40e
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x6f]
call fcn.140049e40
nop
lea rdx, [rbp + 0x6f]
lea rcx, [rsp + 0x20]
call fcn.140058780
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 0x14004e455
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005f7f8.0]
test bl, bl
jne 0x14004e5a9
mov dword [rbp + 0x67], esi
mov rbx, qword [str.LastLogIdx]
call fcn.140019780
mov rcx, rax
test rax, rax
je 0x14004e64c
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14005f7f8.0]
add rax, 0x18
mov qword [rbp + 0x7f], rax
test rbx, rbx
je 0x14004e4bc
cmp rbx, 0x10000
jae 0x14004e4a9
movzx edx, bx
lea rcx, [rbp + 0x7f]
call fcn.140049c00
jmp 0x14004e4ce
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x14004e4b0
jmp 0x14004e4be
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x7f]
call fcn.140049e40
nop
mov rbx, qword [str.Config]
call fcn.140019780
mov rcx, rax
test rax, rax
je 0x14004e636
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x14005f7f8.0]
add rax, 0x18
mov qword [rbp + 0x77], rax
test rbx, rbx
je 0x14004e52c
cmp rbx, 0x10000
jae 0x14004e517
movzx edx, bx
lea rcx, [rbp + 0x77]
call fcn.140049c00
jmp 0x14004e53e
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x14004e520
jmp 0x14004e52e
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x77]
call fcn.140049e40
nop
lea r9, [rbp + 0x67]
lea r8, [rbp + 0x7f]
lea rdx, [rbp + 0x77]
lea rcx, [rsp + 0x20]
call fcn.1400568b0
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 0x14004e57e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005f7f8.0]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14004e5a2
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005f7f8.0]
test bl, bl
jne 0x14004e5a9
mov esi, dword [rbp + 0x67]
lea rax, vtable.CoreTech::CObfuscatedIniReader.0
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x21]
call fcn.14004ce50
lea rcx, [rbp - 0x69]
call fcn.14004ce40
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 0x14004e5f7
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14005f7f8.0]
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x14004e61a
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x14005f7f8.0]
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.1400214a0
nop
mov ecx, 0x80004005
call fcn.1400214a0
int3
mov ecx, 0x80004005
call fcn.1400214a0
int3