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

Disassembly:
push 0xffffffffffffffff
push 0x1001e287
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x244
mov al, byte [esp + 3]
push ebx
push ebp
push esi
push edi
push 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call fcn.100036b0
mov esi, dword [esp + 0x264]
lea ecx, [esp + 0x14]
push esi
push 4
push ecx
mov dword [esp + 0x268], 0
xor ebp, ebp
call fcn.1000fce0
add esp, 0xc
test al, al
je 0x10010274
mov dl, byte [esp + 0x13]
push ebp
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3c], dl
call fcn.10001ba0
lea edi, [esp + 0x14]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x14]
push ecx
push eax
lea ecx, [esp + 0x40]
call fcn.10001d90
lea ecx, [esp + 0x38]
lea edx, [esp + 0x28]
push ecx
push edx
mov byte [esp + 0x264], 1
call fcn.10011950
add esp, 8
mov ecx, dword [0x1001f2c8]
mov byte [esp + 0x25c], 2
push ecx
push ebp
push eax
lea ecx, [esp + 0x24]
call fcn.10004ba0
push 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x260], 1
call fcn.100036b0
push 1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x260], 0
call fcn.10001ba0
mov ebp, dword [esp + 0x1c]
test ebp, ebp
jne 0x10010164
mov ebp, 0x1001f2c4
push ebp
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov ecx, dword [esp + 0x268]
xor ebx, ebx
cmp ecx, ebx
je 0x1001017a
mov dword [ecx], eax
test al, 4
jne 0x1001034d
mov edi, dword [esp + 0x274]
mov esi, dword [esp + 0x278]
push ebx
push edi
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x100101b0
cmp esi, ebx
je 0x100101a7
mov dword [esi], ebx
mov dword [esi + 4], ebx
cmp edi, ebx
je 0x100101b0
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov esi, dword [esp + 0x270]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x4a]
push ebx
mov word [esp + 0x4c], bx
push ebx
push ebx
rep stosd dword es:[edi], eax
push ebx
push esi
lea ecx, [esp + 0x5c]
push 0x20a
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
jne 0x100102ed
mov dword [esi], ebx
mov esi, dword [esp + 0x26c]
mov ebp, dword [0x1001f2cc]
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x10010226
mov al, byte [ebx - 1]
test al, al
je 0x10010226
cmp al, 0xff
je 0x10010226
push 1
mov ecx, esi
call fcn.10001ba0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
mov ecx, esi
call fcn.10001d90
mov eax, dword [esi + 8]
cmp eax, ebp
jae 0x1001022f
mov ebp, eax
test ebp, ebp
jbe 0x10010345
mov ecx, dword [esi + 4]
sub eax, ebp
push eax
lea edx, [ecx + ebp]
push edx
push ecx
call fcn.10012f00
mov edi, dword [esi + 8]
add esp, 0xc
sub edi, ebp
mov ecx, esi
push 0
push edi
call fcn.10001e50
test al, al
je 0x10010345
push edi
mov ecx, esi
call fcn.10001e30
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jmp 0x10010353
push 2
lea edx, [esp + 0x2c]
push 0
push edx
mov ecx, esi
call fcn.10010820
mov edx, eax
mov edi, 0x10052abc
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x25c], 3
repne scasb al, byte es:[edi]
mov eax, dword [edx + 8]
not ecx
dec ecx
push ecx
push 0x10052abc
push eax
push 0
mov ecx, edx
call fcn.10010a80
test eax, eax
push 1
lea ecx, [esp + 0x2c]
sete bl
mov byte [esp + 0x260], 0
call fcn.10001ba0
test bl, bl
je 0x10010164
push 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x260], 0xffffffff
call fcn.100036b0
xor al, al
jmp 0x10010375
lea eax, [esp + 0x48]
lea ecx, [esp + 0x28]
push eax
push ecx
call fcn.10011aa0
add esp, 8
mov edx, dword [0x1001f2cc]
mov ecx, dword [esp + 0x26c]
push edx
push ebx
push eax
mov byte [esp + 0x268], 4
call fcn.100034b0
mov ecx, dword [esp + 0x2c]
cmp ecx, ebx
je 0x10010345
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x1001033c
cmp al, 0xff
je 0x1001033c
dec al
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jmp 0x10010353
push ecx
call fcn.10011d80
add esp, 4
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jmp 0x10010353
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
je 0x10010373
mov al, byte [ecx - 1]
test al, al
je 0x10010367
cmp al, 0xff
je 0x10010367
dec al
mov byte [ecx - 1], al
jmp 0x10010373
add ecx, 0xfffffffe
push ecx
call fcn.10011d80
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x254]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x250
ret