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

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
lea rbp, [r11 - 0x158]
sub rsp, 0x240
mov rax, qword [0x1800ee530]
xor rax, rsp
mov qword [rbp + 0x110], rax
mov qword [r11 + 0x18], rbx
mov qword [r11 - 0x20], r12
mov r12, rcx
mov qword [r11 - 0x28], r13
xor r13d, r13d
mov qword [r11 - 0x30], r14
mov esi, r13d
mov dword [rsp + 0x7c], r13d
mov edi, r13d
mov dword [rsp + 0x78], r13d
mov r14, rdx
mov dword [rsp + 0x74], r13d
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], r13
mov qword [r11 - 0x38], r15
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x18002214f
test al, 0x50
jne 0x18002214f
call fcn.18001fe70
cmp eax, 1
je 0x180021d0b
lea esi, [r13 + 0x7e]
jmp 0x180022154
mov qword [rsp + 0x50], r13
lea rax, [rsp + 0x68]
mov qword [rsp + 0x48], rax
mov r9d, 2
lea rax, [rsp + 0x60]
mov r8d, 0x400
mov qword [rsp + 0x40], rax
mov rdx, r12
lea rax, [rsp + 0x74]
mov qword [rsp + 0x38], rax
lea ecx, [r9 - 1]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
call qword [0x1800ef290]
mov edi, eax
test eax, eax
jne 0x180021d73
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x180022154
mov ecx, 0x23f0
call fcn.18001d720
test eax, eax
jne 0x18002201e
mov rcx, r12
call fcn.18001d3e0
test eax, eax
je 0x18002201e
xor eax, eax
xorps xmm0, xmm0
mov qword [rbp + 0x100], rax
mov r15d, r13d
mov dword [rbp + 0x108], eax
mov rax, qword [0x1800ef2b0]
movups xmmword [rbp + 0xf0], xmm0
test rax, rax
jne 0x180021ddb
xor edx, edx
lea rcx, [0x1800c9a40]
call fcn.18001d950
mov qword [0x1800ef2b0], rax
test rax, rax
je 0x180021f19
cmp qword [0x1800ef2d8], rsi
jne 0x180021e0b
lea rdx, [0x1800c9b30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800ef2d8], rax
test rax, rax
je 0x180021f19
mov rax, qword [0x1800ef2b0]
cmp qword [0x1800ef2e0], rsi
jne 0x180021e3b
lea rdx, [0x1800c9b40]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800ef2e0], rax
test rax, rax
je 0x180021f19
mov rax, qword [0x1800ef2b0]
cmp qword [0x1800ef2f0], rsi
jne 0x180021e6b
lea rdx, [0x1800c9b50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800ef2f0], rax
test rax, rax
je 0x180021f19
mov rax, qword [0x1800ef2b0]
cmp qword [0x1800ef2f8], rsi
jne 0x180021e94
lea rdx, [0x1800c9b70]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800ef2f8], rax
test rax, rax
je 0x180021f19
xor edx, edx
xor ecx, ecx
mov r8d, 0x80000000
call qword [0x1800ef2d8]
mov rdi, rax
test rax, rax
je 0x180021f10
mov r8d, 4
lea rdx, [0x1800c9b90]
mov rcx, rax
call qword [0x1800ef2e0]
mov rbx, rax
test rax, rax
je 0x180021f07
lea rdx, [rbp + 0xf0]
mov rcx, rax
call qword [0x1800ef2f0]
test eax, eax
je 0x180021efe
mov ecx, dword [rbp + 0xf4]
sub ecx, 4
je 0x180021ef8
sub ecx, 1
je 0x180021ef8
sub ecx, 1
je 0x180021ef8
cmp ecx, 1
jne 0x180021efe
mov r15d, 1
mov rcx, rbx
call qword [0x1800ef2f8]
mov rcx, rdi
call qword [0x1800ef2f8]
test r15d, r15d
jne 0x18002201e
mov rsi, qword [rsp + 0x68]
lea rax, [rsp + 0x70]
mov r15, qword [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov edi, r13d
lea edx, [r9 + 6]
call qword [0x1800ef288]
test eax, eax
jne 0x180021f5c
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
mov edi, eax
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x180022009
mov edx, dword [rsp + 0x70]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
jne 0x180021f89
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rbx
mov edi, eax
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x180022009
xor r8d, r8d
lea rax, [rsp + 0x70]
mov r9, rbx
mov qword [rsp + 0x20], rax
mov rcx, rsi
lea edx, [r8 + 6]
call qword [0x1800ef288]
test eax, eax
je 0x180021f73
movups xmm0, xmmword [rbx + 8]
lea rax, [rbp + 0x20]
mov qword [rsp + 0x28], r13
mov r9d, 0xb0000
mov qword [rsp + 0x20], rax
movaps xmmword [rbp + 0x50], xmm0
xor r8d, r8d
movups xmm1, xmmword [rbx + 0x18]
mov edx, 0x10001
mov rcx, r15
movups xmmword [rbp + 0x28], xmm1
call qword [0x1800ef280]
mov rsi, rax
test rax, rax
je 0x180021f73
test r14, r14
je 0x180021ff7
mov rcx, rax
call fcn.18001d360
mov dword [r14], eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rsi
call qword [0x1800ef278]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, 1
mov esi, r13d
jmp 0x180022154
xorps xmm1, xmm1
mov qword [rbp], 0x20
xor eax, eax
movaps xmmword [rbp - 0x40], xmm1
movups xmmword [rbp - 0x70], xmm1
mov qword [rbp - 0x30], rax
mov ecx, 0x23f0
movups xmmword [rbp - 0x60], xmm1
mov qword [rbp + 8], r12
movups xmmword [rbp - 0x80], xmm1
mov dword [rbp - 0x80], 0x58
movups xmmword [rbp - 0x50], xmm1
mov dword [rbp - 0x50], 1
psrldq xmm1, 8
xorps xmm0, xmm0
movd eax, xmm1
movdqu xmmword [rbp + 0x10], xmm0
mov dword [rbp - 0x68], 2
bts eax, 0xc
mov dword [rbp - 0x64], 1
mov dword [rbp - 0x38], eax
lea rax, [rbp]
mov qword [rbp - 0x58], rax
mov dword [rbp - 0x60], 1
call fcn.18001d720
mov r8, qword [rsp + 0x68]
mov r9, r14
mov rdx, qword [rsp + 0x60]
lea rcx, [rbp - 0x80]
test eax, eax
jne 0x1800220c5
call fcn.18001e780
mov edi, eax
test eax, eax
jne 0x180022154
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x180022154
xorps xmm0, xmm0
mov dword [rbp - 4], r13d
lea rax, [rbp - 0x20]
mov qword [rbp - 0x20], 0x20
movdqu xmmword [rbp - 0x14], xmm0
mov qword [rbp - 0x30], rax
mov dword [rbp - 0x18], 3
call fcn.18001e780
mov edi, eax
test eax, eax
jne 0x180022154
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ebx, 1
mov rax, qword [rbp - 0x30]
cmp dword [rax + 0xc], ebx
jb 0x180022154
nop dword [rax]
mov qword [rbp - 0x48], r13
lea rcx, [rbp - 0x80]
mov dword [rbp - 0x50], 1
mov r9, r14
mov dword [rax + 4], ebx
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
call fcn.18001e780
mov edi, eax
test eax, eax
jne 0x180022154
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
inc ebx
mov rax, qword [rbp - 0x30]
cmp ebx, dword [rax + 0xc]
jbe 0x180022110
jmp 0x180022154
mov esi, 2
mov rcx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x220]
mov r14, qword [rsp + 0x228]
mov r13, qword [rsp + 0x230]
mov r12, qword [rsp + 0x238]
mov rbx, qword [rsp + 0x270]
test rcx, rcx
je 0x18002218e
xor edx, edx
call qword [0x1800ef270]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x18002219e
call qword [0x1800ef268]
test edi, edi
jne 0x1800221a6
mov ecx, esi
jmp 0x1800221a8
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, edi
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.180068690
add rsp, 0x240
pop rdi
pop rsi
pop rbp
ret