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

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x180101090]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r14, rcx
cmp dword [0x18010b7d8], 0
jne 0x18004cedd
xor eax, eax
jmp 0x18004d302
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov rdx, rax
cmp word [rax], 0
jne 0x18004cef3
xor eax, eax
jmp 0x18004d302
add rdx, 2
mov qword [rsp + 0x78], 7
xor eax, eax
mov qword [rsp + 0x70], rax
mov word [rsp + 0x60], ax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x58]
call fcn.18000f510
nop
mov r9, qword [rsp + 0x60]
mov r11, qword [rsp + 0x78]
cmp r11, 8
jb 0x18004cf42
mov rbx, r9
test r9, r9
je 0x18004cf74
jmp 0x18004cf47
lea rbx, [rsp + 0x60]
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
cmp rax, rbx
ja 0x18004cf74
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
mov r10, qword [rsp + 0x70]
lea rax, [rax + r10*2]
cmp rbx, rax
jbe 0x18004cf88
call fcn.18009a80c
mov r11, qword [rsp + 0x78]
mov r10, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
lea rsi, [rax + r10*2]
test rsi, rsi
je 0x18004cfc6
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
cmp rax, rsi
ja 0x18004cfc6
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
lea rax, [rax + r10*2]
cmp rsi, rax
jbe 0x18004cfda
call fcn.18009a80c
mov r11, qword [rsp + 0x78]
mov r10, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
cmp r11, 8
jb 0x18004cfea
mov rdi, r9
test r9, r9
je 0x18004d017
jmp 0x18004cfef
lea rdi, [rsp + 0x60]
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
cmp rax, rdi
ja 0x18004d017
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
lea rax, [rax + r10*2]
cmp rdi, rax
jbe 0x18004d02b
call fcn.18009a80c
mov r11, qword [rsp + 0x78]
mov r10, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
mov rcx, rsi
sub rcx, rdi
sar rcx, 1
lea rax, [rsp + 0x58]
cmp rax, 0xfffffffffffffffc
je 0x18004d07f
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
lea rdx, [rbx + rcx*2]
lea rax, [rax + r10*2]
cmp rdx, rax
ja 0x18004d06b
lea rax, [rsp + 0x60]
cmp r11, 8
cmovae rax, r9
cmp rdx, rax
jae 0x18004d07f
call fcn.18009a80c
mov r11, qword [rsp + 0x78]
mov r10, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
cmp rdi, rsi
je 0x18004d0ab
sub rbx, rdi
movzx ecx, word [rdi]
call fcn.18009a62c
mov word [rbx + rdi], ax
add rdi, 2
cmp rdi, rsi
jne 0x18004d087
mov r11, qword [rsp + 0x78]
mov r10, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
mov rbp, qword [0x18010cfd0]
mov r15, rbp
mov r13, qword [0x18010cfa0]
mov rbx, r13
mov qword [rsp + 0x20], rbx
mov r8, qword [rbp + 8]
mov rsi, rbp
mov r12d, 1
cmp byte [r8 + 0x41], 0
jne 0x18004d187
xor r13d, r13d
or rbp, 0xffffffffffffffff
lea rdx, [rsp + 0x60]
cmp r11, 8
cmovae rdx, r9
mov rbx, qword [r8 + 0x30]
cmp rbx, rbx
cmovb rbx, rbx
cmp qword [r8 + 0x38], 8
jb 0x18004d108
mov rcx, qword [r8 + 0x20]
jmp 0x18004d10c
lea rcx, [r8 + 0x20]
mov rdi, r10
cmp rbx, r10
cmovb rdi, rbx
test rdi, rdi
je 0x18004d142
nop dword [rax + rax]
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x18004d137
add rcx, 2
add rdx, 2
sub rdi, r12
jne 0x18004d120
jmp 0x18004d142
mov edi, r12d
cmp word [rcx], ax
cmovb edi, ebp
jmp 0x18004d145
mov edi, r13d
movsxd rax, edi
test edi, edi
jne 0x18004d15a
cmp rbx, r10
jb 0x18004d166
mov eax, r13d
cmp rbx, r10
setne al
test eax, eax
js 0x18004d166
mov rsi, r8
mov r8, qword [r8]
jmp 0x18004d16a
mov r8, qword [r8 + 0x10]
cmp byte [r8 + 0x41], r13b
je 0x18004d0e3
mov rbp, qword [0x18010cfd0]
mov r13, qword [0x18010cfa0]
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r13
mov rdi, rbp
test r13, r13
jne 0x18004d1bb
call fcn.18009a80c
mov r11, qword [rsp + 0x78]
mov r10, qword [rsp + 0x70]
mov r9, qword [rsp + 0x60]
mov rbp, qword [0x18010cfd0]
mov r13, qword [0x18010cfa0]
cmp rsi, rdi
je 0x18004d23b
mov r8, qword [rsi + 0x30]
cmp qword [rsi + 0x38], 8
jb 0x18004d1d1
mov rcx, qword [rsi + 0x20]
jmp 0x18004d1d5
lea rcx, [rsi + 0x20]
lea rdx, [rsp + 0x60]
cmp r11, 8
cmovae rdx, r9
mov rdi, r8
cmp r10, r8
cmovb rdi, r10
test rdi, rdi
je 0x18004d21a
movzx eax, word [rcx]
cmp word [rdx], ax
jne 0x18004d208
add rdx, 2
add rcx, 2
sub rdi, r12
jne 0x18004d1f1
jmp 0x18004d21a
mov edi, r12d
cmp word [rdx], ax
mov rax, 0xffffffffffffffff
cmovb edi, eax
jmp 0x18004d21c
xor edi, edi
movsxd rax, edi
test edi, edi
jne 0x18004d230
cmp r10, r8
jb 0x18004d23b
xor eax, eax
cmp r10, r8
setne al
test eax, eax
js 0x18004d23b
lea rcx, [rsp + 0x20]
jmp 0x18004d24a
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], r13
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x18004d26c
cmp rax, rbx
je 0x18004d27b
call fcn.18009a80c
mov r11, qword [rsp + 0x78]
mov r9, qword [rsp + 0x60]
cmp qword [rsp + 0x48], r15
jne 0x18004d294
cmp r11, 8
jb 0x18004d290
mov rcx, r9
call fcn.18009a864
xor eax, eax
jmp 0x18004d302
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x18004d2b8
cmp qword [rsp + 0x78], 8
jb 0x18004d2b4
mov rcx, qword [rsp + 0x60]
call fcn.18009a864
xor eax, eax
jmp 0x18004d302
test al, 0x10
je 0x18004d2d2
cmp qword [rsp + 0x78], 8
jb 0x18004d2ce
mov rcx, qword [rsp + 0x60]
call fcn.18009a864
xor eax, eax
jmp 0x18004d302
mov rcx, r14
call fcn.1800504b4
cmp rax, r12
jbe 0x18004d2ea
mov ecx, dword [0x18010b7d8]
cmp rax, rcx
jbe 0x18004d2ed
xor r12d, r12d
cmp qword [rsp + 0x78], 8
jb 0x18004d2ff
mov rcx, qword [rsp + 0x60]
call fcn.18009a864
mov eax, r12d
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.180099fe0
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret