Function at 0x1002104c
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x474
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
push 0x10030ac8
push esi
call fcn.10026049
add esp, 8
test eax, eax
je 0x10021081
mov eax, 2
mov dword [0x10030a40], eax
mov dword [0x10030a44], eax
jmp 0x1002130e
cmp word [esi + 2], 0x3a
jne 0x100210bc
mov ax, word [esi]
test ax, ax
je 0x100210ab
cmp word [esi + 4], 0
jne 0x100210ab
mov eax, 2
mov dword [0x10030a40], eax
mov dword [0x10030a44], eax
jmp 0x1002130e
push eax
call fcn.10025917
movzx eax, ax
add esp, 4
sub eax, 0x60
jmp 0x100210c1
call fcn.1001f8a1
mov dword [ebp - 4], eax
lea eax, [ebp - 0x474]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov ebx, eax
jne 0x10021188
push 0x10030ad0
push esi
call fcn.10026049
add esp, 8
test eax, eax
je 0x10021174
push 0x104
lea eax, [ebp - 0x224]
push esi
push eax
call fcn.10021b39
add esp, 0xc
mov edi, eax
test edi, edi
je 0x10021174
push edi
call fcn.1001f4a6
add esp, 4
cmp eax, 3
jne 0x10021174
push edi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jbe 0x10021174
mov dword [ebp - 0x474], 0x10
mov edi, dword [ebp + 0xc]
push 0
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 0
mov word [ebp - 0x448], 0
push 0
push 0
push 1
push 1
push 0x50
call fcn.10025f89
add esp, 0x18
mov dword [edi + 0x1c], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x20], eax
jmp 0x100212bb
mov eax, 2
mov dword [0x10030a40], eax
mov dword [0x10030a44], eax
jmp 0x1002130e
lea eax, [ebp - 0xc]
lea ecx, [ebp - 0x460]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x100212f8
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0xc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x100212f8
movzx eax, word [ebp - 0x10]
movzx ecx, word [ebp - 0x12]
mov edi, dword [ebp + 0xc]
push eax
movzx edx, word [ebp - 0x14]
push ecx
push edx
movzx eax, word [ebp - 0x16]
movzx ecx, word [ebp - 0x1a]
movzx edx, word [ebp - 0x1c]
push eax
push ecx
push edx
call fcn.10025f89
add esp, 0x18
mov dword [edi + 0x1c], eax
cmp dword [ebp - 0x468], 0
jne 0x100211f5
cmp dword [ebp - 0x464], 0
je 0x1002124a
lea eax, [ebp - 0xc]
lea ecx, [ebp - 0x468]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x100212f8
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0xc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x100212f8
movzx eax, word [ebp - 0x10]
movzx ecx, word [ebp - 0x12]
push eax
push ecx
movzx edx, word [ebp - 0x14]
movzx eax, word [ebp - 0x16]
push edx
push eax
movzx ecx, word [ebp - 0x1a]
movzx edx, word [ebp - 0x1c]
push ecx
push edx
call fcn.10025f89
add esp, 0x18
cmp dword [ebp - 0x470], 0
mov dword [edi + 0x18], eax
jne 0x10021264
cmp dword [ebp - 0x46c], 0
jne 0x10021264
mov eax, dword [edi + 0x1c]
jmp 0x100212b1
lea eax, [ebp - 0xc]
lea ecx, [ebp - 0x470]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x100212f8
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0xc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x100212f8
movzx eax, word [ebp - 0x10]
movzx ecx, word [ebp - 0x12]
push eax
push ecx
movzx edx, word [ebp - 0x14]
movzx eax, word [ebp - 0x16]
push edx
push eax
movzx ecx, word [ebp - 0x1a]
movzx edx, word [ebp - 0x1c]
push ecx
push edx
call fcn.10025f89
add esp, 0x18
push ebx
mov dword [edi + 0x20], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
push dword [ebp - 0x474]
call fcn.10020f74
mov word [edi + 8], 1
mov word [edi + 6], ax
add esp, 8
mov eax, dword [ebp - 0x454]
mov dword [edi + 0x14], eax
xor eax, eax
mov word [edi + 4], ax
mov word [edi + 0xc], ax
mov word [edi + 0xa], ax
mov eax, dword [ebp - 4]
dec eax
mov dword [edi], eax
mov dword [edi + 0x10], eax
xor eax, eax
jmp 0x10021313
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.10023070
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret