Function at 0x180007590
Capabilities:
Get file size
Get file system object information

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x260]
sub rsp, 0x360
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x3b0], rbx
mov rax, qword [0x1802678f0]
xor rax, rsp
mov qword [rbp + 0x250], rax
mov r14, rdx
mov r15, rcx
xor r12d, r12d
mov dword [rsp + 0x40], r12d
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x180007975
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rdx, [0x180228b98]
lea rsi, [r12 - 1]
cmp rdx, 0x10000
jae 0x18000761f
movzx edx, dx
lea rcx, [rsp + 0x48]
call fcn.180002ab0
jmp 0x18000763a
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x180007622
mov r8d, eax
lea rcx, [rsp + 0x48]
call fcn.180002e50
nop
mov qword [rsp + 0x50], r12
mov rbx, qword [rsp + 0x48]
lea rdi, [rbx - 0x18]
mov rcx, qword [rdi]
test rcx, rcx
je 0x18000765e
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x18000766f
call fcn.18000fc98
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x180007980
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x40], 1
test r14, r14
jne 0x180007699
mov eax, r12d
jmp 0x1800076ab
mov rax, rsi
nop dword [rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x1800076a0
mov dword [rsp + 0x20], eax
mov r9, r14
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.180004830
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r12, rax
lea rdx, [rbx - 0x18]
mov ecx, esi
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x18000770d
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
mov eax, esi
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x180007725
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp r12, 0xffffffffffffffff
jne 0x1800077e2
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x18000798b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
call fcn.18000fc98
mov rcx, rax
test rax, rax
je 0x18000796a
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x78], rax
mov edx, 0x1f4b
lea rcx, [rsp + 0x70]
call fcn.180002ab0
mov r8, r14
mov rdx, qword [rsp + 0x70]
lea rcx, [rbp - 0x78]
call fcn.180003b70
xor r8d, r8d
lea edx, [r12 + 0x31]
mov rbx, qword [rbp - 0x78]
mov rcx, rbx
call fcn.1800187d8
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1800077bd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x180007940
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x180007940
lea rdx, [rsp + 0x68]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r13d, dword [rsp + 0x68]
shl r13, 0x20
mov eax, eax
add r13, rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov r8d, 0x2b8
lea rcx, [rbp - 0x70]
call fcn.18019d020
mov dword [rsp + 0x20], 0x4001
mov r9d, 0x2b8
lea r8, [rbp - 0x70]
xor edx, edx
mov rcx, r14
call qword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov rbx, rax
test rax, rax
je 0x1800078aa
cmp qword [r15 + 0x348], 0
jne 0x1800078aa
mov qword [r15 + 0x348], rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
lea rcx, [rsp + 0x78]
call fcn.18002529c
nop
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.18002559c
mov r9, qword [rbp - 0x80]
mov edx, 0x1003
mov r8d, 1
mov rcx, qword [r15 + 0x2a0]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rax
call fcn.1800258a4
lea rcx, [rsp + 0x78]
call fcn.180025860
nop
lea rcx, [rsp + 0x78]
call fcn.1800252e0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
mov rcx, qword [r15 + 0x2a0]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r8d, r8d
mov qword [rsp + 0x38], r8
mov ecx, dword [rbp - 0x68]
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x20], r8d
mov r9, r14
mov r8d, eax
mov edx, 3
lea rcx, [r15 + 0x260]
call fcn.180025c30
mov ebx, eax
mov rdx, r13
lea rcx, [rsp + 0x58]
call fcn.18000e530
nop
mov r9, qword [rax]
mov r8d, 1
mov edx, ebx
lea rcx, [r15 + 0x260]
call fcn.180025efc
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x180007936
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [r15 + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.18019ab50
mov rbx, qword [rsp + 0x3b0]
add rsp, 0x360
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
nop
mov ecx, 0x80004005
call fcn.180003260
int3