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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rbx, rcx
mov rax, qword [0x14009d080]
xor rax, rsp
mov qword [rsp + 0x80], rax
call fcn.14002bdbc
mov esi, 0x1126
test al, al
jne 0x14002c73b
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x60]
mov qword [rdi + 8], rax
mov qword [rdi], 0
movaps xmm0, xmmword [0x140081c30]
movups xmmword [rdi + 0x10], xmm0
mov word [rdi], 0
mov rcx, rbx
mov rdx, rdi
call fcn.14002c76c
mov ebx, eax
mov rcx, rdi
call fcn.14002c970
mov byte [rsp + 0x33], al
mov rcx, rdi
mov rdx, rdi
call fcn.14002c9b5
test bl, bl
jne 0x14002c2e4
cmp byte [rsp + 0x33], 0
jne 0x14002c2e4
mov dword [rsp + 0x34], 0x7b
test al, al
je 0x14002c6f3
cmp byte [rsp + 0x33], 0
jne 0x14002c44a
movaps xmm0, xmmword [0x1400834c0]
movups xmmword [rsp + 0x50], xmm0
movabs rax, 0x5c002e005c005c
mov qword [rsp + 0x40], rax
mov word [rsp + 0x48], 0
mov rbx, qword [rsp + 0x70]
cmp qword [rsp + 0x78], 8
jb 0x14002c323
mov rdi, qword [rsp + 0x60]
cmp rbx, 3
jbe 0x14002c34f
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x40]
mov rdx, rbx
mov r9, rdi
call fcn.140007200
mov rsi, rax
lea r12, [rax + 0x18]
lea rbp, [rax + 0x10]
lea r14, [rax + 8]
jmp 0x14002c383
lea r12, [rsp + 0x58]
lea rbp, [rsp + 0x50]
lea r14, [rsp + 0x48]
lea rsi, [rsp + 0x40]
lea rax, [rbx + 4]
mov qword [rsi + 0x10], rax
lea rcx, [rsp + 0x48]
lea r8, [rbx + rbx]
mov rdx, rdi
call fcn.14005f230
mov word [rsp + rbx*2 + 0x48], 0
mov rdi, qword [rsi]
mov rbx, qword [r14]
mov r15, qword [rbp]
mov r14, qword [r12]
mov qword [rbp], 0
mov qword [r12], 7
mov word [rsi], 0
mov rax, qword [rsp + 0x78]
cmp rax, 8
jb 0x14002c3ee
mov rcx, qword [rsp + 0x60]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x14002c3e9
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x14002c766
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.14005cdb0
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], r14
mov rax, qword [rsp + 0x58]
cmp rax, 8
jb 0x14002c44a
mov rcx, qword [rsp + 0x40]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x14002c445
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x14002c766
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.14005cdb0
mov rdi, 0xffffffffffffffff
xor esi, esi
lea r15, [rsp + 0x60]
mov r14, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], 0
mov r13, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
cmp r13, rdi
cmovae r13, rdi
mov rbx, r15
cmp rbp, 8
jb 0x14002c497
mov rbx, qword [rsp + 0x60]
cmp r13, 7
jbe 0x14002c4f9
mov qword [rsp + 0x38], rdi
movabs rax, 0x7ffffffffffffffe
cmp r13, rax
ja 0x14002c761
mov r12, r13
or r12, 7
mov rcx, 0xfffffffffffffffe
mov rdi, rax
cmp r12, rax
ja 0x14002c4ec
cmp r12, 0xb
mov eax, 0xa
cmovb r12, rax
lea rcx, [r12 + r12]
add rcx, 2
cmp r12, 0x7ff
jb 0x14002c51b
mov rdi, r12
call fcn.14005b520
mov rbp, rax
mov r12, rdi
jmp 0x14002c523
mov qword [rsp + 0x50], r13
mov r8, r13
add r8, r13
lea rcx, [rsp + 0x40]
mov rdx, rbx
call fcn.14005f230
mov word [rsp + r13*2 + 0x40], 0
jmp 0x14002c555
call fcn.14005cdb8
mov rbp, rax
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], r12
mov r8, r13
add r8, r13
mov rcx, rbp
mov rdx, rbx
call fcn.14005f230
mov word [rbp + r13*2], 0
mov qword [rsp + 0x40], rbp
mov rbp, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x38]
cmp rbp, 8
jb 0x14002c59b
mov rcx, qword [rsp + 0x60]
lea rdx, [rbp + 2]
add rdx, rbp
cmp rdx, 0x1000
jb 0x14002c596
mov rax, rcx
add rax, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rax, rcx
cmp rax, 0x20
jae 0x14002c766
add rbp, rbp
add rbp, 0x29
mov rdx, rbp
call fcn.14005cdb0
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
cmp qword [rsp + 0x78], 8
mov rcx, r15
jb 0x14002c5bf
mov rcx, qword [rsp + 0x60]
call r14
cmp eax, 0xffffffff
je 0x14002c5d6
bt eax, 0xa
jae 0x14002c66a
jmp 0x14002c6eb
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [rax - 2]
cmp ecx, 2
jb 0x14002c660
cmp eax, 0x7b
je 0x14002c660
test sil, 1
sete dl
or dl, byte [rsp + 0x33]
jne 0x14002c655
cmp qword [rsp + 0x78], 8
mov r8, r15
jb 0x14002c608
mov r8, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
test rbp, rbp
je 0x14002c655
lea rdx, [r8 + rbp*2]
add rdx, 0xfffffffffffffffe
cmp word [rdx], 0x5c
jne 0x14002c625
mov rbp, rdx
jmp 0x14002c647
add rbp, rbp
mov ebx, 2
sub rbx, rbp
test rbx, rbx
je 0x14002c655
lea rbp, [rdx - 2]
add rbx, 2
cmp word [rdx - 2], 0x5c
mov rdx, rbp
jne 0x14002c630
sub rbp, r8
mov ebx, 2
cmp rbp, 6
je 0x14002c660
mov ebx, 1
mov edx, eax
mov dword [rsp + 0x34], eax
cmp ecx, 2
jb 0x14002c66a
cmp eax, 0x7b
jne 0x14002c6d8
cmp qword [rsp + 0x78], 8
mov rax, r15
jb 0x14002c67a
mov rax, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rdi, 0xffffffffffffffff
mov sil, 1
test rbp, rbp
je 0x14002c6cc
lea rcx, [rax + rbp*2]
add rcx, 0xfffffffffffffffe
cmp word [rcx], 0x5c
jne 0x14002c6a1
mov rbp, rcx
jmp 0x14002c6c3
add rbp, rbp
mov edx, 2
sub rdx, rbp
test rdx, rdx
je 0x14002c6cc
lea rbp, [rcx - 2]
add rdx, 2
cmp word [rcx - 2], 0x5c
mov rcx, rbp
jne 0x14002c6ac
sub rbp, rax
sar rbp, 1
mov rdi, rbp
cmp rdi, 2
ja 0x14002c45f
jmp 0x14002c6e1
test ebx, ebx
je 0x14002c6cc
cmp ebx, 2
jne 0x14002c6f3
mov dword [rsp + 0x34], 0x1126
jmp 0x14002c6f3
mov dword [rsp + 0x34], 0
mov rax, qword [rsp + 0x78]
cmp rax, 8
mov esi, dword [rsp + 0x34]
jb 0x14002c73b
mov rcx, qword [rsp + 0x60]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x14002c736
mov rdx, rcx
add rdx, 0xfffffffffffffff8
mov rcx, qword [rcx - 8]
sub rdx, rcx
cmp rdx, 0x20
jae 0x14002c766
add rax, rax
add rax, 0x29
mov rdx, rax
call fcn.14005cdb0
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14005cd90
mov eax, esi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14004e6d0
call fcn.1400674bc
int3