Function at 0x49afb0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x548b86
mov eax, dword fs:[0]
push eax
sub esp, 0x270
mov eax, dword [0x5ac020]
xor eax, esp
mov dword [esp + 0x268], eax
push ebx
push esi
push edi
mov eax, dword [0x5ac020]
xor eax, esp
push eax
lea eax, [esp + 0x280]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x10], eax
test eax, eax
je 0x49b00a
mov dword [eax], 0
test esi, esi
js 0x49b02f
mov eax, dword [ebx + 0x1d8]
sub eax, dword [ebx + 0x1d4]
sar eax, 2
cmp esi, eax
jae 0x49b02f
mov eax, dword [ebx + 0x1d4]
mov eax, dword [eax + esi*4]
mov edi, dword [eax + 0x1c]
jmp 0x49b031
xor edi, edi
push 2
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test edi, edi
je 0x49b43d
mov eax, dword [edi]
cmp eax, 1
jne 0x49b233
cmp dword [edi + 0x20], 8
lea esi, [edi + 0xc]
jb 0x49b064
mov eax, dword [esi]
jmp 0x49b066
mov eax, esi
cmp dword [0x5be2b0], 0
je 0x49b07e
push eax
mov ecx, 0x5be2ac
call fcn.004a6f60
mov ecx, eax
jmp 0x49b081
or ecx, 0xffffffff
mov eax, dword [edi]
mov dword [edi + 0x24], ecx
cmp eax, 1
jne 0x49b22f
cmp ecx, 0xffffffff
jne 0x49b22f
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
lea eax, [esp + 0x30]
push 2
push 0
push 0
push 0
push eax
call edi
cmp dword [esi + 0x14], 8
jb 0x49b0b7
mov eax, dword [esi]
jmp 0x49b0b9
mov eax, esi
push 0
push eax
call fcn.005008a4
add esp, 8
cmp eax, 0xffffffff
je 0x49b1aa
push 2
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
call edi
cmp dword [esi + 0x14], 8
jb 0x49b0e6
mov eax, dword [esi]
jmp 0x49b0e8
mov eax, esi
push eax
mov ecx, 0x5be2e4
call fcn.004bed60
test eax, eax
je 0x49b120
mov esi, dword [esp + 0x4c]
lea ecx, [ebx + 0x114]
push str.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
push esi
call fcn.004f2730
push 2
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
call edi
jmp 0x49b1f3
xor eax, eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], 0
mov word [esp + 0x30], ax
mov dword [esp + 0x288], eax
cmp dword [esi + 0x14], 8
jb 0x49b156
mov esi, dword [esi]
push 0
lea edx, [esp + 0x34]
mov ecx, esi
call fcn.004bfe20
mov esi, dword [esp + 0x50]
lea eax, [esp + 0x34]
add esp, 4
lea ecx, [ebx + 0x114]
cmp dword [esp + 0x44], 8
cmovae eax, dword [esp + 0x30]
push eax
push esi
call fcn.004f2730
mov dword [esp + 0x288], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.00402220
push 2
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
call edi
jmp 0x49b1f3
mov esi, dword [esp + 0x4c]
lea eax, [ebx + 0x114]
test esi, esi
js 0x49b1e5
push esi
mov ecx, eax
mov dword [esp + 0x50], eax
call fcn.004f2b50
test eax, eax
je 0x49b1e5
mov ecx, dword [esp + 0x4c]
push 1
call fcn.004f2cf0
mov eax, dword [ebx + 0x88]
lea ecx, [ebx + 0x88]
call dword [eax + 0xf4]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49b1f3
mov dword [eax], 1
cmp dword [ebp + 0x10], 0
je 0x49b21b
mov eax, dword [ebx + 0x88]
lea ecx, [ebx + 0x88]
call dword [eax + 0x20]
cmp esi, dword [ebx + 0x1e4]
jne 0x49b21b
lea ecx, [ebx + 0x4ac]
call fcn.004bae60
push 2
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
call edi
jmp 0x49b43d
mov esi, dword [esp + 0x4c]
cmp eax, 2
je 0x49b2dc
cmp eax, 1
jne 0x49b43d
cmp dword [edi + 0x24], 0xffffffff
je 0x49b43d
cmp dword [ebp + 0x10], 0
je 0x49b43d
xor eax, eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], 0
mov word [esp + 0x30], ax
mov dword [esp + 0x288], 1
lea edx, [esp + 0x30]
mov ecx, dword [edi + 0x24]
call fcn.00485920
test eax, eax
je 0x49b3d1
cmp dword [esp + 0x40], 0
je 0x49b36d
cmp dword [esp + 0x44], 8
lea eax, [esp + 0x30]
cmovae eax, dword [esp + 0x30]
push eax
mov eax, dword [edi + 0x24]
add eax, 0x41
push eax
push 0x581e70
lea eax, [esp + 0x60]
push 0x10e
push eax
call fcn.005016e2
add esp, 0x14
jmp 0x49b38b
mov ax, word [edi + 0x24]
add ax, 0x41
movzx ecx, ax
mov eax, dword [0x56dc1c]
mov dword [esp + 0x4c], eax
mov eax, dword [0x56dc20]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x4c]
push eax
mov word [esp + 0x50], cx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jne 0x49b24f
test esi, esi
js 0x49b345
push esi
lea ecx, [ebx + 0x114]
call fcn.004f2b50
test eax, eax
je 0x49b345
push 1
lea ecx, [ebx + 0x114]
call fcn.004f2cf0
mov eax, dword [ebx + 0x88]
lea ecx, [ebx + 0x88]
call dword [eax + 0xf4]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x49b353
mov dword [eax], 1
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
lea eax, [esp + 0x30]
push 2
push 0
push 0
push 0
push eax
call edi
jmp 0x49b43d
mov eax, dword [edi + 0x24]
add eax, 0x41
push eax
push 0x56c3b4
lea eax, [esp + 0x5c]
push 0x10e
push eax
call fcn.005016e2
add esp, 0x10
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
lea eax, [esp + 0x14]
push 2
push 0
push 0
push 0
push eax
call edi
lea eax, [esp + 0x54]
push eax
push esi
lea ecx, [ebx + 0x114]
call fcn.004f2730
push 2
push 0
push 0
push 0
lea eax, [esp + 0x24]
push eax
call edi
mov eax, dword [ebx + 0x88]
lea ecx, [ebx + 0x88]
call dword [eax + 0x20]
jmp 0x49b3d7
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
push 2
push 0
push 0
push 0
lea eax, [esp + 0x24]
push eax
call edi
cmp esi, dword [ebx + 0x1e4]
jne 0x49b408
lea ecx, [ebx + 0x4ac]
call fcn.004bae60
push 2
push 0
push 0
push 0
lea eax, [esp + 0x24]
push eax
call edi
mov dword [esp + 0x288], 0xffffffff
cmp dword [esp + 0x44], 8
jb 0x49b426
push dword [esp + 0x30]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], 0
mov word [esp + 0x30], ax
mov ecx, dword [esp + 0x280]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x268]
xor ecx, esp
call fcn.004ffcef
mov esp, ebp
pop ebp
ret 0xc