Function at 0x4276b0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4400f6
mov eax, dword fs:[0]
push eax
sub esp, 0x428
mov eax, dword [0x4620f4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [ebp - 0x434]
call fcn.0042c5a0
mov eax, dword [esi + 4]
mov dword [ebp - 4], 0
mov eax, dword [eax + 4]
mov eax, dword [eax + esi + 8]
test eax, eax
je 0x427708
cmp dword [eax + 4], 0
jne 0x427af8
cmp dword [esi + 0x10], 0
je 0x427af8
mov eax, dword [esi + 0x44]
test eax, 0x20000000
je 0x427a7c
test eax, 0x10010000
jne 0x427732
test eax, 0x8000000
jne 0x427a7c
mov ecx, dword [esi + 0xc]
test ecx, ecx
jne 0x427a67
xor eax, eax
mov dword [ebp - 0x414], 7
mov dword [ebp - 0x418], ecx
mov word [ebp - 0x428], ax
push 0x8000
lea eax, [ebp - 0x428]
mov byte [ebp - 4], 1
push eax
mov ecx, esi
call fcn.004281b0
mov eax, dword [ebp - 0x418]
mov ecx, dword [ebp - 0x414]
mov edx, dword [ebp - 0x428]
cmp eax, 3
jne 0x4278ef
cmp ecx, 8
lea eax, [ebp - 0x428]
cmovae eax, edx
movzx eax, word [eax]
and eax, 0xffffffdf
cmp eax, 0x41
jl 0x4278f8
cmp ecx, 8
lea eax, [ebp - 0x428]
cmovae eax, edx
movzx eax, word [eax]
and eax, 0xffffffdf
cmp eax, 0x5a
jg 0x4278f8
cmp ecx, 8
lea eax, [ebp - 0x428]
cmovae eax, edx
cmp word [eax + 2], 0x3a
jne 0x4278f8
cmp ecx, 8
lea eax, [ebp - 0x428]
cmovae eax, edx
cmp word [eax + 4], 0x5c
jne 0x4278f8
cmp ecx, 8
lea eax, [ebp - 0x428]
cmovae eax, edx
mov al, byte [eax]
mov byte [ebp - 0x42c], al
lea eax, [ebp - 0x42c]
push eax
mov word [ebp - 0x42b], 0x5c3a
mov byte [ebp - 0x429], 0
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
je 0x427830
push eax
call fcn.004169e0
add esp, 4
mov dword [esi + 0xc], eax
jmp 0x427864
cmp dword [ebp - 0x414], 8
lea eax, [ebp - 0x428]
push 0
cmovae eax, dword [ebp - 0x428]
push eax
call fcn.0041f6d0
add esp, 8
mov ecx, 0x89
cmp eax, 0x4b1
mov edx, 0x84
cmove ecx, edx
mov dword [esi + 0xc], ecx
cmp dword [esi + 0xc], 0x82
jne 0x427a54
cmp dword [ebp - 0x414], 8
lea eax, [ebp - 0x428]
push 0x400
cmovae eax, dword [ebp - 0x428]
mov al, byte [eax]
mov byte [ebp - 0x430], al
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0x430]
mov word [ebp - 0x42f], 0x3a
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
test eax, eax
je 0x427a54
push 0xe
lea eax, [ebp - 0x410]
push str.DeviceFloppy
push eax
call fcn.0043de19
add esp, 0xc
test eax, eax
jne 0x427a54
lea ecx, [ebp - 0x428]
mov dword [esi + 0xc], 0x81
call fcn.00401510
mov esi, dword [esi + 0xc]
jmp 0x427afa
cmp eax, 2
jb 0x4279aa
cmp ecx, 8
lea eax, [ebp - 0x428]
cmovae eax, edx
cmp word [eax], 0x5c
jne 0x4279aa
cmp ecx, 8
lea eax, [ebp - 0x428]
cmovae eax, edx
cmp word [eax + 2], 0x5c
jne 0x4279aa
push 1
push 2
lea eax, [ebp - 0x42c]
mov dword [ebp - 0x42c], 0x5c
push eax
lea ecx, [ebp - 0x428]
call fcn.00403d30
cmp eax, 0xffffffff
jne 0x427964
lea ecx, [ebp - 0x428]
mov dword [esi + 0xc], 0x8d
call fcn.00401510
mov esi, dword [esi + 0xc]
jmp 0x427afa
push 1
inc eax
mov dword [ebp - 0x42c], 0x5c
push eax
lea eax, [ebp - 0x42c]
push eax
lea ecx, [ebp - 0x428]
call fcn.00403d30
cmp eax, 0xffffffff
mov edx, 0x8e
mov ecx, 0x80
cmove ecx, edx
mov dword [esi + 0xc], ecx
lea ecx, [ebp - 0x428]
call fcn.00401510
mov esi, dword [esi + 0xc]
jmp 0x427afa
lea eax, [ebp - 0x428]
push eax
push 0x28
push str.::20D04FE0_3AEA_1069_A2D8_08002B30309D
call fcn.00426a90
add esp, 0xc
test al, al
je 0x4279de
lea ecx, [ebp - 0x428]
mov dword [esi + 0xc], 0x8a
call fcn.00401510
mov esi, dword [esi + 0xc]
jmp 0x427afa
lea eax, [ebp - 0x428]
push eax
push 0x28
push str.::208D2C60_3AEA_1069_A2D7_08002B30309D
call fcn.00426a90
add esp, 0xc
test al, al
jne 0x427a4d
lea eax, [ebp - 0x428]
push eax
push 0x28
push str.::F02C1A0D_BE21_4350_88B0_7367FC96EF3C
call fcn.00426a90
add esp, 0xc
test al, al
jne 0x427a4d
lea eax, [ebp - 0x428]
push eax
push 0x28
push str.::450D8FBA_AD25_11D0_98A8_0800361B1103
call fcn.00426a90
add esp, 0xc
mov edx, 0x93
test al, al
mov ecx, 0x80
cmovne ecx, edx
mov dword [esi + 0xc], ecx
lea ecx, [ebp - 0x428]
call fcn.00401510
mov esi, dword [esi + 0xc]
jmp 0x427afa
mov dword [esi + 0xc], 0x8b
lea ecx, [ebp - 0x428]
call fcn.00401510
mov esi, dword [esi + 0xc]
jmp 0x427afa
cmp ecx, 0x80
jne 0x427af3
test eax, 0x10000
je 0x427af3
jmp 0x427a8a
test eax, 0x10000
je 0x427aec
mov dword [esi + 0xc], 6
mov ecx, esi
call fcn.00427b30
test al, al
je 0x427af3
mov ecx, dword [esi + 0x50]
mov eax, dword [ecx]
and eax, 0x1400
cmp eax, 0x400
jne 0x427af3
cmp dword [ecx + 0x24], 0xa000000c
jne 0x427ac2
test byte [ecx], 0x10
mov eax, 5
mov edx, 0x97
cmovne eax, edx
mov dword [esi + 0xc], eax
cmp dword [ecx + 0x24], reloc.OLEAUT32.dll_VariantCopy
jne 0x427ad2
mov dword [esi + 0xc], 0x9a
test byte [ecx], 0x10
je 0x427af3
test dword [ecx + 0x24], 0x20000000
je 0x427af3
mov dword [esi + 0xc], 0x96
mov esi, dword [esi + 0xc]
jmp 0x427afa
mov dword [esi + 0xc], 0
mov esi, dword [esi + 0xc]
jmp 0x427afa
xor esi, esi
lea ecx, [ebp - 0x434]
mov dword [ebp - 4], 0xffffffff
call fcn.0042c690
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004051a4
mov esp, ebp
pop ebp
ret