Function at 0x48cea4
Capabilities:
Get disk information

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffac
mov edi, eax
mov ebp, 0x4c24ec
mov esi, dword [0x4beed8]
mov al, byte [edi + 0x54]
cmp al, 0x3a
je 0x48cec3
cmp al, 0x3b
jne 0x48cefd
cmp al, 0x3a
jne 0x48cee2
mov ax, 0x1f6
call fcn.004aa600
push eax
mov ax, 0x1f5
call fcn.004aa600
pop edx
call fcn.004ae1b0
jmp 0x48cf22
mov ax, 0x1f6
call fcn.004aa600
push eax
mov ax, 0x1f4
call fcn.004aa600
pop edx
call fcn.004ae1b0
jmp 0x48cf22
mov eax, dword [0x4be784]
movzx eax, byte [eax + 0x18b9]
add ax, 0xa4
call fcn.004aa600
push eax
mov ax, 0x1f5
call fcn.004aa600
pop edx
call fcn.004ae1b0
mov eax, dword [0x4bedb0]
push eax
mov eax, dword [edi]
push eax
call sub.user32.dll_SetWindowTextA
push 0x65
mov eax, dword [edi]
push eax
call sub.user32.dll_GetDlgItem
mov dword [0x4c2494], eax
push 0x50010037
push 0xfffffffffffffff0
mov eax, dword [0x4c2494]
push eax
call sub.user32.dll_SetWindowLongA
push 0x200
push 0xffffffffffffffec
mov eax, dword [0x4c2494]
push eax
call sub.user32.dll_SetWindowLongA
push 0x23
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x4c2494]
push eax
call sub.user32.dll_SetWindowPos
push 0
mov eax, dword [0x4be8b8]
mov eax, dword [eax + 0xc]
push eax
push 0x30
push 0x65
mov eax, dword [edi]
push eax
call sub.user32.dll_SendDlgItemMessageA
mov dl, 1
xor eax, eax
call fcn.0048c25c
xor ecx, ecx
mov edx, dword [0x4c24e8]
mov eax, dword [0x4c2494]
call fcn.004102a8
mov dword [ebp], 0x67
mov dword [ebp + 0x20], 1
mov eax, dword [0x4c2498]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
mov ax, 0x8c
call fcn.004aa600
mov dword [ebp + 0x10], eax
xor eax, eax
mov dword [ebp + 0x24], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0xffff0001
push esi
push edi
mov esi, ebp
lea edi, [esp + 0x28]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea edx, [esp + 0x18]
mov eax, dword [0x4c2494]
call fcn.00410244
mov dword [esp], eax
mov ax, 0x8d
call fcn.004aa600
mov dword [ebp + 0x10], eax
mov dword [esp + 0x1c], 0xffff0002
push esi
push edi
mov esi, ebp
lea edi, [esp + 0x28]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea edx, [esp + 0x18]
mov eax, dword [0x4c2494]
call fcn.00410244
mov dword [esp + 4], eax
mov eax, dword [0x4c249c]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
xor eax, eax
mov dword [ebp + 0x20], eax
mov eax, dword [esp]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0xffff0002
xor eax, eax
mov dword [esp + 8], eax
mov ebx, 1
mov eax, dword [0x4beaf4]
add eax, 0xfffff760
mov dword [esp + 0xc], eax
cmp ebx, 0x1a
jle 0x48d0a0
mov al, byte [edi + 0x54]
cmp al, 0x3a
je 0x48d089
cmp al, 0x3b
jne 0x48d1c8
mov eax, dword [esp + 0xc]
cmp byte [eax], 0
je 0x48d099
mov word [esi], 3
jmp 0x48d0b0
mov word [esi], 0
jmp 0x48d0b0
mov eax, ebx
call fcn.004ab84c
push eax
call sub.kernel32.dll_GetDriveTypeA
mov word [esi], ax
cmp word [esi], 1
jbe 0x48d1c8
cmp word [esi], 4
je 0x48d1c8
cmp word [esi], 6
jbe 0x48d0cf
mov word [esi], 6
cmp word [esi], 2
jne 0x48d0da
cmp ebx, 3
jl 0x48d0eb
mov eax, ebx
mov edx, dword [0x4bedb0]
call fcn.0049e05c
test al, al
jne 0x48d107
mov ax, word [esi]
add ax, 0x8e
sub ax, 2
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004b81b0
cmp ebx, 0x1a
jg 0x48d176
mov eax, dword [0x4bedb0]
call fcn.004b8144
xor edx, edx
mov dl, al
mov ecx, dword [0x4bedb0]
mov byte [ecx + edx], 0x20
xor edx, edx
mov dl, al
mov ecx, dword [0x4bedb0]
mov byte [ecx + edx + 1], 0x28
xor edx, edx
mov dl, al
mov ecx, dword [0x4bedb0]
lea edx, [ecx + edx + 2]
push edx
lea edx, [ebx + 0x40]
pop ecx
mov byte [ecx], dl
xor edx, edx
mov dl, al
mov ecx, dword [0x4bedb0]
mov byte [ecx + edx + 3], 0x3a
xor edx, edx
mov dl, al
mov ecx, dword [0x4bedb0]
mov byte [ecx + edx + 4], 0x29
and eax, 0xff
mov edx, dword [0x4bedb0]
mov byte [edx + eax + 5], 0
movzx eax, word [esi]
mov eax, dword [eax*4 + 0x4c2494]
mov dword [ebp + 0x18], eax
movzx edx, word [esi]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x24], ebx
mov eax, dword [0x4bedb0]
mov dword [ebp + 0x10], eax
push esi
push edi
mov esi, ebp
lea edi, [esp + 0x28]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea edx, [esp + 0x18]
mov eax, dword [0x4c2494]
call fcn.00410244
mov edx, dword [0x4be784]
movsx edx, byte [edx + 0x187d]
cmp ebx, edx
jne 0x48d1c8
mov dword [esp + 8], eax
inc ebx
add dword [esp + 0xc], 0x58
cmp ebx, 0x2b
jne 0x48d075
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [0x4c249c]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
or ebx, 0xffffffff
mov eax, ebx
call fcn.004ab84c
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 1
jbe 0x48d25e
mov eax, ebx
neg eax
dec eax
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov ax, 0x93
call fcn.004aa600
call fcn.004ae0e4
mov dword [ebp + 0x24], ebx
mov eax, dword [0x4bedb0]
mov dword [ebp + 0x10], eax
push edi
mov esi, ebp
lea edi, [esp + 0x24]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop edi
lea edx, [esp + 0x18]
mov eax, dword [0x4c2494]
call fcn.00410244
mov edx, dword [0x4be784]
movsx edx, byte [edx + 0x187d]
cmp ebx, edx
jne 0x48d25e
mov dword [esp + 8], eax
dec ebx
cmp ebx, 0xfffffffd
jne 0x48d1ed
mov ebx, 0xfffffffd
mov esi, dword [0x4bec00]
add esi, 0x22f
mov eax, dword [0x4be6ac]
add eax, 0x9c
mov dword [esp + 0x10], eax
mov eax, dword [0x4be408]
add eax, 0x9c
mov dword [esp + 0xc], eax
mov eax, dword [0x4becf0]
add eax, 0x4e
mov dword [esp + 0x14], eax
cmp byte [esi], 0
je 0x48d53b
cmp ebx, 0xffffffde
jge 0x48d2bb
cmp byte [edi + 0x54], 0x3a
je 0x48d2bb
cmp byte [edi + 0x54], 0x3b
jne 0x48d53b
mov eax, dword [0x4be450]
cmp byte [eax], 0
je 0x48d2ce
cmp ebx, 0xffffffe0
jl 0x48d476
cmp byte [esi - 1], 0
jne 0x48d41d
mov eax, dword [esp + 0x10]
cmp dword [eax], 0
je 0x48d33b
mov edx, 0x48d6cc
mov eax, dword [0x4bedb0]
call fcn.004b81b0
mov eax, ebx
neg eax
sub eax, 3
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b849c
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
push 0x48d6d0
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
jmp 0x48d35f
mov eax, ebx
neg eax
sub eax, 3
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov ax, 0x94
call fcn.004aa600
call fcn.004ae0e4
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x50], eax
fild qword [esp + 0x4c]
mov eax, dword [0x4be4c4]
fistp qword [eax]
wait
mov eax, dword [esp + 0x14]
movzx eax, word [eax]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
mov eax, dword [0x4be4c4]
fild qword [eax]
fmulp st(1)
mov eax, dword [0x4be4c4]
fistp qword [eax]
wait
mov edx, dword [0x4bedb0]
mov eax, dword [0x4beb38]
call fcn.004b81b0
mov eax, dword [0x4be4c4]
fild qword [eax]
fcomp dword [0x48d6d4]
fnstsw ax
sahf
jbe 0x48d3fd
push 0x48d6d8
mov eax, dword [0x4beb38]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4be4c4]
push dword [eax + 4]
push dword [eax]
call fcn.004b1e30
mov eax, dword [0x4bedb0]
push eax
mov eax, dword [0x4beb38]
push eax
call sub.kernel32.dll_lstrcatA
push 0x48d6dc
mov eax, dword [0x4beb38]
push eax
call sub.kernel32.dll_lstrcatA
mov edx, dword [0x4beb38]
mov eax, dword [0x4bedb0]
call fcn.004b81b0
mov eax, dword [0x4c24a0]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
jmp 0x48d4f4
mov ax, 0x8e
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004b81b0
push 0x48d6e0
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, ebx
neg eax
sub eax, 3
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b849c
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4c249c]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
jmp 0x48d4f4
cmp ebx, 0xffffffde
jl 0x48d4d5
mov ax, 0x91
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004b81b0
push 0x48d6e0
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, ebx
neg eax
add eax, 0xffffffe0
dec eax
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b849c
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4c24a8]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
jmp 0x48d4f4
mov eax, ebx
mov ecx, dword [0x4bedb0]
xor edx, edx
call fcn.0049e530
mov eax, dword [0x4c24a0]
mov dword [ebp + 0x18], eax
mov eax, dword [0x4c24a0]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [0x4bedb0]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x24], ebx
push esi
push edi
mov esi, ebp
lea edi, [esp + 0x28]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea edx, [esp + 0x18]
mov eax, dword [0x4c2494]
call fcn.00410244
mov edx, dword [0x4be784]
movsx edx, byte [edx + 0x187d]
cmp ebx, edx
jne 0x48d53b
mov dword [esp + 8], eax
dec ebx
sub dword [esp + 0x14], 2
sub dword [esp + 0xc], 4
sub dword [esp + 0x10], 4
sub esi, 0xe
cmp ebx, 0xffffffd9
jne 0x48d29d
mov ecx, 2
mov edx, dword [esp + 4]
mov eax, dword [0x4c2494]
call fcn.0041028c
mov ecx, 2
mov edx, dword [esp]
mov eax, dword [0x4c2494]
call fcn.0041028c
cmp dword [esp + 8], 0
je 0x48d596
mov ecx, 9
mov edx, dword [esp + 8]
mov eax, dword [0x4c2494]
call fcn.0041032c
mov eax, dword [0x4be450]
cmp byte [eax], 0
je 0x48d5f4
mov eax, dword [0x4be784]
cmp byte [eax + 0x187d], 0xe0
jge 0x48d5bc
mov eax, dword [0x4be784]
cmp byte [eax + 0x187d], 0xde
jge 0x48d5c0
xor ebx, ebx
jmp 0x48d5c2
mov bl, 1
mov eax, dword [0x4be784]
cmp byte [eax + 0x187d], 0
jle 0x48d5e5
mov al, byte [ebp + 0x24]
call fcn.004ab84c
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 5
jne 0x48d5e5
mov bl, 1
mov eax, edi
mov ecx, ebx
mov dx, 0x64
call fcn.004949d8
jmp 0x48d630
mov eax, edi
xor ecx, ecx
mov dx, 0x64
call fcn.004949d8
cmp byte [edi + 0x54], 0x39
jne 0x48d623
mov eax, dword [0x4be784]
cmp byte [eax + 0x187d], 0
setg cl
mov eax, edi
mov dx, 0x64
call fcn.004949d8
jmp 0x48d630
mov eax, edi
xor ecx, ecx
mov dx, 0x64
call fcn.004949d8
mov eax, dword [0x4be450]
cmp byte [eax], 0
je 0x48d683
mov eax, dword [0x4be784]
cmp byte [eax + 0x188c], 0
jne 0x48d65a
mov ecx, 0x48d6e4
mov eax, edi
mov dx, 0x64
call fcn.00488934
jmp 0x48d66a
mov ecx, 0x48d708
mov eax, edi
mov dx, 0x64
call fcn.00488934
mov edx, dword [0x4be784]
mov dl, byte [edx + 0x198d]
mov eax, edi
mov cx, 0x64
call fcn.00488920
jmp 0x48d6b6
cmp byte [edi + 0x54], 0x39
jne 0x48d6b6
mov ax, 0x1f7
call fcn.004aa600
mov ecx, eax
mov eax, edi
mov dx, 0x64
call fcn.00488934
mov edx, dword [0x4be784]
mov dl, byte [edx + 0x18e4]
mov eax, edi
mov cx, 0x64
call fcn.00488920
mov eax, dword [0x4c2494]
push eax
call sub.user32.dll_SetFocus
add esp, 0x54
pop ebp
pop edi
pop esi
pop ebx
ret