Function at 0x140003770
Capabilities:
Check if file exists
Get file attributes
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov rax, qword [0x140067040]
xor rax, rsp
mov qword [rbp + 0x38], rax
mov r14, rdx
mov rsi, rcx
mov qword [rbp - 0x30], rcx
xor r15d, r15d
lea rcx, [rbp - 0x50]
call fcn.140003390
nop
lea rdx, str.config
lea rcx, [rbp - 0x50]
call fcn.14000d430
lea rcx, [rbp - 0x50]
cmp qword [rbp - 0x38], 7
cmova rcx, qword [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140003d4f
test al, 0x10
jne 0x140003d4f
lea rcx, [rbp - 0x50]
cmp qword [rbp - 0x38], 7
cmova rcx, qword [rbp - 0x50]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r15 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rbp - 0x30], rax
cmp rax, 0xffffffffffffffff
jne 0x1400039b7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
test eax, eax
je 0x1400039b7
lea r9, [rbp + 2]
nop dword [rax]
sub r9, 2
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dx
shl ax, 2
lea ecx, [rax + rdx]
add cx, cx
sub r8w, cx
add r8w, 0x30
mov word [r9], r8w
mov r8d, edx
test edx, edx
jne 0x140003840
lea r8, [rbp + 2]
mov rdx, r9
lea rcx, [rsp + 0x48]
call fcn.140015a80
nop
lea r8, [rsp + 0x48]
lea rdx, str.Coundt_open_config_file._Got_error:
lea rcx, [rbp + 8]
call fcn.14000e6c0
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r15
movups xmm0, xmmword [rax]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rax], r15w
mov byte [rsi + 0x20], 1
mov rdx, qword [rbp + 0x20]
cmp rdx, 7
jbe 0x140003907
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003902
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003db3
call fcn.140028848
movdqa xmm0, xmmword [0x14005d240]
movdqu xmmword [rbp + 0x18], xmm0
mov word [rbp + 8], r15w
mov rdx, qword [rsp + 0x60]
cmp rdx, 7
jbe 0x14000395b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003956
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003db9
call fcn.140028848
movdqa xmm0, xmmword [0x14005d240]
movdqu xmmword [rsp + 0x58], xmm0
mov word [rsp + 0x48], r15w
mov rdx, qword [rbp - 0x38]
cmp rdx, 7
jbe 0x140003d29
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003d24
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003da1
jmp 0x140003d24
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
add eax, 1
mov edi, eax
jne 0x1400039eb
mov qword [rbp - 0x60], rdi
mov byte [rbp + rax - 0x70], 0
jmp 0x140003a20
lea rcx, [rbp - 0x70]
cmp rdi, 0xf
ja 0x140003a0a
mov qword [rbp - 0x60], rdi
mov r8, rdi
xor edx, edx
call fcn.14004c440
mov byte [rbp + rdi - 0x70], 0
jmp 0x140003a20
mov byte [rsp + 0x20], 0
mov r9, rdi
movzx r8d, byte [rsp + 0x40]
mov rdx, rdi
call fcn.140011110
mov r8d, dword [rbp - 0x60]
dec r8d
lea rdx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0xf
cmova rdx, qword [rbp - 0x70]
mov qword [rsp + 0x20], r15
xor r9d, r9d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140003c30
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea r9, [rbp + 0x32]
nop dword [rax + rax]
sub r9, 2
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dx
shl ax, 2
lea ecx, [rax + rdx]
add cx, cx
sub r8w, cx
add r8w, 0x30
mov word [r9], r8w
mov r8d, edx
test edx, edx
jne 0x140003a60
lea r8, [rbp + 0x32]
mov rdx, r9
lea rcx, [rsp + 0x70]
call fcn.140015a80
nop
lea r8, [rsp + 0x70]
lea rdx, str.Coundt_read_config_file._Got_error:
lea rcx, [rbp - 0x28]
call fcn.14000e6c0
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r15
movups xmm0, xmmword [rax]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rax], r15w
mov byte [rsi + 0x20], 1
mov rdx, qword [rbp - 0x10]
cmp rdx, 7
jbe 0x140003b27
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003b22
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003dbf
call fcn.140028848
movdqa xmm0, xmmword [0x14005d240]
movdqu xmmword [rbp - 0x18], xmm0
mov word [rbp - 0x28], r15w
mov rdx, qword [rbp - 0x78]
cmp rdx, 7
jbe 0x140003b7a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003b75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003dc5
call fcn.140028848
movdqa xmm0, xmmword [0x14005d240]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], r15w
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x140003bc8
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003bc3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003dcb
call fcn.140028848
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
cmp rbx, 0xffffffffffffffff
je 0x140003be8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 7
jbe 0x140003d29
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003d24
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003da7
jmp 0x140003d24
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rbp - 0x28], xmm0
movups xmm1, xmmword [rbp - 0x60]
movups xmmword [rbp - 0x18], xmm1
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
lea rdx, [rbp - 0x28]
lea rcx, [rsp + 0x48]
call fcn.1400035e0
mov r8, rax
movzx ecx, byte [r14]
movzx eax, byte [rax]
mov byte [r14], al
mov byte [r8], cl
lea rcx, [r8 + 8]
mov rax, qword [r14 + 8]
mov rdx, qword [rcx]
mov qword [r14 + 8], rdx
mov qword [rcx], rax
movzx edx, byte [r8]
call fcn.14000dab0
nop
mov byte [rsi + 0x20], 0
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x140003cc9
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003cc4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003d9b
call fcn.140028848
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
cmp rbx, 0xffffffffffffffff
je 0x140003ce9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 7
jbe 0x140003d29
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003d24
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003dad
call fcn.140028848
mov rax, rsi
mov rcx, qword [rbp + 0x38]
xor rcx, rsp
call fcn.1400284c0
mov rbx, qword [rsp + 0x180]
add rsp, 0x140
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
lea rdx, [0x14005a770]
mov rcx, rsi
call fcn.14000bbc0
mov byte [rsi + 0x20], 1
mov rdx, qword [rbp - 0x38]
cmp rdx, 7
jbe 0x140003d29
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003d24
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003dad
jmp 0x140003d24
call fcn.140035764
nop
call fcn.140035764
int3
call fcn.140035764
int3
call fcn.140035764
nop
call fcn.140035764
nop
call fcn.140035764
nop
call fcn.140035764
nop
call fcn.140035764
nop
call fcn.140035764
int3