Function at 0x10050992
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x47c
mov eax, dword [0x1008f210]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x474], esi
cmp esi, ebx
jne 0x100509e0
call fcn.1005169b
mov dword [eax], ebx
call fcn.10051688
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword [eax], 0x16
call fcn.1004cebc
add esp, 0x14
jmp 0x10050d99
cmp edi, ebx
je 0x100509bc
push 0x10071a24
push esi
call fcn.1005f39f
pop ecx
pop ecx
test eax, eax
je 0x10050a0b
call fcn.10051688
push 2
pop esi
mov dword [eax], esi
call fcn.1005169b
mov dword [eax], esi
jmp 0x10050d99
cmp word [esi + 2], 0x3a
jne 0x10050a2f
movzx eax, word [esi]
cmp ax, bx
je 0x10050a20
cmp word [esi + 4], bx
je 0x100509f5
push eax
call fcn.10054f4a
movzx eax, ax
pop ecx
sub eax, 0x60
jmp 0x10050a34
call fcn.1005f2d6
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x45c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x460], eax
cmp eax, 0xffffffff
jne 0x10050b2b
push 0x10071a1c
push esi
mov dword [ebp - 0x460], ebx
call fcn.1005f39f
pop ecx
pop ecx
test eax, eax
je 0x100509f5
lea eax, [ebp - 0x460]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.10050932
mov esi, eax
add esp, 0x10
cmp esi, ebx
je 0x10050b0e
push esi
call fcn.1005e46c
pop ecx
cmp eax, 3
je 0x10050aa5
call fcn.10050891
test eax, eax
je 0x10050b0e
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jbe 0x10050b0e
cmp dword [ebp - 0x460], ebx
je 0x10050ac5
push dword [ebp - 0x460]
call fcn.1004dd0c
pop ecx
push 0xffffffffffffffff
push ebx
push ebx
push ebx
push 1
xor eax, eax
push 1
push 0x7bc
mov dword [ebp - 0x45c], 0x10
mov dword [ebp - 0x440], ebx
mov dword [ebp - 0x43c], ebx
mov word [ebp - 0x430], ax
call fcn.1005f0d0
mov esi, dword [ebp - 0x474]
add esp, 0x1c
mov dword [edi + 0x1c], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x20], eax
jmp 0x10050d40
cmp dword [ebp - 0x460], ebx
je 0x100509f5
push dword [ebp - 0x460]
call fcn.1004dd0c
pop ecx
jmp 0x100509f5
test dword [ebp - 0x45c], 0x400
je 0x10050b96
cmp dword [ebp - 0x438], 0xa000000c
jne 0x10050b96
or dword [ebp - 0x460], 0xffffffff
push ebx
push 0x40
push ebx
lea eax, [ebp - 0x460]
push esi
push eax
call fcn.1005f0b0
add esp, 0x14
test eax, eax
jne 0x100509f5
cmp dword [ebp - 0x460], 0xffffffff
je 0x100509f5
push edi
push dword [ebp - 0x460]
call fcn.1005e594
push dword [ebp - 0x460]
mov esi, eax
call fcn.1005c899
add esp, 0xc
mov eax, esi
jmp 0x10050d9c
cmp dword [ebp - 0x448], ebx
jne 0x10050bab
cmp dword [ebp - 0x444], ebx
jne 0x10050bab
mov dword [edi + 0x1c], ebx
jmp 0x10050c20
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x448]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x10050d80
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x10050d80
movzx eax, word [ebp - 0x464]
push 0xffffffffffffffff
push eax
movzx eax, word [ebp - 0x466]
push eax
movzx eax, word [ebp - 0x468]
push eax
movzx eax, word [ebp - 0x46a]
push eax
movzx eax, word [ebp - 0x46e]
push eax
movzx eax, word [ebp - 0x470]
push eax
call fcn.1005f0d0
add esp, 0x1c
mov dword [edi + 0x1c], eax
cmp dword [ebp - 0x450], ebx
jne 0x10050c35
cmp dword [ebp - 0x44c], ebx
jne 0x10050c35
mov eax, dword [edi + 0x1c]
jmp 0x10050ca7
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x10050d80
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x10050d80
movzx eax, word [ebp - 0x464]
push 0xffffffffffffffff
push eax
movzx eax, word [ebp - 0x466]
push eax
movzx eax, word [ebp - 0x468]
push eax
movzx eax, word [ebp - 0x46a]
push eax
movzx eax, word [ebp - 0x46e]
push eax
movzx eax, word [ebp - 0x470]
push eax
call fcn.1005f0d0
add esp, 0x1c
mov dword [edi + 0x18], eax
cmp dword [ebp - 0x458], ebx
jne 0x10050cbf
cmp dword [ebp - 0x454], ebx
jne 0x10050cbf
mov eax, dword [edi + 0x1c]
jmp 0x10050d31
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x458]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x10050d80
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x10050d80
movzx eax, word [ebp - 0x464]
push 0xffffffffffffffff
push eax
movzx eax, word [ebp - 0x466]
push eax
movzx eax, word [ebp - 0x468]
push eax
movzx eax, word [ebp - 0x46a]
push eax
movzx eax, word [ebp - 0x46e]
push eax
movzx eax, word [ebp - 0x470]
push eax
call fcn.1005f0d0
add esp, 0x1c
push dword [ebp - 0x460]
mov dword [edi + 0x20], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
push dword [ebp - 0x45c]
call fcn.100507ce
mov word [edi + 6], ax
xor eax, eax
inc eax
mov word [edi + 8], ax
mov eax, dword [ebp - 0x43c]
mov dword [edi + 0x14], eax
xor eax, eax
mov word [edi + 4], ax
mov word [edi + 0xc], ax
mov word [edi + 0xa], ax
mov eax, dword [ebp - 0x47c]
dec eax
pop ecx
mov dword [edi], eax
mov dword [edi + 0x10], eax
pop ecx
xor eax, eax
jmp 0x10050d9c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.100516ae
pop ecx
push dword [ebp - 0x460]
call dword [sym.imp.KERNEL32.dll_FindClose]
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1004c55d
leave
ret