Function at 0x140097360
Capabilities:
Get disk size

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rbx, qword [0x1400f5f70]
mov rsi, qword [rsp + 0x90]
mov rax, qword [rbx]
mov qword [rsp + 0x38], rax
xor eax, eax
mov rbp, rdx
mov rdi, r8
mov r12, r9
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x20]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], 0
lea r8, [rsp + 0x28]
mov qword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x140097420
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x1400973ce
mov qword [rbp], rax
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x1400973db
mov qword [rdi], rax
mov rax, qword [rsp + 0x20]
test rax, rax
jne 0x140097410
call fcn.1400be9c0
xor edi, edi
mov dword [rsi], edi
mov qword [rsi + 8], rax
mov rax, qword [rsp + 0x38]
sub rax, qword [rbx]
jne 0x14009742f
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov qword [r12], rax
jmp 0x1400973e5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call fcn.1400be9c0
jmp 0x1400973ec
call fcn.14000fcb0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rsi, qword [0x1400f5f70]
mov rax, qword [rsi]
mov qword [rsp + 0x68], rax
xor eax, eax
mov rbx, rcx
mov dword [rsp + 0x30], 0
call fcn.1400be9c0
lea rdx, [rsp + 0x30]
mov rcx, rbx
mov qword [rsp + 0x38], rax
call 0x140097530
mov edx, dword [rsp + 0x30]
test edx, edx
jne 0x140097496
mov rdx, qword [rsp + 0x68]
sub rdx, qword [rsi]
jne 0x1400974e7
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov ecx, 0x30
lea rbp, [rsp + 0x40]
call fcn.1400ea580
lea rdx, str.cannot_check_if_file_is_empty
mov rcx, rbp
mov rdi, rax
call fcn.1400c9140
movdqu xmm0, xmmword [rsp + 0x30]
mov r8, rbx
mov rdx, rbp
mov rcx, rdi
lea r9, [rsp + 0x20]
movups xmmword [rsp + 0x20], xmm0
call fcn.14008e990
mov rcx, rbp
call fcn.1400c5990
mov rax, qword [rsp + 0x68]
sub rax, qword [rsi]
je 0x1400974f1
call fcn.14000fcb0
mov rbx, rax
jmp 0x140097512
lea r8, [0x14008ee40]
lea rdx, [0x1400f7320]
mov rcx, rdi
call fcn.1400eac40
mov rcx, rbp
mov rbx, rax
call fcn.1400c5990
mov rcx, rdi
call fcn.1400ea8e0
mov rax, qword [rsp + 0x68]
sub rax, qword [rsi]
jne 0x1400974e7
mov rcx, rbx
call fcn.14000ee20
nop
nop
nop
nop
push rdi
push rsi
push rbx
sub rsp, 0x50
mov rdi, qword [0x1400f5f70]
mov rax, qword [rdi]
mov qword [rsp + 0x48], rax
xor eax, eax
mov rbx, rdx
mov rsi, rcx
call fcn.14008df10
mov ecx, dword [rbx]
test ecx, ecx
jne 0x140097574
cmp al, 2
je 0x140097590
mov rdx, rbx
mov rcx, rsi
call fcn.140098d80
test rax, rax
sete al
mov edx, dword [rbx]
test edx, edx
je 0x140097576
xor eax, eax
mov rdx, qword [rsp + 0x48]
sub rdx, qword [rdi]
jne 0x14009764d
add rsp, 0x50
pop rbx
pop rsi
pop rdi
ret
lea rcx, [rsp + 0x30]
xor r8d, r8d
mov r9, rbx
mov rdx, rsi
call fcn.14008ef80
mov rcx, qword [rsp + 0x38]
test rcx, rcx
sete al
je 0x14009756e
mov r9, qword [rcx + 8]
lea rdx, [rcx + 8]
movabs r8, 0x100000001
cmp r9, r8
je 0x1400975e0
lock sub dword [rdx], 1
jne 0x14009756e
mov byte [rsp + 0x20], al
call fcn.1400b9990
movzx eax, byte [rsp + 0x20]
jmp 0x14009756e
mov rdx, qword [rcx]
lea r9, [0x1400b6fb0]
mov qword [rcx + 8], 0
mov r8, qword [rdx + 0x10]
cmp r8, r9
jne 0x140097620
mov r8, qword [rdx + 0x18]
lea r9, [0x1400b98e0]
mov byte [rsp + 0x20], al
cmp r8, r9
jne 0x140097640
call qword [rdx + 8]
movzx eax, byte [rsp + 0x20]
jmp 0x14009756e
mov byte [rsp + 0x2f], al
mov qword [rsp + 0x20], rcx
call r8
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rsp + 0x2f]
mov rdx, qword [rcx]
jmp 0x1400975fb
call r8
movzx eax, byte [rsp + 0x20]
jmp 0x14009756e
call fcn.14000fcb0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push r12
push rbp
push rdi
push rsi
push rbx
add rsp, 0xffffffffffffff80
mov rdi, qword [0x1400f5f70]
lea rbp, [rsp + 0x20]
mov rsi, r8
lea r12, [rsp + 0x50]
mov rbx, rcx
mov rax, qword [rdi]
mov qword [rsp + 0x78], rax
xor eax, eax
mov rcx, rbp
call fcn.14008a410
mov rdx, rsi
mov rcx, r12
call fcn.14008a410
mov r8, r12
mov rdx, rbp
mov rcx, rbx
call fcn.140025bb0
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x1400976c0
lea rcx, [rsp + 0x70]
call fcn.140026660
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x60]
cmp rcx, rax
je 0x1400976de
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rax + 2]
call fcn.1400ea460
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x1400976f2
lea rcx, [rsp + 0x40]
call fcn.140026660
mov rcx, qword [rsp + 0x20]
lea rax, [rsp + 0x30]
cmp rcx, rax
je 0x140097710
mov rax, qword [rsp + 0x30]
lea rdx, [rax + rax + 2]
call fcn.1400ea460
mov rax, qword [rsp + 0x78]
sub rax, qword [rdi]
jne 0x140097759
mov rax, rbx
sub rsp, 0xffffffffffffff80
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rcx, [rsp + 0x40]
call fcn.14009a1e0
mov rcx, rbp
call fcn.1400c9f20
mov rax, qword [rsp + 0x78]
sub rax, qword [rdi]
je 0x140097763
call fcn.14000fcb0
mov rbx, rax
jmp 0x14009773d
mov rcx, rbx
call fcn.14000ee20
nop
nop
nop
nop
nop
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov r12, qword [0x1400f5f70]
mov rdi, r8
mov r8, r9
mov rsi, r9
mov rbx, rcx
mov rax, qword [r12]
mov qword [rsp + 0x78], rax
xor eax, eax
lea r13, [rsp + 0x40]
lea rbp, [rsp + 0x30]
call fcn.14008ac30
xor ecx, ecx
mov qword [rsp + 0x20], rbp
mov word [rsp + 0x30], cx
mov rcx, r13
mov qword [rsp + 0x28], 0
call fcn.140093070
mov r8d, dword [rsi]
test r8d, r8d
je 0x140097840
mov rax, qword [rbx]
xor edx, edx
mov qword [rbx + 8], 0
mov rcx, rbx
mov word [rax], dx
call fcn.140092090
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x1400977ff
mov rcx, r13
call fcn.140026660
mov rcx, qword [rsp + 0x20]
cmp rcx, rbp
je 0x140097818
mov rax, qword [rsp + 0x30]
lea rdx, [rax + rax + 2]
call fcn.1400ea460
mov rax, qword [rsp + 0x78]
sub rax, qword [r12]
jne 0x140097b2f
mov rax, rbx
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r14, [rsp + 0x50]
mov r8, rsi
lea r15, [rsp + 0x20]
mov rdx, rdi
mov rcx, r14
call fcn.14008ac30
mov rax, qword [rsp + 0x50]
lea rdi, [rsp + 0x60]
mov rcx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x58]
cmp rax, rdi
je 0x140097a70
movq xmm0, r8
movhps xmm0, qword [rsp + 0x60]
cmp rcx, rbp
je 0x140097a20
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
movups xmmword [rsp + 0x28], xmm0
test rcx, rcx
je 0x140097a2a
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], 0
xor eax, eax
mov rdx, qword [rsp + 0x40]
mov word [rcx], ax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x40], rax
test rdx, rdx
je 0x1400978e2
mov rcx, r13
call fcn.140026660
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x58], 0
xor r15d, r15d
mov word [rcx], r15w
mov rcx, r14
call fcn.140092090
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x14009790e
lea rcx, [rsp + 0x70]
call fcn.140026660
mov rcx, qword [rsp + 0x50]
cmp rcx, rdi
je 0x140097927
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rax + 2]
call fcn.1400ea460
mov r11d, dword [rsi]
test r11d, r11d
jne 0x1400977d5
lea r15, [rsp + 0x20]
mov rdx, rbx
mov rcx, r14
mov r8, r15
call fcn.140025bb0
mov rcx, qword [rbx]
lea rdx, [rbx + 0x10]
mov rax, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
cmp rcx, rdx
je 0x140097a40
cmp rax, rdi
je 0x140097aa0
movq xmm0, r8
mov rdx, qword [rbx + 0x10]
mov qword [rbx], rax
movhps xmm0, qword [rsp + 0x60]
movups xmmword [rbx + 8], xmm0
test rcx, rcx
je 0x140097a56
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], rdx
mov rax, qword [rsp + 0x70]
mov rdx, qword [rbx + 0x20]
xor r9d, r9d
mov qword [rsp + 0x58], 0
mov word [rcx], r9w
mov qword [rsp + 0x70], 0
mov qword [rbx + 0x20], rax
test rdx, rdx
je 0x1400979ca
lea rcx, [rbx + 0x20]
call fcn.140026660
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x58], 0
xor r8d, r8d
mov word [rcx], r8w
mov rcx, r14
call fcn.140092090
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x1400979f6
lea rcx, [rsp + 0x70]
call fcn.140026660
mov rcx, qword [rsp + 0x50]
cmp rcx, rdi
je 0x140097a0f
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rax + 2]
call fcn.1400ea460
mov ecx, dword [rsi]
test ecx, ecx
je 0x1400977ed
jmp 0x1400977d5
mov qword [rsp + 0x20], rax
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x50], rdi
lea rdi, [rsp + 0x60]
mov rcx, rdi
jmp 0x1400978aa
cmp rax, rdi
je 0x140097aa0
movq xmm0, r8
mov qword [rbx], rax
movhps xmm0, qword [rsp + 0x60]
movups xmmword [rbx + 8], xmm0
mov qword [rsp + 0x50], rdi
lea rdi, [rsp + 0x60]
mov rcx, rdi
jmp 0x140097991
test r8, r8
je 0x140097adf
cmp r8, 1
je 0x140097ad7
add r8, r8
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x50]
jmp 0x140097ae2
test r8, r8
je 0x140097ac3
cmp r8, 1
je 0x140097af6
add r8, r8
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x58]
mov rcx, qword [rbx]
mov rax, qword [rsp + 0x50]
xor r10d, r10d
mov qword [rbx + 8], r8
mov word [rcx + r8*2], r10w
mov rcx, rax
jmp 0x140097991
movzx eax, word [rsp + 0x60]
mov word [rcx], ax
mov rax, rdi
xor edx, edx
mov qword [rsp + 0x28], r8
mov word [rcx + r8*2], dx
mov rcx, rax
jmp 0x1400978aa
movzx edx, word [rsp + 0x60]
mov word [rcx], dx
jmp 0x140097ac3
call fcn.14000fcb0
mov rcx, rsi
call fcn.14000ee20
nop
nop
nop
nop