Function at 0x140183ea0
Capabilities:
Get file attributes

Disassembly:
mov qword [rsp + 0x18], r8
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
lea rbp, [rsp - 0x1f]
sub rsp, 0xc8
mov qword [rbp - 0x19], 0xfffffffffffffffe
mov rbx, rdx
mov rsi, rcx
mov dword [rsp + 0x28], 0
mov rax, qword [rcx]
mov qword [rbp - 0x11], rax
mov r9, qword [r8]
cmp r9, rax
je 0x14018434f
mov qword [rbp - 0x61], rax
mov qword [rbp - 0x59], r9
lea rdx, [rbp - 0x61]
lea rcx, [rbp - 0x59]
call fcn.1400458d0
test eax, eax
je 0x14018434f
mov rbx, qword [rsi]
mov qword [rsp + 0x20], rbx
lea rcx, [rbx - 0x10]
lea r14, [0x1402901c8]
mov r13d, 1
cmp rcx, r14
je 0x140183f37
mov eax, r13d
lock xadd dword [rcx], eax
mov rbx, qword [rsp + 0x20]
or rsi, 0xffffffffffffffff
lea edi, [rsi + 2]
nop
cmp byte [rbx], 0
je 0x14018402f
mov rax, rsi
nop dword [rax]
inc rax
cmp byte [rbx + rax], 0
jne 0x140183f50
add rax, rbx
xor edx, edx
nop
lea rax, [rax - 1]
movzx ecx, byte [rax]
and cl, 0xc0
cmp cl, 0x80
jne 0x140183f76
inc edx
cmp edx, 4
jl 0x140183f60
movzx ecx, byte [rax]
movzx edx, cl
test cl, cl
jns 0x140183fd6
mov ecx, 0x40
lea r9d, [rcx + 0x3f]
xor r8d, r8d
test cl, dl
je 0x140183fa1
cmp ecx, 8
jbe 0x140183fa1
shr r9d, 1
inc r8d
shr ecx, 1
test edx, ecx
jne 0x140183f90
and edx, r9d
mov r9, rdi
cmp r8d, edi
jl 0x140183fd6
movsxd r10, r8d
nop
movzx r8d, byte [r9 + rax]
mov ecx, r8d
and cl, 0xc0
cmp cl, 0x80
jne 0x140183fd6
and r8d, 0x3f
mov ecx, edx
shl ecx, 6
mov edx, r8d
or edx, ecx
inc r9
cmp r9, r10
jle 0x140183fb0
cmp edx, 0x5c
jne 0x14018402f
lea rdx, [rbp - 0x51]
lea rcx, [rsp + 0x20]
call fcn.1401763b0
mov rcx, rbx
mov qword [rbp - 9], rbx
mov rbx, qword [rax]
mov qword [rsp + 0x20], rbx
mov qword [rax], rcx
mov rcx, qword [rbp - 0x51]
add rcx, 0xfffffffffffffff0
cmp rcx, r14
je 0x140183f40
mov eax, esi
lock xadd dword [rcx], eax
test eax, eax
je 0x140184020
mov rbx, qword [rsp + 0x20]
jmp 0x140183f40
call fcn.1400bd658
mov rbx, qword [rsp + 0x20]
jmp 0x140183f40
mov rdi, qword [rbp + 0x77]
mov rax, qword [rdi]
cmp byte [rax], 0
je 0x14018406d
mov rdx, rdi
lea rcx, [rbp - 1]
call fcn.140040d80
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop
test al, 0x10
jne 0x14018406d
lea rdx, [rbp - 0x49]
mov rcx, rdi
call fcn.140183520
nop
mov edi, 2
mov dword [rsp + 0x28], edi
jmp 0x140184074
mov rax, rdi
mov edi, dword [rsp + 0x28]
mov rdx, rax
lea rcx, [rbp - 0x69]
call fcn.140180fe0
nop
test dil, 2
je 0x1401840a8
mov rcx, qword [rbp - 0x49]
add rcx, 0xfffffffffffffff0
cmp rcx, r14
je 0x1401840a8
mov eax, esi
lock xadd dword [rcx], eax
test eax, eax
jne 0x1401840a3
call fcn.1400bd658
mov rbx, qword [rsp + 0x20]
xor eax, eax
mov dword [rbp - 0x79], eax
mov r14, rbx
mov r15, qword [rbp - 0x69]
mov r12, r15
mov rdi, rbx
mov rsi, r15
xor r10d, r10d
mov dword [rbp - 0x7d], r10d
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdi]
inc rdi
movzx r8d, al
test al, al
jns 0x140184132
mov ecx, 0x7f
mov eax, 0x40
xor edx, edx
test al, r8b
je 0x140184100
nop
cmp eax, 8
jbe 0x140184100
shr ecx, 1
inc edx
shr eax, 1
test r8d, eax
jne 0x1401840f0
and r8d, ecx
mov dword [rbp + 0x7f], r8d
sub edx, 1
js 0x140184136
nop dword [rax]
movzx ecx, byte [rdi]
mov eax, ecx
and al, 0xc0
cmp al, 0x80
jne 0x140184132
inc rdi
and ecx, 0x3f
mov eax, r8d
shl eax, 6
mov r8d, ecx
or r8d, eax
sub edx, 1
jns 0x140184110
mov dword [rbp + 0x7f], r8d
movzx eax, byte [rsi]
inc rsi
movzx ecx, al
test al, al
jns 0x140184190
mov edx, 0x7f
mov eax, 0x40
xor r9d, r9d
test al, cl
je 0x140184164
cmp eax, 8
jbe 0x140184164
shr edx, 1
inc r9d
shr eax, 1
test ecx, eax
jne 0x140184154
and ecx, edx
mov dword [rbp + 0x77], ecx
sub r9d, 1
js 0x140184193
nop
movzx edx, byte [rsi]
mov eax, edx
and al, 0xc0
cmp al, 0x80
jne 0x140184190
inc rsi
and edx, 0x3f
mov eax, ecx
shl eax, 6
mov ecx, edx
or ecx, eax
sub r9d, 1
jns 0x140184170
mov dword [rbp + 0x77], ecx
cmp r8d, ecx
je 0x1401841be
movzx ecx, r8w
call fcn.1400c346c
movzx r13d, ax
movzx ecx, word [rbp + 0x77]
call fcn.1400c346c
movzx eax, ax
cmp r13d, eax
jne 0x1401841e3
mov r8d, dword [rbp + 0x7f]
mov r10d, dword [rbp - 0x7d]
test r8d, r8d
je 0x1401841e3
inc r10d
mov dword [rbp - 0x7d], r10d
cmp r8d, 0x5c
jne 0x1401840d0
mov r14, rdi
mov r12, rsi
mov dword [rbp - 0x79], r10d
jmp 0x1401840d0
mov eax, dword [rbp - 0x79]
test eax, eax
je 0x140184313
cmp eax, 1
jne 0x14018420f
mov r13d, 1
mov edx, r13d
lea rcx, [rsp + 0x20]
call fcn.140007180
cmp eax, 0x5c
je 0x140184319
mov qword [rbp - 0x41], r12
lea rcx, [rbp - 0x41]
call fcn.14017f730
test eax, eax
jne 0x14018423e
mov qword [rbp - 0x39], r14
lea rdx, [rbp - 0x39]
mov rsi, qword [rbp + 0x6f]
mov rcx, rsi
call fcn.140046410
nop
or r13, 0xffffffffffffffff
jmp 0x1401842d1
lea rcx, [0x14028ed70]
mov qword [rbp - 0x31], rcx
mov r8d, eax
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x71]
call fcn.140189310
nop
or r13, 0xffffffffffffffff
mov rax, r13
lea rax, [rax + 1]
cmp byte [r14 + rax], 0
jne 0x140184261
lea rcx, [rax + r14]
sub ecx, r14d
test ecx, ecx
jle 0x1401842c6
mov rax, qword [rbp - 0x71]
mov rsi, r13
nop
inc rsi
cmp byte [rax + rsi], 0
jne 0x140184280
mov qword [rbp - 0x29], rax
movsxd r12, ecx
lea r8, [rsi + 1]
add r8, r12
lea rdx, [rbp - 0x29]
lea rcx, [rbp + 7]
call fcn.14003e200
mov rdi, qword [rax]
mov qword [rbp - 0x71], rdi
movsxd rsi, esi
add rsi, rdi
mov r8, r12
mov rdx, r14
mov rcx, rsi
call fcn.1400c0020
mov byte [r12 + rsi], 0
jmp 0x1401842ca
mov rdi, qword [rbp - 0x71]
mov rsi, qword [rbp + 0x6f]
mov qword [rsi], rdi
lea rdi, [0x1402901c8]
lea rcx, [r15 - 0x10]
cmp rcx, rdi
je 0x1401842f6
mov eax, r13d
lock xadd dword [rcx], eax
test eax, eax
jne 0x1401842f1
call fcn.1400bd658
mov rbx, qword [rsp + 0x20]
lea rcx, [rbx - 0x10]
cmp rcx, rdi
je 0x14018430e
lock xadd dword [rcx], r13d
test r13d, r13d
jne 0x14018430e
call fcn.1400bd658
mov rax, rsi
jmp 0x140184369
mov r13d, 1
mov rax, qword [rbp + 0x67]
mov rax, qword [rax]
mov rsi, qword [rbp + 0x6f]
mov qword [rsi], rax
mov qword [rbp + 0xf], rax
add rax, 0xfffffffffffffff0
lea rdi, [0x1402901c8]
cmp rax, rdi
je 0x140184349
lock xadd dword [rax], r13d
mov rbx, qword [rsp + 0x20]
mov r15, qword [rbp - 0x69]
or r13, 0xffffffffffffffff
jmp 0x1401842d8
lea rax, [0x14028ed74]
mov qword [rbp - 0x21], rax
lea rdx, [rbp - 0x21]
mov rcx, rbx
call fcn.1400461b0
mov rax, rbx
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret