Function at 0x4188a0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
mov eax, dword [0x46e818]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x4739a4], 0
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp + 0x14]
push edi
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x224], eax
je 0x418c60
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x4188f6
cmp edi, 5
je 0x418975
cmp edi, 0x20
jne 0x418c60
mov dword [ebp - 0x20c], 0x46c124
mov eax, dword [0x4739a8]
xor edx, edx
push esi
xor esi, esi
mov dword [ebp - 0x214], edx
xor ecx, ecx
mov dword [ebp - 0x208], esi
cmp eax, 4
jne 0x418922
cmp edi, 5
je 0x41892b
cmp edi, 0x20
jne 0x4189ca
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edx, eax
xor esi, esi
mov dword [ebp - 0x210], edx
mov dword [ebp - 0x21c], esi
mov eax, 1
mov ecx, esi
shl eax, cl
test edx, eax
je 0x4189b3
lea ebx, [esi + 0x41]
push ebx
call fcn.0041c190
add esp, 4
cmp eax, 0x100
jne 0x41896a
push ebx
call fcn.0041c190
add esp, 4
cmp edi, 5
jne 0x418984
cmp eax, edi
je 0x418992
jmp 0x4189ad
mov dword [ebp - str..CdRom], 0x46c128
jmp 0x418900
cmp edi, 0x20
jne 0x4189ad
cmp eax, edi
je 0x418992
cmp eax, 0x21
jne 0x4189ad
mov edx, dword [ebp - 0x21c]
mov eax, edx
inc edx
mov dword [ebp - 0x21c], edx
cmp eax, dword [ebp - 0x218]
je 0x418a4e
mov edx, dword [ebp - 0x210]
inc esi
cmp esi, 0x1a
jb 0x418941
xor ecx, ecx
xor edx, edx
xor esi, esi
mov ebx, dword [ebp - 0x220]
mov eax, dword [0x4739a8]
test eax, eax
je 0x418b77
cmp eax, 4
jne 0x4189e0
cmp edi, 5
je 0x418a7b
cmp edi, 0x20
je 0x418a7b
mov ecx, dword [ebp - 0x20c]
lea edx, [ebp - 0x104]
mov ecx, dword [ecx]
sub edx, ecx
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x418a00
lea ecx, [ebp - 0x104]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x418a20
push dword [ebp - 0x218]
sub ecx, edx
lea eax, [ebp - 0x104]
sar ecx, 1
push 0x45a84c
lea eax, [eax + ecx*2]
push eax
call fcn.00415400
add esp, 0xc
jmp 0x418a83
movzx esi, bx
movzx eax, si
push eax
lea eax, [ebp - 0x104]
mov dword [ebp - 0x208], esi
push str.._c:
push eax
call fcn.00415400
add esp, 0xc
mov ecx, 1
xor edx, edx
jmp 0x4189bf
test ecx, ecx
je 0x418c0d
test ebx, ebx
jne 0x418a9a
cmp edi, 0x20
jne 0x418a9a
mov eax, dword [ebp - 0x208]
or ebx, 0xffffffff
jmp 0x418c1f
push 0
push dword [ebp - 0x224]
lea eax, [ebp - 0x104]
push 3
push 0
push 3
push ebx
push eax
call dword [0x46f068]
mov ebx, eax
mov dword [ebp - 0x20c], ebx
cmp ebx, 0xffffffff
je 0x418c0f
mov dword [ebp - 0x214], 1
cmp edi, 5
jne 0x418c0f
test si, si
jne 0x418c0f
mov ebx, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor eax, eax
mov word [ebp - 0x106], ax
lea eax, [ebp - 0x204]
push 0x7f
push eax
lea eax, [ebp - 0xfc]
push eax
call ebx
test eax, eax
je 0x418b5e
xor eax, eax
mov dword [ebp - 0x102], 0x3a
mov word [ebp - 6], ax
mov esi, 0x41
nop dword [eax]
push 0x7b
lea eax, [ebp - 0xfc]
mov word [ebp - 0x104], si
push eax
lea eax, [ebp - 0x104]
push eax
call ebx
test eax, eax
je 0x418b57
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0xfc]
push eax
call fcn.00447067
add esp, 8
test eax, eax
je 0x418b69
inc esi
cmp si, 0x5a
jbe 0x418b20
mov ebx, dword [ebp - 0x20c]
jmp 0x418c0f
mov ebx, dword [ebp - 0x20c]
movzx eax, si
jmp 0x418c15
test edi, edi
jne 0x418bf8
cmp dword [0x4739b4], edi
je 0x418c0d
cmp dword [0x4739b8], edi
je 0x418c0d
mov ecx, dword [0x4739bc]
test ecx, ecx
je 0x418c0d
mov eax, 0x1e
mov dword [ebp - 0x22a], edi
push eax
mov word [ebp - 0x244], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x244]
movlpd qword [ebp - 0x242], xmm0
push eax
mov al, byte [ebp - 0x218]
sub al, 0x80
movlpd qword [ebp - 0x23a], xmm0
movzx eax, al
push eax
movlpd qword [ebp - 0x232], xmm0
call ecx
xor ebx, ebx
test eax, eax
mov eax, dword [ebp - 0x208]
je 0x418c15
mov dword [ebp - 0x214], 1
jmp 0x418c15
cmp edi, 0x20
jne 0x418c0d
test ecx, ecx
mov eax, 1
cmovne edx, eax
mov dword [ebp - 0x214], edx
xor ebx, ebx
mov eax, dword [ebp - 0x208]
xor esi, esi
cmp dword [ebp - 0x214], esi
je 0x418c4d
push dword [ebp - 0x224]
push eax
push dword [ebp - 0x218]
push edi
push 0
push ebx
call fcn.00417260
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x418c4d
cmp dword [0x4739a8], eax
je 0x418c4d
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00442e5e
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop ebx
call fcn.00442e5e
mov esp, ebp
pop ebp
ret