Function at 0x180099d30
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r9
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov ebp, dword [rsp + 0xd0]
mov r15, rdx
mov r14, r9
mov r13, r8
mov rdi, rcx
lea edx, [rbp + 0x13b]
mov dword [rsp + 0xd0], edx
cmp ebp, edx
jae 0x180099fa8
mov r12, qword [rsp + 0x50]
xor ebx, ebx
lea r8, [0x180000000]
cmp ebp, 0x107
ja 0x18009a18a
je 0x18009a1f2
lea eax, [rbp - 4]
cmp eax, 0xef
ja case.0x180099dbe.17
movzx eax, byte [r8 + rax + 0x9a2a8]
mov ecx, dword [r8 + rax*4 + 0x9a270]
add rcx, r8
jmp rcx
mov r8, qword [rsp + 0x70]
mov rcx, r8
movzx eax, word [r8]
test ax, ax
je 0x180099df7
cmp ax, 0x5c
je 0x180099df4
cmp ax, 0x2f
je 0x180099df4
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x180099dd1
mov ebp, 0xde
jmp case.0x180099dbe.17
mov word [rcx], bx
mov ebp, 0xde
jmp case.0x180099dbe.17
movups xmm0, xmmword [rdi]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [r15 + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [r15 + 0x20], xmm0
jmp case.0x180099dbe.17
cmp dword [r15 + 0x18], ebx
jbe case.0x180099dbe.17
mov rax, qword [r15 + 0x10]
nop dword [rax]
movsx eax, byte [rax]
cmp al, 0xc0
jae 0x18009a161
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x18009a161
inc qword [r15 + 0x10]
dec dword [r15 + 0x18]
mov rax, qword [r15 + 0x10]
cmp dword [r15 + 0x18], ebx
ja 0x180099e30
mov edx, dword [rsp + 0xd0]
jmp case.0x180099dbe.17
mov qword [rsp + 0x28], rbx
mov r9d, 0x62
xor r8d, r8d
mov qword [rsp + 0x20], r15
xor edx, edx
xor ecx, ecx
call fcn.180064120
mov edx, dword [rsp + 0xd0]
mov qword [rsp + 0x70], rax
jmp case.0x180099dbe.17
cmp dword [r12 + 8], ebx
jbe 0x180099ec8
mov rax, qword [r12]
movsx eax, byte [rax]
cmp al, 0xc0
jae 0x180099ec8
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x180099ec8
inc qword [r12]
dec dword [r12 + 8]
mov rax, qword [r12]
cmp dword [r12 + 8], ebx
ja 0x180099ea1
mov eax, dword [r12 + 8]
test eax, eax
je 0x180099f0b
nop dword [rax]
nop word [rax + rax]
lea ecx, [rax - 1]
mov rax, qword [r12]
movsx edx, byte [rcx + rax]
cmp dl, 0xc0
jae 0x180099f0b
mov ecx, edx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x180099f0b
mov eax, dword [r12 + 8]
sub eax, 1
mov dword [r12 + 8], eax
jne 0x180099ee0
mov edx, dword [rsp + 0x48]
lea ecx, [rdx + 1]
add rcx, r13
mov qword [r15 + 0x10], rcx
mov eax, dword [r14]
sub eax, edx
mov edx, dword [rsp + 0xd0]
dec eax
mov dword [r15 + 0x18], eax
jmp case.0x180099dbe.17
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x6c]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x64]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov edx, dword [rsp + 0xd0]
mov dword [rsp + 0x60], eax
jmp case.0x180099dbe.17
cmp dword [r14], 1
jb 0x18009a1a6
test rdi, rdi
je case.0x180099dbe.17
movzx eax, byte [r13 - 1]
cmp al, 0x20
je 0x180099f88
cmp al, 9
jne case.0x180099dbe.17
mov esi, 0x19
nop dword [rax]
mov eax, esi
sub eax, 0x19
je 0x180099fce
cmp eax, 1
jne 0x18009a051
mov dword [rsp + 0x40], 0xffffffe7
mov rax, qword [rsp + 0x40]
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
cmp dword [rdi + 0x18], ebx
jbe 0x180099ffa
mov rax, qword [rdi + 0x10]
movsx eax, byte [rax]
cmp al, 0xc0
jae 0x180099ffa
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x180099ffa
inc qword [rdi + 0x10]
dec dword [rdi + 0x18]
mov rax, qword [rdi + 0x10]
cmp dword [rdi + 0x18], ebx
ja 0x180099fd7
mov eax, dword [rdi + 0x18]
test eax, eax
je 0x18009a037
nop dword [rax]
nop word [rax + rax]
lea ecx, [rax - 1]
mov rax, qword [rdi + 0x10]
movsx edx, byte [rcx + rax]
cmp dl, 0xc0
jae 0x18009a037
mov ecx, edx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x18009a037
mov eax, dword [rdi + 0x18]
sub eax, 1
mov dword [rdi + 0x18], eax
jne 0x18009a010
cmp dword [rdi + 0x18], ebx
jne 0x18009a045
mov qword [rdi + 0x10], r13
mov eax, dword [r14]
jmp 0x18009a04e
mov eax, r13d
sub eax, dword [rdi + 0x10]
add eax, dword [r14]
mov dword [rdi + 0x18], eax
inc esi
cmp esi, 0x1b
jb 0x180099f90
mov edx, dword [rsp + 0xd0]
jmp case.0x180099dbe.17
test rdi, rdi
je 0x180099fa8
cmp dword [r15 + 0x20], ebx
jbe case.0x180099dbe.17
mov eax, 0x127
cmp eax, 0x127
jne 0x18009a0e3
mov ecx, dword [r15 + 0x20]
mov eax, ebx
mov r14, qword [r15 + 0x18]
test ecx, ecx
je 0x18009a0d9
mov esi, eax
cmp qword [r14 + rsi*8], rdi
je 0x18009a0b0
inc eax
cmp eax, ecx
jb 0x18009a095
jmp 0x18009a0d9
mov r9d, 0xbf
xor r8d, r8d
mov rdx, rdi
xor ecx, ecx
call fcn.180029510
mov rdx, qword [r15 + 0x60]
mov r8d, 0x68
mov rcx, rdi
call fcn.1800b2040
mov qword [r14 + rsi*8], rbx
mov eax, 0x127
mov ebp, 0x34
dec eax
cmp eax, 0x126
ja 0x18009a080
mov r14, qword [rsp + 0xc8]
mov edx, dword [rsp + 0xd0]
jmp case.0x180099dbe.17
cmp qword [rsp + 0x70], rbx
je 0x18009a24e
jmp case.0x180099dbe.17
lea r8, [r15 + 0x50]
jmp 0x18009a16e
mov eax, dword [r14]
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x58], eax
xor r9d, r9d
lea rax, [rsp + 0x48]
mov dword [rsp + 0x50], 0x3a
mov qword [rsp + 0x28], rax
mov r8d, 0xe7
lea rax, [rsp + 0x58]
mov rdx, r13
mov qword [rsp + 0x20], rax
mov r12, r15
call fcn.18004b230
test eax, eax
jne 0x18009a1a6
mov eax, dword [rsp + 0x48]
mov dword [r15 + 8], eax
mov qword [r15], r13
mov edx, dword [rsp + 0xd0]
jmp case.0x180099dbe.17
lea r8, [r15 + 0x18]
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor ecx, ecx
lea edx, [r9 + 0x16]
call fcn.180098b00
mov edx, dword [rsp + 0xd0]
jmp case.0x180099dbe.17
cmp ebp, 0x108
je 0x18009a248
add ebp, 0x15
cmp ebp, edx
jae 0x180099fa8
jmp 0x180099d83
mov dword [rsp + 0x40], 0xffffffea
jmp 0x180099fa8
mov eax, dword [r15 + 0x18]
test eax, eax
je 0x18009a1e9
nop dword [rax + rax]
lea ecx, [rax - 1]
mov rax, qword [r15 + 0x10]
movsx edx, byte [rcx + rax]
cmp dl, 0xc0
jae 0x18009a1e9
mov ecx, edx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
test eax, eax
je 0x18009a1e9
mov eax, dword [r15 + 0x18]
sub eax, 1
mov dword [r15 + 0x18], eax
jne 0x18009a1c0
mov dword [rsp + 0x40], ebx
jmp 0x180099fa8
test r15, r15
je 0x18009a23b
cmp dword [r15 + 0xa18], 0xbad1dead
je 0x18009a23b
mov qword [rsp + 0x38], rbx
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x30], 0x12a
xor r9d, r9d
mov qword [rsp + 0x28], r15
mov r8, r13
xor edx, edx
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x50], rdi
call fcn.1800aed80
mov dword [rsp + 0x40], eax
jmp 0x180099fa8
mov dword [rsp + 0x40], 0xffffffe8
jmp 0x180099fa8
cmp dword [rsp + 0x60], ebx
jne 0x18009a256
mov rax, rbx
jmp 0x180099fad
mov ecx, dword [rsp + 0x68]
mov eax, dword [rsp + 0x64]
imul rax, rcx
mov ecx, dword [rsp + 0x6c]
imul rax, rcx
jmp 0x180099fad