Function at 0x40ada0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433d15
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
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 - 0x1c], ebx
mov esi, dword [eax]
mov edi, dword [esi - 8]
cmp edi, 4
jb 0x40ae89
push 4
mov edx, 0x43e35c
mov ecx, esi
call fcn.004081b0
add esp, 4
test al, al
je 0x40ae89
cmp edi, 8
jb 0x40ae6f
push 8
mov edx, 0x43e368
mov ecx, esi
call fcn.0040b660
add esp, 4
test al, al
jne 0x40ae6f
lea ecx, [esi + edi*2]
push ecx
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x14]
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 - 0x14]
test eax, eax
je 0x40ae8f
lea ecx, [eax - 0xc]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x40ae8f
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
cmp edi, 0x16
jb 0x40aea3
push 0x16
mov edx, 0x43e44c
mov ecx, esi
call fcn.0040b660
add esp, 4
test al, al
jne 0x40aeac
lock inc dword [esi - 0xc]
mov dword [ebx], esi
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, 0xb
jb 0x40b094
push 0xb
mov edx, 0x43e47c
mov ecx, esi
call fcn.0040b660
add esp, 4
test al, al
jne 0x40b094
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x2c]
call fcn.00409ff0
mov dword [ebp - 4], 1
cmp byte [ebp - 0x24], 0
je 0x40b06d
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push eax
push 0
push 0
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
jne 0x40af31
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
je 0x40af31
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
lock inc dword [eax - 0xc]
lea ecx, [ebp - 0x2c]
mov dword [ebx], eax
call fcn.0040a490
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 eax, dword [ebp - 0x10]
xor esi, esi
xor edi, edi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x18], eax
test eax, eax
je 0x40afb4
cmp eax, 0x7fffffff
ja 0x40b0b7
lea edi, [eax + eax]
test edi, edi
je 0x40af94
cmp edi, 0x1000
jb 0x40af89
lea eax, [edi + 0x23]
cmp eax, edi
jbe 0x40b0bc
push eax
call fcn.00417a76
add esp, 4
test eax, eax
je 0x40b0c1
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x40af94
push edi
call fcn.00417a76
add esp, 4
mov esi, eax
mov ecx, dword [ebp - 0x18]
add edi, esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], edi
lea eax, [ecx + ecx]
push eax
push 0
push esi
call fcn.004197c0
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 0x34], edi
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
push ecx
push eax
push esi
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
je 0x40b040
cmp word [esi], 0
je 0x40b040
push esi
lea ecx, [ebp - 0x14]
call fcn.00405820
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 3
push eax
lea edx, [ebp - 0x14]
mov ecx, ebx
call fcn.0040a6c0
add esp, 4
lea ecx, [ebp - 0x14]
call fcn.00406090
sub edi, esi
mov eax, esi
and edi, 0xfffffffe
cmp edi, 0x1000
jb 0x40b01a
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b0c1
push edi
push esi
call fcn.00417cfc
add esp, 8
lea ecx, [ebp - 0x2c]
call fcn.0040a490
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
test esi, esi
je 0x40b06d
sub edi, esi
mov eax, esi
and edi, 0xfffffffe
cmp edi, 0x1000
jb 0x40b063
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b0c1
push edi
push esi
call fcn.00417cfc
add esp, 8
lea ecx, [ebp - 0x2c]
call fcn.0040a490
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
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
call fcn.00407b70
call fcn.004013b0
call fcn.0041c7fe
int3