Function at 0x140142550
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, 0x68
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
mov dword [rbp - 0x48], 0
mov rdx, qword [rcx]
cmp qword [r8], rdx
je 0x1401429f3
mov rcx, qword [r8]
call fcn.140017f20
test eax, eax
je 0x1401429f3
mov rbx, qword [rbx]
mov qword [rbp - 0x40], rbx
lea rax, [rbx - 0x10]
lea r15, [0x140592ec8]
cmp rax, r15
je 0x1401425b3
lock inc dword [rax]
mov rsi, 0xffffffffffffffff
mov rcx, rbx
mov rax, qword [rbp - 0x40]
cmp byte [rax], 0
je 0x1401426a0
mov rax, rsi
nop dword [rax]
inc rax
cmp byte [rbx + rax], 0
jne 0x1401425d0
add rax, rcx
xor edx, edx
nop
dec rax
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
jne 0x1401425f5
inc edx
cmp edx, 4
jl 0x1401425e0
mov qword [rbp - 0x28], rax
lea rcx, [rbp - 0x28]
call fcn.14000d540
cmp eax, 0x5c
jne 0x1401426a0
mov rax, qword [rbp - 0x40]
xor edx, edx
movzx ecx, byte [rax]
inc rax
test cl, cl
jns 0x140142643
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
jne 0x140142647
nop word [rax + rax]
inc rax
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
je 0x140142630
inc rdx
jmp 0x140142611
test ecx, ecx
je 0x14014264c
inc rdx
jmp 0x140142611
lea eax, [rdx - 1]
xor ecx, ecx
test eax, eax
cmovg ecx, eax
movsxd r8, ecx
mov r14, qword [rbp - 0x40]
mov rdx, r14
lea rcx, [rbp - 0x38]
call fcn.140136c90
or dword [rbp - 0x48], 4
mov rbx, qword [rbp - 0x38]
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x38], r14
lea rcx, [r14 - 0x10]
cmp rcx, r15
je 0x1401425ba
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, esi
jne 0x1401425ba
call fcn.1400c9d7c
jmp 0x1401425ba
mov rax, qword [rdi]
cmp byte [rax], 0
je 0x1401426d5
mov rdx, rdi
lea rcx, [rbp - 0x18]
call fcn.140016140
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop
test al, 0x10
jne 0x1401426d5
lea rdx, [rbp - 0x20]
mov rcx, rdi
call fcn.140144ff0
mov rdi, rax
or dword [rbp - 0x48], 2
mov rdx, rdi
lea rcx, [rbp - 0x30]
call fcn.1401459b0
nop
test byte [rbp - 0x48], 2
je 0x140142707
mov rcx, qword [rbp - 0x20]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x140142707
mov eax, esi
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140142707
call fcn.1400c9d7c
xor eax, eax
mov dword [rbp + 0x60], eax
mov r14, qword [rbp - 0x40]
mov r15, qword [rbp - 0x30]
mov rbx, r15
xor r9d, r9d
mov dword [rbp + 0x58], r9d
mov rdi, r14
mov rsi, r15
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdi]
inc rdi
mov r13d, eax
test al, al
jns 0x140142792
mov ecx, 0x7f
mov eax, 0x40
xor edx, edx
test al, r13b
je 0x140142760
nop
cmp eax, 8
jbe 0x140142760
shr ecx, 1
inc edx
shr eax, 1
test r13d, eax
jne 0x140142750
and r13d, ecx
sub edx, 1
js 0x140142792
nop dword [rax + rax]
movzx ecx, byte [rdi]
mov eax, ecx
and al, 0xc0
cmp al, 0x80
jne 0x140142792
inc rdi
and ecx, 0x3f
mov eax, r13d
shl eax, 6
mov r13d, ecx
or r13d, eax
sub edx, 1
jns 0x140142770
movzx eax, byte [rsi]
inc rsi
mov ecx, eax
test al, al
jns 0x1401427f0
mov edx, 0x7f
mov eax, 0x40
xor r8d, r8d
test al, cl
je 0x1401427c0
nop
cmp eax, 8
jbe 0x1401427c0
shr edx, 1
inc r8d
shr eax, 1
test ecx, eax
jne 0x1401427b0
and ecx, edx
sub r8d, 1
js 0x1401427f0
nop dword [rax + rax]
movzx edx, byte [rsi]
mov eax, edx
and al, 0xc0
cmp al, 0x80
jne 0x1401427f0
inc rsi
and edx, 0x3f
mov eax, ecx
shl eax, 6
mov ecx, edx
or ecx, eax
sub r8d, 1
jns 0x1401427d0
cmp r13d, ecx
je 0x140142811
call fcn.1400df278
movzx r12d, ax
movzx ecx, r13w
call fcn.1400df278
cmp ax, r12w
jne 0x140142836
mov r9d, dword [rbp + 0x58]
test r13d, r13d
je 0x140142836
inc r9d
mov dword [rbp + 0x58], r9d
cmp r13d, 0x5c
jne 0x140142730
mov r14, rdi
mov rbx, rsi
mov dword [rbp + 0x60], r9d
jmp 0x140142730
mov eax, dword [rbp + 0x60]
test eax, eax
je 0x140142985
cmp eax, 1
jne 0x14014285a
mov edx, eax
lea rcx, [rbp - 0x40]
call fcn.14000d6f0
cmp eax, 0x5c
je 0x140142985
xor r9d, r9d
nop dword [rax]
movzx eax, byte [rbx]
inc rbx
mov ecx, eax
test al, al
jns 0x1401428c0
mov edx, 0x7f
mov eax, 0x40
xor r8d, r8d
test al, cl
je 0x140142890
nop dword [rax]
cmp eax, 8
jbe 0x140142890
shr edx, 1
inc r8d
shr eax, 1
test ecx, eax
jne 0x140142880
and ecx, edx
sub r8d, 1
js 0x1401428c0
nop dword [rax + rax]
movzx edx, byte [rbx]
mov eax, edx
and al, 0xc0
cmp al, 0x80
jne 0x1401428c0
inc rbx
and edx, 0x3f
mov eax, ecx
shl eax, 6
mov ecx, edx
or ecx, eax
sub r8d, 1
jns 0x1401428a0
test ecx, ecx
je 0x1401428ce
cmp ecx, 0x5c
jne 0x140142860
inc r9d
jmp 0x140142860
test r9d, r9d
jne 0x1401428ef
mov rdx, r14
mov rdi, qword [rbp + 0x50]
mov rcx, rdi
call fcn.140018f60
nop
lea rbx, [0x140592ec8]
jmp 0x1401429aa
mov r8d, r9d
lea rdx, [0x1404f9294]
lea rcx, [rbp + 0x48]
call fcn.140134660
nop
mov r12, 0xffffffffffffffff
mov rcx, r12
nop dword [rax]
inc rcx
cmp byte [r14 + rcx], 0
jne 0x140142910
test ecx, ecx
jle 0x14014295c
mov rax, qword [rbp + 0x48]
mov rbx, r12
inc rbx
cmp byte [rax + rbx], 0
jne 0x140142925
movsxd rsi, ecx
lea rdx, [rbx + rsi]
lea rcx, [rbp + 0x48]
call fcn.140136ea0
movsxd rdi, ebx
mov rbx, qword [rbp + 0x48]
add rdi, rbx
mov r8, rsi
mov rdx, r14
mov rcx, rdi
call fcn.140279770
mov byte [rdi + rsi], 0
jmp 0x140142960
mov rbx, qword [rbp + 0x48]
mov rdi, qword [rbp + 0x50]
mov qword [rdi], rbx
lea rcx, [r15 - 0x10]
lea rbx, [0x140592ec8]
cmp rcx, rbx
je 0x1401429ce
mov eax, r12d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jmp 0x1401429c6
mov rax, qword [rbp + 0x48]
mov rax, qword [rax]
mov rdi, qword [rbp + 0x50]
mov qword [rdi], rax
add rax, 0xfffffffffffffff0
lea rbx, [0x140592ec8]
cmp rax, rbx
je 0x1401429aa
lock inc dword [rax]
mov r15, qword [rbp - 0x30]
lea rcx, [r15 - 0x10]
cmp rcx, rbx
mov r12, 0xffffffffffffffff
je 0x1401429ce
mov eax, r12d
lock xadd dword [rcx], eax
dec eax
cmp eax, r12d
jne 0x1401429ce
call fcn.1400c9d7c
nop
mov rcx, qword [rbp - 0x40]
add rcx, 0xfffffffffffffff0
cmp rcx, rbx
je 0x1401429ee
lock xadd dword [rcx], r12d
dec r12d
cmp r12d, 0xffffffff
jne 0x1401429ee
call fcn.1400c9d7c
mov rax, rdi
jmp 0x140142a05
lea rdx, [0x1404f9290]
mov rcx, rsi
call fcn.140018a20
mov rax, rsi
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret