Function at 0x140030df0
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 0x1400310b8
xor esi, esi
cmp si, word [rcx]
je 0x1400310b8
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400310b8
mov dl, 1
lea rcx, [rsp + 0x20]
call fcn.14002f650
nop
mov rbx, qword [rbx + 0x88]
call fcn.1400015f0
mov rcx, rax
test rax, rax
je 0x1400310d1
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140080788.0]
add rax, 0x18
mov qword [rbp + 0x6f], rax
lea rdi, [rsi - 1]
test rbx, rbx
je 0x140030e9c
cmp rbx, 0x10000
jae 0x140030e88
movzx edx, bx
lea rcx, [rbp + 0x6f]
call fcn.14002e210
jmp 0x140030eae
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140030e90
jmp 0x140030e9e
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x6f]
call fcn.14002e450
nop
lea rdx, [rbp + 0x6f]
lea rcx, [rsp + 0x20]
call fcn.140079a70
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 0x140030ee5
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140080788.0]
test bl, bl
jne 0x140031039
mov dword [rbp + 0x67], esi
mov rbx, qword [str.LastLogIdx]
call fcn.1400015f0
mov rcx, rax
test rax, rax
je 0x1400310dc
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140080788.0]
add rax, 0x18
mov qword [rbp + 0x7f], rax
test rbx, rbx
je 0x140030f4c
cmp rbx, 0x10000
jae 0x140030f39
movzx edx, bx
lea rcx, [rbp + 0x7f]
call fcn.14002e210
jmp 0x140030f5e
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140030f40
jmp 0x140030f4e
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x7f]
call fcn.14002e450
nop
mov rbx, qword [str.Config]
call fcn.1400015f0
mov rcx, rax
test rax, rax
je 0x1400310c6
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140080788.0]
add rax, 0x18
mov qword [rbp + 0x77], rax
test rbx, rbx
je 0x140030fbc
cmp rbx, 0x10000
jae 0x140030fa7
movzx edx, bx
lea rcx, [rbp + 0x77]
call fcn.14002e210
jmp 0x140030fce
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x140030fb0
jmp 0x140030fbe
mov eax, esi
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x77]
call fcn.14002e450
nop
lea r9, [rbp + 0x67]
lea r8, [rbp + 0x7f]
lea rdx, [rbp + 0x77]
lea rcx, [rsp + 0x20]
call fcn.140077f90
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 0x14003100e
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140080788.0]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140031032
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140080788.0]
test bl, bl
jne 0x140031039
mov esi, dword [rbp + 0x67]
lea rax, vtable.CoreTech::CObfuscatedIniReader.0
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x21]
call fcn.14002f8e0
lea rcx, [rbp - 0x69]
call fcn.14002f8d0
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 0x140031087
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140080788.0]
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x1400310aa
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x140080788.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.14002de50
nop
mov ecx, 0x80004005
call fcn.14002de50
int3
mov ecx, 0x80004005
call fcn.14002de50
int3