Function at 0x18018aa60
Capabilities:
Get file attributes

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x48
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
mov dword [rbp - 0x28], 0
mov rdx, qword [rcx]
cmp qword [r8], rdx
je 0x18018af00
mov rcx, qword [r8]
call fcn.18001c500
test eax, eax
je 0x18018af00
mov rdi, qword [rbx]
mov qword [rbp - 0x20], rdi
lea rax, [rdi - 0x10]
lea r15, [0x180660020]
cmp rax, r15
je 0x18018aac3
lock inc dword [rax]
mov r14, 0xffffffffffffffff
mov rcx, rdi
mov rax, qword [rbp - 0x20]
cmp byte [rax], 0
je 0x18018abb2
mov rax, r14
nop dword [rax]
inc rax
cmp byte [rdi + rax], 0
jne 0x18018aae0
add rax, rcx
xor edx, edx
nop
dec rax
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
jne 0x18018ab05
inc edx
cmp edx, 4
jl 0x18018aaf0
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x60]
call fcn.18000f280
cmp eax, 0x5c
jne 0x18018abb2
mov rax, qword [rbp - 0x20]
xor edx, edx
movzx ecx, byte [rax]
inc rax
test cl, cl
jns 0x18018ab53
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
jne 0x18018ab57
nop word [rax + rax]
inc rax
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
je 0x18018ab40
inc rdx
jmp 0x18018ab21
test ecx, ecx
je 0x18018ab5c
inc rdx
jmp 0x18018ab21
lea eax, [rdx - 1]
xor ecx, ecx
test eax, eax
cmovg ecx, eax
movsxd r8, ecx
mov rbx, qword [rbp - 0x20]
mov rdx, rbx
lea rcx, [rbp + 0x58]
call fcn.18017e4e0
or dword [rbp - 0x28], 4
mov rdi, qword [rbp + 0x58]
mov qword [rbp - 0x20], rdi
mov qword [rbp + 0x58], rbx
lea rcx, [rbx - 0x10]
cmp rcx, r15
je 0x18018aaca
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, r14d
jne 0x18018aaca
call fcn.18011d9c0
jmp 0x18018aaca
mov rax, qword [rsi]
cmp byte [rax], 0
je 0x18018abe7
mov rdx, rsi
lea rcx, [rbp + 0x58]
call fcn.180017f90
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop
test al, 0x10
jne 0x18018abe7
lea rdx, [rbp - 0x10]
mov rcx, rsi
call fcn.180190bc0
mov rsi, rax
or dword [rbp - 0x28], 2
mov rdx, rsi
lea rcx, [rbp - 0x18]
call fcn.18018df00
nop
test byte [rbp - 0x28], 2
je 0x18018ac1a
mov rcx, qword [rbp - 0x10]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18018ac1a
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18018ac1a
call fcn.18011d9c0
xor eax, eax
mov dword [rbp + 0x60], eax
mov r14, qword [rbp - 0x20]
mov r15, qword [rbp - 0x18]
mov rbx, r15
xor r9d, r9d
mov dword [rbp + 0x58], r9d
mov rdi, r14
mov rsi, r15
nop word [rax + rax]
movzx eax, byte [rdi]
inc rdi
mov r13d, eax
test al, al
jns 0x18018aca2
mov ecx, 0x7f
mov eax, 0x40
xor edx, edx
test al, r13b
je 0x18018ac70
nop
cmp eax, 8
jbe 0x18018ac70
shr ecx, 1
inc edx
shr eax, 1
test r13d, eax
jne 0x18018ac60
and r13d, ecx
sub edx, 1
js 0x18018aca2
nop dword [rax + rax]
movzx ecx, byte [rdi]
mov eax, ecx
and al, 0xc0
cmp al, 0x80
jne 0x18018aca2
inc rdi
and ecx, 0x3f
mov eax, r13d
shl eax, 6
mov r13d, ecx
or r13d, eax
sub edx, 1
jns 0x18018ac80
movzx eax, byte [rsi]
inc rsi
mov edx, eax
test al, al
jns 0x18018ad00
mov ecx, 0x7f
mov eax, 0x40
xor r8d, r8d
test al, dl
je 0x18018acd0
nop
cmp eax, 8
jbe 0x18018acd0
shr ecx, 1
inc r8d
shr eax, 1
test edx, eax
jne 0x18018acc0
and edx, ecx
sub r8d, 1
js 0x18018ad00
nop dword [rax + rax]
movzx ecx, byte [rsi]
mov eax, ecx
and al, 0xc0
cmp al, 0x80
jne 0x18018ad00
inc rsi
and ecx, 0x3f
mov eax, edx
shl eax, 6
mov edx, ecx
or edx, eax
sub r8d, 1
jns 0x18018ace0
cmp r13d, edx
je 0x18018ad24
movzx ecx, dx
call fcn.18012553c
movzx r12d, ax
movzx ecx, r13w
call fcn.18012553c
cmp ax, r12w
jne 0x18018ad49
mov r9d, dword [rbp + 0x58]
test r13d, r13d
je 0x18018ad49
inc r9d
mov dword [rbp + 0x58], r9d
cmp r13d, 0x5c
jne 0x18018ac40
mov r14, rdi
mov rbx, rsi
mov dword [rbp + 0x60], r9d
jmp 0x18018ac40
mov eax, dword [rbp + 0x60]
test eax, eax
je 0x18018ae95
cmp eax, 1
jne 0x18018ad6d
mov edx, eax
lea rcx, [rbp - 0x20]
call fcn.18000f440
cmp eax, 0x5c
je 0x18018ae95
xor r9d, r9d
movzx eax, byte [rbx]
inc rbx
mov ecx, eax
test al, al
jns 0x18018add0
mov edx, 0x7f
mov eax, 0x40
xor r8d, r8d
test al, cl
je 0x18018ada0
nop dword [rax]
cmp eax, 8
jbe 0x18018ada0
shr edx, 1
inc r8d
shr eax, 1
test ecx, eax
jne 0x18018ad90
and ecx, edx
sub r8d, 1
js 0x18018add0
nop dword [rax + rax]
movzx edx, byte [rbx]
mov eax, edx
and al, 0xc0
cmp al, 0x80
jne 0x18018add0
inc rbx
and edx, 0x3f
mov eax, ecx
shl eax, 6
mov ecx, edx
or ecx, eax
sub r8d, 1
jns 0x18018adb0
test ecx, ecx
je 0x18018adde
cmp ecx, 0x5c
jne 0x18018ad70
inc r9d
jmp 0x18018ad70
test r9d, r9d
jne 0x18018adff
mov rdx, r14
mov rdi, qword [rbp + 0x50]
mov rcx, rdi
call fcn.18001d410
nop
lea rbx, [0x180660020]
jmp 0x18018aeba
mov r8d, r9d
lea rdx, [0x1803abc7c]
lea rcx, [rbp + 0x48]
call fcn.18017c190
nop
mov r12, 0xffffffffffffffff
mov rax, r12
nop dword [rax]
inc rax
cmp byte [r14 + rax], 0
jne 0x18018ae20
test eax, eax
jle 0x18018ae6c
mov rcx, qword [rbp + 0x48]
mov rbx, r12
inc rbx
cmp byte [rcx + rbx], 0
jne 0x18018ae35
movsxd rsi, eax
lea rdx, [rbx + rsi]
lea rcx, [rbp + 0x48]
call fcn.18017e6c0
movsxd rdi, ebx
mov rbx, qword [rbp + 0x48]
add rdi, rbx
mov r8, rsi
mov rdx, r14
mov rcx, rdi
call fcn.18037edb0
mov byte [rdi + rsi], 0
jmp 0x18018ae70
mov rbx, qword [rbp + 0x48]
mov rdi, qword [rbp + 0x50]
mov qword [rdi], rbx
lea rcx, [r15 - 0x10]
lea rbx, [0x180660020]
cmp rcx, rbx
je 0x18018aede
mov eax, r12d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jmp 0x18018aed6
mov rax, qword [rbp + 0x48]
mov rax, qword [rax]
mov rdi, qword [rbp + 0x50]
mov qword [rdi], rax
add rax, 0xfffffffffffffff0
lea rbx, [0x180660020]
cmp rax, rbx
je 0x18018aeba
lock inc dword [rax]
mov r15, qword [rbp - 0x18]
lea rcx, [r15 - 0x10]
cmp rcx, rbx
mov r12, 0xffffffffffffffff
je 0x18018aede
mov eax, r12d
lock xadd dword [rcx], eax
dec eax
cmp eax, r12d
jne 0x18018aede
call fcn.18011d9c0
nop
mov rcx, qword [rbp - 0x20]
add rcx, 0xfffffffffffffff0
cmp rcx, rbx
je 0x18018af0f
lock xadd dword [rcx], r12d
dec r12d
cmp r12d, 0xffffffff
jne 0x18018af0f
call fcn.18011d9c0
jmp 0x18018af0f
lea rdx, [0x1803abc78]
mov rcx, rdi
call fcn.18001d070
mov rax, rdi
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret