Function at 0x7766dc
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x104
push 0
push 0
dec ecx
jne 0x7766e5
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov ecx, 0xc8
lea eax, [ebp - 0x760]
mov edx, dword [0x4010f0]
call fcn.00405e28
xor eax, eax
push ebp
push 0x776d14
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00405278
lea eax, [ebp - 0x38]
call fcn.00405278
cmp byte [ebp - 9], 0
je 0x776743
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0041feec
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [0x7d7484]
cmp dword [eax], 2
jne 0x776cb3
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
lea eax, [ebp + eax*4 - 0x760]
call fcn.00405278
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xc8
jne 0x776760
lea eax, [ebp - 0x440]
push eax
push 0x400
call sub.kernel32.dll_GetLogicalDriveStringsA
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x776cb3
lea eax, [ebp - 0x440]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x34]
call fcn.00405278
jmp 0x776820
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0x42
jbe 0x7767ec
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
je 0x7767cc
cmp dword [ebp - 0x20], 2
jne 0x77681c
lea eax, [ebp - 0x764]
mov edx, dword [ebp - 0x24]
mov dl, byte [edx]
call fcn.00405460
mov edx, dword [ebp - 0x764]
lea eax, [ebp - 0x34]
call fcn.00405550
jmp 0x77681c
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 3
jne 0x77681c
lea eax, [ebp - 0x768]
mov edx, dword [ebp - 0x24]
mov dl, byte [edx]
call fcn.00405460
mov edx, dword [ebp - 0x768]
lea eax, [ebp - 0x34]
call fcn.00405550
add dword [ebp - 0x24], 4
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0
jne 0x7767ac
mov eax, dword [ebp - 0x34]
call fcn.00405548
test eax, eax
jle 0x776b12
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], 1
lea eax, [ebp - 0x770]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
mov dl, byte [edx + ecx - 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x770]
lea eax, [ebp - 0x774]
call fcn.004032b0
mov edx, 0x776d24
lea eax, [ebp - 0x774]
mov cl, 2
call fcn.00403280
lea edx, [ebp - 0x774]
lea eax, [ebp - 0x76c]
call fcn.004054ec
mov eax, dword [ebp - 0x76c]
lea edx, [ebp - 0x28]
call fcn.0050d244
mov eax, dword [0x7d63b8]
cmp byte [eax], 1
ja 0x7768bc
mov eax, dword [0x7d6ed0]
cmp byte [eax], 1
ja 0x7768bc
mov eax, dword [0x7d6be4]
cmp byte [eax], 0
jbe 0x776976
lea eax, [ebp - 0x2c]
call fcn.00405278
mov dl, 0x2c
mov eax, dword [ebp - 0x28]
call fcn.0049c09c
test eax, eax
jle 0x776949
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x20], 1
lea eax, [ebp - 0x30]
push eax
mov cl, 0x2c
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
call fcn.0049c118
or edx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.0040a9e4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
call fcn.005b2218
test eax, eax
jle 0x77690f
lea eax, [ebp - 0x30]
call fcn.00405278
mov eax, dword [ebp - 0x10]
call fcn.005b23bc
test eax, eax
jle 0x776923
lea eax, [ebp - 0x30]
call fcn.00405278
cmp dword [ebp - 0x30], 0
je 0x776941
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push 0x776d30
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00405608
inc dword [ebp - 0x20]
dec dword [ebp - 0x40]
jne 0x7768dc
mov eax, dword [ebp - 0x2c]
call fcn.00405548
dec eax
jle 0x77696b
mov eax, dword [ebp - 0x2c]
call fcn.00405548
mov edx, eax
lea eax, [ebp - 0x2c]
mov ecx, 1
call fcn.004057e8
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
call fcn.00405310
mov eax, dword [0x7d74b0]
mov eax, dword [eax]
mov edx, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xffffffff
jle 0x776a01
or edx, 0xffffffff
mov eax, dword [ebp - 0x28]
call fcn.0040a9e4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x776a01
mov eax, dword [0x7d6870]
mov eax, dword [eax]
dec eax
cmp eax, dword [ebp - 0x14]
jl 0x776a01
lea eax, [ebp - 0x77c]
imul edx, dword [ebp - 0x14], 0x83
mov ecx, dword [0x7d6d40]
lea edx, [ecx + edx]
call fcn.004054ec
mov eax, dword [ebp - 0x77c]
lea edx, [ebp - 0x778]
call fcn.0040a0f8
mov edx, dword [ebp - 0x778]
mov eax, 0x776d3c
call fcn.0040588c
test eax, eax
jle 0x776a01
lea ecx, [ebp - 0x28]
mov eax, dword [0x7d74b0]
mov eax, dword [eax]
mov edx, dword [ebp - 0x20]
call fcn.00420d88
mov dl, 0x2c
mov eax, dword [ebp - 0x28]
call fcn.0049c09c
test eax, eax
jle 0x776b06
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x20], 1
lea eax, [ebp - 0x780]
push eax
mov cl, 0x2c
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
call fcn.0049c118
mov eax, dword [ebp - 0x780]
lea edx, [ebp - 0x18]
call fcn.004038a0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x776afa
mov eax, dword [0x7d6870]
mov eax, dword [eax]
dec eax
cmp eax, dword [ebp - 0x14]
jl 0x776afa
lea eax, [ebp - 0x80c]
push eax
imul eax, dword [ebp - 0x14], 0x83
mov edx, dword [0x7d6d40]
lea eax, [edx + eax]
mov ecx, 4
mov edx, 1
call fcn.004029ac
lea edx, [ebp - 0x80c]
lea eax, [ebp - 0x788]
call fcn.004054ec
mov eax, dword [ebp - 0x788]
lea edx, [ebp - 0x784]
call fcn.0040a0f8
mov eax, dword [ebp - 0x784]
mov edx, 0x776d54
call fcn.00405694
jne 0x776afa
mov eax, dword [ebp - 0x14]
push dword [ebp + eax*4 - 0x760]
push 0x776d64
lea eax, [ebp - 0x810]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
mov dl, byte [edx + ecx - 1]
call fcn.00405460
push dword [ebp - 0x810]
push 0x776d70
mov eax, dword [ebp - 0x14]
lea eax, [ebp + eax*4 - 0x760]
mov edx, 4
call fcn.00405608
inc dword [ebp - 0x20]
dec dword [ebp - 0x40]
jne 0x776a1d
inc dword [ebp - 0x1c]
dec dword [ebp - 0x3c]
jne 0x776842
xor eax, eax
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x760]
call fcn.0040a348
cmp dword [ebp - 0x28], 0
je 0x776b6b
lea edx, [ebp - 0x818]
mov eax, dword [ebp - 0x1c]
call fcn.0040a83c
push dword [ebp - 0x818]
push 0x776d64
push dword [ebp - 0x28]
lea eax, [ebp - 0x814]
mov edx, 3
call fcn.00405608
mov edx, dword [ebp - 0x814]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xc8
jne 0x776b17
cmp byte [ebp - 9], 0
je 0x776c77
mov dword [ebp - 0x1c], 0x41
lea eax, [ebp - 0x770]
mov edx, dword [ebp - 0x1c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x770]
lea eax, [ebp - 0x774]
call fcn.004032b0
mov edx, 0x776d24
lea eax, [ebp - 0x774]
mov cl, 2
call fcn.00403280
lea edx, [ebp - 0x774]
lea eax, [ebp - 0x81c]
call fcn.004054ec
mov eax, dword [ebp - 0x81c]
mov edx, dword [ebp - 0x38]
call fcn.0040588c
test eax, eax
jle 0x776c6a
lea edx, [ebp - 0x820]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0041feec
mov eax, dword [ebp - 0x820]
push eax
lea eax, [ebp - 0x770]
mov edx, dword [ebp - 0x1c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x770]
lea eax, [ebp - 0x774]
call fcn.004032b0
mov edx, 0x776d24
lea eax, [ebp - 0x774]
mov cl, 2
call fcn.00403280
lea edx, [ebp - 0x774]
lea eax, [ebp - 0x824]
call fcn.004054ec
mov eax, dword [ebp - 0x824]
pop edx
call fcn.0040588c
test eax, eax
jne 0x776c6a
lea eax, [ebp - 0x828]
mov edx, dword [ebp - 0x1c]
call fcn.00405460
mov edx, dword [ebp - 0x828]
mov eax, dword [ebp + 8]
call fcn.00405550
mov eax, dword [ebp + 8]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x5b
jne 0x776b88
push 0
mov eax, 0x125a7e4
xor ecx, ecx
xor edx, edx
call fcn.0051d094
xor eax, eax
push ebp
push 0x776ca9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x7d6780]
call fcn.0051ed58
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x776cb3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x776d1b
lea eax, [ebp - 0x828]
mov edx, 7
call fcn.0040529c
lea eax, [ebp - 0x788]
mov edx, 5
call fcn.0040529c
lea eax, [ebp - 0x76c]
mov edx, 3
call fcn.0040529c
lea eax, [ebp - 0x760]
mov ecx, 0xc8
mov edx, dword [0x4010f0]
call fcn.00405f14
lea eax, [ebp - 0x38]
mov edx, 5
call fcn.0040529c
ret