Function at 0x269c69
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xd75c
call fcn.002a2790
push esi
push edi
mov dword [ebp - 0xd3f0], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0xd73c], 0x20
push 0x2c06f0
mov eax, dword [ebp - 0xd73c]
push eax
lea ecx, [ebp - 0xd3ec]
push ecx
call fcn.00269734
add esp, 0xc
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0xd73c]
jae 0x269cec
push 0x2c0700
mov eax, dword [ebp - 0xd73c]
sub eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x69c
lea edx, [ebp + ecx - 0xd3ec]
push edx
call fcn.00269734
add esp, 0xc
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0xd3f0], edx
mov ecx, 0x40
or eax, 0xffffffff
lea edi, [ebp - 0xd4f0]
rep stosd dword es:[edi], eax
mov ecx, 8
xor eax, eax
lea edi, [ebp - 0xd510]
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [ebp - 0xd524], eax
mov dword [ebp - 0xd520], 0
mov dword [ebp - 0xd528], 0
mov dword [ebp - 0xd514], 0
mov dword [ebp - 0xd51c], 0
mov dword [ebp - 0xd538], 0xffffffff
xor eax, eax
mov dword [ebp - 0xd530], eax
mov dword [ebp - 0xd52c], eax
mov ecx, 0x14
xor eax, eax
lea edi, [ebp - 0x6c]
rep stosd dword es:[edi], eax
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0xd738]
rep stosd dword es:[edi], eax
mov byte [ebp - 0xc], 0
mov dword [ebp - 8], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xd520], 2
jmp 0x269dac
mov edx, dword [ebp - 0xd520]
add edx, 1
mov dword [ebp - 0xd520], edx
cmp dword [ebp - 0xd520], 0x1a
jae 0x269f47
mov eax, dword [ebp - 0xd524]
mov ecx, dword [ebp - 0xd520]
shr eax, cl
and eax, 1
test eax, eax
jne 0x269dd0
jmp 0x269d9d
mov ecx, dword [ebp - 0xd520]
add ecx, 0x41
mov byte [ebp - 0xc], cl
movsx edx, byte [ebp - 0xc]
push edx
push 0x2d8a28
lea eax, [ebp - 0xd530]
push eax
call fcn.002a19d4
add esp, 0xc
mov edi, 0x2d8a34
lea edx, [ebp - 0x6c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [ebp - 0xc]
mov byte [ebp - 0x6c], cl
push 0
push 0x80
push 3
push 0
push 0
push 0
lea edx, [ebp - 0xd530]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x269e4a
jmp 0x269d9d
push 0
lea eax, [ebp - 0xd51c]
push eax
push 0xc
lea ecx, [ebp - 0x1c]
push ecx
push 0
push 0
push 0x2d1080
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0xd514], eax
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0xd514], 0
jne 0x269e8a
jmp 0x269d9d
lea ecx, [ebp - 0x6c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 2
jne 0x269ea0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0xd528], 0
jmp 0x269ebb
mov edx, dword [ebp - 0xd528]
add edx, 1
mov dword [ebp - 0xd528], edx
mov eax, dword [ebp - 0xd528]
cmp eax, dword [ebp - 0xd3f0]
jae 0x269f42
mov ecx, dword [ebp - 0xd528]
imul ecx, ecx, 0x69c
lea edx, [ebp + ecx - 0xd3ec]
mov dword [ebp - 0xd740], edx
mov eax, dword [ebp - 0xd740]
mov ecx, dword [eax + 0x694]
cmp ecx, dword [ebp - 0x18]
jne 0x269f3d
mov edx, dword [ebp - 0xd740]
mov eax, dword [edx + 0x690]
cmp eax, dword [ebp - 0x1c]
jne 0x269f3d
mov ecx, dword [ebp - 0xd740]
mov edx, dword [ecx + 0x698]
cmp edx, dword [ebp - 0x14]
jne 0x269f3d
lea edi, [ebp - 0x6c]
mov edx, dword [ebp - 0xd740]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x269f42
jmp 0x269eac
jmp 0x269d9d
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xd534], 0
mov dword [ebp - 0xd528], 0
mov ecx, dword [ebp - 0xd528]
mov dword [ebp - 0xd520], ecx
mov edx, dword [ebp - 0x10]
mov al, byte [ebp - 0xd528]
mov byte [ebp + edx*8 - 0xd4f0], al
mov ecx, dword [ebp - 0xd528]
add ecx, 1
mov dword [ebp - 0xd528], ecx
mov byte [ebp - 0xd518], 0
jmp 0x269fa5
mov edx, dword [ebp - 0xd528]
add edx, 1
mov dword [ebp - 0xd528], edx
mov eax, dword [ebp - 0xd528]
cmp eax, dword [ebp - 0xd3f0]
jae 0x26a0ce
mov ecx, dword [ebp - 0x10]
movsx edx, byte [ebp + ecx*8 - 0xd4f0]
imul edx, edx, 0x69c
lea eax, [ebp + edx - 0xd3ec]
mov dword [ebp - 0xd748], eax
mov ecx, dword [ebp - 0xd528]
imul ecx, ecx, 0x69c
lea edx, [ebp + ecx - 0xd3ec]
mov dword [ebp - 0xd744], edx
push 0x200
mov eax, dword [ebp - 0xd744]
add eax, 0x20c
push eax
mov ecx, dword [ebp - 0xd748]
add ecx, 0x20c
push ecx
call fcn.002a2cb2
add esp, 0xc
test eax, eax
je 0x26a0c9
mov byte [ebp - 0xd518], 0
mov dword [ebp - 0xd520], 0
jmp 0x26a03e
mov edx, dword [ebp - 0xd520]
add edx, 1
mov dword [ebp - 0xd520], edx
mov eax, dword [ebp - 0x10]
add eax, 1
cmp dword [ebp - 0xd520], eax
jae 0x26a0a1
mov ecx, dword [ebp - 0xd520]
movsx edx, byte [ebp + ecx*8 - 0xd4f0]
imul edx, edx, 0x69c
lea eax, [ebp + edx - 0xd3ec]
mov dword [ebp - 0xd74c], eax
push 0x200
mov ecx, dword [ebp - 0xd74c]
add ecx, 0x20c
push ecx
mov edx, dword [ebp - 0xd744]
add edx, 0x20c
push edx
call fcn.002a2cb2
add esp, 0xc
test eax, eax
jne 0x26a09f
mov byte [ebp - 0xd518], 1
jmp 0x26a02f
mov eax, dword [ebp - 0xd518]
and eax, 0xff
test eax, eax
jne 0x26a0c9
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
mov al, byte [ebp - 0xd528]
mov byte [ebp + edx*8 - 0xd4f0], al
jmp 0x269f96
mov dword [ebp - 0xd520], 0
jmp 0x26a0e9
mov ecx, dword [ebp - 0xd520]
add ecx, 1
mov dword [ebp - 0xd520], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
cmp dword [ebp - 0xd520], edx
jae 0x26a1e8
mov eax, dword [ebp - 0xd520]
movsx ecx, byte [ebp + eax*8 - 0xd4f0]
imul ecx, ecx, 0x69c
lea edx, [ebp + ecx - 0xd3ec]
mov dword [ebp - 0xd750], edx
mov dword [ebp - 0xd534], 0
mov dword [ebp - 0xd528], 0
jmp 0x26a141
mov eax, dword [ebp - 0xd528]
add eax, 1
mov dword [ebp - 0xd528], eax
mov ecx, dword [ebp - 0xd528]
cmp ecx, dword [ebp - 0xd3f0]
jae 0x26a1e3
mov edx, dword [ebp - 0xd528]
imul edx, edx, 0x69c
lea eax, [ebp + edx - 0xd3ec]
mov dword [ebp - 0xd754], eax
push 0x200
mov ecx, dword [ebp - 0xd754]
add ecx, 0x20c
push ecx
mov edx, dword [ebp - 0xd750]
add edx, 0x20c
push edx
call fcn.002a2cb2
add esp, 0xc
test eax, eax
jne 0x26a1de
mov eax, dword [ebp - 0xd520]
lea ecx, [ebp + eax*8 - 0xd4f0]
mov edx, dword [ebp - 0xd534]
mov al, byte [ebp - 0xd528]
mov byte [ecx + edx], al
mov ecx, dword [ebp - 0xd534]
add ecx, 1
mov dword [ebp - 0xd534], ecx
mov edx, dword [ebp - 0xd520]
mov al, byte [ebp + edx - 0xd510]
add al, 1
mov ecx, dword [ebp - 0xd520]
mov byte [ebp + ecx - 0xd510], al
jmp 0x26a132
jmp 0x26a0da
mov dword [ebp - 0xd528], 0
jmp 0x26a203
mov edx, dword [ebp - 0xd528]
add edx, 1
mov dword [ebp - 0xd528], edx
mov eax, dword [ebp - 0xd528]
cmp eax, dword [ebp - 0xd3f0]
jae 0x26a25f
mov ecx, dword [ebp - 0xd528]
imul ecx, ecx, 0x69c
lea edx, [ebp + ecx - 0xd3ec]
mov dword [ebp - 0xd758], edx
mov eax, dword [ebp - 0xd758]
add eax, 0x48c
push eax
mov ecx, dword [ebp - 0xd758]
add ecx, 0x40c
push ecx
push 0x200
mov edx, dword [ebp - 0xd758]
add edx, 0x490
push edx
call fcn.002698c3
add esp, 0x10
jmp 0x26a1f4
mov dword [ebp - 0xd528], 0
jmp 0x26a27a
mov eax, dword [ebp - 0xd528]
add eax, 1
mov dword [ebp - 0xd528], eax
mov ecx, dword [ebp - 0xd528]
cmp ecx, dword [ebp - 0xd3f0]
jae 0x26a353
mov edx, dword [ebp - 0xd528]
imul edx, edx, 0x69c
lea eax, [ebp + edx - 0xd3ec]
mov dword [ebp - 0xd75c], eax
mov ecx, dword [ebp + 8]
xor edx, edx
mov dx, word [ecx + 2]
mov eax, dword [ebp - 0xd75c]
cmp edx, dword [eax + 0x208]
jne 0x26a34e
mov ecx, dword [ebp + 8]
xor edx, edx
mov dx, word [ecx]
mov eax, dword [ebp - 0xd75c]
cmp edx, dword [eax + 0x204]
jne 0x26a34e
mov ecx, dword [ebp - 0xd75c]
add ecx, 0x40c
push ecx
mov edx, dword [ebp + 8]
add edx, 4
push edx
call fcn.00269ba0
add esp, 8
test eax, eax
jne 0x26a34e
mov eax, dword [ebp - 0xd75c]
xor ecx, ecx
mov cl, byte [eax + 0x48c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xd75c]
mov al, byte [eax]
mov byte [edx + ecx + 0x84], al
mov ecx, dword [ebp - 0xd75c]
xor edx, edx
mov dl, byte [ecx + 0x48c]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xd75c]
mov cl, byte [ecx + 0x48c]
mov byte [eax + edx + 0x8c], cl
mov edx, dword [ebp + 8]
mov al, byte [edx + 0x94]
add al, 1
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x94], al
jmp 0x26a26b
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret