Function at 0x53e1b0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x18
push 0
push 0
dec ecx
jne 0x53e1b8
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x53e8c1
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0052eb14
cmp byte [eax + 0x30], 0
je 0x53e208
mov eax, dword [0x603fcc]
mov eax, dword [eax]
call fcn.00534688
test al, al
jne 0x53e208
mov edx, 0x53e8d8
mov eax, dword [ebp - 0x10]
call fcn.0053d76c
mov eax, dword [0x603fcc]
mov eax, dword [eax]
call fcn.005348c8
mov eax, dword [0x603fcc]
mov eax, dword [eax]
call fcn.00534c40
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [eax + 0xd8], edx
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [eax + 0xdc], edx
mov dl, 1
mov eax, dword [0x41fc3c]
call fcn.00403fb4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
call fcn.005109a0
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x53e3e3
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x1d], 2
xor eax, eax
push ebp
push 0x53e2a5
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x30]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 0x1d]
mov eax, dword [0x603fcc]
mov eax, dword [eax]
call fcn.00533ec8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53e2b7
mov eax, dword [ebp - 0x10]
inc dword [eax + 0xdc]
lea ecx, [ebp - 0x34]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x10]
add eax, 0x58
call fcn.00404fb0
mov eax, dword [ebp - 0x10]
call fcn.0053dca8
cmp byte [ebp - 0x1d], 2
je 0x53e3d7
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.0051092c
lea eax, [ebp - 0x38]
push eax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0
lea ecx, [ebp - 0x58]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 0x54]
call fcn.00510504
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
mov eax, dword [ebp - 4]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 0xb
lea edx, [ebp - 0x50]
mov ecx, 2
mov eax, 0x53e908
call fcn.0040c808
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x10]
add eax, 0x58
call fcn.00404fb0
mov eax, dword [ebp - 0x10]
call fcn.0053dc7c
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp - 4]
call fcn.0053ea34
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x78]
call fcn.0053e9fc
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x78]
movzx edx, byte [ebp - 0x1d]
call fcn.0053ea10
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + 0x78]
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0x18], eax
lea eax, [ebx + 0x14]
mov edx, dword [ebp - 8]
call fcn.00404fb0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x78]
xor edx, edx
call fcn.0053ea2c
mov eax, dword [ebp - 0x10]
push eax
push 0x53dc14
mov eax, dword [ebp - 0x10]
call fcn.0042bc24
inc dword [ebp - 0x18]
dec dword [ebp - 0x2c]
jne 0x53e25d
mov eax, dword [ebp - 0x14]
call fcn.00403fe4
mov eax, dword [ebp - 0x10]
call fcn.0053bbdc
xor eax, eax
push ebp
push 0x53e413
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
call fcn.0053c270
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53e41d
mov eax, dword [ebp - 0x10]
push eax
push 0x53ae24
call fcn.005381cc
call fcn.00535484
call fcn.005381cc
mov edx, dword [eax]
call dword [edx + 4]
mov edx, 0x53e938
mov eax, dword [ebp - 0x10]
call fcn.0053d76c
mov eax, dword [ebp - 0x10]
push eax
push 0x53ae24
call fcn.00538c34
call fcn.00535484
call fcn.00538c34
mov edx, dword [eax]
call dword [edx + 4]
mov edx, 0x53e954
mov eax, dword [ebp - 0x10]
call fcn.0053d76c
mov eax, dword [ebp - 0x10]
push eax
push 0x53ae24
call fcn.00539428
call fcn.00535484
call fcn.00539428
mov edx, dword [eax]
call dword [edx + 4]
mov edx, 0x53e974
mov eax, dword [ebp - 0x10]
call fcn.0053d76c
mov eax, dword [ebp - 0x10]
push eax
push 0x53ae24
call fcn.005385b8
call fcn.00535484
call fcn.005385b8
mov edx, dword [eax]
call dword [edx + 4]
mov edx, 0x53e990
mov eax, dword [ebp - 0x10]
call fcn.0053d76c
mov eax, dword [ebp - 0x10]
call fcn.0053dff4
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x100], 0
jne 0x53e588
lea edx, [ebp - 0x60]
mov eax, 0x25
call fcn.005130dc
push dword [ebp - 0x60]
push 0x53e9ac
lea edx, [ebp - 0x64]
mov eax, 0x1a
call fcn.005130dc
push dword [ebp - 0x64]
push 0x53e9ac
lea edx, [ebp - 0x68]
mov eax, 0x10
call fcn.005130dc
push dword [ebp - 0x68]
push 0x53e9ac
lea edx, [ebp - 0x6c]
mov eax, 0x1c
call fcn.005130dc
push dword [ebp - 0x6c]
push 0x53e9ac
lea edx, [ebp - 0x70]
mov eax, 0x20
call fcn.005130dc
push dword [ebp - 0x70]
push 0x53e9ac
lea eax, [ebp - 0x74]
call fcn.00510474
push dword [ebp - 0x74]
push 0x53e9ac
lea eax, [ebp - 0x78]
call fcn.0051038c
push dword [ebp - 0x78]
push 0x53e9ac
lea edx, [ebp - 0x7c]
mov eax, 0x23
call fcn.005130dc
push dword [ebp - 0x7c]
lea eax, [ebp - 0xc]
mov edx, 0xf
call fcn.004052f0
jmp 0x53e6f0
lea eax, [ebp - 0xc]
call fcn.00404f5c
mov dl, 1
mov eax, dword [0x53a87c]
call fcn.0053a8f4
mov dword [ebp - 0x24], eax
mov eax, 0xff
call fcn.0040c32c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
push eax
push 0xff
call sub.kernel32.dll_GetLogicalDriveStringsA
test eax, eax
jl 0x53e6e0
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], 0
xor edx, edx
push ebp
push 0x53e6ca
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
cmp byte [eax + edx], 0
je 0x53e6a9
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
movzx ebx, byte [eax + edx]
mov eax, ebx
mov edx, eax
add dl, 0xbf
sub dl, 0x1a
jb 0x53e60b
add al, 0x9f
sub al, 0x1a
jae 0x53e6c0
mov eax, ebx
call fcn.00403534
mov edx, eax
lea eax, [ebp - 0x80]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 0x24]
call fcn.0053a914
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 0x24]
call fcn.0053ab48
lea eax, [ebp - 0xa0]
mov edx, 0x53e9b0
movzx ecx, byte [eax]
inc ecx
call fcn.004037c0
je 0x53e670
lea edx, [ebp - 0xc0]
mov eax, dword [ebp - 0x24]
call fcn.0053ab48
lea eax, [ebp - 0xc0]
mov edx, 0x53e9bc
movzx ecx, byte [eax]
inc ecx
call fcn.004037c0
jne 0x53e6c0
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
movzx eax, byte [eax + edx]
call fcn.00403534
mov edx, eax
lea eax, [ebp - 0xc4]
call fcn.00405144
push dword [ebp - 0xc4]
push 0x53e9cc
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004052f0
jmp 0x53e6c0
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
cmp byte [eax + edx + 1], 0
jne 0x53e6c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53e6e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53e6d4
inc dword [ebp - 0x18]
dec dword [ebp - 0x2c]
jne 0x53e5cd
mov eax, dword [ebp - 0x28]
call fcn.0040c378
mov eax, dword [ebp - 0x24]
call fcn.00403fe4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x88]
add eax, 0x48
mov edx, dword [ebp - 0xc]
call fcn.00404fb0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x60], 0
mov dword [eax + 0x64], 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x88]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x53d760
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x5c], edx
mov dword [eax + 0x58], 0x53b230
call fcn.0051cdb8
mov edx, 0x53e9d8
mov eax, dword [ebp - 0x10]
call fcn.0053d76c
call fcn.00538c34
call fcn.00535464
cdq
mov ecx, dword [ebp - 0x10]
add eax, dword [ecx + 0x60]
adc edx, dword [ecx + 0x64]
push edx
push eax
call fcn.005385b8
call fcn.00535464
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
call fcn.005381cc
call fcn.00535464
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
call fcn.00539428
call fcn.00535464
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x60], eax
mov dword [ecx + 0x64], edx
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x68], 0
mov dword [eax + 0x6c], 0
mov eax, dword [ebp - 0x10]
push eax
push 0x53dde8
mov eax, dword [ebp - 0x10]
call fcn.0042bc24
mov edx, 0x53e9f0
mov eax, dword [ebp - 0x10]
call fcn.0053d76c
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0xd], 0
jne 0x53e7ec
mov eax, dword [ebp - 0x10]
call fcn.0053cfc0
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0xd], 0
jne 0x53e7fd
mov eax, dword [ebp - 0x10]
call fcn.0053c934
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0xd], 0
jne 0x53e80e
mov eax, dword [ebp - 0x10]
call fcn.0053cc70
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0xd], 0
jne 0x53e81f
mov eax, dword [ebp - 0x10]
call fcn.0053b7b0
xor eax, eax
push ebp
push 0x53e83f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
call fcn.0053b250
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53e849
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x88]
add eax, 0x48
mov edx, dword [ebp - 0xc]
call fcn.00404fb0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x88]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], fcn.0053d7c8
mov edx, dword [ebp - 0x10]
cmp byte [edx + 0xd], 0
jne 0x53e881
call fcn.0051cdb8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53e8c8
lea eax, [ebp - 0xc4]
call fcn.00404f5c
lea eax, [ebp - 0x7c]
mov edx, 0xb
call fcn.00404f80
lea eax, [ebp - 0x38]
mov edx, 3
call fcn.00404f80
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00404f80
ret