Function at 0x40697a
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov dword [ebp - 0x3c], 0
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
push 8
call fcn.0043fb7d
add esp, 4
mov dword [ebp - 0x14], eax
mov edi, eax
mov esi, 0x4788ac
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
push 8
call fcn.0043fb7d
add esp, 4
mov dword [ebp - 0x18], eax
mov edi, eax
mov esi, 0x4788ac
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], 0x41
xor ecx, ecx
lea eax, [ebp - 8]
mov ebx, eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
cmp ecx, 0x1a
jg 0x406b7f
push 0x80000101
push 0
push dword [ebp - 4]
push 1
mov ebx, 0x140
call fcn.004409d0
add esp, 0x10
mov dword [ebp - 0x24], eax
push 0x478e4d
push dword [ebp - 0x24]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x406a4d
push ebx
call fcn.0043fb83
add esp, 4
mov dword [ebp - 0x2c], esp
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x406a6f
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x406a82
push ebx
call fcn.0043fb83
add esp, 4
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 3
jne 0x406b75
inc dword [ebp - 0x10]
push 0x80000101
push 0
push dword [ebp - 4]
push 1
mov ebx, 0x140
call fcn.004409d0
add esp, 0x10
mov dword [ebp - 0x24], eax
push 0x478e4d
push dword [ebp - 0x24]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x406adc
push ebx
call fcn.0043fb83
add esp, 4
lea eax, [ebp - 0x14]
push eax
push 4
mov eax, 2
call fcn.0043ffe0
add esp, 8
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x30], ebx
call fcn.004011ea
mov dword [ebp - 0x34], ecx
mov edi, dword [ebp - 0x30]
mov dword [edi], 1
add edi, 4
mov eax, ecx
inc eax
mov dword [edi], eax
add edi, 4
cmp edi, ebx
je 0x406b1f
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x34]
inc eax
shl eax, 2
add eax, 8
push eax
push dword [ebp - 0x30]
call fcn.0043fba1
add esp, 8
mov dword [ebp - 0x14], eax
mov edi, eax
add edi, 8
mov eax, dword [ebp - 0x34]
shl eax, 2
add edi, eax
mov eax, dword [ebp - 0x2c]
push edi
test eax, eax
je 0x406b62
push eax
mov ebx, eax
call fcn.0040162e
inc eax
push eax
call fcn.0043fb7d
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop edi
mov dword [edi], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x406b75
push ebx
call fcn.0043fb83
add esp, 4
inc dword [ebp - 4]
pop ebx
pop ecx
jmp 0x4069f8
add esp, 8
push 0
push 0
push 0
push 0x80000004
push 0
push 0x478e97
push 0x80000004
push 0
mov eax, dword [0x78a377]
test eax, eax
jne 0x406ba9
mov eax, 0x478de2
push eax
push 3
mov ebx, 0x190
call fcn.00440eb0
add esp, 0x28
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0x18]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x406be1
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x406bdd
imul eax, dword [ebx]
jmp 0x406bd2
mov ecx, eax
test ecx, ecx
je 0x406c00
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x406bf9
push ebx
push eax
call fcn.0043fb83
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x406be7
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x14]
call fcn.00401699
xor ecx, ecx
push eax
lea eax, [ebp - 8]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x407444
cmp dword [ebp + 0xc], 0
jne 0x40722a
mov ebx, dword [ebp - 0x18]
call fcn.00401699
xor ecx, ecx
push eax
lea eax, [ebp - 0x1c]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x407222
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x24], eax
mov ebx, dword [ebp - 0x18]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 0x1c]
dec eax
jns 0x406c86
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x406c99
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x28]
push dword [ebx]
push 0x478de0
push dword [0x78a373]
push 0x478e95
push dword [ebp - 0x24]
mov ecx, 5
call fcn.00402ed8
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x406cd9
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x406cec
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x24c
call fcn.004410b0
add esp, 0x10
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x406d12
push ebx
call fcn.0043fb83
add esp, 4
cmp dword [ebp - 0x30], 0
jne 0x40721a
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x406d39
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x406d4c
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x18]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 0x1c]
dec eax
jns 0x406d71
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x406d84
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x28]
push dword [ebx]
push 0x478de0
push dword [0x78a373]
push 0x478e6b
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 5
call fcn.00402ed8
add esp, 0x14
mov dword [ebp - 0x2c], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x406dc9
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x24c
call fcn.004410b0
add esp, 0x10
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x406def
push ebx
call fcn.0043fb83
add esp, 4
cmp dword [ebp - 0x30], 0
je 0x40721a
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x406e16
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x406e29
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x18]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 0x1c]
dec eax
jns 0x406e4e
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x406e61
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x28]
push dword [ebx]
push 0x478de0
push dword [0x78a373]
push 0x478e6b
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 5
call fcn.00402ed8
add esp, 0x14
mov dword [ebp - 0x2c], eax
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x18]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 0x1c]
dec eax
jns 0x406ec5
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x406ed8
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 0x34]
push dword [ebx]
push 0x478de0
push dword [0x78a373]
push 0x478e95
push dword [ebp - 0x30]
mov ecx, 5
call fcn.00402ed8
add esp, 0x14
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x406f18
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x406f2b
mov eax, 0x478de2
push eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x406f3f
mov eax, 0x478de2
push eax
push 2
mov ebx, 0x23c
call fcn.00441b50
add esp, 0x1c
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x406f62
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x406f72
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x406f8f
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x406fa2
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
push 0x478e4f
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 2
call fcn.00402ed8
add esp, 8
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x3c]
push eax
push 0
push 0x20
push dword [ebp - 0x28]
mov eax, 0
call fcn.004409f0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x406ff5
push ebx
call fcn.0043fb83
add esp, 4
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x407009
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
push 0x478de2
push dword [ebp - 0x20]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x407215
push 0x478de0
push dword [ebp - 0x20]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x40705f
push 0x478e68
push dword [ebp - 0x20]
call fcn.004016b2
add esp, 8
cmp eax, 0
je 0x40705f
mov eax, 1
jmp 0x407061
xor eax, eax
test eax, eax
je 0x4071db
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x24], eax
push dword [ebp - 0x20]
push 0x478e95
push dword [ebp - 0x24]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x4070a9
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x4070bc
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x24c
call fcn.004410b0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x4070e2
push ebx
call fcn.0043fb83
add esp, 4
cmp dword [ebp - 0x2c], 0
jne 0x4071db
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x407109
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x40711c
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
push dword [ebp - 0x20]
push 0x478e6b
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x28], eax
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x2c], eax
push dword [ebp - 0x20]
push 0x478e95
push dword [ebp - 0x2c]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x407181
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x407194
mov eax, 0x478de2
push eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x4071a8
mov eax, 0x478de2
push eax
push 2
mov ebx, 0x23c
call fcn.00441b50
add esp, 0x1c
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x4071cb
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x4071db
push ebx
call fcn.0043fb83
add esp, 4
lea eax, [ebp - 0x3c]
push eax
push 1
push 0
push 0
mov eax, 0
call fcn.004409f0
add esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x40720c
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
jmp 0x40700d
jmp 0x407222
pop eax
pop ebx
pop ecx
jmp 0x406c46
add esp, 0xc
jmp 0x40743c
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x24], eax
mov ebx, dword [ebp + 8]
push dword [ebx]
push 0x478e95
push dword [ebp - 0x24]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40726c
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x40727f
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x24c
call fcn.004410b0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x4072a5
push ebx
call fcn.0043fb83
add esp, 4
cmp dword [ebp - 0x2c], 0
jne 0x40743c
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x4072cc
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x4072df
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp + 8]
push dword [ebx]
push 0x478e6b
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x28], eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x407319
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x24c
call fcn.004410b0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x40733f
push ebx
call fcn.0043fb83
add esp, 4
cmp dword [ebp - 0x2c], 0
je 0x40743c
mov ebx, dword [ebp - 0x14]
call fcn.004011ea
push ebx
push ecx
mov eax, dword [ebp - 8]
dec eax
jns 0x407366
push 4
call fcn.0043fb89
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x407379
push 1
call fcn.0043fb89
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp + 8]
push dword [ebx]
push 0x478e6b
mov ebx, dword [ebp - 0x24]
push dword [ebx]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x28], eax
push 0
mov ebx, 0x104
call fcn.00440e10
add esp, 4
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp + 8]
push dword [ebx]
push 0x478e95
push dword [ebp - 0x2c]
mov ecx, 3
call fcn.00402ed8
add esp, 0xc
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x4073e2
push ebx
call fcn.0043fb83
add esp, 4
push 0x80000004
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x4073f5
mov eax, 0x478de2
push eax
push 0x80000004
push 0
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x407409
mov eax, 0x478de2
push eax
push 2
mov ebx, 0x23c
call fcn.00441b50
add esp, 0x1c
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x40742c
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x40743c
push ebx
call fcn.0043fb83
add esp, 4
pop eax
pop ebx
pop ecx
jmp 0x406c1d
add esp, 0xc
push dword [ebp - 0x3c]
mov eax, 1
call fcn.00440b40
add esp, 4
mov ebx, dword [ebp - 0x14]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x407475
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x407471
imul eax, dword [ebx]
jmp 0x407466
mov ecx, eax
test ecx, ecx
je 0x407494
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x40748d
push ebx
push eax
call fcn.0043fb83
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x40747b
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x18]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x4074ba
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x4074b6
imul eax, dword [ebx]
jmp 0x4074ab
mov ecx, eax
test ecx, ecx
je 0x4074d9
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x4074d2
push ebx
push eax
call fcn.0043fb83
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x4074c0
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x4074f1
push ebx
call fcn.0043fb83
add esp, 4
mov esp, ebp
pop ebp
ret 8