Function at 0x140251a90
Capabilities:
Get file attributes

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
mov r12, rdx
mov r14, rcx
xor esi, esi
mov dword [rbp + 0x48], esi
xor dil, dil
lea r13, [rcx + 0x120]
mov rdx, qword [rdx]
mov r15d, 0xffffffff
cmp qword [r13], rdx
je 0x140251cd2
mov rcx, qword [r13]
call fcn.140019450
test eax, eax
je 0x140251cd2
mov byte [rbp + 0x48], 1
mov rcx, qword [r14 + 0x148]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, qword [r12]
mov qword [rbp + 0x58], rcx
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x140251b09
lock inc dword [rcx - 0x10]
mov rbx, qword [rbp + 0x58]
cmp byte [rbx], 0
jne 0x140251b4f
lea rdx, [0x1403791a8]
lea rcx, [rbp + 0x60]
call fcn.14001a340
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rax
lea rcx, [rbx - 0x10]
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140251b4b
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140251b4b
call fcn.1400da0f0
mov rbx, qword [rbp + 0x58]
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], rsi
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x20], rsi
mov rax, qword [r14]
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x18]
mov rcx, r14
call qword [rax + 0x170]
mov esi, dword [rbp - 0x1c]
test esi, esi
jle 0x140251ba7
xor edi, edi
nop dword [rax]
movsxd rcx, edi
mov rax, qword [rbp - 0x28]
mov rdx, rbx
mov rcx, qword [rax + rcx*8]
call fcn.140019450
test eax, eax
je 0x140251b9f
inc edi
cmp edi, esi
jl 0x140251b80
jmp 0x140251ba7
test edi, edi
jns 0x140251c85
lea rcx, [r14 + 0x158]
call fcn.140280d90
mov esi, eax
sub esi, 1
js 0x140251c3a
nop
mov edx, esi
lea rcx, [r14 + 0x158]
call fcn.140217020
test rax, rax
je 0x140251beb
mov rdi, qword [rax]
mov eax, dword [rdi - 0x10]
nop
test eax, 0x30000000
jne 0x140251be5
lock inc dword [rdi - 0x10]
mov rbx, qword [rbp + 0x58]
jmp 0x140251bf2
lea rdi, [0x140379908]
cmp rdi, rbx
je 0x140251c0a
mov rdx, rbx
mov rcx, rdi
call fcn.140019450
test eax, eax
je 0x140251c0a
xor bl, bl
jmp 0x140251c0c
mov bl, 1
lea rcx, [rdi - 0x10]
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140251c2d
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140251c2d
call fcn.1400da0f0
test bl, bl
mov rbx, qword [rbp + 0x58]
jne 0x140251c81
sub esi, 1
jns 0x140251bc0
lea rcx, [r14 + 0x158]
call fcn.140280d90
lea edx, [rax + 2]
cmp byte [rbx], 0
je 0x140251c81
test edx, edx
je 0x140251c81
mov qword [rbp + 0x60], rbx
mov eax, dword [rbx - 0x10]
nop
test eax, 0x30000000
jne 0x140251c65
lock inc dword [rbx - 0x10]
lea rcx, [r14 + 0x298]
mov byte [rsp + 0x20], 0
mov r9b, 1
lea r8, [rbp + 0x60]
call fcn.14021cb10
mov rbx, qword [rbp + 0x58]
mov r12, qword [rbp + 0x50]
lea rcx, [rbp - 0x28]
call fcn.1400033c0
mov rcx, qword [rbp - 0x28]
call fcn.1400e0818
nop
lea rcx, [rbp - 0x18]
call fcn.1400033c0
mov rcx, qword [rbp - 0x18]
call fcn.1400e0818
nop
lea rcx, [rbx - 0x10]
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140251ccc
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140251ccc
call fcn.1400da0f0
movzx edi, byte [rbp + 0x48]
xor esi, esi
mov rax, qword [r12]
mov ecx, dword [rax - 0x10]
nop
test ecx, 0x30000000
jne 0x140251ce6
lock inc dword [rax - 0x10]
mov rcx, qword [r12]
xchg qword [r13], rcx
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140251d0f
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140251d0f
call fcn.1400da0f0
mov r9b, 1
movzx r8d, r9b
mov rdx, r13
mov rcx, qword [r14 + 0x108]
call fcn.140252ec0
mov dword [rsp + 0x20], esi
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [r14 + 0x148]
call fcn.1400dc674
test rax, rax
je 0x140251d52
mov rcx, rax
call fcn.14024a0e0
mov rcx, qword [r13]
mov qword [rbp + 0x58], rcx
mov eax, dword [rcx - 0x10]
nop
test eax, 0x30000000
jne 0x140251d69
lock inc dword [rcx - 0x10]
mov rbx, qword [rbp + 0x58]
cmp byte [rbx], 0
jne 0x140251dab
lea rdx, [0x1403791a8]
lea rcx, [rbp + 0x50]
call fcn.14001a340
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x58], rax
lea rcx, [rbx - 0x10]
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140251dab
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140251dab
call fcn.1400da0f0
lea rcx, [r14 + 0x158]
lea rdx, [rbp + 0x58]
call fcn.140280720
lea rdx, [rbp + 0x60]
mov rcx, r13
call fcn.1401786f0
nop
mov ebx, 1
mov dword [rbp + 0x48], ebx
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.140015780
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop
test al, 0x10
je 0x140251e1d
cmp eax, 0xffffffff
je 0x140251e1d
lea rdx, [rbp + 0x50]
mov rcx, r13
call fcn.1401786f0
nop
mov ebx, 3
mov dword [rbp + 0x48], ebx
mov rdx, qword [r13]
cmp qword [rax], rdx
je 0x140251e1d
mov rcx, qword [rax]
call fcn.140019450
test eax, eax
je 0x140251e1d
mov dl, 1
jmp 0x140251e1f
xor edx, edx
mov rcx, qword [r14 + 0x880]
call fcn.140286e80
nop
test bl, 2
je 0x140251e5f
and ebx, 0xfffffffd
mov dword [rbp + 0x48], ebx
mov rcx, qword [rbp + 0x50]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140251e5c
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140251e5c
call fcn.1400da0f0
mov ebx, dword [rbp + 0x48]
test bl, 1
je 0x140251e89
mov rcx, qword [rbp + 0x60]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140251e89
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140251e89
call fcn.1400da0f0
test dil, dil
je 0x140251f09
mov rdx, r14
lea rcx, [rbp + 0x48]
call fcn.140099a40
nop
mov edi, dword [r14 + 0x144]
mov rbx, qword [rbp + 0x48]
test rbx, rbx
je 0x140251ee8
cmp qword [rbx + 0x10], 0
je 0x140251ee8
test edi, edi
jle 0x140251ee8
mov eax, dword [r14 + 0x144]
dec edi
cmp edi, eax
jl 0x140251ecf
lea edi, [rax - 1]
mov eax, edi
shr eax, 0x1f
xor al, 1
je 0x140251ee8
movsxd rcx, edi
mov rax, qword [r14 + 0x138]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 0x20]
jmp 0x140251ea6
test rbx, rbx
je 0x140251f09
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140251f09
mov rcx, qword [rbp + 0x48]
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
nop
mov rcx, qword [rbp + 0x58]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140251f2e
lock xadd dword [rcx], r15d
dec r15d
cmp r15d, 0xffffffff
jne 0x140251f2e
call fcn.1400da0f0
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret