Function at 0x100124c40
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov r13d, r9d
mov rbp, r8
mov rsi, rdx
mov rdi, rcx
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100124c97
test byte [rcx + 0x1c], 1
je 0x100124c97
cmp byte [rcx + 0x19], 4
jb 0x100124c97
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x61
call fcn.10001c7b8
or qword [rsp + 0x50], 0xffffffffffffffff
xor ebx, ebx
mov r12b, 1
mov r15, rbx
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rbx
mov r14, rbx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x68], rbx
mov dword [rsp + 0x40], ebx
mov byte [rsp + 0xc0], r12b
mov dword [rsp + 0xd0], ebx
cmp rdi, rbx
jne 0x100124cf6
lea r8, [0x100013c00]
lea rcx, [0x1000138c0]
mov edx, 0xd3d
call fcn.100099ad8
cmp rbp, rbx
jne 0x100124d13
lea r8, [0x100013c10]
lea rcx, [0x1000138c0]
mov edx, 0xd3e
call fcn.100099ad8
mov rbx, qword [rsp + 0xe0]
test rbx, rbx
jne 0x100124d38
lea r8, [0x100004860]
lea rcx, [0x1000138c0]
mov edx, 0xd3f
call fcn.100099ad8
mov rax, qword [rsp + 0xe8]
test rax, rax
jne 0x100124d65
lea r8, [0x100013c20]
lea rcx, [0x1000138c0]
mov edx, 0xd40
call fcn.100099ad8
mov rax, qword [rsp + 0xe8]
and qword [rax], r14
lea r8, [rsp + 0xd0]
mov rdx, rbx
mov rcx, rdi
call fcn.100124140
mov ebx, eax
test eax, eax
js 0x100125121
cmp dword [rsp + 0xd0], 4
jne 0x100124dc6
xor r12b, r12b
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100124dc6
test byte [rcx + 0x1c], 1
je 0x100124dc6
cmp byte [rcx + 0x19], 5
jb 0x100124dc6
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x62
call fcn.10001c7b8
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.10009b37c
mov r15, qword [rsp + 0x60]
mov ebx, eax
test eax, eax
js 0x100125121
test r12b, r12b
je 0x100124f7f
lea r9, [rsp + 0x68]
lea rdx, [rsp + 0x70]
xor r8d, r8d
mov rcx, r15
mov byte [rsp + 0x20], 1
call fcn.100129a08
mov ebx, eax
test eax, eax
js 0x100125121
mov rax, qword [rsp + 0x68]
cmp rsi, 0xffffffffffffffff
je 0x100124e63
cmp rax, 0xffffffffffffffff
je 0x100124e63
mov rcx, qword [0x1001653b8]
lea rdi, [0x1001653b8]
cmp rcx, rdi
je 0x100124e5e
test byte [rcx + 0x1c], 1
je 0x100124e5e
cmp byte [rcx + 0x19], 4
jb 0x100124e5e
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x63
mov r9, rax
call fcn.10001d680
mov rcx, qword [0x1001653b8]
xor r12b, r12b
jmp 0x100124eb2
mov rcx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
cmp rcx, rdx
je 0x100124eab
test byte [rcx + 0x1c], 1
je 0x100124eab
cmp byte [rcx + 0x19], 4
jb 0x100124eab
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x28], rax
lea r8, [0x100002f40]
mov edx, 0x64
mov r9, rdi
mov qword [rsp + 0x20], rsi
call fcn.10001e6a0
mov rcx, qword [0x1001653b8]
lea rdi, [0x1001653b8]
mov r14, qword [rsp + 0x70]
test r14, r14
jne 0x100124eee
cmp rcx, rdi
je 0x100124eeb
test byte [rcx + 0x1c], 1
je 0x100124eeb
cmp byte [rcx + 0x19], 5
jb 0x100124eeb
mov rcx, qword [rcx + 0x10]
lea edx, [r14 + 0x65]
lea r8, [0x100002f40]
xor r9d, r9d
call fcn.10001d680
mov rcx, qword [0x1001653b8]
xor r12b, r12b
test r12b, r12b
je 0x100124f86
mov rcx, qword [rsp + 0xe0]
xor edx, edx
call fcn.10010ad48
mov ebx, eax
test eax, eax
js 0x100125121
lea rdx, [rsp + 0x48]
mov rcx, r15
call fcn.10012a560
mov ebx, eax
test eax, eax
js 0x100125121
mov rcx, qword [rsp + 0xe0]
call fcn.10010aed8
mov r11, qword [rsp + 0x48]
cmp r14, r11
ja 0x100124f7f
mov rcx, qword [0x1001653b8]
cmp rcx, rdi
je 0x100124f7a
test byte [rcx + 0x1c], 1
je 0x100124f7a
cmp byte [rcx + 0x19], 5
jb 0x100124f7a
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x66
mov r9, r14
mov qword [rsp + 0x20], r11
call fcn.10001eb18
mov rcx, qword [0x1001653b8]
xor r12b, r12b
jmp 0x100124f86
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100124fba
test byte [rcx + 0x1c], 1
je 0x100124fba
cmp byte [rcx + 0x19], 5
jb 0x100124fba
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x67
call fcn.10001c7b8
mov rcx, qword [0x1001653b8]
xor edi, edi
test r13d, r13d
je 0x10012503e
lea rbx, [rbp + 0xe0]
mov rcx, qword [rbx]
test rcx, rcx
je 0x100125029
and qword [rsp + 0x30], 0
xor r9d, r9d
mov edx, 0x40000000
lea r8d, [r9 + 7]
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x50], rax
cmp rax, 0xffffffffffffffff
je 0x10012510d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
test eax, eax
je 0x1001250ba
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or qword [rsp + 0x50], 0xffffffffffffffff
inc edi
add rbx, 0x160
cmp edi, r13d
jb 0x100124fc8
mov rcx, qword [0x1001653b8]
lea rdi, [0x1001653b8]
cmp rcx, rdi
je 0x10012506b
test byte [rcx + 0x1c], 1
je 0x10012506b
cmp byte [rcx + 0x19], 5
jb 0x10012506b
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x69
call fcn.10001c7b8
mov rcx, qword [rsp + 0xe0]
xor edx, edx
call fcn.10010ad48
mov ebx, eax
test eax, eax
js 0x100125128
lea r9, [rsp + 0x68]
lea r8, [rsp + 0xd0]
lea rdx, [rsp + 0x70]
mov rcx, r15
xor edi, edi
xor ebp, ebp
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x1001251a1
mov rcx, r15
call fcn.100134ad4
mov ebx, eax
jmp 0x1001251b0
call qword [sym.imp.ntdll.dll_RtlGetLastNtStatus]
mov rcx, qword [0x1001653b8]
lea rdi, [0x1001653b8]
cmp rcx, rdi
je 0x1001250f7
test byte [rcx + 0x1c], 1
je 0x1001250f7
cmp byte [rcx + 0x19], 2
jb 0x1001250f7
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x68
mov r9d, eax
call fcn.10001c7dc
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x100125128
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
lea rdi, [0x1001653b8]
mov rcx, qword [rsp + 0xe0]
call fcn.10010aed8
mov rax, qword [rsp + 0x50]
cmp rax, 0xffffffffffffffff
je 0x100125149
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r15, r15
je 0x100125157
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1001653b8]
cmp rcx, rdi
je 0x100125184
test byte [rcx + 0x1c], 1
je 0x100125184
cmp byte [rcx + 0x19], 4
jb 0x100125184
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x70
call fcn.10001c7b8
mov eax, ebx
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdi, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0x70]
xor ebx, ebx
test ebx, ebx
js 0x100125121
mov rcx, qword [rsp + 0xe0]
call fcn.10010aed8
lea r9, [rsp + 0x40]
lea rdx, [0x100013c38]
lea rcx, [0x100013bd8]
xor r8d, r8d
call fcn.1000a42c8
mov ebx, eax
test eax, eax
js 0x100125121
mov eax, dword [rsp + 0x40]
shl rax, 0x14
test rax, rax
je 0x1001251fc
cmp rax, rdi
jbe 0x100125206
mov eax, 0x1f400000
mov qword [rsp + 0x58], rax
call fcn.100124b6c
mov r9, qword [rsp + 0x58]
lea rcx, [rax + r9]
mov rsi, rax
cmp rbp, rcx
jbe 0x100125274
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100125269
test byte [rcx + 0x1c], 1
je 0x100125269
cmp byte [rcx + 0x19], 4
jb 0x100125269
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r9
lea r8, [0x100002f40]
mov edx, 0x6a
mov r9, rbp
call fcn.1000d40b0
mov rcx, qword [0x1001653b8]
mov r9, qword [rsp + 0x58]
xor al, al
mov byte [rsp + 0xc0], al
jmp 0x100125282
mov rcx, qword [0x1001653b8]
mov al, byte [rsp + 0xc0]
test r12b, r12b
je 0x10012537d
xor r13d, r13d
test al, al
je 0x10012529b
mov r13, rsi
sub r13, rbp
add r13, r9
mov r8, qword [rsp + 0x48]
mov rax, r14
sub rax, r8
cmp r8, r14
sbb rdi, rdi
and rdi, rax
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10012533f
test byte [rcx + 0x1c], 1
je 0x100125305
cmp byte [rcx + 0x19], 5
jb 0x100125305
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x30], rbp
lea r8, [0x100002f40]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r9
mov edx, 0x6b
mov r9, r13
call fcn.100120870
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10012533f
test byte [rcx + 0x1c], 1
je 0x10012533f
cmp byte [rcx + 0x19], 5
jb 0x10012533f
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x28], r8
lea r8, [0x100002f40]
mov edx, 0x6c
mov r9, rdi
mov qword [rsp + 0x20], r14
call fcn.1000d40b0
mov rcx, qword [0x1001653b8]
cmp r13, rdi
jbe 0x100125382
xor r12b, r12b
lea rdi, [0x1001653b8]
cmp rcx, rdi
je 0x100125389
test byte [rcx + 0x1c], 1
je 0x100125389
cmp byte [rcx + 0x19], 4
jb 0x100125389
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x6d
call fcn.10001c7b8
mov rcx, qword [0x1001653b8]
jmp 0x100125389
mov r13, qword [rsp + 0x78]
lea rdi, [0x1001653b8]
mov al, byte [rsp + 0xc0]
test al, al
je 0x1001253db
test r12b, r12b
jne 0x1001253e0
mov ebx, 0x8078015e
cmp rcx, rdi
je 0x100125128
test byte [rcx + 0x1c], 1
je 0x100125128
cmp byte [rcx + 0x19], 2
jb 0x100125128
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x6e
mov r9d, 0x8078015e
call fcn.10001c7dc
jmp 0x100125128
test r12b, r12b
je 0x1001253e9
test al, al
je 0x1001253e9
mov rax, r13
jmp 0x1001253eb
xor eax, eax
mov rdx, qword [rsp + 0xe8]
mov qword [rdx], rax
cmp rcx, rdi
je 0x100125128
test byte [rcx + 0x1c], 1
je 0x100125128
cmp byte [rcx + 0x19], 4
jb 0x100125128
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002f40]
mov edx, 0x6f
mov r9, r13
call fcn.10001d680
jmp 0x100125128