Function at 0x49b310
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x238
mov esi, dword [ebp + 0xc]
mov eax, dword [0x4f6014]
xor eax, ebp
mov dword [esp + 0x230], eax
lea edi, [esp + 0x20]
mov ecx, edi
push esi
call fcn.00413982
push edi
call fcn.0049ac34
add esp, 4
cmp byte [edi + 0xb], 0
jns 0x49b35b
push dword [esp + 0x20]
mov ebx, eax
call fcn.004a7ee0
mov eax, ebx
add esp, 4
mov bl, 1
test al, al
jne 0x49b573
mov eax, dword [ebp + 8]
xor ecx, ecx
lea ebx, [esp + 0x10]
mov dword [ebx + 4], ecx
mov dword [ebx], ecx
xor edi, edi
mov dword [ebx + 8], ecx
push ebx
push eax
call fcn.0049aea0
add esp, 8
test al, al
je 0x49b55e
xor eax, eax
dec eax
mov edi, esp
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov ecx, edi
push esi
call fcn.00413982
mov ecx, edi
call fcn.00432330
cmp word [eax], 0x5c
jne 0x49b3f2
movzx eax, byte [esp + 0xb]
test al, al
jns 0x49b3b9
mov eax, dword [esp + 4]
dec eax
lea edx, [esp + 0xc]
mov esi, esp
lea ecx, [esp + 0x20]
push edx
push eax
push 0
push esi
call fcn.00435880
cmp byte [esi + 0xb], 0
jns 0x49b3df
push dword [esp]
call fcn.004a7ee0
add esp, 4
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
movsd xmm0, qword [esp + 0x20]
movsd qword [esp], xmm0
cmp byte [esp + 0xb], 0
jns 0x49b3fc
mov edi, dword [esp]
cmp byte [esp + 0x1b], 0
jns 0x49b407
mov ebx, dword [esp + 0x10]
push edi
push ebx
call fcn.004bf564
add esp, 8
test eax, eax
je 0x49b48e
mov edi, esp
mov ecx, edi
mov edx, edi
call fcn.0049b18e
mov ebx, eax
mov ecx, edi
call fcn.0049b225
test al, al
jne 0x49b495
test bl, bl
je 0x49b495
xor ebx, ebx
lea esi, [esp + 0x20]
mov dword [esi + 4], ebx
mov dword [esi], ebx
mov dword [esi + 8], ebx
lea ecx, [esp + 0x10]
mov edx, esi
call fcn.0049b279
test al, al
je 0x49b472
cmp byte [esp + 0xb], 0
jns 0x49b458
mov edi, dword [esp]
cmp byte [esp + 0x2b], 0
jns 0x49b463
mov esi, dword [esp + 0x20]
push edi
push esi
call fcn.004bf564
add esp, 8
test eax, eax
sete bl
cmp byte [esp + 0x2b], 0
jns 0x49b54a
push dword [esp + 0x20]
call fcn.004a7ee0
add esp, 4
jmp 0x49b54a
mov bl, 1
jmp 0x49b54a
xor ebx, ebx
test al, al
je 0x49b54a
mov dword [esp + 0x22c], ebx
mov dword [esp + 0x228], ebx
push 0x208
push 0xff
lea esi, [esp + 0x28]
push esi
call fcn.004ab560
add esp, 0xc
cmp byte [esp + 0xb], 0
jns 0x49b4d0
mov eax, dword [esp]
jmp 0x49b4d2
mov eax, esp
mov eax, dword [eax]
lea ecx, [esp + 0x228]
mov dword [ecx], eax
push 0x104
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
cmp eax, 2
jb 0x49b54a
cmp eax, 0x104
je 0x49b54a
push esi
call fcn.004c3f8c
add esp, 4
mov edi, eax
movzx eax, byte [esp + 0xb]
test al, al
jns 0x49b50e
mov eax, dword [esp + 4]
lea ecx, [edi + eax]
add ecx, 0xfffffffe
movzx eax, byte [esp + 0x1b]
mov edx, eax
test al, al
jns 0x49b523
mov edx, dword [esp + 0x14]
cmp ecx, edx
jne 0x49b548
test al, al
jns 0x49b531
mov eax, dword [esp + 0x10]
jmp 0x49b535
lea eax, [esp + 0x10]
push edi
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.004bf6e1
add esp, 0xc
test eax, eax
je 0x49b58b
xor ebx, ebx
mov edi, ebx
cmp byte [esp + 0xb], 0
jns 0x49b55e
push dword [esp]
call fcn.004a7ee0
add esp, 4
cmp byte [esp + 0x1b], 0
jns 0x49b571
push dword [esp + 0x10]
call fcn.004a7ee0
add esp, 4
mov ebx, edi
mov ecx, dword [esp + 0x230]
xor ecx, ebp
call fcn.004a8de3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 4]
mov eax, dword [ecx - 4]
add eax, 4
cmp byte [ecx + 7], 0
cmovns eax, ecx
cmp byte [esp + 0x1b], 0
jns 0x49b5a9
mov ecx, dword [esp + 0x10]
jmp 0x49b5ad
lea ecx, [esp + 0x10]
lea ecx, [ecx + edi*2]
push eax
push ecx
call fcn.004bf564
add esp, 8
test eax, eax
sete bl
jmp 0x49b54a