Function at 0x18003b9f0
Capabilities:
Get file attributes

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x340
mov qword [rsp + 0xc8], 0xfffffffffffffffe
mov qword [r11 + 0x18], rbx
mov rax, qword [0x1801dc960]
xor rax, rsp
mov qword [rsp + 0x330], rax
mov r15, r9
mov rbx, r8
mov r13, rcx
mov qword [r11 - 0x260], 0xf
xor r12d, r12d
mov qword [r11 - 0x268], r12
mov byte [r11 - 0x278], r12b
mov qword [r11 - 0x288], 0xf
mov qword [r11 - 0x290], r12
mov byte [rsp + 0xd8], r12b
test rdx, rdx
je 0x18003c24c
test rcx, rcx
je 0x18003c24c
test rbx, rbx
je 0x18003c24c
xor eax, eax
or rsi, 0xffffffffffffffff
mov rcx, rsi
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [r11 - 0x280]
call fcn.180003700
mov byte [rsp + 0x120], r12b
xor edx, edx
mov r8d, 0x207
lea rcx, [rsp + 0x121]
call fcn.1800f4fb0
lea rcx, [rsp + 0x120]
sub rcx, rbx
nop word [rax + rax]
movzx eax, byte [rbx]
mov byte [rcx + rbx], al
inc rbx
test al, al
jne 0x18003bad0
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x120]
repne scasb al, byte [rdi]
not rcx
lea r14, [rcx - 1]
lea rcx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 0x10
je 0x18003bef0
mov rcx, qword [rsp + 0x110]
test rcx, rcx
je 0x18003bc13
lea rdi, [rcx - 1]
cmp rcx, rdi
ja 0x18003bb30
call fcn.1800f3b58
mov rcx, qword [rsp + 0x110]
lea rax, [rsp + 0x100]
mov rbx, qword [rsp + 0x100]
mov rbp, qword [rsp + 0x118]
cmp rbp, 0x10
cmovae rax, rbx
cmp byte [rax + rdi], 0x5c
jne 0x18003bc13
cmp rcx, 1
jb 0x18003bbbb
dec rcx
cmp rcx, 0xffffffffffffffff
cmova rcx, rsi
lea rdi, [rsp + 0x100]
cmp rbp, 0x10
cmovae rdi, rbx
add rdi, rcx
nop
cmp byte [rdi], 0x5c
jne 0x18003bb8f
mov al, byte [rdi]
cmp al, byte [0x180151570]
je 0x18003bba6
lea rcx, [rsp + 0xf8]
call fcn.180001ac0
cmp rdi, rax
je 0x18003bbbb
dec rdi
jmp 0x18003bb80
lea rax, [rsp + 0x100]
cmp rbp, 0x10
cmovae rax, rbx
sub rdi, rax
jmp 0x18003bbbe
mov rdi, rsi
mov r9, rdi
xor r8d, r8d
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0xf8]
call fcn.180004410
nop
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xf8]
call fcn.1800035e0
nop
cmp qword [rsp + 0x48], 0x10
jb 0x18003bc00
mov rcx, qword [rsp + 0x30]
call fcn.1800f4b9c
mov qword [rsp + 0x48], 0xf
mov qword [rsp + 0x40], r12
mov byte [rsp + 0x30], 0
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x120]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0xd0]
call fcn.180003700
mov r9, qword [rsp + 0xe8]
dec r9
xor r8d, r8d
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xd0]
call fcn.180004410
nop
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1800035e0
nop
cmp qword [rsp + 0x70], 0x10
jb 0x18003bc88
mov rcx, qword [rsp + 0x58]
call fcn.1800f4b9c
mov qword [rsp + 0x70], 0xf
mov qword [rsp + 0x68], r12
mov byte [rsp + 0x58], 0
mov rbx, qword [rsp + 0xe8]
cmp rbx, 1
jb 0x18003bd8e
dec rbx
mov rcx, rbx
cmp rbx, 0xffffffffffffffff
cmova rcx, rsi
lea rdi, [rsp + 0xd8]
mov rbp, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xf0]
cmp r12, 0x10
cmovae rdi, rbp
add rdi, rcx
nop
cmp byte [rdi], 0x5c
jne 0x18003bcef
mov al, byte [rdi]
cmp al, byte [0x180151570]
je 0x18003bd0a
lea rcx, [rsp + 0xd0]
call fcn.180001ac0
cmp rdi, rax
je 0x18003bd86
dec rdi
jmp 0x18003bce0
lea rax, [rsp + 0xd8]
cmp r12, 0x10
cmovae rax, rbp
sub rdi, rax
cmp rdi, 0xffffffffffffffff
je 0x18003bd8b
cmp rbx, 0xffffffffffffffff
cmova rbx, rsi
lea rdi, [rsp + 0xd8]
cmp r12, 0x10
cmovae rdi, rbp
add rdi, rbx
nop
cmp byte [rdi], 0x5c
jne 0x18003bd4f
mov al, byte [rdi]
cmp al, byte [0x180151570]
je 0x18003bd66
lea rcx, [rsp + 0xd0]
call fcn.180001ac0
cmp rdi, rax
je 0x18003bd7b
dec rdi
jmp 0x18003bd40
lea rax, [rsp + 0xd8]
cmp r12, 0x10
cmovae rax, rbp
sub rdi, rax
jmp 0x18003bd7e
mov rdi, rsi
mov r14d, edi
xor r12d, r12d
jmp 0x18003bd8e
xor r12d, r12d
jmp 0x18003bd8e
xor r12d, r12d
xor eax, eax
mov rcx, rsi
mov rdi, r13
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0xd0]
call fcn.180003700
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x120]
repne scasb al, byte [rdi]
not rcx
lea r9, [rcx - 1]
xor r8d, r8d
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0xd0]
call fcn.180015f00
cmp rax, 0xffffffffffffffff
je 0x18003be81
xor eax, eax
mov rcx, rsi
lea rdi, [rsp + 0x120]
repne scasb al, byte [rdi]
not rcx
lea r9, [rcx - 1]
xor r8d, r8d
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0xd0]
call fcn.180015f00
movsxd r8, r14d
add r8, rax
mov r9, rsi
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0xd0]
call fcn.180004410
nop
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1800035e0
nop
cmp qword [rsp + 0x98], 0x10
jb 0x18003be60
mov rcx, qword [rsp + 0x80]
call fcn.1800f4b9c
mov qword [rsp + 0x98], 0xf
mov qword [rsp + 0x90], r12
mov byte [rsp + 0x80], 0
jmp 0x18003bff5
cmp qword [rsp + 0xf0], 0x10
jb 0x18003be99
mov rcx, qword [rsp + 0xd8]
call fcn.1800f4b9c
mov qword [rsp + 0xf0], 0xf
mov qword [rsp + 0xe8], r12
mov byte [rsp + 0xd8], 0
cmp qword [rsp + 0x118], 0x10
jb 0x18003becd
mov rcx, qword [rsp + 0x100]
call fcn.1800f4b9c
mov qword [rsp + 0x118], 0xf
mov qword [rsp + 0x110], r12
mov byte [rsp + 0x100], 0
xor eax, eax
jmp 0x18003c2b6
xor eax, eax
mov rcx, rsi
mov rdi, r13
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, r13
lea rcx, [rsp + 0xd0]
call fcn.180003700
mov rcx, qword [rsp + 0xe8]
cmp rcx, 1
jb 0x18003bf8b
dec rcx
cmp rcx, 0xffffffffffffffff
cmova rcx, rsi
lea rdi, [rsp + 0xd8]
mov rbx, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0xf0]
cmp rbp, 0x10
cmovae rdi, rbx
add rdi, rcx
nop dword [rax]
cmp byte [rdi], 0x5c
jne 0x18003bf5f
mov al, byte [rdi]
cmp al, byte [0x180151570]
je 0x18003bf76
lea rcx, [rsp + 0xd0]
call fcn.180001ac0
cmp rdi, rax
je 0x18003bf8b
dec rdi
jmp 0x18003bf50
lea rax, [rsp + 0xd8]
cmp rbp, 0x10
cmovae rax, rbx
sub rdi, rax
jmp 0x18003bf8e
mov rdi, rsi
mov r9, rsi
mov r8, rdi
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0xd0]
call fcn.180004410
nop
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1800035e0
nop
cmp qword [rsp + 0xc0], 0x10
jb 0x18003bfd9
mov rcx, qword [rsp + 0xa8]
call fcn.1800f4b9c
mov qword [rsp + 0xc0], 0xf
mov qword [rsp + 0xb8], r12
mov byte [rsp + 0xa8], 0
lea rdx, [rsp + 0x100]
cmp qword [rsp + 0x118], 0x10
cmovae rdx, qword [rsp + 0x100]
lea rcx, [rsp + 0x20]
call fcn.1800050e0
nop
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 0x10
jne 0x18003c093
mov edx, 0x5c
mov rcx, qword [rsp + 0x20]
call fcn.1800f6344
mov rcx, qword [rsp + 0x20]
test rax, rax
jne 0x18003c046
mov eax, esi
jmp 0x18003c048
sub eax, ecx
mov r8d, dword [rcx - 0x10]
sub r8d, eax
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.1800392c0
mov rcx, qword [rsp + 0x20]
movsxd rdx, dword [rcx - 0xc]
call fcn.1800f6074
test eax, eax
js 0x18003c088
mov rcx, qword [rsp + 0x20]
cmp eax, dword [rcx - 0xc]
jg 0x18003c088
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rsp + 0x20]
mov byte [rcx + rax], 0
jmp 0x18003c093
mov ecx, 0x80070057
call fcn.180001700
int3
mov rax, qword [rsp + 0x20]
mov edx, dword [rax - 0x10]
test edx, edx
je 0x18003c1bf
lea ecx, [rdx - 1]
test ecx, ecx
js 0x18003c1b4
cmp ecx, edx
jg 0x18003c1b4
movsxd rcx, ecx
cmp byte [rcx + rax], 0x5c
jne 0x18003c106
dec edx
xor r8d, r8d
lea rcx, [rsp + 0x20]
call fcn.1800393f0
mov rcx, qword [rsp + 0x20]
movsxd rdx, dword [rcx - 0xc]
call fcn.1800f6074
test eax, eax
js 0x18003c0fb
mov rcx, qword [rsp + 0x20]
cmp eax, dword [rcx - 0xc]
jg 0x18003c0fb
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rsp + 0x20]
mov byte [rcx + rax], 0
jmp 0x18003c106
mov ecx, 0x80070057
call fcn.180001700
int3
cmp qword [rsp + 0xf0], 0x10
jb 0x18003c123
mov rdx, qword [rsp + 0xd8]
test rdx, rdx
jne 0x18003c12b
mov ecx, r12d
jmp 0x18003c13b
lea rdx, [rsp + 0xd8]
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
dec rcx
mov r8d, ecx
lea rcx, [rsp + 0x20]
call fcn.180039700
mov rcx, qword [rsp + 0x20]
movsxd rdx, dword [rcx - 0xc]
call fcn.1800f6074
test eax, eax
js 0x18003c1a9
mov rcx, qword [rsp + 0x20]
cmp eax, dword [rcx - 0xc]
jg 0x18003c1a9
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rsp + 0x20]
mov byte [rcx + rax], 0
mov rdx, qword [rsp + 0x20]
movsxd rdi, dword [rdx - 0x10]
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
or eax, ecx
jge 0x18003c19c
xor edx, edx
lea rcx, [rsp + 0x20]
call fcn.180002910
mov rdx, qword [rsp + 0x20]
mov r8, rdi
mov rcx, r15
call fcn.1800f6e10
jmp 0x18003c1bf
mov ecx, 0x80070057
call fcn.180001700
int3
mov ecx, 0x80070057
call fcn.180001700
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x18003c1dd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
cmp qword [rsp + 0xf0], 0x10
jb 0x18003c1f5
mov rcx, qword [rsp + 0xd8]
call fcn.1800f4b9c
mov qword [rsp + 0xf0], 0xf
mov qword [rsp + 0xe8], r12
mov byte [rsp + 0xd8], 0
cmp qword [rsp + 0x118], 0x10
jb 0x18003c229
mov rcx, qword [rsp + 0x100]
call fcn.1800f4b9c
mov qword [rsp + 0x118], 0xf
mov qword [rsp + 0x110], r12
mov byte [rsp + 0x100], 0
mov eax, 1
jmp 0x18003c2b6
cmp qword [rsp + 0xf0], 0x10
jb 0x18003c264
mov rcx, qword [rsp + 0xd8]
call fcn.1800f4b9c
mov qword [rsp + 0xf0], 0xf
mov qword [rsp + 0xe8], r12
mov byte [rsp + 0xd8], 0
cmp qword [rsp + 0x118], 0x10
jb 0x18003c298
mov rcx, qword [rsp + 0x100]
call fcn.1800f4b9c
mov qword [rsp + 0x118], 0xf
mov qword [rsp + 0x110], r12
mov byte [rsp + 0x100], 0
xor eax, eax
mov rcx, qword [rsp + 0x330]
xor rcx, rsp
call fcn.1800f4f80
mov rbx, qword [rsp + 0x390]
add rsp, 0x340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret