Function at 0x418050
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb38
mov eax, dword [0x7b92f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x80c]
xor ebx, ebx
mov dword [ebp - 0xb30], esi
push 0x800
push ebx
push eax
mov dword [ebp - 8], ebx
call fcn.004af5b0
add esp, 0xc
lea eax, [ebp - 0x80c]
push eax
push 0x3ff
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
jne 0x4180b0
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00496e21
mov esp, ebp
pop ebp
ret
push edi
mov edi, dword [esi + 4]
mov esi, dword [esi]
cmp esi, edi
je 0x4180ce
nop word [eax + eax]
mov ecx, esi
call fcn.00409590
add esi, 0x18
cmp esi, edi
jne 0x4180c0
mov esi, dword [ebp - 0xb30]
lea ecx, [ebp - 0x86c]
lea edi, [ebp - 0x80c]
mov eax, dword [esi]
mov dword [esi + 4], eax
mov eax, dword [0x4e2c6c]
mov dword [ebp - 0xc], eax
mov eax, dword [0x4e2c70]
mov dword [ebp - 8], eax
call fcn.00421fa0
cmp word [ebp - 0x80c], bx
je 0x418488
nop word [eax + eax]
mov ax, word [edi]
mov word [ebp - 0xc], ax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 2
jne 0x418474
xor eax, eax
mov dword [ebp - 0x810], 7
mov dword [ebp - 0x814], 0
mov word [ebp - 0x824], ax
cmp word [ebp - 0xc], ax
jne 0x418151
xor ecx, ecx
jmp 0x418166
lea ecx, [ebp - 0xc]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x418157
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x824]
call fcn.004098c0
lea eax, [ebp - 0x824]
push eax
lea ecx, [ebp - 0x854]
call fcn.00421f50
push eax
lea ecx, [ebp - 0x86c]
call fcn.00421fc0
lea ecx, [ebp - 0x854]
call fcn.00409590
mov eax, dword [ebp - 0x810]
cmp eax, 8
jb 0x4181bd
inc eax
lea ecx, [ebp - 0x824]
push eax
push dword [ebp - 0x824]
call fcn.00409d10
lea eax, [ebp - 0x86c]
push eax
call fcn.004256e0
add esp, 4
test al, al
je 0x418474
push 3
xor eax, eax
mov dword [ebp - 0x810], 7
push 0x4e2c74
lea ecx, [ebp - 0x824]
mov dword [ebp - 0x814], 0
mov word [ebp - 0x824], ax
call fcn.004098c0
lea eax, [ebp - 0x824]
push eax
push 1
push 1
lea eax, [ebp - 0x86c]
push eax
lea ecx, [ebp - 0xb28]
call fcn.00425ec0
mov eax, dword [ebp - 0x810]
cmp eax, 8
jb 0x41823e
inc eax
lea ecx, [ebp - 0x824]
push eax
push dword [ebp - 0x824]
call fcn.00409d10
lea eax, [ebp - 0x83c]
push eax
lea ecx, [ebp - 0xb28]
call fcn.00426160
cmp dword [ebp - 0x82c], 0
je 0x41845e
nop dword [eax]
push 4
xor eax, eax
mov dword [ebp - 0x840], 7
push str..exe
lea ecx, [ebp - 0x854]
mov dword [ebp - 0x844], 0
mov word [ebp - 0x854], ax
call fcn.004098c0
or ebx, 1
mov dword [ebp - 0x810], 7
cmp dword [ebp - 0x828], 8
lea edx, [ebp - 0x83c]
mov dword [ebp - 0x814], 0
cmovae edx, dword [ebp - 0x83c]
xor eax, eax
mov word [ebp - 0x824], ax
cmp word [edx], ax
je 0x4182e5
mov eax, edx
lea esi, [eax + 2]
nop dword [eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4182d0
sub eax, esi
mov esi, dword [ebp - 0xb30]
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x824]
call fcn.004098c0
push 0
lea eax, [ebp - 0x854]
or ebx, 2
push eax
lea eax, [ebp - 0x824]
push eax
call fcn.00424850
add esp, 0xc
test al, al
je 0x418385
lea eax, [ebp - 0xb38]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x83c]
movlpd qword [ebp - 0xb38], xmm0
push eax
call fcn.00425e30
add esp, 8
cmp dword [ebp - 0xb34], 0
jg 0x418385
jl 0x418349
cmp dword [ebp - 0xb38], 0x4b00000
ja 0x418385
lea eax, [ebp - 0x884]
or ebx, 4
push eax
lea ecx, [ebp - 0x83c]
call fcn.00422680
push eax
call fcn.004184c0
add esp, 4
test al, al
jne 0x418385
lea eax, [ebp - 0x83c]
push eax
call fcn.00417eb0
add esp, 4
mov byte [ebp - 0xb29], 1
test al, al
je 0x41838c
mov byte [ebp - 0xb29], 0
test bl, 4
je 0x41839f
lea ecx, [ebp - 0x884]
and ebx, 0xfffffffb
call fcn.00409590
mov eax, dword [ebp - 0x810]
and ebx, 0xfffffffd
cmp eax, 8
jb 0x4183c0
inc eax
lea ecx, [ebp - 0x824]
push eax
push dword [ebp - 0x824]
call fcn.00409d10
xor eax, eax
mov dword [ebp - 0x810], 7
mov word [ebp - 0x824], ax
and ebx, 0xfffffffe
mov eax, dword [ebp - 0x840]
mov dword [ebp - 0x814], 0
cmp eax, 8
jb 0x4183fe
inc eax
lea ecx, [ebp - 0x854]
push eax
push dword [ebp - 0x854]
call fcn.00409d10
cmp byte [ebp - 0xb29], 0
je 0x418428
lea eax, [ebp - 0x83c]
push eax
call fcn.00417fb0
add esp, 4
test al, al
je 0x418428
lea eax, [ebp - 0x83c]
mov ecx, esi
push eax
call fcn.00419dc0
lea eax, [ebp - 0x884]
push eax
lea ecx, [ebp - 0xb28]
call fcn.00426160
push eax
lea ecx, [ebp - 0x83c]
call fcn.00421fc0
lea ecx, [ebp - 0x884]
call fcn.00409590
cmp dword [ebp - 0x82c], 0
jne 0x418260
lea ecx, [ebp - 0x83c]
call fcn.00409590
lea ecx, [ebp - 0xb28]
call fcn.00425fe0
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x418474
cmp word [edi], ax
jne 0x418110
mov ecx, dword [esi + 4]
mov eax, 0x2aaaaaab
sub ecx, dword [esi]
imul ecx
lea ecx, [ebp - 0x86c]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
setne bl
call fcn.00409590
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00496e21
mov esp, ebp
pop ebp
ret