Function at 0x484124
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x60
push 0
push 0
dec ecx
jne 0x48412d
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x174]
mov edx, dword [0x407a8c]
call fcn.00404ed4
lea eax, [ebp - 0x2cc]
mov edx, dword [0x407a8c]
call fcn.00404ed4
xor eax, eax
push ebp
push 0x48465d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3d8], 0
je 0x48461c
lea edx, [ebp - 0x2d0]
mov eax, dword [ebp - 8]
call fcn.00408784
mov eax, dword [ebp - 0x2d0]
push eax
lea edx, [ebp - 0x2d4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d0]
call fcn.00408784
mov eax, dword [ebp - 0x2d4]
pop edx
call fcn.00404b48
test eax, eax
jne 0x48461c
mov dl, 1
mov eax, dword [0x417338]
call fcn.004036c4
mov dword [ebp - 0x14], eax
xor edx, edx
push ebp
push 0x484615
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0xc]
mov edx, 0x484678
call fcn.00404950
jne 0x484222
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x328]
mov eax, dword [eax + 0x208]
xor edx, edx
call fcn.0043dc14
push eax
lea eax, [ebp - 0x2d8]
mov ecx, dword [ebp - 8]
mov edx, 0x484688
call fcn.00404850
mov edx, dword [ebp - 0x2d8]
pop eax
call fcn.0043db70
mov eax, dword [0x48a3fc]
mov eax, dword [eax]
call fcn.0047a81c
lea eax, [ebp - 0x2dc]
mov ecx, 0x4846a4
mov edx, dword [ebp - 8]
call fcn.00404850
mov eax, dword [ebp - 0x2dc]
lea ecx, [ebp - 0x2cc]
mov edx, 0x12
call fcn.004091c8
test eax, eax
jne 0x4842f0
mov eax, dword [ebp - 0x2c4]
and eax, 0x10
cmp eax, 0x10
jne 0x4842e1
mov eax, dword [ebp - 0x2c0]
mov edx, 0x4846b0
call fcn.00404950
je 0x4842e1
mov eax, dword [ebp - 0x2c0]
mov edx, 0x4846bc
call fcn.00404950
je 0x4842e1
mov edx, dword [ebp - 0x2c0]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x4842e1
mov eax, dword [ebp - 0x2c4]
and eax, 0x10
cmp eax, 0x10
jne 0x4842e1
mov eax, dword [ebp - 0x2c0]
mov edx, 0x4846b0
call fcn.00404950
je 0x4842e1
mov eax, dword [ebp - 0x2c0]
mov edx, 0x4846bc
call fcn.00404950
je 0x4842e1
mov edx, dword [ebp - 0x2c0]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x2cc]
call fcn.00409218
test eax, eax
je 0x4842a1
lea eax, [ebp - 0x2cc]
call fcn.0040923c
lea eax, [ebp - 0x2e0]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00404850
mov eax, dword [ebp - 0x2e0]
lea ecx, [ebp - 0x174]
mov edx, 0x46
call fcn.004091c8
test eax, eax
jne 0x484434
cmp dword [ebp + 8], 3
jne 0x484428
xor eax, eax
push ebp
push 0x48441e
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2e8]
mov ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 8]
call fcn.00404850
mov eax, dword [ebp - 0x2e8]
lea edx, [ebp - 0x2e4]
call fcn.00483cd4
mov eax, dword [ebp - 0x2e4]
mov ecx, 3
mov edx, 1
call fcn.00404a64
mov bl, 1
mov eax, dword [ebp - 0x18]
call fcn.00404a04
mov esi, eax
push esi
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
je 0x4843a2
push esi
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 1
jne 0x4843ff
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x5c
je 0x4843ff
lea eax, [ebp - 0x2ec]
mov ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 8]
call fcn.00404850
mov eax, dword [ebp - 0x2ec]
lea edx, [ebp - 0x1c]
call fcn.00483cd4
mov eax, dword [ebp - 0x1c]
mov edx, 0x4846c8
call fcn.00404950
je 0x4843ff
cmp dword [ebp - 0x1c], 0
je 0x4843fd
mov eax, dword [ebp - 0x1c]
call fcn.00409128
test al, al
jne 0x4843fd
mov eax, dword [ebp - 0x1c]
call fcn.0047c354
test al, al
jne 0x4843fd
xor ebx, ebx
jmp 0x4843ff
mov bl, 1
test bl, bl
jne 0x484414
lea ecx, [ebp - 0x174]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00483fc8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x484428
mov eax, dword [0x48a3fc]
mov eax, dword [eax]
call fcn.0047a81c
lea eax, [ebp - 0x174]
call fcn.00409218
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x48456c
cmp dword [ebp + 8], 3
jne 0x48456c
xor eax, eax
push ebp
push 0x484562
push dword fs:[eax]
mov dword fs:[eax], esp
mov bl, 1
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2f4]
mov ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 8]
call fcn.00404850
mov eax, dword [ebp - 0x2f4]
lea edx, [ebp - 0x2f0]
call fcn.00483cd4
mov eax, dword [ebp - 0x2f0]
mov ecx, 3
mov edx, 1
call fcn.00404a64
mov eax, dword [ebp - 0x18]
call fcn.00404a04
mov esi, eax
push esi
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
je 0x4844c4
push esi
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 1
jne 0x484521
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x5c
je 0x484521
lea eax, [ebp - 0x2f8]
mov ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 8]
call fcn.00404850
mov eax, dword [ebp - 0x2f8]
lea edx, [ebp - 0x1c]
call fcn.00483cd4
mov eax, dword [ebp - 0x1c]
mov edx, 0x4846c8
call fcn.00404950
je 0x484521
cmp dword [ebp - 0x1c], 0
je 0x48451f
mov eax, dword [ebp - 0x1c]
call fcn.00409128
test al, al
jne 0x48451f
mov eax, dword [ebp - 0x1c]
call fcn.0047c354
test al, al
jne 0x48451f
xor ebx, ebx
jmp 0x484521
mov bl, 1
test bl, bl
jne 0x484536
lea ecx, [ebp - 0x174]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00483fc8
mov eax, dword [0x48a3fc]
mov eax, dword [eax]
call fcn.0047a81c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3d8], 0
jne 0x484558
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x484576
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x48456c
cmp dword [ebp - 0x10], 0
je 0x484434
lea eax, [ebp - 0x174]
call fcn.0040923c
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x4845ff
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x2fc]
mov edx, ebx
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 0xc]
cmp dword [ebp - 0x2fc], 0
je 0x4845ef
mov eax, dword [ebp + 8]
push eax
push dword [ebp - 8]
lea ecx, [ebp - 0x304]
mov edx, ebx
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 0xc]
push dword [ebp - 0x304]
push 0x4846d4
lea eax, [ebp - 0x300]
mov edx, 3
call fcn.004048c4
mov edx, dword [ebp - 0x300]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00484124
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3d8], 0
je 0x4845ff
inc ebx
dec esi
jne 0x484593
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48461c
mov eax, dword [ebp - 0x14]
call fcn.004036f4
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x484664
lea eax, [ebp - 0x304]
mov edx, 0xe
call fcn.00404568
lea eax, [ebp - 0x2cc]
mov edx, dword [0x407a8c]
mov ecx, 2
call fcn.00404ff0
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00404568
ret