Function at 0x1400134b8
Capabilities:
Get disk information
Get disk size

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x1d8]
sub rsp, 0x2b0
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x14012bd38]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov r14d, r9d
mov rsi, rdx
mov qword [rsp + 0x78], rdx
mov eax, r8d
cmp rax, qword [rcx + 0x388]
jge 0x140013a7a
imul rax, rax, 0x1928
add rax, qword [rcx + 0x380]
mov r15d, dword [rax + 0x1818]
call fcn.140077d4c
mov rcx, rax
test rax, rax
je 0x140013a80
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x48], rax
call fcn.140077d4c
mov rcx, rax
test rax, rax
je 0x140013a8b
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x50], rax
call fcn.140077d4c
mov rcx, rax
test rax, rax
je 0x140013a96
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x60], rax
and qword [rsp + 0x78], 0
and qword [rsp + 0x58], 0
and qword [rsp + 0x70], 0
mov edi, 0x41
or r12d, 0xffffffff
movsd xmm6, qword [0x1400e81b8]
lea ecx, [rdi - 0x41]
movzx eax, cl
bt r15d, eax
jae 0x1400138ce
call fcn.140077d4c
mov rcx, rax
test rax, rax
je 0x140013a6f
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x40], rax
call fcn.140077d4c
mov rcx, rax
test rax, rax
je 0x140013aa1
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x68], rax
xor edx, edx
mov r8d, 0x200
lea rcx, [rbp - 0x70]
call fcn.1400b15e0
mov r8d, edi
lea rdx, str._C:_
lea rcx, [rsp + 0x68]
call fcn.140002f84
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x78]
mov rbx, qword [rsp + 0x68]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
and dword [rsp + 0x38], 0
and qword [rsp + 0x30], 0
and qword [rsp + 0x28], 0
and qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, 0x100
lea rdx, [rbp - 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
jne 0x140013687
lea r9, [rbp - 0x70]
mov r8d, edi
lea rdx, str._C:__s_r_n
lea rcx, [rsp + 0x40]
call fcn.140002f84
jmp 0x1400137ef
mov rax, qword [rsp + 0x70]
cmp rax, rcx
jae 0x140013773
xorps xmm0, xmm0
test rax, rax
js 0x1400136a4
cvtsi2sd xmm0, rax
jmp 0x1400136bc
mov r8, rax
shr r8, 1
mov rdx, rax
and edx, 1
or r8, rdx
cvtsi2sd xmm0, r8
addsd xmm0, xmm0
xorps xmm1, xmm1
test rcx, rcx
js 0x1400136cb
cvtsi2sd xmm1, rcx
jmp 0x1400136e3
mov r8, rcx
shr r8, 1
mov rdx, rcx
and edx, 1
or r8, rdx
cvtsi2sd xmm1, r8
addsd xmm1, xmm1
divsd xmm0, xmm1
mulsd xmm0, qword [0x1400e81c8]
shr rcx, 0x14
xorps xmm2, xmm2
test rcx, rcx
js 0x140013702
cvtsi2sd xmm2, rcx
jmp 0x140013717
mov rdx, rcx
shr rdx, 1
and ecx, 1
or rdx, rcx
cvtsi2sd xmm2, rdx
addsd xmm2, xmm2
mulsd xmm2, xmm6
shr rax, 0x14
xorps xmm1, xmm1
test rax, rax
js 0x14001372e
cvtsi2sd xmm1, rax
jmp 0x140013743
mov rcx, rax
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm1, rcx
addsd xmm1, xmm1
mulsd xmm1, xmm6
movsd qword [rsp + 0x30], xmm0
movsd qword [rsp + 0x28], xmm2
movsd qword [rsp + 0x20], xmm1
lea r9, [rbp - 0x70]
mov r8d, edi
lea rdx, str._C:__s___.1f__.1f_GB___.1f______r_n
lea rcx, [rsp + 0x40]
call fcn.140002f84
jmp 0x1400137ef
shr rcx, 0x14
xorps xmm1, xmm1
test rcx, rcx
js 0x140013786
cvtsi2sd xmm1, rcx
jmp 0x14001379b
mov rdx, rcx
shr rdx, 1
and ecx, 1
or rdx, rcx
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
mulsd xmm1, xmm6
shr rax, 0x14
xorps xmm0, xmm0
test rax, rax
js 0x1400137b2
cvtsi2sd xmm0, rax
jmp 0x1400137c7
mov rcx, rax
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
mulsd xmm0, xmm6
movsd qword [rsp + 0x28], xmm1
movsd qword [rsp + 0x20], xmm0
lea r9, [rbp - 0x70]
mov r8d, edi
lea rdx, str._C:__s___.1f__.1f_GB__r_n
lea rcx, [rsp + 0x40]
call fcn.140002f84
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.140002e70
mov rcx, qword [rsp + 0x58]
shr rcx, 0x14
xorps xmm0, xmm0
test rcx, rcx
js 0x14001381a
cvtsi2sd xmm0, rcx
jmp 0x14001382f
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
mulsd xmm0, xmm6
movsd qword [rsp + 0x20], xmm0
lea r9, [rbp - 0x70]
mov r8d, edi
lea rdx, str._C:__s___.1f_GB__r_n
lea rcx, [rsp + 0x40]
call fcn.140002f84
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.140002e70
lea r9, [rbp - 0x70]
mov r8d, edi
lea rdx, str._C:__s_r_n
lea rcx, [rsp + 0x40]
call fcn.140002f84
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
call fcn.140002e70
nop
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400138ad
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400138ce
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc edi
lea eax, [rdi - 0x41]
cmp eax, 0x1a
jl 0x1400135a1
lea rcx, [rsp + 0x60]
call fcn.14000c530
lea rcx, [rsp + 0x50]
call fcn.14000c530
lea rcx, [rsp + 0x48]
call fcn.14000c530
mov rbx, qword [rsp + 0x60]
cmp dword [rbx - 0x10], r14d
jge 0x140013950
lea rcx, [rbx - 0x18]
call fcn.140001888
add rax, 0x18
mov qword [rsi], rax
mov eax, r12d
lock xadd dword [rbx - 8], eax
add eax, r12d
test eax, eax
jg 0x140013933
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400139a7
mov rcx, qword [rdx]
jmp 0x1400139a0
mov rax, qword [rsp + 0x50]
cmp dword [rax - 0x10], r14d
jge 0x1400139ca
lea rdi, [rax - 0x18]
mov rcx, rdi
call fcn.140001888
add rax, 0x18
mov qword [rsi], rax
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x14001398b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, r12d
lock xadd dword [rdi + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400139a7
mov rcx, qword [rdi]
mov rdx, rdi
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140013a3c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140013a3c
mov rdi, qword [rsp + 0x48]
lea rcx, [rdi - 0x18]
call fcn.140001888
add rax, 0x18
mov qword [rsi], rax
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x1400139fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x140013a1e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov ecx, r12d
lock xadd dword [rdi - 8], ecx
add ecx, r12d
test ecx, ecx
jg 0x140013a3c
mov rcx, qword [rdi - 0x18]
mov r8, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, rsi
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.1400b0010
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov ecx, 0x80004005
call fcn.140001860
nop
call fcn.1400771b0
int3
mov ecx, 0x80004005
call fcn.140001860
nop
mov ecx, 0x80004005
call fcn.140001860
nop
mov ecx, 0x80004005
call fcn.140001860
nop
mov ecx, 0x80004005
call fcn.140001860
int3