Function at 0x140029568
Capabilities:
Check if file exists

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 [0x1400eb280]
xor rax, rsp
mov qword [rsp + 0x80], rax
call fcn.1400290e0
mov esi, 0x1126
test al, al
jne 0x140029a54
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x60]
mov qword [rdi + 8], rax
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 7
mov word [rdi], 0
mov rcx, rbx
mov rdx, rdi
call fcn.140029a85
mov esi, eax
mov rcx, rdi
call fcn.140029c88
mov ebx, eax
mov rcx, rdi
mov rdx, rdi
call fcn.140029ccd
mov byte [rsp + 0x33], bl
test bl, bl
jne 0x14002960a
test sil, sil
jne 0x14002960a
mov dword [rsp + 0x34], 0x7b
test al, al
je 0x140029a0c
cmp byte [rsp + 0x33], 0
jne 0x140029759
mov qword [rsp + 0x58], 7
mov qword [rsp + 0x50], 4
movabs rax, 0x5c002e005c005c
mov qword [rsp + 0x40], rax
mov word [rsp + 0x48], 0
mov rsi, qword [rsp + 0x70]
cmp qword [rsp + 0x78], 8
jb 0x14002964f
mov rdi, qword [rsp + 0x60]
cmp rsi, 3
jbe 0x14002966c
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0x40]
mov rdx, rsi
mov r9, rdi
call fcn.1400148b0
jmp 0x140029691
lea rcx, [rsp + 0x48]
lea rax, [rsi + 4]
mov qword [rcx + 8], rax
lea r8, [rsi + rsi]
mov rdx, rdi
call fcn.1400beaa0
mov word [rsp + rsi*2 + 0x48], 0
lea rax, [rsp + 0x40]
mov rsi, qword [rax]
mov rdi, qword [rax + 8]
mov rbx, qword [rax + 0x10]
mov r14, qword [rax + 0x18]
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 7
mov word [rax], 0
mov rax, qword [rsp + 0x78]
cmp rax, 8
jb 0x1400296fd
mov rcx, qword [rsp + 0x60]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x1400296f8
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140029a7f
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140093b30
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], r14
mov rax, qword [rsp + 0x58]
cmp rax, 8
jb 0x140029759
mov rcx, qword [rsp + 0x40]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140029754
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140029a7f
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140093b30
mov rdi, 0xffffffffffffffff
xor r13d, r13d
lea r12, [rsp + 0x60]
mov rsi, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], 0
mov rbp, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
cmp rbp, rdi
cmovae rbp, rdi
mov r14, r12
cmp r15, 8
jb 0x1400297a7
mov r14, qword [rsp + 0x60]
cmp rbp, 7
jbe 0x14002980f
mov qword [rsp + 0x38], rdi
movabs rax, 0x7ffffffffffffffe
cmp rbp, rax
ja 0x140029a7a
mov rdi, r12
mov rbx, rsi
mov rsi, rbp
or rsi, 7
mov rcx, 0xfffffffffffffffe
mov r12, rax
cmp rsi, rax
ja 0x140029802
cmp rsi, 0xb
mov eax, 0xa
cmovb rsi, rax
lea rcx, [rsi + rsi]
add rcx, 2
cmp rsi, 0x7ff
jb 0x140029830
mov r12, rsi
call fcn.140050b10
mov r15, rax
mov rsi, r12
jmp 0x140029838
mov qword [rsp + 0x50], rbp
mov r8, rbp
add r8, rbp
lea rcx, [rsp + 0x40]
mov rdx, r14
call fcn.1400beaa0
mov word [rsp + rbp*2 + 0x40], 0
jmp 0x14002986f
call fcn.140093af0
mov r15, rax
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rsi
mov r8, rbp
add r8, rbp
mov rcx, r15
mov rdx, r14
call fcn.1400beaa0
mov word [r15 + rbp*2], 0
mov qword [rsp + 0x40], r15
mov r15, qword [rsp + 0x78]
mov rsi, rbx
mov r12, rdi
mov rdi, qword [rsp + 0x38]
cmp r15, 8
jb 0x1400298b2
mov rcx, qword [rsp + 0x60]
lea rdx, [r15 + r15]
add rdx, 2
cmp rdx, 0x1000
jb 0x1400298ad
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x140029a7f
add r15, r15
add r15, 0x29
mov rdx, r15
mov rcx, rax
call fcn.140093b30
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, r12
jb 0x1400298d6
mov rcx, qword [rsp + 0x60]
call rsi
cmp eax, 0xffffffff
je 0x1400298ec
bt eax, 0xa
jae 0x140029983
jmp 0x140029a04
xor ebp, ebp
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [rax - 2]
cmp ecx, 2
jb 0x140029979
cmp eax, 0x7b
je 0x140029979
test r13b, 1
sete dl
or dl, byte [rsp + 0x33]
jne 0x14002996e
cmp qword [rsp + 0x78], 8
mov rdx, r12
jb 0x14002991e
mov rdx, qword [rsp + 0x60]
mov r10, qword [rsp + 0x70]
test r10, r10
je 0x14002996e
lea r8, [rdx + r10*2]
add r8, 0xfffffffffffffffe
cmp word [r8], 0x5c
jne 0x14002993c
mov r10, r8
jmp 0x140029960
add r10, r10
mov r9d, 2
sub r9, r10
test r9, r9
je 0x14002996e
lea r10, [r8 - 2]
add r9, 2
cmp word [r8 - 2], 0x5c
mov r8, r10
jne 0x140029948
sub r10, rdx
mov ebp, 2
cmp r10, 6
je 0x140029979
mov ebp, 1
mov edx, eax
mov dword [rsp + 0x34], eax
cmp ecx, 2
jb 0x140029983
cmp eax, 0x7b
jne 0x1400299f1
cmp qword [rsp + 0x78], 8
mov rax, r12
jb 0x140029993
mov rax, qword [rsp + 0x60]
mov r8, qword [rsp + 0x70]
mov rdi, 0xffffffffffffffff
mov r13b, 1
test r8, r8
je 0x1400299e5
lea rcx, [rax + r8*2]
add rcx, 0xfffffffffffffffe
cmp word [rcx], 0x5c
jne 0x1400299ba
mov r8, rcx
jmp 0x1400299dc
add r8, r8
mov edx, 2
sub rdx, r8
test rdx, rdx
je 0x1400299e5
lea r8, [rcx - 2]
add rdx, 2
cmp word [rcx - 2], 0x5c
mov rcx, r8
jne 0x1400299c5
sub r8, rax
sar r8, 1
mov rdi, r8
cmp rdi, 2
ja 0x14002976f
jmp 0x1400299fa
test ebp, ebp
je 0x1400299e5
cmp ebp, 2
jne 0x140029a0c
mov dword [rsp + 0x34], 0x1126
jmp 0x140029a0c
mov dword [rsp + 0x34], 0
mov rax, qword [rsp + 0x78]
cmp rax, 8
mov esi, dword [rsp + 0x34]
jb 0x140029a54
mov rcx, qword [rsp + 0x60]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140029a4f
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140029a7f
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140093b30
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140093e10
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.1400519a0
call fcn.14009afa0
int3