Function at 0x10049176
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, ecx
mov eax, edx
push edi
xor edi, edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], esi
mov ebx, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
test esi, esi
je 0x10049453
cmp dword [ebp + 0xc], ebx
je 0x10049453
test eax, eax
je 0x10049453
push 0x48
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
test ebx, ebx
jne 0x100491d8
mov esi, 0x8007000e
push esi
push 0x91
jmp 0x1004945e
push 0x48
push edi
push ebx
call sub.msvcrt.dll_memset
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [ebx + 4], ebx
mov ecx, esi
mov dword [ebx], ebx
mov dword [ebx + 0x24], esi
mov dword [ebx + 0x2c], edi
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x30], edi
call fcn.10030a97
mov ecx, esi
mov dword [ebx + 0x10], eax
call fcn.10030aab
mov esi, eax
lea edi, [ebx + 0x14]
push 0
xor edx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x10]
mov ecx, edi
call fcn.1003670e
mov dword [ebx + 8], eax
test eax, eax
jne 0x10049262
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, 0x80070000
test eax, eax
jle 0x1004923d
movzx eax, ax
or eax, edi
test eax, eax
jns 0x10049252
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x10049257
movzx esi, si
or esi, edi
jmp 0x10049257
mov esi, 0x80004005
push esi
push 0xb2
jmp 0x1004945e
mov ecx, dword [ebp - 0x14]
call fcn.10030b0c
push 0
xor edx, edx
mov ecx, eax
call fcn.1003670e
mov dword [ebx + 0xc], eax
test eax, eax
jne 0x100492b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, 0x80070000
test eax, eax
jle 0x10049292
movzx eax, ax
or eax, edi
test eax, eax
jns 0x100492a7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x100492ac
movzx esi, si
or esi, edi
jmp 0x100492ac
mov esi, 0x80004005
push esi
push 0xb8
jmp 0x1004945e
mov ecx, dword [ebx + 8]
call fcn.1007fc59
test eax, eax
jne 0x100492fe
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, 0x80070000
test eax, eax
jle 0x100492d9
movzx eax, ax
or eax, edi
test eax, eax
jns 0x100492ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x100492f3
movzx esi, si
or esi, edi
jmp 0x100492f3
mov esi, 0x80004005
push esi
push 0xc1
jmp 0x1004945e
mov ecx, dword [ebx + 8]
call fcn.10080e5a
test eax, eax
jne 0x1004931a
mov esi, 0xc1420115
push esi
push 0xc6
jmp 0x1004945e
push dword [ebx + 8]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push 0x100095f8
push 0x20000
call fcn.10039c80
mov esi, eax
add esp, 0x14
test esi, esi
jns 0x10049346
push esi
push 0xd1
jmp 0x1004945e
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x1004936c
mov eax, 0xc1420131
push eax
mov esi, eax
push 0xdc
jmp 0x1004945e
mov ecx, dword [ebx + 8]
lea edx, [ebp - 4]
call fcn.10048aff
mov esi, eax
cmp esi, 0x80070002
jne 0x10049393
mov eax, 0xc1420131
push eax
mov esi, eax
push 0xec
jmp 0x1004945e
test esi, esi
jns 0x100493a2
push esi
push 0xee
jmp 0x1004945e
cmp dword [ebp - 4], 0
jne 0x100493b8
mov esi, 0xc1420114
push esi
push 0xf2
jmp 0x1004945e
mov ecx, dword [ebx + 8]
lea edx, [ebp - 8]
call fcn.1004898b
mov esi, eax
test esi, esi
jns 0x100493d4
push esi
push 0xfa
jmp 0x1004945e
cmp dword [ebp - 8], 3
je 0x100493e7
mov esi, 0xc1420134
push esi
push 0xfe
jmp 0x1004945e
mov ecx, dword [ebx + 8]
lea edx, [ebx + 0x34]
call fcn.1004909d
mov esi, eax
test esi, esi
jns 0x10049400
push esi
push 0x106
jmp 0x1004945e
mov ecx, dword [ebx + 8]
lea edx, [ebp - 0xc]
call fcn.100488c8
mov esi, eax
test esi, esi
jns 0x10049419
push esi
push 0x10d
jmp 0x1004945e
test byte [ebp - 0xc], 0x80
jne 0x1004942c
mov esi, 0xc142011f
push esi
push 0x111
jmp 0x1004945e
lea edi, [ebx + 0x38]
push edi
push 1
push 0xf01ff
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenThreadToken]
test eax, eax
jne 0x1004944a
and dword [edi], eax
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
xor ebx, ebx
jmp 0x10049468
mov esi, 0x80070057
push esi
push 0x8d
mov ecx, 0x100095dc
call fcn.1003a254
mov ecx, ebx
call fcn.100497c0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8