Function at 0x4290be
Capabilities:
Get disk information

Disassembly:
push eax
lea ecx, [ebp + 0x28]
call fcn.0046625f
mov esi, dword [ebp + 0x28]
lea eax, [edi + 0x20d]
lea eax, [esi + eax*2]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x6c]
cmp word [eax], 0x5c
mov dword [ebp + 0x24], esi
jne 0x429139
mov edi, dword [ebp + 0x50]
add dword [ebp + 0x6c], 2
push edi
push 0x324
call dword [0x4a61f0]
add bl, ch
invalid
lea eax, [edi + 1]
push eax
push dword [ebp + 0x6c]
mov dword [ebp + 0x38], eax
push esi
call fcn.0042d69f
mov eax, dword [ebp + 0x70]
movzx eax, word [eax + 0x2c]
shl eax, 0x10
add esp, 0xc
cmp dword [ebp + 0x44], ebx
mov dword [ebp + 0x50], eax
jne 0x429485
cmp byte [ebp + 0x5f], bl
jne 0x429185
push 0x16
lea eax, [esi + edi*2]
push str.INF.INF
push eax
call fcn.0043ae29
mov dl, 0x1c
add dword [eax], eax
add esp, 0xc
add edi, 5
mov dword [ebp + 0x58], edi
jmp 0x4294a1
mov eax, dword [ebp + 0x7c]
cmp eax, ebx
jne 0x4291a1
push 0x2e
lea eax, [esi + edi*2]
push str._________allinf_file_
push eax
call fcn.0043ae4e
add esp, 0xc
mov eax, esi
push ebx
push ebx
push 3
push ebx
push 7
push 0xc0000000
push eax
lea ecx, [ebp + 0x6c]
mov dword [ebp + 0x6c], ebx
call fcn.0042d787
cmp eax, ebx
mov dword [ebp + 0x40], eax
je 0x42946a
push 0x2800
lea ecx, [ebp + 0x6c]
call fcn.00466369
push esi
push str.Found___s_
push 0x27ff
push dword [ebp + 0x6c]
call 0x4bba18
mov eax, dword [ebp + 0x70]
mov ecx, dword [eax + 4]
add esp, 0x10
push ebx
push 0x11
push ebx
push dword [ebp + 0x6c]
call fcn.0044365f
lea ecx, [ebp + 0x6c]
call fcn.00460417
mov esi, dword [ebp + 0x40]
push esi
call 0x4afbbf
pop ecx
push ebx
push ebx
push 8
mov edi, edx
push edi
push eax
lea ecx, [ebp + 0x2c]
dec ebp
sub al, 0x89
inc ebp
dec eax
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], ebx
call fcn.004367a3
mov esi, dword [ebp + 0x30]
cmp esi, ebx
jne 0x42923b
push ebx
push 4
push edi
mov edi, dword [ebp + 0x48]
push edi
call 0x4bb4a4
add eax, 0xffff
and eax, 0xffff0000
mov dword [ebp + 0x38], eax
mov eax, dword [esi]
and eax, 0xffffff
add edi, esi
cmp eax, 0xbfbbef
mov dword [ebp + 0x6c], esi
jne 0x429270
add esi, 3
mov dword [ebp + 0x6c], esi
jmp 0x4292ad
mov esi, dword [ebp + 0x6c]
jmp 0x4292ad
cmp esi, edi
jae 0x4292b2
movsx ax, byte [esi]
push eax
call fcn.0042b257
add esp, 4
test al, al
jne 0x4292a9
inc esi
cmp esi, edi
mov dword [ebp + 0x6c], esi
jb 0x429279
jmp 0x4292a9
movsx ax, byte [esi]
push eax
call fcn.0042b272
add esp, 4
test al, al
je 0x4292ad
inc esi
mov dword [ebp + 0x6c], esi
cmp esi, edi
jb 0x429294
cmp byte [esi], 0x23
je 0x429275
push dword [0x4c105c]
lea ecx, [ebp + 0x50]
push 0x14
mov dword [ebp + 0x44], ebx
call fcn.0043b220
mov eax, dword [ebp + 0x50]
lea ecx, [edi - 1]
mov dl, byte [ecx]
mov dword [ebp + 0x40], eax
movsx ax, dl
mov dword [ebp + 0x58], ebx
call fcn.00460505
test al, al
jne 0x4292e5
cmp dl, 0x23
jne 0x429338
mov esi, ecx
mov byte [ecx], bl
mov dword [ebp + 0x34], esi
mov eax, dword [ebp + 0x6c]
xor edi, edi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x78], eax
movsx ax, byte [ecx]
push eax
call fcn.0042b304
add esp, 4
test al, al
jne 0x42933f
dec ecx
cmp ecx, dword [ebp + 0x6c]
ja 0x429326
jmp 0x429355
lea eax, [ecx + 1]
cmp byte [eax], 0x23
jne 0x429355
cmp eax, ebx
mov esi, ecx
mov byte [ecx], bl
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x58], eax
jne 0x4292ec
mov esi, dword [ebp + 0x48]
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp + 0x44]
call fcn.004663f9
mov eax, dword [ebp + 0x44]
add esi, eax
mov dword [ebp + 0x6c], eax
mov dword [esi], ebx
jmp 0x4292e9
push 0x16
lea eax, [esi + edi*2]
push str..INF
push eax
call fcn.0043b12c
mov eax, dword [ebp + 0x38]
add esp, 0xc
push 0x5c
push ebx
push dword [ebp + 0x6c]
call dword [0x4a65bc]
cmp eax, ebx
je 0x42949e
mov dword [ebp + 0x58], ebx