Function at 0x140104780
Capabilities:
Get file attributes

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x270
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x1402e0068]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov dword [rsp + 0x30], edx
mov r15, rcx
xor esi, esi
mov rdi, rsi
test rcx, rcx
je 0x140104b77
mov word [rsp + 0x50], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x52]
call fcn.1401e6750
mov rbx, rsi
xor r9d, r9d
xor r8d, r8d
or edx, 0xffffffff
mov rcx, r15
call qword [sym.imp.SHELL32.dll_DragQueryFileW]
mov r14d, eax
cmp dword [reloc.WS2_32.dll_accept], 1
jg 0x140104827
mov dword [rsp + 0x20], eax
lea r9, str.Get__u_files_from_clipboard.
mov r8d, 0x86
lea rdx, str..TShareApe.cpp
lea ecx, [rsi + 1]
call fcn.1400045f0
mov r13d, esi
test r14d, r14d
je 0x140104b72
nop word [rax + rax]
mov r9d, 0x104
lea r8, [rsp + 0x50]
mov edx, r13d
mov rcx, r15
call qword [sym.imp.SHELL32.dll_DragQueryFileW]
mov dword [rsp + 0x40], 1
lea rcx, [rsp + 0x50]
call fcn.140001a20
mov r12, rax
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
jne 0x14010488a
cmp r14d, 1
je 0x140104a7a
test r13d, r13d
jne 0x1401049a0
lea edx, [r13 + 0x5c]
mov rcx, r12
call fcn.1401e9eec
mov rbp, rax
test rax, rax
je 0x140104b0b
mov esi, r14d
mov eax, 0xc8
cmp r14d, eax
cmova esi, eax
inc esi
imul esi, esi, 0xfa
lea ecx, [rsi + 0x14]
add rcx, 0x20
call fcn.1401e6440
mov rdi, rax
test rax, rax
je 0x1401048f9
lea rax, vtable.TBufferImpl_class_TBufferAlloc__20_.0
mov qword [rdi], rax
mov dword [rdi + 0x18], r13d
mov dword [rdi + 0x1c], 1
mov dword [rdi + 0x10], esi
lea rax, [rdi + 0x34]
mov qword [rdi + 8], rax
xor esi, esi
jmp 0x1401048fe
xor esi, esi
mov rdi, rsi
test rdi, rdi
je 0x140104afc
mov ecx, reloc.WS2_32.dll_recv
call fcn.1401e65ec
mov rbx, rax
test rax, rax
je 0x14010492b
mov rax, qword [rdi + 8]
mov qword [rbx], rax
mov dword [rbx + 8], esi
mov eax, dword [rdi + 0x10]
mov dword [rbx + 0xc], eax
jmp 0x14010492e
mov rbx, rsi
mov edx, dword [rbx + 8]
lea rcx, [rdx + 1]
mov eax, dword [rbx + 0xc]
cmp rcx, rax
ja 0x140104947
mov rax, qword [rbx]
mov byte [rdx + rax], socket
inc dword [rbx + 8]
mov edx, dword [rbx + 8]
lea rcx, [rdx + 1]
mov eax, dword [rbx + 0xc]
cmp rcx, rax
ja 0x140104963
mov rax, qword [rbx]
mov ecx, dword [rsp + 0x30]
mov byte [rdx + rax], cl
inc dword [rbx + 8]
sub ebp, dword [rsp + 0x38]
mov ecx, dword [rbx + 8]
lea eax, [rcx + rbp]
cmp eax, dword [rbx + 0xc]
ja 0x140104987
test ebp, ebp
je 0x140104987
mov r8d, ebp
add rcx, qword [rbx]
mov rdx, r12
call fcn.1401e75a0
add dword [rbx + 8], ebp
mov edx, dword [rbx + 8]
lea rcx, [rdx + 1]
mov eax, dword [rbx + 0xc]
cmp rcx, rax
ja 0x1401049a0
mov rax, qword [rbx]
mov byte [rdx + rax], 0
inc dword [rbx + 8]
mov edx, 0x5c
mov rcx, r12
call fcn.1401e9eec
test rax, rax
je 0x140104a5c
lea r8, [rax + 1]
mov r10d, dword [rbx + 8]
lea eax, [r10 + 1]
cmp eax, dword [rbx + 0xc]
ja 0x140104b1a
mov r9, qword [rbx]
nop
mov ecx, dword [rbx + 8]
movzx eax, byte [r8]
mov byte [rcx + r9], al
mov eax, dword [rbx + 8]
mov r9, qword [rbx]
movzx ecx, byte [rax + r9]
lea edx, [rax + 1]
mov dword [rbx + 8], edx
inc r8
test cl, cl
je 0x140104a00
inc edx
cmp edx, dword [rbx + 0xc]
ja 0x140104b1a
jmp 0x1401049d0
lea eax, [rdx + 1]
cmp eax, dword [rbx + 0xc]
ja 0x140104b1e
lea eax, [rdx - 1]
mov dword [rbx + 8], eax
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x140104a3a
mov edx, dword [rbx + 8]
lea rcx, [rdx + 1]
mov eax, dword [rbx + 0xc]
cmp rcx, rax
ja 0x140104a3a
mov rax, qword [rbx]
mov byte [rdx + rax], 0x2f
inc dword [rbx + 8]
lea eax, [r13 + 1]
cmp eax, r14d
je 0x140104a5c
mov edx, dword [rbx + 8]
lea rcx, [rdx + 1]
mov eax, dword [rbx + 0xc]
cmp rcx, rax
ja 0x140104a5c
mov rax, qword [rbx]
mov byte [rdx + rax], 0xa
inc dword [rbx + 8]
test r12, r12
je 0x140104a69
mov rcx, r12
call fcn.1401e64f8
inc r13d
cmp r13d, r14d
jae 0x140104b37
jmp 0x140104840
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
lea rsi, [rcx + 1]
lea ecx, [rsi + 0x14]
add rcx, 0x20
call fcn.1401e6440
mov rdi, rax
test rax, rax
je 0x140104ac5
lea rax, vtable.TBufferImpl_class_TBufferAlloc__20_.0
mov qword [rdi], rax
mov dword [rdi + 0x18], 0
mov dword [rdi + 0x1c], 1
mov dword [rdi + 0x10], esi
lea rax, [rdi + 0x34]
mov qword [rdi + 8], rax
jmp 0x140104ac7
xor edi, edi
test rdi, rdi
je 0x140104aed
mov rax, qword [rdi + 8]
mov ecx, dword [rsp + 0x30]
mov byte [rax], cl
mov r8d, dword [rdi + 0x10]
mov rcx, qword [rdi + 8]
dec r8d
inc rcx
mov rdx, r12
call fcn.1401e75a0
nop
test r12, r12
je 0x140104b37
mov rcx, r12
call fcn.1401e64f8
jmp 0x140104b37
test r12, r12
je 0x140104b37
mov rcx, r12
call fcn.1401e64f8
jmp 0x140104b37
test r12, r12
je 0x140104b37
mov rcx, r12
call fcn.1401e64f8
jmp 0x140104b37
mov dword [rbx + 8], r10d
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdi, rsi
test r12, r12
je 0x140104b37
mov rcx, r12
call fcn.1401e64f8
test rbx, rbx
je 0x140104b6d
mov edx, dword [rbx + 8]
mov ecx, dword [rbx + 0xc]
lea rax, [rdx + 1]
cmp rax, rcx
ja 0x140104b55
mov rax, qword [rbx]
mov byte [rdx + rax], 0
inc dword [rbx + 8]
test rdi, rdi
je 0x140104b60
mov eax, dword [rbx + 8]
mov dword [rdi + 0x10], eax
mov rcx, rbx
call fcn.1401e60f0
mov rax, rdi
jmp 0x140104b7a
mov rax, rdi
jmp 0x140104b7a
mov rax, rdi
jmp 0x140104b7a
mov rax, rdi
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.1401e6720
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret