Function at 0x18008a060
Capabilities:
Get file attributes

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x8e0
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x930], rbx
mov rax, qword [0x1801dc960]
xor rax, rsp
mov qword [rsp + 0x8d0], rax
mov qword [rsp + 0x68], r9
mov r12d, r8d
mov dword [rsp + 0x58], r8d
mov rdi, rdx
mov r15, rcx
mov qword [rsp + 0x60], rcx
xor r13d, r13d
mov dword [rsp + 0x48], r13d
mov r14d, r13d
mov byte [rsp + 0x2a0], r13b
xor edx, edx
mov r8d, 0x207
lea rcx, [rsp + 0x2a1]
call fcn.1800f4fb0
mov byte [rsp + 0x90], r13b
xor edx, edx
mov r8d, 0x207
lea rcx, [rsp + 0x91]
call fcn.1800f4fb0
mov byte [rsp + 0x6c0], r13b
xor edx, edx
mov r8d, 0x207
lea rcx, [rsp + 0x6c1]
call fcn.1800f4fb0
mov byte [rsp + 0x4b0], r13b
xor edx, edx
mov r8d, 0x207
lea rcx, [rsp + 0x4b1]
call fcn.1800f4fb0
lea rcx, [0x1801dc900]
mov rax, qword [0x1801dc900]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x40], rsi
lea rcx, [0x1801dc900]
mov rax, qword [0x1801dc900]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
test r15, r15
jne 0x18008a1be
mov edx, 0xa07e
lea rcx, str.line:_d__pFrom__NULL
call fcn.18005cd20
nop
lea rdx, [rbx - 0x18]
or rbp, 0xffffffffffffffff
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a19a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x18008a1b7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
jmp 0x18008a998
or rbp, 0xffffffffffffffff
cmp r12d, 1
je 0x18008a1d2
cmp r12d, 2
jne 0x18008a8ce
test rdi, rdi
je 0x18008a948
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x90]
call fcn.1800f4fb0
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x208
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov r9d, ebp
mov r8, rdi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov r8d, 3
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x4b0]
call fcn.1800f4e00
movzx ecx, byte [rsp + 0x4b0]
call fcn.180068530
test eax, eax
jne 0x18008a2ad
movzx ecx, byte [rsp + 0x4b0]
call fcn.180068680
test eax, eax
jne 0x18008a2ad
mov edx, 0xa08f
lea rcx, [0x180160950]
call fcn.18005cd20
nop
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a289
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x18008a2a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
jmp 0x18008a998
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x90]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x18008a32b
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x18008a3b0
cmp dword [rdx + 0x10], eax
jge 0x18008a2f9
cmp dword [rbx - 0xc], eax
jge 0x18008a2ee
mov ecx, 0x80070057
call fcn.180001700
int3
mov dword [rbx - 0x10], r13d
mov byte [rbx], al
jmp 0x18008a3b0
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a30f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
mov rsi, qword [rsp + 0x40]
jmp 0x18008a3b0
mov r12d, dword [rbx - 0x10]
lea r13, [rsp + 0x90]
sub r13, rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x18008a35c
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.180002910
mov rbx, qword [rsp + 0x50]
cmp r13, r12
ja 0x18008a37a
movsxd r12, edi
lea r8, [r13 + rbx]
movsxd rdx, dword [rbx - 0xc]
mov r9, r12
mov rcx, rbx
call fcn.1800f6010
jmp 0x18008a394
movsxd r12, edi
movsxd rdx, dword [rbx - 0xc]
mov r9, r12
lea r8, [rsp + 0x90]
mov rcx, rbx
call fcn.1800f5f78
test edi, edi
js 0x18008a93d
cmp edi, dword [rbx - 0xc]
jg 0x18008a93d
mov dword [rbx - 0x10], edi
mov byte [r12 + rbx], 0
xor r13d, r13d
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x208
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov r9d, ebp
mov r8, r15
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov r8d, 1
lea rdx, [rsp + 0x2a0]
lea rcx, [rsp + 0x90]
call fcn.180089c00
movzx ecx, byte [rsp + 0x4b0]
call fcn.180068530
test eax, eax
jne 0x18008a41c
movzx ecx, byte [rsp + 0x4b0]
call fcn.180068680
test eax, eax
je 0x18008a43e
movzx ecx, byte [rsp + 0x2a0]
call fcn.180068860
test eax, eax
jne 0x18008a48f
lea rcx, [rsp + 0x2a0]
call fcn.180068940
test eax, eax
jne 0x18008a48f
mov edx, 0xa0f6
lea rcx, [0x180160930]
call fcn.18005cd20
nop
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a46b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x18008a488
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
jmp 0x18008a998
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x2a0]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x18008a50d
lea rdx, [rsi - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x18008a592
cmp dword [rdx + 0x10], eax
jge 0x18008a4db
cmp dword [rsi - 0xc], eax
jge 0x18008a4d0
mov ecx, 0x80070057
call fcn.180001700
int3
mov dword [rsi - 0x10], r13d
mov byte [rsi], al
jmp 0x18008a592
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a4f1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov rbx, qword [rsp + 0x50]
jmp 0x18008a592
mov r12d, dword [rsi - 0x10]
lea r13, [rsp + 0x2a0]
sub r13, rsi
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edi
or eax, ecx
jge 0x18008a53e
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.180002910
mov rsi, qword [rsp + 0x40]
cmp r13, r12
ja 0x18008a55c
movsxd r12, edi
lea r8, [r13 + rsi]
movsxd rdx, dword [rsi - 0xc]
mov r9, r12
mov rcx, rsi
call fcn.1800f6010
jmp 0x18008a576
movsxd r12, edi
movsxd rdx, dword [rsi - 0xc]
mov r9, r12
lea r8, [rsp + 0x2a0]
mov rcx, rsi
call fcn.1800f5f78
test edi, edi
js 0x18008a932
cmp edi, dword [rsi - 0xc]
jg 0x18008a932
mov dword [rsi - 0x10], edi
mov byte [r12 + rsi], 0
xor r13d, r13d
xor eax, eax
mov rcx, rbp
lea rdi, [0x18015c494]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x18015c494]
lea rcx, [rsp + 0x40]
call fcn.180039700
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x90]
call fcn.1800f4fb0
lea r12, [r15 + 2]
mov esi, dword [rsp + 0x48]
nop word [rax + rax]
cmp word [r12], 0
jne 0x18008a754
movsxd rax, r14d
lea r8, [r15 + rax*2]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x208
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov r9d, ebp
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor r8d, r8d
lea rdx, [rsp + 0x6c0]
lea rcx, [rsp + 0x90]
call fcn.180089c00
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x6c0]
repne scasb al, byte [rdi]
not rcx
dec rcx
lea rax, [rsp + 0x6c0]
mov qword [rsp + 0x78], rax
lea r15, [rsp + 0x6c0]
mov rdi, qword [rsp + 0x40]
sub r15, rdi
mov r14d, dword [rdi - 0x10]
mov eax, r13d
test ecx, ecx
setns al
test eax, eax
je 0x18008a927
movsxd rdx, ecx
lea rcx, [rsp + 0x6c0]
call fcn.1800f6074
mov r13, rax
mov ecx, 0x7fffffff
sub ecx, eax
xor edx, edx
cmp ecx, r14d
setge dl
test edx, edx
je 0x18008a91c
lea esi, [r14 + rax]
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, esi
or eax, ecx
jge 0x18008a6cd
mov edx, esi
lea rcx, [rsp + 0x40]
call fcn.180002910
mov rdi, qword [rsp + 0x40]
cmp r15, r14
ja 0x18008a6d8
lea r8, [r15 + rdi]
jmp 0x18008a6dd
mov r8, qword [rsp + 0x78]
movsxd rdx, r13d
lea rcx, [r14 + rdi]
mov r9, rdx
call fcn.1800f5f78
test esi, esi
js 0x18008a911
cmp esi, dword [rdi - 0xc]
jg 0x18008a911
mov dword [rdi - 0x10], esi
movsxd rax, esi
mov byte [rax + rdi], 0
xor eax, eax
mov rcx, rbp
lea rdi, [0x18015284c]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x18015284c]
lea rcx, [rsp + 0x40]
call fcn.180039700
mov esi, dword [rsp + 0x48]
lea r14d, [rsi + 2]
cmp word [r12], 0
jne 0x18008a748
cmp word [r12 + 2], 0
je 0x18008a766
jmp 0x18008a74f
mov r15, qword [rsp + 0x60]
jmp 0x18008a754
mov r15, qword [rsp + 0x60]
inc esi
mov dword [rsp + 0x48], esi
add r12, 2
xor r13d, r13d
jmp 0x18008a5e0
mov r13, qword [rsp + 0x68]
mov eax, dword [rsp + 0x58]
mov dword [r13], eax
lea rcx, [r13 + 4]
mov r8, qword [rsp + 0x40]
lea rdx, [0x180153a08]
call fcn.1800f509c
mov r8, rbx
lea rdx, [0x180153a08]
lea rcx, [r13 + 0x1454]
call fcn.1800f509c
xor eax, eax
mov rcx, rbp
lea rdi, [r13 + 0x1454]
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp rcx, 3
ja 0x18008a7d0
cmp byte [r13 + rcx + 0x1453], 0x5c
jne 0x18008a7d0
mov byte [r13 + rcx + 0x1453], al
jmp 0x18008a8b3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0x10
je 0x18008a89d
mov edx, 0x5c
mov rcx, rbx
call fcn.1800f6344
test rax, rax
je 0x18008a89d
sub eax, ebx
cmp eax, 0xffffffff
je 0x18008a89d
mov r9d, eax
xor r8d, r8d
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.180003b80
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x18008a872
cmp dword [rbx + 0x10], 0
jl 0x18008a863
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x18008a863
call fcn.180002880
mov rdi, rax
mov ecx, ebp
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18008a858
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x50], rax
jmp 0x18008a872
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.180003320
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a898
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rsp + 0x50]
jmp 0x18008a89d
mov rbx, qword [rsp + 0x50]
mov r8, rbx
lea rdx, [0x180153a08]
lea rcx, [r13 + 0x1454]
call fcn.1800f509c
mov edx, 0xa0f0
lea rcx, [0x180160918]
call fcn.18005cd20
mov rcx, r13
call fcn.180068390
jmp 0x18008a8d2
mov esi, dword [rsp + 0x48]
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a8ed
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x18008a90a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, esi
jmp 0x18008a998
mov ecx, 0x80070057
call fcn.180001700
int3
mov ecx, 0x80070057
call fcn.180001700
int3
mov ecx, 0x80070057
call fcn.180001700
int3
mov ecx, 0x80070057
call fcn.180001700
int3
mov ecx, 0x80070057
call fcn.180001700
int3
mov edx, 0xa097
lea rcx, [0x1801608f8]
call fcn.18005cd20
nop
lea rdx, [rbx - 0x18]
or rbp, 0xffffffffffffffff
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008a979
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
dec ebp
test ebp, ebp
jg 0x18008a996
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
mov rcx, qword [rsp + 0x8d0]
xor rcx, rsp
call fcn.1800f4f80
mov rbx, qword [rsp + 0x930]
add rsp, 0x8e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret