Function at 0x140002650
Capabilities:
Get file size

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1c8
xor r8d, r8d
xor edx, edx
mov r9d, 0x12
mov r12, rcx
mov rcx, qword [0x1400b5e10]
call qword [0x14011cce8]
mov qword [rsp + 0x40], rax
inc rax
jne 0x1400026a1
call fcn.14003893c
lea rcx, str.SetupDiGetClassDevs__Interface__failed:__s
mov rdx, rax
call fcn.140038472
jmp 0x140002a5c
mov rax, qword [0x14011ccd8]
xor r11d, r11d
or rbx, 0xffffffffffffffff
mov dword [rsp + 0x80], 0x20
mov dword [rsp + 0x54], r11d
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x80]
mov edx, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
mov r8, rax
mov rax, qword [rsp + 0x58]
call rax
test eax, eax
je 0x140002a5c
lea rbp, [0x1400cf0c0]
xor eax, eax
mov ecx, 0x41
mov rdx, qword [rsp + 0x48]
mov rdi, rbp
mov r9, rbp
lea r8, [rsp + 0x7c]
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x78]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rdi
call fcn.140002108
test eax, eax
jne 0x140002752
call fcn.14003893c
lea rcx, str.SetupDiGetDeviceRegistryProperty__Friendly_Name__failed:__s
mov rdx, rax
call fcn.140038472
mov r9d, 0x16
mov edx, 0x104
mov rcx, rbp
lea r8, str.Generic_Optical_Drive
call fcn.140001fb0
mov rdx, rbp
lea rcx, str.Found__s_optical_device
xor esi, esi
call fcn.140038472
mov rax, qword [0x1400b5e10]
xor r10d, r10d
mov dword [rsp + 0xa0], 0x20
mov dword [rsp + 0x68], r10d
mov r15, qword [0x14011cce0]
mov qword [rsp + 0x60], rax
lea rax, [rbx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400027a0
mov rcx, rbx
or rbx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.DLL_CreateDirectorCreateEventACreateFileA]
mov rcx, rsi
lea r13, [rsp + 0xa0]
call fcn.1400796c8
mov qword [rsp + 0x20], r13
mov r9d, dword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
call r15
test eax, eax
jne 0x1400027fa
call qword [sym.imp.KERNEL32.DLL_PeekNamedPipe]
cmp eax, 0x103
je 0x140002a53
call fcn.14003893c
lea rcx, str.SetupDiEnumDeviceInterfaces_failed:__s
mov rdx, rax
call fcn.140038472
jmp 0x140002a53
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdi
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x28], r9
mov r14, qword [0x14011ccf8]
xor r9d, r9d
mov rdx, r13
call r14
test eax, eax
jne 0x1400028b1
call qword [sym.imp.KERNEL32.DLL_PeekNamedPipe]
cmp eax, 0x7a
jne 0x140002896
mov edx, dword [rsp + 0x78]
mov ecx, 1
mov dword [rsp + 0x6c], edx
call sub.msvcrt.dll_vfprintf
mov r9d, dword [rsp + 0x6c]
lea rcx, str.Unable_to_allocate_data_for_SP_DEVICE_INTERFACE_DETAIL_DATA
test rax, rax
mov rsi, rax
je 0x1400028b8
xor r8d, r8d
mov dword [rax], 8
mov rcx, qword [rsp + 0x40]
mov rdx, r13
mov qword [rsp + 0x28], r8
mov r8, rax
mov qword [rsp + 0x20], rdi
call r14
test eax, eax
jne 0x1400028bf
call fcn.14003893c
lea rcx, str.SetupDiGetDeviceInterfaceDetail__actual__failed:__s
mov rdx, rax
call fcn.140038472
jmp 0x140002a4a
call fcn.14003893c
lea rcx, str.SetupDiGetDeviceInterfaceDetail__dummy__failed:__s
mov rdx, rax
call fcn.140038472
xor esi, esi
jmp 0x140002a4a
lea rcx, str.SetupDiGetDeviceInterfaceDetail__dummy____no_data_was_allocated
call fcn.140038472
jmp 0x1400028aa
xor ecx, ecx
lea r13, [rsi + 4]
xor r9d, r9d
mov r8d, 1
mov qword [rsp + 0x30], rcx
mov edx, 0x80000000
mov rcx, r13
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.DLL_DeleteCriticalDeleteFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140002a4a
xor edx, edx
lea rax, [rsp + 0xc0]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x38], rdx
mov rcx, rbx
mov edx, 0x700a0
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x100
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.DLL_GetFileSizeEx]
test eax, eax
je 0x140002a4a
cmp qword [rsp + 0xd8], 0x1000
jle 0x140002a4a
mov ecx, 0x800
call fcn.140079730
mov r14, rax
test rax, rax
je 0x1400029f2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8000
mov rcx, rbx
call qword [0x14011c720]
test eax, eax
je 0x1400029f2
xor eax, eax
mov r9, rdi
mov r8d, 0x800
mov rdx, r14
mov qword [rsp + 0x20], rax
mov rcx, rbx
call qword [0x14011c6d8]
test eax, eax
je 0x1400029f2
cmp dword [rsp + 0x78], 0x800
jne 0x1400029f2
movups xmm0, xmmword [r14 + 0x28]
movups xmm1, xmmword [r14 + 0x38]
lea rdi, [0x1400cf080]
mov byte [0x1400cf0a0], 0
mov rcx, rdi
movups xmmword [0x1400cf080], xmm0
movups xmmword [0x1400cf090], xmm1
call fcn.1400797e8
dec eax
cdqe
cmp eax, 0xffffffff
jne 0x1400029e3
mov qword [r12 + 0x28], rdi
jmp 0x1400029f2
cmp byte [rdi + rax], 0x20
jne 0x1400029dc
mov byte [rdi + rax], 0
dec rax
jmp 0x1400029d7
mov rcx, r13
call fcn.1400797e8
mov r8, r13
mov edx, 0x104
mov rcx, rbp
lea r9, [rax + 1]
call fcn.140001fb0
mov rax, qword [rsp + 0xd8]
mov qword [r12 + 0x18], rbp
mov qword [r12 + 0x10], rax
lea rax, [rbx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140002a33
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_CreateDirectorCreateEventACreateFileA]
mov rcx, rsi
call fcn.1400796c8
mov rcx, r14
call fcn.1400796c8
mov eax, 1
jmp 0x140002a5e
inc dword [rsp + 0x68]
jmp 0x140002789
inc dword [rsp + 0x54]
jmp 0x1400026c4
xor eax, eax
add rsp, 0x1c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret