Function at 0x553864
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdb4
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x248], edx
mov dword [ebp - 0x24c], edx
mov dword [ebp - 0x244], edx
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x234], edx
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x128], edx
mov dword [ebp - 4], eax
lea esi, [ebp - 0x24]
xor eax, eax
push ebp
push 0x553ad3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x300]
mov dl, 1
call fcn.0045bec4
lea eax, [ebp - 0x124]
push eax
push pe_nt_image_headers32
call sub.kernel32.dll_GetLogicalDriveStringsA
lea eax, [ebp - 0x124]
mov dword [esi], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov eax, dword [eax + 0x218]
mov edx, dword [eax]
call dword [edx + 0x44]
jmp 0x553a7a
mov eax, dword [esi]
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x553a5d
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [esi]
push eax
mov eax, dword [0x5771c0]
mov eax, dword [eax]
call eax
push ebp
lea eax, [ebp - 0x128]
mov edx, dword [esi]
call fcn.00404acc
mov eax, dword [ebp - 0x128]
call fcn.005535c8
pop ecx
mov ebx, eax
lea eax, [ebp - 0x230]
mov edx, dword [esi]
call fcn.0040349c
lea edx, [ebp - 0x230]
lea eax, [ebp - 0x130]
call fcn.00404b38
push dword [ebp - 0x130]
push 0x553ae8
push dword [ebp - 0x14]
push dword [ebp - 0x18]
lea eax, [ebp - 0x234]
call fcn.005536dc
push dword [ebp - 0x234]
push 0x553ae8
push dword [ebp - 0xc]
push dword [ebp - 0x10]
lea eax, [ebp - 0x238]
call fcn.005536dc
push dword [ebp - 0x238]
push 0x553ae8
mov eax, ebx
cdq
push edx
push eax
lea eax, [ebp - 0x23c]
call fcn.005536dc
push dword [ebp - 0x23c]
push 0x553ae8
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
push edx
push eax
mov eax, ebx
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
lea eax, [ebp - 0x240]
call fcn.005536dc
push dword [ebp - 0x240]
lea eax, [ebp - 0x12c]
mov edx, 9
call fcn.00404c70
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov eax, dword [eax + 0x218]
call fcn.004204bc
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
push edx
push eax
mov eax, ebx
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
cmp edx, 0
jne 0x553a35
cmp eax, 0
jae 0x553a5d
jmp 0x553a37
jge 0x553a5d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x300]
xor edx, edx
call fcn.0045bec4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov eax, dword [eax + 0x68]
mov edx, 0xff
call fcn.0042b820
lea eax, [ebp - 0x244]
mov edx, dword [esi]
call fcn.00404acc
mov eax, dword [ebp - 0x244]
call fcn.00404bb0
add eax, dword [esi]
inc eax
mov dword [esi], eax
lea eax, [ebp - 0x24c]
mov edx, dword [esi]
call fcn.00404acc
mov eax, dword [ebp - 0x24c]
lea edx, [ebp - 0x248]
call fcn.00409624
cmp dword [ebp - 0x248], 0
jne 0x553903
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x553ada
lea eax, [ebp - 0x24c]
mov edx, 7
call fcn.004048f8
lea eax, [ebp - 0x130]
mov edx, 3
call fcn.004048f8
ret