Function at 0x40765e
Capabilities:
Get disk information

Disassembly:
mov eax, 0x40b73f
call sub.MSVCRT.dll__EH_prolog
sub esp, 0x878
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x14], esi
and dword [ebp - 0x18], 0
and dword [ebp - 4], 0
xor ebx, ebx
inc ebx
mov byte [ebp - 4], bl
call fcn.004030e3
push eax
lea ecx, [esi + 0xe6c]
call fcn.00409d73
mov dword [ebp - 0x1c], eax
test eax, eax
jge 0x4076c0
push eax
lea ecx, [ebp - 0x24]
call fcn.0040305d
mov ecx, dword [eax]
mov dword [ebp - 0x2c], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
push 0x40bfb4
lea eax, [ebp - 0x2c]
jmp 0x40776b
mov ecx, esi
call fcn.004030e3
push eax
call fcn.00409fb6
test eax, eax
jne 0x4076ef
mov ecx, esi
call fcn.004030e3
push eax
push 0xc2
push esi
call fcn.00406c9a
add esp, 0xc
mov dword [ebp - 0x30], ebx
jmp 0x4078a7
lea edi, [esi + 0x214]
mov ecx, edi
call fcn.004030e3
push eax
mov ecx, esi
call fcn.004030e3
push eax
call fcn.0040a078
test eax, eax
jne 0x407731
mov ecx, esi
call fcn.004030e3
push eax
mov ecx, edi
call fcn.004030e3
push eax
push 0xc3
push esi
call fcn.00406c9a
mov dword [ebp - 0x34], ebx
jmp 0x4078a4
lea edi, [esi + 0x428]
lea eax, [ebp - 0x54]
push eax
mov ecx, edi
call fcn.004030e3
push eax
call fcn.0040a87c
mov dword [ebp - 0x1c], eax
test eax, eax
jge 0x407771
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040305d
mov ecx, dword [eax]
mov dword [ebp - 0x64], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x60], eax
push 0x40bfb4
lea eax, [ebp - 0x64]
push eax
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [ebp - 0x68], eax
cmp eax, 3
je 0x4077a1
mov ecx, edi
call fcn.004030e3
push eax
push 0xcc
push esi
call fcn.00406c9a
add esp, 0xc
mov dword [ebp - 0x6c], ebx
jmp 0x4078a7
lea ecx, [esi + 0xe60]
push 0
call fcn.004062d2
test eax, eax
je 0x4077e7
push 0
push 0x19a0
call fcn.00405c93
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x70], ecx
test ecx, ecx
je 0x4077d9
push edi
lea eax, [esi + 0x214]
push eax
push esi
call fcn.004071d1
jmp 0x4077db
xor eax, eax
push eax
lea ecx, [esi + 0xe60]
call fcn.0040799a
lea ecx, [esi + 0xe60]
call fcn.004079d7
mov ecx, eax
call fcn.0040661e
test eax, eax
je 0x407831
lea edi, [esi + 0xe60]
mov ecx, edi
call fcn.004079d7
mov ecx, eax
call fcn.004063ba
push eax
mov ecx, edi
call fcn.004079d7
mov ecx, eax
call fcn.004063c1
push eax
push 0xd3
push esi
call fcn.00406c9a
mov dword [ebp - 0x74], ebx
jmp 0x4078a4
lea ecx, [esi + 0xe60]
call fcn.004079d7
mov ecx, eax
call fcn.00406ae7
test eax, eax
jne 0x4078b7
lea eax, [ebp - 0x94]
push eax
mov ecx, edi
call fcn.004030e3
push eax
call fcn.0040a87c
mov dword [ebp - 0x98], eax
test eax, eax
jge 0x407879
push 0x4018e8
lea eax, [ebp - 0x94]
push eax
call dword [sym.imp.MSVCRT.dll_wcscpy]
pop ecx
pop ecx
lea ecx, [esi + 0xe60]
call fcn.004079d7
mov ecx, eax
call fcn.004062a9
push eax
lea eax, [ebp - 0x94]
push eax
push 0xc5
push esi
call fcn.00406c9a
mov dword [ebp - 0x9c], ebx
add esp, 0x10
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00407521
mov eax, ebx
jmp 0x40792f
xor edi, edi
mov dword [ebp - 0x1c], edi
jmp 0x4078e5
and dword [ebp - 4], 0
mov dword [esi + 0xe5c], edi
test edi, edi
jge 0x407921
push ebx
push edi
lea ecx, [ebp - 0x884]
call fcn.004044fb
mov byte [ebp - 4], 3
push dword [eax + 4]
lea ecx, [esi + 0x648]
call fcn.004030e7
and byte [ebp - 4], 0
lea ecx, [ebp - 0x884]
call fcn.00403c28
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00407521
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret