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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10148730
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x101a49d4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x74], edi
push ecx
lea ecx, [ebp - 0x150]
call fcn.10050070
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x8c], ecx
xorps xmm0, xmm0
movlpd qword [ebp - 0x88], xmm0
mov bl, 0x41
mov esi, dword [ebp - 0x84]
mov dword [ebp - 0x6c], esi
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x64], ecx
mov byte [ebp - 0x5d], bl
mov dword [ebp - 0x68], eax
cmp bl, 0x5a
jg 0x100319af
test al, 1
je 0x100319a6
movsx ax, bl
movzx eax, ax
mov dword [ebp - 0x48], 7
mov dword [ebp - 0x4c], 1
mov word [ebp - 0x5c], ax
xor eax, eax
mov word [ebp - 0x5a], ax
push 2
push 0x1018f89c
lea ecx, [ebp - 0x5c]
call fcn.100520e0
mov esi, eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
push 0x18
push esi
lea eax, [ebp - 0x2c]
push eax
call fcn.1011b630
add esp, 0xc
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
xor eax, eax
mov word [esi], ax
mov edx, dword [ebp - 0x48]
cmp edx, 8
jb 0x1003185a
lea edx, [edx*2 + 2]
mov ecx, dword [ebp - 0x5c]
mov eax, ecx
cmp edx, 0x1000
jb 0x10031850
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10031abe
push edx
push ecx
call fcn.1011a823
add esp, 8
mov dword [ebp - 4], 0
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 8
cmovae eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x98]
push ecx
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0xa0]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x1003192f
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x140]
call fcn.10059600
mov edx, 0x1018f8a4
mov ecx, eax
call fcn.10059140
mov edx, eax
mov ecx, dword [ebp - 0x80]
sub ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x7c]
sbb eax, dword [ebp - 0x94]
shrd ecx, eax, 0x1e
shr eax, 0x1e
push eax
push ecx
mov ecx, edx
call fcn.10050350
mov edx, 0x1018e188
mov ecx, eax
call fcn.10059140
mov edx, eax
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
shrd ecx, eax, 0x1e
shr eax, 0x1e
push eax
push ecx
mov ecx, edx
call fcn.10050350
mov edx, 0x1018e170
mov ecx, eax
call fcn.10059140
mov ecx, dword [ebp - 0x64]
add ecx, dword [ebp - 0x80]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x88], ecx
mov esi, dword [ebp - 0x6c]
adc esi, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x84], esi
mov eax, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10031969
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 4], 0xffffffff
jmp 0x10031969
mov edx, dword [ebp - 0x18]
cmp edx, 8
jb 0x100319a3
lea edx, [edx*2 + 2]
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
cmp edx, 0x1000
jb 0x10031999
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10031ac3
push edx
push ecx
call fcn.1011a823
add esp, 8
mov eax, dword [ebp - 0x68]
shr eax, 1
inc bl
jmp 0x100317a2
shrd dword [ebp - 0x64], esi, 0x1e
shr esi, 0x1e
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x150]
call fcn.1004ffd0
mov dword [edi], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x44]
cmp dword [ebp - 0x30], 8
cmovae ecx, dword [ebp - 0x44]
mov dword [ebp - 0x74], ecx
cmp eax, 8
jae 0x100319ff
mov ebx, 7
mov eax, edi
lea edx, [ebx + 9]
jmp 0x10031a28
mov ebx, eax
or ebx, 7
mov eax, 0x7ffffffe
cmp ebx, eax
cmova ebx, eax
lea eax, [ebx + 1]
push eax
mov ecx, edi
call fcn.10055e90
mov dword [edi], eax
mov ecx, dword [ebp - 0x68]
lea edx, [ecx*2 + 2]
mov ecx, dword [ebp - 0x74]
push edx
push ecx
push eax
call fcn.1011b630
add esp, 0xc
mov eax, dword [ebp - 0x68]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ebx
mov ecx, dword [ebp - 0x70]
mov dword [edi + 0x18], ecx
mov ecx, dword [ebp - 0x64]
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], esi
mov edx, dword [ebp - 0x30]
cmp edx, 8
jb 0x10031a81
lea edx, [edx*2 + 2]
mov ecx, dword [ebp - 0x44]
mov eax, ecx
cmp edx, 0x1000
jb 0x10031a77
add edx, 0x23
mov ecx, dword [ecx - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10031ac8
push edx
push ecx
call fcn.1011a823
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
xor eax, eax
mov word [ebp - 0x44], ax
lea ecx, [ebp - 0x150]
call fcn.10024230
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1011a2e1
mov esp, ebp
pop ebp
ret
call fcn.10125fc5
call fcn.10125fc5
call fcn.10125fc5
int3