Function at 0x180089c00
Capabilities:
Get file attributes

Disassembly:
push rdi
push r12
push r13
sub rsp, 0x50
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x80], rsi
mov ebp, r8d
mov r12, rdx
mov r13, rcx
lea rcx, [0x1801dc900]
mov rax, qword [0x1801dc900]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x88], rax
test r13, r13
jne 0x180089c73
lea rdx, [rax - 0x18]
or rbx, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x180089c6c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
jmp 0x18008a03d
xor eax, eax
or rbx, 0xffffffffffffffff
mov rcx, rbx
mov rdi, r13
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0x88]
call fcn.180003320
lea edx, [rbx + 0x5d]
mov rdi, qword [rsp + 0x88]
mov rcx, rdi
call fcn.1800f6344
mov rsi, rax
test rax, rax
jne 0x180089cb7
mov esi, ebx
jmp 0x180089cb9
sub esi, edi
xor edx, edx
mov r8d, 0x104
mov rcx, r12
call fcn.1800f4fb0
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 0x10
jne 0x180089e5b
cmp esi, 0xffffffff
je 0x180089da5
test ebp, ebp
jne 0x180089da5
mov r9d, dword [rdi - 0x10]
sub r9d, esi
lea r8d, [rsi + 1]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x88]
call fcn.180003b80
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x180089d67
cmp dword [rdi + 0x10], ebp
jl 0x180089d55
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x180089d55
call fcn.180002880
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x180089d47
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x88], rax
jmp 0x180089d67
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x88]
call fcn.180003320
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180089d86
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x88]
mov r8, rdi
lea rdx, [0x180153a08]
mov rcx, r12
call fcn.1800f509c
jmp 0x18008a023
mov r9d, esi
xor r8d, r8d
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x88]
call fcn.180003b80
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x180089e1d
cmp dword [rdi + 0x10], 0
jl 0x180089e0b
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x180089e0b
call fcn.180002880
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x180089dfd
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x88], rax
jmp 0x180089e1d
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x88]
call fcn.180003320
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180089e3c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x88]
mov r8, rdi
lea rdx, [0x180153a08]
mov rcx, r12
call fcn.1800f509c
jmp 0x18008a023
cmp esi, 0xffffffff
je 0x18008a023
cmp dword [rdi - 0x10], 3
jg 0x180089ea6
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
or eax, ecx
jge 0x180089e90
xor edx, edx
lea rcx, [rsp + 0x88]
call fcn.180002910
mov rdi, qword [rsp + 0x88]
mov r8d, 2
mov rdx, rdi
mov rcx, r12
call fcn.1800f4e00
jmp 0x180089f68
test ebp, ebp
jne 0x180089f68
mov r9d, dword [rdi - 0x10]
sub r9d, esi
lea r8d, [rsi + 1]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x88]
call fcn.180003b80
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x180089f2a
cmp dword [rdi + 0x10], ebp
jl 0x180089f18
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x180089f18
call fcn.180002880
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x180089f0a
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x88], rax
jmp 0x180089f2a
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x88]
call fcn.180003320
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180089f49
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x88]
mov r8, rdi
lea rdx, [0x180153a08]
mov rcx, r12
call fcn.1800f509c
jmp 0x18008a023
cmp ebp, 1
jne 0x18008a023
mov r9d, esi
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x88]
call fcn.180003b80
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x180089fe9
cmp dword [rdi + 0x10], 0
jl 0x180089fd7
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x180089fd7
call fcn.180002880
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x180089fc9
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x88], rax
jmp 0x180089fe9
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x88]
call fcn.180003320
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a008
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x88]
mov r8, rdi
lea rdx, [0x180153a08]
mov rcx, r12
call fcn.1800f509c
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x18008a03b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop r13
pop r12
pop rdi
ret