Function at 0x140208450
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x110]
sub rsp, 0x210
mov rax, qword [0x1404779b8]
xor rax, rsp
mov qword [rbp + 0x108], rax
mov rdi, rcx
mov qword [rbp + 0xc0], rcx
xor r12d, r12d
mov dword [rsp + 0x38], r12d
lea rcx, str.C:ProgramDataASUSASUS_System_Control_InterfaceAsusSystemAnalysis_
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea r13, [0x14034e030]
bt eax, 0xa
jae 0x1402084bc
mov rcx, r13
call fcn.14028c4fc
lea rcx, str.C:ProgramData_
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1402084d5
shr eax, 4
and al, 1
jne 0x1402084e1
lea rcx, str.C:ProgramData_
call fcn.14028aeb4
lea rcx, str.C:ProgramDataASUS_
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1402084fa
shr eax, 4
and al, 1
jne 0x140208506
lea rcx, str.C:ProgramDataASUS_
call fcn.14028aeb4
lea rcx, str.C:ProgramDataASUSASUS_System_Control_Interface_
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x14020851f
shr eax, 4
and al, 1
jne 0x14020852b
lea rcx, str.C:ProgramDataASUSASUS_System_Control_Interface_
call fcn.14028aeb4
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140208540
shr eax, 4
and al, 1
jne 0x140208548
mov rcx, r13
call fcn.14028aeb4
lea rcx, str.C:ProgramDataASUSASUS_System_Control_InterfaceAsusSystemAnalysis_
call fcn.140205ee0
mov r15d, SafeArrayLock
mov qword [rbp + 0xe0], r15
mov r8d, SafeArrayGetLBound
mov qword [rbp + 0xd8], r8
movsd xmm0, qword [str.ActiveDate.dat]
movsd qword [rbp + 0xc8], xmm0
mov eax, dword [0x140364ba8]
mov dword [rbp + 0xd0], eax
movzx eax, word [0x140364bac]
mov word [rbp + 0xd4], ax
mov byte [rbp + 0xd6], 0
mov r14d, 0x45
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, r14d
lea rcx, [rbp + 0xc8]
call fcn.1400ec890
mov qword [rbp + 0xe8], r12
mov qword [rbp + 0xf8], r12
mov qword [rbp + 0x100], r12
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xe8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xf8], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r15
mov byte [rax], 0
mov rdx, qword [rbp + 0xe0]
cmp rdx, 0x10
jb 0x14020863a
inc rdx
mov rcx, qword [rbp + 0xc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140208635
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402090c2
call fcn.14021ecec
lea rax, [0x14034dce8]
mov qword [rsp + 0x70], rax
mov qword [rbp + 0x20], r12
mov qword [rbp + 0x48], r12
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x50], xmm0
mov dword [rsp + 0x38], 3
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x18], rax
mov dword [rbp + 0x14], 0x98
xor r8d, r8d
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x18]
call fcn.140169070
nop
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rsp + 0x78]
call fcn.1401f4bb0
nop
mov qword [rbp + 0xc8], r12
mov qword [rbp + 0xd8], r12
mov qword [rbp + 0xe0], r12
mov r14, qword [rbp + 0xf8]
lea rsi, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rsi, qword [rbp + 0xe8]
movabs rax, 0x7fffffffffffffff
cmp r14, 0x10
jae 0x140208707
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0xc8], xmm0
mov rbx, r15
jmp 0x140208734
mov rbx, r14
or rbx, 0xf
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
call fcn.1400eb1a0
mov qword [rbp + 0xc8], rax
lea r8, [r14 + 1]
mov rdx, rsi
mov rcx, rax
call fcn.140253310
mov qword [rbp + 0xd8], r14
mov qword [rbp + 0xe0], rbx
lea rcx, [rbp + 0xc8]
call fcn.14020cb50
mov esi, 6
lea r14d, [rsi - 2]
lea r13d, [rsi - 4]
test al, al
je 0x140208a7f
lea rcx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rcx, qword [rbp + 0xe8]
mov dl, 0x6b
call fcn.1401fbb20
mov qword [rbp + 0xc8], r12
mov qword [rbp + 0xd8], r12
mov qword [rbp + 0xe0], r12
mov r13, qword [rbp + 0xf8]
lea r15, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae r15, qword [rbp + 0xe8]
cmp r13, 0x10
jae 0x1402087d0
movups xmm0, xmmword [r15]
movups xmmword [rbp + 0xc8], xmm0
mov r15d, SafeArrayLock
mov ebx, r15d
jmp 0x14020880d
mov rbx, r13
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
call fcn.1400eb1a0
mov qword [rbp + 0xc8], rax
lea r8, [r13 + 1]
mov rdx, r15
mov rcx, rax
call fcn.140253310
mov r15d, SafeArrayLock
mov qword [rbp + 0xd8], r13
mov qword [rbp + 0xe0], rbx
lea rcx, [rbp + 0xc8]
call fcn.14020a520
test al, al
jne 0x140208b45
lea rcx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rcx, qword [rbp + 0xe8]
mov dl, 0x6b
call fcn.1401fbb20
mov qword [rbp + 0xc8], r12
mov qword [rbp + 0xd8], r12
mov qword [rbp + 0xe0], r12
mov r13, qword [rbp + 0xf8]
lea r15, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae r15, qword [rbp + 0xe8]
cmp r13, 0x10
jae 0x14020889c
movups xmm0, xmmword [r15]
movups xmmword [rbp + 0xc8], xmm0
mov r15d, SafeArrayLock
mov ebx, r15d
jmp 0x1402088d9
mov rbx, r13
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
call fcn.1400eb1a0
mov qword [rbp + 0xc8], rax
lea r8, [r13 + 1]
mov rdx, r15
mov rcx, rax
call fcn.140253310
mov r15d, SafeArrayLock
mov qword [rbp + 0xd8], r13
mov qword [rbp + 0xe0], rbx
lea rcx, [rbp + 0xc8]
call fcn.14020a520
test al, al
jne 0x140208b45
mov qword [rbp + 0xc8], r12
mov qword [rbp + 0xd8], r12
mov qword [rbp + 0xe0], r15
mov ecx, 0x40
call fcn.1400eb1a0
mov rdx, rax
mov qword [rbp + 0xd8], 0x3b
mov qword [rbp + 0xe0], 0x3f
movups xmm0, xmmword [str._Utility__SaveActiveDate__Verify_ActiveDate.dat_file_failed]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140364d20]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140364d30]
movups xmmword [rax + 0x20], xmm0
movsd xmm1, qword [0x140364d40]
movsd qword [rax + 0x30], xmm1
movzx ecx, word [0x140364d48]
mov word [rax + 0x38], cx
movzx eax, byte [0x140364d4a]
mov byte [rdx + 0x3a], al
mov byte [rdx + 0x3b], 0
mov qword [rbp + 0xc8], rdx
lea rcx, [rbp + 0xc8]
call fcn.1401a7f60
lea rcx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rcx, qword [rbp + 0xe8]
call fcn.140287ca4
nop
lea rcx, [rsp + 0x70]
call fcn.1401389f0
nop
mov rdx, qword [rbp + 0x100]
cmp rdx, 0x10
jb 0x1402089f5
inc rdx
mov rcx, qword [rbp + 0xe8]
cmp rdx, 0x1000
mov rax, rcx
jb 0x1402089f0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402090b6
call fcn.14021ecec
mov qword [rbp + 0xf8], r12
mov qword [rbp + 0x100], r15
mov byte [rbp + 0xe8], 0
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x140208a44
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x140208a3f
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1402090bc
mov rcx, r8
call fcn.14021ecec
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], r15
mov byte [rdi], 0
mov rcx, qword [rbp + 0x108]
xor rcx, rsp
call fcn.14021f250
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rdx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rdx, qword [rbp + 0xe8]
mov r9d, 0x40
lea r8d, [r9 - 0x36]
lea rcx, [rsp + 0x78]
call fcn.1402144f0
test rax, rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
je 0x140208ad5
mov eax, r14d
cmp qword [rbp + rcx - 0x48], 0
cmovne eax, r12d
mov dword [rbp + rcx - 0x80], eax
test dword [rbp + rcx - 0x7c], eax
jne 0x140209048
jmp 0x140208af6
mov eax, esi
cmp qword [rbp + rcx - 0x48], 0
cmovne eax, r13d
or eax, dword [rbp + rcx - 0x80]
and eax, 0x17
mov dword [rbp + rcx - 0x80], eax
and eax, dword [rbp + rcx - 0x7c]
jne 0x1402090c8
cmp qword [rbp - 8], 0
je 0x140208ef5
lea rdx, str._AsusSystemAnalysis_
lea rcx, [rsp + 0x70]
call fcn.1401693c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140170100
movzx edx, al
mov rcx, rbx
call fcn.14016fc90
mov rcx, rbx
call fcn.14016f910
lea rcx, [rsp + 0x70]
call fcn.1401c1390
jmp 0x140208b4b
mov r13d, 2
lea rdx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rdx, qword [rbp + 0xe8]
mov r9d, 0x40
lea r8d, [r9 - 0x36]
lea rcx, [rsp + 0x78]
call fcn.1402144f0
test rax, rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
je 0x140208ba0
cmp qword [rbp + rcx - 0x48], 0
cmovne r14d, r12d
mov dword [rbp + rcx - 0x80], r14d
test dword [rbp + rcx - 0x7c], r14d
jne 0x14020907f
jmp 0x140208bc1
mov eax, esi
cmp qword [rbp + rcx - 0x48], 0
cmovne eax, r13d
or eax, dword [rbp + rcx - 0x80]
and eax, 0x17
mov dword [rbp + rcx - 0x80], eax
and eax, dword [rbp + rcx - 0x7c]
jne 0x14020911e
cmp qword [rbp - 8], 0
je 0x140208da7
mov rdx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x140208bd9
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rsp + 0x70]
call fcn.140137d20
mov rcx, rax
mov dl, 0x2c
call fcn.1401f3de0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0xc8]
mov qword [rsp + 0x68], rax
mov rdx, rdi
lea rcx, [rbp + 0xa0]
call fcn.1400f3e50
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140214c30
mov rbx, rax
mov qword [rbp + 0xc8], r12
mov qword [rbp + 0xd8], r12
mov qword [rbp + 0xe0], 7
mov r8d, 9
lea rdx, str.ActiveDay
lea rcx, [rbp + 0xc8]
call fcn.140101ff0
nop
mov qword [rbp + 0x80], r12
mov qword [rbp + 0x90], r12
mov qword [rbp + 0x98], 7
mov r8d, 0x3e
lea rdx, str.SOFTWAREASUSASUS_System_Control_InterfaceAsusSystemAnalysis
lea rcx, [rbp + 0x80]
call fcn.140101ff0
nop
mov r9, rbx
lea r8, [rbp + 0xc8]
lea rdx, [rbp + 0x80]
mov rcx, 0xffffffff80000002
call fcn.1401f1ca0
mov r13, qword [rdi + 0x10]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r13
cmp rax, 0x2b
jb 0x140209173
mov r12, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x140208cd4
mov r12, qword [rdi]
xor eax, eax
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
lea r15, [r13 + 0x2b]
mov ebx, SafeArrayGetLBound
lea r14, [rbp + 0xc8]
cmp r15, rbx
jbe 0x140208d30
mov rbx, r15
or rbx, 0xf
cmp rbx, rcx
jbe 0x140208d11
mov rbx, rcx
jmp 0x140208d1d
mov eax, SafeArrayPutElement
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
call fcn.1400eb1a0
mov r14, rax
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd8], r15
mov qword [rbp + 0xe0], rbx
movups xmm0, xmmword [str._Utility__SaveActiveDate__Set_active_date:]
movups xmmword [r14], xmm0
movups xmm1, xmmword [0x140364dc0]
movups xmmword [r14 + 0x10], xmm1
movsd xmm0, qword [0x140364dd0]
movsd qword [r14 + 0x20], xmm0
movzx ecx, word [0x140364dd8]
mov word [r14 + 0x28], cx
movzx eax, byte [0x140364dda]
mov byte [r14 + 0x2a], al
lea rcx, [r14 + 0x2b]
mov r8, r13
mov rdx, r12
call fcn.140253310
mov byte [r14 + r15], 0
lea rcx, [rbp + 0xc8]
call fcn.1401a7f60
xor r12d, r12d
lea r15d, [r12 + 0xf]
jmp 0x140208e2a
mov qword [rbp + 0xc8], r12
mov qword [rbp + 0xd8], r12
mov qword [rbp + 0xe0], r15
mov ecx, 0x40
call fcn.1400eb1a0
mov qword [rbp + 0xd8], 0x39
mov qword [rbp + 0xe0], 0x3f
movups xmm0, xmmword [str._Utility__SaveActiveDate__Open_ActiveDate.dat_file_failed]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140364df0]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140364e00]
movups xmmword [rax + 0x20], xmm0
movsd xmm1, qword [0x140364e10]
movsd qword [rax + 0x30], xmm1
movzx ecx, byte [0x140364e18]
mov byte [rax + 0x38], cl
mov byte [rax + 0x39], 0
mov qword [rbp + 0xc8], rax
lea rcx, [rbp + 0xc8]
call fcn.1401a7f60
lea rcx, [rsp + 0x78]
call fcn.1401a9200
test rax, rax
jne 0x140208e65
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
cmp qword [rbp + rcx - 0x48], 0
mov eax, 2
cmovne esi, eax
or esi, dword [rbp + rcx - 0x80]
and esi, 0x17
mov dword [rbp + rcx - 0x80], esi
and esi, dword [rbp + rcx - 0x7c]
jne 0x140208ff1
lea rcx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rcx, qword [rbp + 0xe8]
mov dl, 0x6b
call fcn.1401fbb20
nop
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rsp + 0x78]
call fcn.1401386c0
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x6c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x18], rax
lea rcx, [rbp + 0x18]
call fcn.140221d3c
nop
jmp 0x1402089b4
mov qword [rbp + 0xc8], r12
mov qword [rbp + 0xd8], r12
mov qword [rbp + 0xe0], r15
mov ecx, 0x50
call fcn.1400eb1a0
mov qword [rbp + 0xd8], 0x41
mov qword [rbp + 0xe0], 0x4f
movaps xmm0, xmmword [str._Utility__SaveActiveDate__Open_created_ActiveDate.dat_file_failed]
movups xmmword [rax], xmm0
movaps xmm1, xmmword [0x140364d60]
movups xmmword [rax + 0x10], xmm1
movaps xmm0, xmmword [0x140364d70]
movups xmmword [rax + 0x20], xmm0
movaps xmm1, xmmword [0x140364d80]
movups xmmword [rax + 0x30], xmm1
movzx ecx, byte [0x140364d90]
mov byte [rax + 0x40], cl
mov byte [rax + 0x41], 0
mov qword [rbp + 0xc8], rax
lea rcx, [rbp + 0xc8]
call fcn.1401a7f60
lea rcx, [rsp + 0x70]
call fcn.1401c1390
lea rcx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rcx, qword [rbp + 0xe8]
call fcn.140287ca4
nop
lea rcx, [rsp + 0x70]
call fcn.1401389f0
nop
mov rdx, qword [rbp + 0x100]
cmp rdx, 0x10
jb 0x1402089f5
inc rdx
mov rcx, qword [rbp + 0xe8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402089f0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402090b6
jmp 0x1402089f0
test sil, 4
je 0x140209000
lea rbx, str.ios_base::badbit_set
jmp 0x140209015
test al, sil
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0xc8]
call fcn.1401089f0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.1400f4bc0
lea rdx, [0x1403cfe68]
lea rcx, [rsp + 0x40]
call fcn.14025213c
int3
mov edx, 1
lea rcx, [rbp + 0xc8]
call fcn.1401089f0
mov r8, rax
lea rdx, str.ios_base::badbit_set
lea rcx, [rsp + 0x40]
call fcn.1400f4bc0
lea rdx, [0x1403cfe68]
lea rcx, [rsp + 0x40]
call fcn.14025213c
int3
mov edx, 1
lea rcx, [rbp + 0xc8]
call fcn.1401089f0
mov r8, rax
lea rdx, str.ios_base::badbit_set
lea rcx, [rsp + 0x40]
call fcn.1400f4bc0
lea rdx, [0x1403cfe68]
lea rcx, [rsp + 0x40]
call fcn.14025213c
nop
call fcn.140260f54
nop
call fcn.140260f54
nop
call fcn.140260f54
nop
test r14b, al
je 0x1402090d6
lea rbx, str.ios_base::badbit_set
jmp 0x1402090eb
test r13b, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0xc8]
call fcn.1401089f0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.1400f4bc0
lea rdx, [0x1403cfe68]
lea rcx, [rsp + 0x40]
call fcn.14025213c
int3
test r14b, al
je 0x14020912c
lea rbx, str.ios_base::badbit_set
jmp 0x140209140
test al, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0xc8]
call fcn.1401089f0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.1400f4bc0
lea rdx, [0x1403cfe68]
lea rcx, [rsp + 0x40]
call fcn.14025213c
int3
call fcn.140101a70
int3