Function at 0x14023f1e0
Capabilities:
Get file attributes

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r15, rcx
xor ecx, ecx
mov edi, ecx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0xa0], rcx
mov r13d, ecx
mov qword [rsp + 0xa8], rcx
movzx ecx, byte [r15]
call fcn.140012590
test eax, eax
je 0x14023f22b
cmp byte [r15 + 1], 0x3a
lea rsi, [r15 + 2]
je 0x14023f230
mov rsi, r15
nop
movzx ecx, byte [rsi]
cmp cl, 0x3a
je 0x14023f242
cmp cl, 0x2f
je 0x14023f242
cmp cl, 0x5c
jne 0x14023f247
inc rsi
jmp 0x14023f230
mov qword [rsp + 0x48], rbp
mov r14, rsi
mov qword [rsp + 0x98], rsi
mov r12, rsi
test cl, cl
je 0x14023f2cf
mov r15, rsi
cmp cl, 0x2f
je 0x14023f26d
mov ebp, edi
cmp cl, 0x5c
jne 0x14023f272
mov ebp, 1
test ebp, ebp
mov rax, r15
mov rbx, r12
mov rcx, r12
cmove rax, r14
cmove rbx, rsi
mov r14, rax
call qword [0x140420bf8]
movsxd rcx, eax
mov rax, qword [rsp + 0x98]
add r12, rcx
test ebp, ebp
cmove rsi, qword [rsp + 0x98]
cmove rax, r15
movzx ecx, byte [r12]
mov r15, rax
mov qword [rsp + 0x98], rsi
mov rsi, rbx
test cl, cl
jne 0x14023f261
mov rdi, qword [rsp + 0x38]
mov r15, qword [rsp + 0x90]
movzx ebx, byte [r14 + 1]
mov rcx, r15
mov byte [r14 + 1], r13b
call fcn.14004d5b0
mov qword [rsp + 0x30], rax
mov rsi, rax
mov byte [r14 + 1], bl
test rax, rax
je 0x14023f828
mov r14, 0xffffffffffffffff
mov rbp, r14
nop
inc rbp
cmp byte [rax + rbp], r13b
jne 0x14023f300
mov edx, 1
mov ecx, 0x400
call fcn.140032b90
mov r12, rax
test rax, rax
je 0x14023f83d
mov rbx, qword [0x140469550]
mov qword [rsp + 0x98], rbx
cmp byte [rbx], r13b
je 0x14023f423
nop dword [rax]
lea r9, [0x1403b822c]
mov r8d, 0x400
mov rdx, r12
lea rcx, [rsp + 0x98]
call fcn.14018f5c0
lea rdx, str.after
mov rcx, r12
call fcn.140001ee0
test rax, rax
je 0x14023f3a1
cmp rax, r12
jbe 0x14023f3a1
movzx ecx, byte [rax - 1]
cmp cl, 0x3a
je 0x14023f389
cmp cl, 0x2f
je 0x14023f389
cmp cl, 0x5c
jne 0x14023f3a1
movzx eax, byte [rax + 5]
cmp al, 0x3a
je 0x14023f400
cmp al, 0x2f
je 0x14023f400
cmp al, 0x5c
je 0x14023f400
test al, al
je 0x14023f400
cmp al, 0x2c
je 0x14023f400
mov rbx, qword [rsp + 0x98]
test rdi, rdi
jne 0x14023f3f5
mov rcx, r12
call fcn.140110f80
mov rcx, r12
call fcn.14004d5b0
mov rsi, rax
test rax, rax
je 0x14023f7df
mov rdx, qword [rsp + 0x30]
mov r8, rbp
mov rcx, rax
call fcn.14010d300
cmp dword [0x14045b3f8], r13d
mov r15d, eax
jne 0x14023f3ee
mov rcx, rsi
call fcn.140005660
test r15d, r15d
cmove rdi, rbx
cmp byte [rbx], r13b
jne 0x14023f340
jmp 0x14023f40f
test rdi, rdi
mov qword [rsp + 0xa8], rbx
cmove rdi, rbx
mov r15, qword [rsp + 0x90]
test rdi, rdi
jne 0x14023f432
mov rbx, qword [0x140469550]
mov rdi, r14
inc rdi
cmp byte [rbx + rdi], r13b
jne 0x14023f426
add rdi, rbx
mov rcx, r14
inc rcx
cmp byte [r15 + rcx], r13b
jne 0x14023f435
add rcx, 8
mov edx, 1
call fcn.140032b90
mov qword [rsp + 0xa0], rax
mov rbp, rax
test rax, rax
jne 0x14023f46b
xor ebx, ebx
mov qword [rsp + 0xa0], rbx
jmp 0x14023f510
mov rdx, rbp
mov rcx, r15
sub rdx, r15
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x14023f480
mov rcx, rbp
call fcn.140110f80
lea rcx, [rbp - 1]
nop word [rax + rax]
cmp byte [rcx + 1], r13b
lea rcx, [rcx + 1]
jne 0x14023f4a0
mov eax, dword [str.after]
xor edx, edx
mov dword [rcx], eax
movzx eax, word [0x1403ca520]
mov word [rcx + 4], ax
mov rcx, rbp
call fcn.140321ad0
mov rsi, rax
test rax, rax
je 0x14023f50e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [0x14045b3f8], r13d
mov ebx, eax
jne 0x14023f4eb
mov rcx, rsi
call fcn.140005660
cmp ebx, r14d
je 0x14023f50e
shr ebx, 4
bt ebx, 0
jae 0x14023f50e
mov r13, r14
nop dword [rax]
inc r13
cmp byte [r13 + rbp], 0
jne 0x14023f500
inc r13
xor ebx, ebx
mov rax, qword [0x140469550]
mov rsi, r14
nop word [rax + rax]
inc rsi
cmp byte [rax + rsi], 0
jne 0x14023f520
nop dword [rax]
inc r14
cmp byte [r15 + r14], 0
jne 0x14023f530
lea rcx, [rsi + 2]
mov edx, 1
add rcx, r14
add rcx, r13
call fcn.140032b90
mov rbp, rax
test rax, rax
je 0x14023f7e1
mov rdx, qword [0x140469550]
mov r15d, edi
sub r15d, edx
mov rcx, rax
movsxd rbx, r15d
mov r8, rbx
call fcn.140003740
cmp byte [rdi], 0
jne 0x14023f581
mov byte [rbx + rbp], 0x2c
inc rbx
mov rdx, qword [rsp + 0x90]
lea rcx, [rbx + rbp]
mov r8, r14
call fcn.140003740
cmp byte [rdi], 0
lea rax, [rbx + r14]
mov r14, rax
je 0x14023f5a9
mov byte [rax + rbp], 0x2c
lea r14, [rax + 1]
mov rdi, qword [rsp + 0xa8]
test r13, r13
je 0x14023f60f
test rdi, rdi
je 0x14023f60f
mov rcx, qword [0x140469550]
sub edi, ecx
movsxd rdx, r15d
mov eax, edi
add rdx, rcx
sub eax, r15d
lea rcx, [r14 + rbp]
movsxd rbx, eax
mov r8, rbx
call fcn.140003740
add r14, rbx
lea r8, [r13 - 1]
mov rbx, qword [rsp + 0xa0]
mov rdx, rbx
lea rcx, [r14 + rbp]
call fcn.140003740
add r14, r13
mov r15d, edi
mov rdi, qword [rsp + 0xa8]
mov byte [r14 + rbp - 1], 0x2c
jmp 0x14023f617
mov rbx, qword [rsp + 0xa0]
mov rdx, qword [0x140469550]
lea rax, [r14 + rbp]
movsxd rcx, r15d
add rdx, rcx
cmp byte [rdx], 0
je 0x14023f63e
sub rsi, rcx
mov rcx, rax
lea r8, [rsi + 1]
call fcn.140003740
jmp 0x14023f641
mov byte [rax], 0
test r13, r13
je 0x14023f68f
test rdi, rdi
jne 0x14023f68f
lea rcx, [rbp - 1]
nop
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x14023f650
movzx eax, word [0x1403b822c]
mov word [rcx], ax
lea rcx, [rbp - 1]
nop dword [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x14023f670
xor edx, edx
nop dword [rax]
movzx eax, byte [rbx + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14023f680
lea rcx, [0x1403c7a24]
call fcn.1401c2920
movsxd rbx, eax
test eax, eax
jns 0x14023f6c3
lea rcx, str.E355:_Unknown_option:__s
call qword [case.0x1400407ae.0]
mov rcx, rax
lea rdx, [0x1403c7a24]
call fcn.1401860c0
jmp 0x14023f7b9
imul rcx, rbx, 0x58
cmp dword [0x14045b4d0], 0
lea rax, str.aleph
mov rdi, qword [rcx + rax + 0x10]
jle 0x14023f70d
bt rdi, 0x13
jae 0x14023f70d
lea rcx, str.E48:_Not_allowed_in_sandbox
call qword [case.0x1400407ae.0]
mov rbx, rax
call fcn.140182a30
test eax, eax
jne 0x14023f7b9
mov rcx, rbx
call fcn.140182400
jmp 0x14023f7b9
test dil, 4
je 0x14023f722
xor r8d, r8d
mov rdx, rbp
mov ecx, ebx
call fcn.1401ccf40
jmp 0x14023f78d
add rcx, rax
xor edx, edx
call fcn.1401b6cd0
mov r10, rax
test rax, rax
je 0x14023f7b9
xor edx, edx
cmp byte [rbp], 0x30
jne 0x14023f74e
mov rcx, rbp
inc edx
lea rcx, [rcx + 1]
cmp byte [rcx], 0x30
je 0x14023f743
movsxd rax, edx
cmp byte [rax + rbp], 0
jne 0x14023f79a
test edx, edx
je 0x14023f79a
xor r8d, r8d
mov rdx, r10
mov ecx, ebx
test dil, 2
je 0x14023f785
mov dword [rsp + 0x28], r8d
lea r9, [0x140461c50]
mov qword [rsp + 0x20], 0x50
call fcn.1401b9340
jmp 0x14023f78d
xor r9d, r9d
call fcn.1401b9b40
test rax, rax
je 0x14023f7b9
mov rcx, rax
jmp 0x14023f6ea
lea rcx, str.E521:_Number_required:__s___s
call qword [case.0x1400407ae.0]
mov r8, rbp
lea rdx, [0x1403c7a24]
mov rcx, rax
call fcn.1401860c0
cmp dword [0x14045b3f8], 0
jne 0x14023f7ca
mov rcx, rbp
call fcn.140005660
mov dword [rsp + 0x90], 1
mov rbx, qword [rsp + 0x90]
jmp 0x14023f7e1
xor ebx, ebx
cmp dword [0x14045b3f8], 0
jne 0x14023f7f2
mov rcx, r12
call fcn.140005660
mov rsi, qword [rsp + 0x30]
cmp dword [0x14045b3f8], 0
jne 0x14023f808
mov rcx, rsi
call fcn.140005660
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x14023f826
cmp dword [0x14045b3f8], 0
jne 0x14023f826
mov rcx, rax
call fcn.140005660
mov eax, ebx
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor ebx, ebx
jmp 0x14023f7f7