Function at 0x6bc9a4
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x10
push 0
push 0
dec ecx
jne 0x6bc9ac
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x6bd1ca
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x6e50c8]
cmp dword [eax], 0
je 0x6bca68
push 0
push 2
mov eax, dword [0x6e50c8]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x90]
push 0xffffffffffffffff
push 3
mov eax, dword [0x6e50c8]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x90]
push 0
push 1
mov eax, dword [0x6e50c8]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x90]
mov eax, dword [0x6e59b0]
cmp byte [eax], 1
jne 0x6bca2e
push 0xffffffffffffffff
push 4
mov eax, dword [0x6e50c8]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x90]
push 0xffffffffffffffff
mov eax, dword [0x6e50c8]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x6c]
mov eax, dword [0x6e3888]
cmp byte [eax], 1
jne 0x6bca68
mov eax, dword [0x6e5910]
mov eax, dword [eax]
mov edx, dword [0x6e48bc]
mov eax, dword [edx + eax*4]
push eax
mov eax, dword [0x6e50c8]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0xa0]
mov eax, dword [0x6e4d38]
cmp dword [eax], 0
je 0x6bccbc
lea eax, [ebp - 0x10]
mov edx, 0x105
call fcn.004058b0
lea eax, [ebp - 0x18]
push eax
push 0x104
mov eax, dword [ebp - 0x10]
call fcn.00405538
push eax
mov eax, dword [0x6e4d38]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x74]
test eax, eax
jne 0x6bcc4a
mov edx, dword [ebp - 0x18]
dec edx
lea eax, [ebp - 0x10]
call fcn.004058b0
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
call fcn.00404e54
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
call fcn.0040ac4c
mov edx, dword [ebp - 0x4c]
lea eax, [ebp - 0x14]
call fcn.00404c38
lea eax, [ebp - 8]
mov edx, 0x800
call fcn.00405218
lea eax, [ebp - 0xc]
mov edx, 0x800
call fcn.00405218
push 0x800
lea eax, [ebp - 0xc]
call fcn.004050e4
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x800
lea eax, [ebp - 8]
call fcn.004050e4
push eax
mov eax, dword [ebp - 0x14]
call fcn.0040508c
push eax
call sub.kernel32.dll_GetVolumeInformationA
cmp eax, 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x6bcb63
mov edx, dword [ebp - 8]
mov eax, 0x6bd1e4
call fcn.004051d0
mov edx, eax
dec edx
lea eax, [ebp - 8]
call fcn.00405218
mov edx, dword [ebp - 0xc]
mov eax, 0x6bd1e4
call fcn.004051d0
mov edx, eax
dec edx
lea eax, [ebp - 0xc]
call fcn.00405218
jmp 0x6bcbd0
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x14]
call fcn.00404c38
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 8]
call fcn.005fc28c
mov edx, dword [ebp - 0x50]
lea eax, [ebp - 8]
call fcn.00404c38
xor eax, eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00404e8c
mov edi, eax
test edi, edi
jle 0x6bcbad
mov ebx, 1
mov eax, dword [ebp - 8]
cmp byte [eax + ebx - 1], 0x5c
jne 0x6bcba9
mov dword [ebp - 4], ebx
inc ebx
dec edi
jne 0x6bcb9c
cmp dword [ebp - 4], 0
jle 0x6bcbd0
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 8]
call fcn.00404e8c
mov ecx, eax
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
inc edx
mov eax, dword [ebp - 8]
call fcn.004050ec
cmp dword [ebp - 8], 0
je 0x6bcc32
lea edx, [ebp - 0x54]
mov eax, dword [ebp - 8]
call fcn.00409c98
mov edx, dword [ebp - 0x54]
lea eax, [ebp - 8]
call fcn.00404c38
mov eax, dword [ebp - 8]
call fcn.00404e8c
mov edi, eax
test edi, edi
jle 0x6bcc1a
mov ebx, 1
mov eax, dword [ebp - 8]
cmp byte [eax + ebx - 1], 0x5f
jne 0x6bcc16
lea eax, [ebp - 8]
call fcn.004050e4
mov byte [eax + ebx - 1], 0x20
inc ebx
dec edi
jne 0x6bcbff
mov eax, dword [ebp - 8]
mov al, byte [eax]
call fcn.0040308c
mov ebx, eax
lea eax, [ebp - 8]
call fcn.004050e4
mov byte [eax], bl
jmp 0x6bcc3f
lea eax, [ebp - 8]
mov edx, 0x6bd1f0
call fcn.00404c38
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 8]
call fcn.00404c38
lea eax, [ebp - 0x30]
push eax
push 0
mov eax, dword [0x6e4d38]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x7c]
test eax, eax
jne 0x6bccbc
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
lea edx, [ebp - 0x40]
mov eax, 8
call fcn.0040a678
mov eax, dword [0x6e5118]
push dword [eax]
lea eax, [ebp - 0x58]
mov edx, dword [0x6e5d58]
mov edx, dword [edx]
call fcn.004054bc
push dword [ebp - 0x58]
lea eax, [ebp - 0x5c]
mov edx, dword [ebp - 0x3c]
call fcn.004054bc
push dword [ebp - 0x5c]
push 0x6bd200
lea eax, [ebp - 0x60]
mov edx, dword [ebp - 0x40]
call fcn.004054bc
push dword [ebp - 0x60]
lea eax, [ebp - 0x44]
mov edx, 5
call fcn.0040561c
mov eax, dword [ebp - 0x44]
call fcn.004973c0
test al, al
je 0x6bccec
mov edx, dword [0x6e5050]
mov edx, dword [edx]
mov eax, dword [ebp - 0x44]
call fcn.005fb5b0
mov eax, dword [0x6e53c4]
mov eax, dword [eax]
call fcn.0048e558
mov eax, dword [ebp - 0x44]
call fcn.005f8198
push dword [0x6e30e0]
push 0x6bd20c
push dword [ebp - 8]
lea eax, [ebp - 0x68]
mov edx, 3
call fcn.00404f4c
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x64]
call fcn.004054bc
mov edx, dword [ebp - 0x64]
mov eax, dword [esi + 0x334]
call fcn.00514370
lea eax, [ebp - 0x6c]
mov edx, dword [0x6e5050]
mov edx, dword [edx]
call fcn.00404e54
mov edx, dword [ebp - 0x6c]
mov eax, esi
call fcn.0067aad8
mov eax, dword [0x6e4080]
push dword [eax]
push 0x6bd218
mov eax, dword [0x6e5664]
push dword [eax]
lea eax, [ebp - 0x74]
mov edx, 3
call fcn.00404f4c
mov edx, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
call fcn.004054bc
mov edx, dword [ebp - 0x70]
mov eax, 0x5aa
call fcn.00537730
mov eax, dword [0x6e4b90]
cmp byte [eax], 1
jne 0x6bcdb5
mov eax, dword [0x6e5664]
push dword [eax]
push 0x6bd20c
push dword [0x6e30e0]
lea eax, [ebp - 0x7c]
mov edx, 3
call fcn.00404f4c
mov edx, dword [ebp - 0x7c]
lea eax, [ebp - 0x78]
call fcn.004054bc
mov edx, dword [ebp - 0x78]
mov eax, dword [0x6e45f0]
mov eax, dword [eax]
call fcn.004aa944
mov eax, dword [0x6e5b04]
cmp byte [eax], 1
jne 0x6bce0a
mov eax, dword [0x6e3e88]
cmp byte [eax], 1
jne 0x6bcdd8
mov edx, dword [0x6e4cd0]
mov edx, dword [edx]
mov eax, esi
call fcn.006653dc
mov eax, dword [0x6e31d4]
cmp byte [eax], 1
jne 0x6bcdf1
mov edx, dword [0x6e4070]
mov edx, dword [edx]
mov eax, esi
call fcn.006656ec
mov eax, dword [0x6e5650]
cmp byte [eax], 1
jne 0x6bce0a
mov edx, dword [0x6e647c]
mov edx, dword [edx]
mov eax, esi
call fcn.0066519c
mov edx, dword [0x6e4bec]
xor ecx, ecx
mov eax, esi
call fcn.0066a8dc
push 0x3ff00000
push 0
mov eax, esi
call fcn.0066f76c
mov eax, dword [0x6e4ee8]
mov eax, dword [eax]
call fcn.006cdcac
mov edx, dword [0x6e36e4]
mov eax, esi
call fcn.006bc434
mov eax, dword [0x6e5a40]
cmp dword [eax], 0
je 0x6bce5c
mov edx, dword [0x6e6228]
mov eax, dword [0x6e3f5c]
mov eax, dword [eax]
call fcn.005dec0c
mov eax, dword [0x6e4030]
cmp dword [eax], 0
je 0x6bce78
mov edx, dword [0x6e4800]
mov eax, dword [0x6e5a84]
mov eax, dword [eax]
call fcn.005df1f4
mov eax, esi
call fcn.006bc958
mov eax, dword [0x6e449c]
cmp dword [eax], 0
jne 0x6bcf16
mov eax, dword [0x6e5fd4]
cmp dword [eax], 0
jne 0x6bcf16
mov eax, dword [0x6e62c0]
cmp dword [eax], 0
jne 0x6bcf16
mov edx, dword [0x6e4de8]
add edx, 0x58
mov eax, esi
call fcn.006702bc
mov edx, dword [0x6e4de8]
add edx, 0x5c
mov eax, esi
call fcn.006702d8
mov eax, dword [0x6e4de8]
mov eax, dword [eax + 0x5c]
test eax, eax
jle 0x6bcefe
mov edx, dword [0x6e4de8]
cmp dword [edx + 0x58], 0
jle 0x6bcefe
mov edx, dword [0x6e4de8]
fild dword [edx + 0x58]
mov edx, dword [0x6e4de8]
mov dword [ebp - 0x80], eax
fild dword [ebp - 0x80]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x68]
wait
jmp 0x6bd023
mov eax, dword [0x6e4de8]
mov dword [eax + 0x68], 0x55555555
mov dword [eax + 0x6c], 0x3ff55555
jmp 0x6bd023
mov eax, dword [0x6e449c]
cmp dword [eax], 0
je 0x6bcf4a
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x6e4de8]
add eax, 0x5c
push eax
mov eax, dword [0x6e4de8]
add eax, 0x58
push eax
mov eax, dword [0x6e449c]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov dword [ebp - 0x48], eax
mov eax, dword [0x6e5fd4]
cmp dword [eax], 0
je 0x6bcf7e
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x6e4de8]
add eax, 0x5c
push eax
mov eax, dword [0x6e4de8]
add eax, 0x58
push eax
mov eax, dword [0x6e5fd4]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov dword [ebp - 0x48], eax
mov eax, dword [0x6e62c0]
cmp dword [eax], 0
je 0x6bcfaf
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [0x6e4de8]
add ecx, 0x5c
mov edx, dword [0x6e4de8]
add edx, 0x58
mov eax, dword [0x6e62c0]
call fcn.005ec1e4
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
jne 0x6bd023
mov eax, dword [0x6e4de8]
mov eax, dword [eax + 0x5c]
test eax, eax
jle 0x6bd023
mov edx, dword [0x6e4de8]
cmp dword [edx + 0x58], 0
jle 0x6bd023
mov edx, dword [0x6e4de8]
fild dword [edx + 0x58]
mov edx, dword [0x6e4de8]
mov dword [ebp - 0x80], eax
fild dword [ebp - 0x80]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x68]
wait
cmp dword [ebp - 0x34], 0
je 0x6bcff9
cmp dword [ebp - 0x38], 0
jne 0x6bd012
mov eax, dword [0x6e4de8]
mov edx, dword [0x6e4de8]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x74], ecx
jmp 0x6bd023
fild dword [ebp - 0x34]
fild dword [ebp - 0x38]
fdivp st(1)
mov eax, dword [0x6e4de8]
fstp qword [eax + 0x70]
wait
mov eax, dword [0x6e48b0]
cmp dword [eax], 0
je 0x6bd0f0
mov eax, dword [0x6e4890]
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x78]
mov eax, dword [0x6e3440]
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x80]
mov eax, dword [0x6e449c]
cmp dword [eax], 0
jne 0x6bd078
mov eax, dword [0x6e5fd4]
cmp dword [eax], 0
jne 0x6bd078
mov eax, dword [0x6e62c0]
cmp dword [eax], 0
je 0x6bd0ae
mov eax, dword [0x6e3680]
mov eax, dword [eax]
call fcn.00473d08
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x74]
mov eax, dword [0x6e3680]
mov eax, dword [eax]
call fcn.00473d08
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x7c]
jmp 0x6bd0f0
mov eax, dword [0x7efcf8]
call fcn.00473d08
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x74]
mov eax, dword [0x7efcf8]
call fcn.00473d08
push eax
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x7c]
push 0x46000000
mov eax, dword [0x6e48b0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x24]
mov edx, dword [0x6e500c]
mov edx, dword [edx]
mov eax, esi
call fcn.0066f3a4
mov eax, dword [0x6e4800]
cmp dword [eax], 0
jne 0x6bd134
mov eax, dword [0x6e62ac]
xor edx, edx
mov dword [eax], edx
mov ecx, dword [0x6e3788]
mov edx, dword [0x6e4bec]
mov eax, esi
call fcn.006bc2f4
test al, al
jne 0x6bd134
mov eax, dword [0x6e3788]
mov dword [eax], 0xffffffff
mov eax, dword [0x6e4bd8]
mov al, byte [eax]
mov edx, dword [0x6e6168]
mov byte [edx], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6bd1d4
lea eax, [ebp - 0x7c]
call fcn.00404ba0
lea eax, [ebp - 0x78]
call fcn.004052d8
lea eax, [ebp - 0x74]
call fcn.00404ba0
lea eax, [ebp - 0x70]
call fcn.004052d8
lea eax, [ebp - 0x6c]
mov edx, 2
call fcn.00404bc4
lea eax, [ebp - 0x64]
mov edx, 4
call fcn.004052f0
lea eax, [ebp - 0x54]
mov edx, 3
call fcn.00404bc4
lea eax, [ebp - 0x44]
call fcn.004052d8
lea eax, [ebp - 0x40]
mov edx, 2
call fcn.00404bc4
lea eax, [ebp - 0x14]
call fcn.00404ba0
lea eax, [ebp - 0x10]
call fcn.004052d8
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00404bc4
ret