Function at 0x40b0d0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433d85
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x449140]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, edx
mov dword [ebp - 0x14], eax
mov ebx, ecx
mov dword [ebp - 0x24], ebx
mov esi, dword [eax]
mov edi, dword [esi - 8]
cmp edi, 4
jb 0x40b1ca
push 4
mov edx, 0x43e494
mov ecx, esi
call fcn.004081b0
add esp, 4
test al, al
je 0x40b1ca
cmp edi, 8
jb 0x40b1a7
push 8
mov edx, 0x43e4a0
mov ecx, esi
call fcn.0040b660
add esp, 4
test al, al
jne 0x40b1a7
lea ecx, [esi + edi*2]
push ecx
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x18]
call fcn.00406f20
mov dword [ebp - 4], 0
mov ecx, ebx
mov eax, dword [eax]
push dword [eax - 8]
push eax
push 2
push 0x43e37c
call fcn.00405f30
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40b507
lea ecx, [eax - 0xc]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x40b507
push ecx
call fcn.00417cf7
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esi + edi*2]
mov ecx, ebx
push eax
lea eax, [esi + 8]
push eax
call fcn.00406f20
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0xc
jb 0x40b2ad
push 0xc
mov edx, 0x43e4b4
mov ecx, esi
call fcn.00408140
add esp, 4
test al, al
jne 0x40b2ad
sub esp, 8
lea ecx, [ebp - 0x1c]
mov eax, esp
mov dword [eax], 0x43e4c4
mov dword [eax + 4], 0xa
call fcn.0040ab20
add esp, 8
mov dword [ebp - 4], 1
cmp byte [ebp - 0x18], 0
je 0x40b2a6
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx - 8]
lea edx, [ecx + eax*2]
lea eax, [ecx + 0x18]
push edx
push eax
lea ecx, [ebp - 0x20]
call fcn.00406f20
push eax
lea edx, [ebp - 0x1c]
mov byte [ebp - 4], 2
mov ecx, ebx
call fcn.0040a6c0
mov eax, dword [ebp - 0x20]
add esp, 4
or edx, 0xffffffff
test eax, eax
je 0x40b266
lea ecx, [eax - 0xc]
mov eax, edx
lock xadd dword [ecx], eax
dec eax
jne 0x40b266
push ecx
call fcn.00417cf7
add esp, 4
or edx, 0xffffffff
cmp byte [ebp - 0x18], 0
je 0x40b507
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x40b507
add eax, 0xfffffff4
lock xadd dword [eax], edx
dec edx
jne 0x40b507
push eax
call fcn.00417cf7
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx]
cmp dword [ecx - 8], 8
jb 0x40b4fc
push 8
mov edx, 0x43e4dc
call fcn.00408140
add esp, 4
test al, al
jne 0x40b4fc
mov esi, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
push 0
push 0
call esi
push ecx
mov edi, eax
lea ecx, [ebp - 0x44]
push edi
call fcn.004055c0
mov dword [ebp - 4], 3
mov ebx, dword [ebp - 0x44]
push ebx
push edi
mov dword [ebp - 0x18], ebx
call esi
test eax, eax
je 0x40b4f1
cmp eax, edi
jae 0x40b4f1
cmp word [ebx], 0
je 0x40b4f1
mov ecx, ebx
lea edx, [ecx + 2]
jmp 0x40b320
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b320
sub ecx, edx
sar ecx, 1
lea eax, [ebx + ecx*2]
push eax
push ebx
lea ecx, [ebp - 0x10]
call fcn.00406f20
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0x10]
mov edi, dword [esi - 8]
cmp edi, 1
jb 0x40b374
lea ecx, [esi - 2]
mov edx, 0x43e190
lea ecx, [ecx + edi*2]
push 1
call fcn.004081b0
add esp, 4
test al, al
je 0x40b374
push ecx
lea eax, [edi - 1]
push eax
lea ecx, [ebp - 0x10]
call fcn.004060c0
mov esi, dword [ebp - 0x10]
push 0x4e43
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.00417a76
add esp, 4
test eax, eax
je 0x40b59a
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
push 0x4e20
push 0
push ebx
lea edi, [ebx + 0x4e20]
mov dword [ebx - 4], eax
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x30], edi
call fcn.004197c0
add esp, 0xc
mov dword [ebp - 0x34], edi
push 0x2710
push ebx
push esi
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
dec eax
cmp eax, 0x270e
ja 0x40b45b
cmp word [ebx], 0
je 0x40b45b
push ecx
mov ecx, ebx
mov edx, esp
mov dword [ebp - 0x28], edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40b3f0
sub ecx, edi
sar ecx, 1
lea eax, [ebx + ecx*2]
mov ecx, edx
push eax
push ebx
call fcn.00406f20
lea ecx, [ebp - 0x20]
call fcn.0040a610
add esp, 4
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [edi - 8]
mov dword [ebp - 0x28], ecx
cmp dword [eax - 8], ecx
jb 0x40b442
push ecx
mov edx, edi
mov ecx, eax
call fcn.0040b660
add esp, 4
test al, al
je 0x40b51b
add edi, 0xfffffff4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
jne 0x40b458
push edi
call fcn.00417cf7
add esp, 4
mov edi, dword [ebp - 0x30]
sub edi, ebx
mov byte [ebp - 4], 4
sar edi, 1
add edi, edi
cmp edi, 0x1000
jb 0x40b483
mov ecx, dword [ebx - 4]
add edi, 0x23
sub ebx, ecx
lea eax, [ebx - 4]
cmp eax, 0x1f
ja 0x40b59a
mov ebx, ecx
push edi
push ebx
call fcn.00417cfc
add esp, 8
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov byte [ebp - 4], 3
test esi, esi
je 0x40b4c0
add esi, 0xfffffff4
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
jne 0x40b4c0
push esi
call fcn.00417cf7
add esp, 4
mov ebx, dword [ebp - 0x18]
mov eax, ebx
lea edx, [eax + 2]
jmp 0x40b4d0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b4d0
sub eax, edx
sar eax, 1
lea ebx, [ebx + eax*2]
add ebx, 2
mov dword [ebp - 0x18], ebx
cmp word [ebx], cx
jne 0x40b316
lea ecx, [ebp - 0x44]
call fcn.00405560
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
lock inc dword [eax - 0xc]
mov dword [ebx], eax
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
mov edx, dword [ebp - 0x28]
mov ecx, dword [eax - 8]
lea ecx, [eax + ecx*2]
push ecx
lea eax, [eax + edx*2]
push eax
lea ecx, [ebp - 0x28]
call fcn.00406f20
mov esi, dword [ebp - 0x24]
lea edx, [ebp - 0x10]
push eax
mov ecx, esi
mov byte [ebp - 4], 7
call fcn.0040a6c0
add esp, 4
lea ecx, [ebp - 0x28]
call fcn.00406090
lea ecx, [ebp - 0x20]
call fcn.00406090
mov ecx, dword [ebx - 4]
sub ebx, ecx
lea eax, [ebx - 4]
cmp eax, 0x1f
ja 0x40b59a
push 0x4e43
push ecx
call fcn.00417cfc
add esp, 8
lea ecx, [ebp - 0x10]
call fcn.00406090
lea ecx, [ebp - 0x44]
call fcn.00405560
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.0041c7fe
int3