Function at 0x401850
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
mov eax, dword [0x470ff0]
xor eax, ebp
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x18]
call fcn.00402350
call fcn.00401b70
mov word [ebp - 0x1c], ax
movzx eax, word [ebp - 0x1c]
test eax, eax
jne 0x4018ab
push str.GetDiskList:_failed_to_get_system_drive_letter._n
call fcn.00407910
push eax
call fcn.004078c0
add esp, 8
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00402380
lea ecx, [ebp - 0x18]
call fcn.00402460
mov eax, dword [ebp + 8]
jmp 0x401b59
movzx edx, word [ebp - 0x1c]
push edx
call fcn.00401f90
add esp, 4
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jge 0x4018d4
push str.GetDiskList:_failed_to_get_system_disk_number._n
call fcn.00407910
push eax
call fcn.004078c0
add esp, 8
mov eax, 0x43
mov word [ebp - 0x24], ax
jmp 0x4018eb
mov cx, word [ebp - 0x24]
add cx, 1
mov word [ebp - 0x24], cx
movzx edx, word [ebp - 0x24]
cmp edx, 0x5a
jg 0x401b42
movzx eax, word [ebp - 0x24]
push eax
call fcn.00401790
add esp, 4
movzx ecx, al
test ecx, ecx
jne 0x40190e
jmp 0x4018df
mov edx, dword [0x4606b0]
mov dword [ebp - 0x238], edx
mov eax, dword [0x4606b4]
mov dword [ebp - 0x234], eax
push 0x200
push 0
lea ecx, [ebp - 0x230]
push ecx
call fcn.004322b0
add esp, 0xc
mov dx, word [ebp - 0x24]
mov word [ebp - 0x238], dx
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
jne 0x40195a
jmp 0x4018df
movzx ecx, word [ebp - 0x24]
push ecx
push str.GetDiskList:_processing_drive__c._n
call fcn.00407910
push eax
call fcn.004078c0
add esp, 0xc
movzx edx, word [ebp - 0x24]
push edx
call fcn.00401f90
add esp, 4
mov dword [ebp - 0x23c], eax
cmp dword [ebp - 0x23c], 0
jl 0x401999
mov eax, dword [ebp - 0x23c]
cmp eax, dword [ebp - 0x20]
jne 0x4019d9
cmp dword [ebp - 0x23c], 0
jge 0x4019bc
movzx ecx, word [ebp - 0x24]
push ecx
push str.____:_cannot_get_disknum_for_drive__c._n
call fcn.00407910
push eax
call fcn.004078c0
add esp, 0xc
jmp 0x4019d4
movzx edx, word [ebp - 0x24]
push edx
push str.____:_same_disknum_with_system_drive_for_drive__c._n
call fcn.00407910
push eax
call fcn.004078c0
add esp, 0xc
jmp 0x4018df
lea ecx, [ebp - 0x2c]
call fcn.00402560
lea eax, [ebp - 0x270]
push eax
lea ecx, [ebp - 0x18]
call fcn.00402480
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], edx
jmp 0x401a05
lea ecx, [ebp - 0x2c]
call fcn.004025a0
lea eax, [ebp - 0x278]
push eax
lea ecx, [ebp - 0x18]
call fcn.004024b0
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402610
movzx ecx, al
test ecx, ecx
je 0x401a72
lea ecx, [ebp - 0x2c]
call fcn.00402580
mov dword [ebp - 0x240], eax
mov edx, dword [ebp - 0x240]
mov eax, dword [edx]
cmp eax, dword [ebp - 0x23c]
jne 0x401a70
mov ecx, dword [ebp - 0x23c]
push ecx
push str.____:_add_disk__d._n
call fcn.00407910
push eax
call fcn.004078c0
add esp, 0xc
lea edx, [ebp - 0x24]
push edx
mov ecx, dword [ebp - 0x240]
add ecx, 8
call fcn.00402240
jmp 0x401a72
jmp 0x4019fd
lea eax, [ebp - 0x280]
push eax
lea ecx, [ebp - 0x18]
call fcn.004024b0
push eax
lea ecx, [ebp - 0x2c]
call fcn.004025c0
movzx ecx, al
test ecx, ecx
je 0x401b3d
lea ecx, [ebp - 0x264]
call fcn.00402180
mov edx, dword [ebp - 0x23c]
mov dword [ebp - 0x264], edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x25c]
call fcn.00402240
movzx ecx, word [ebp - 0x24]
push ecx
lea edx, [ebp - 0x284]
push edx
call fcn.00401d40
add esp, 8
push eax
lea ecx, [ebp - 0x244]
call fcn.00405740
lea ecx, [ebp - 0x284]
call fcn.00406250
movzx eax, word [ebp - 0x24]
push eax
call fcn.00401bc0
add esp, 4
mov dword [ebp - 0x268], eax
cmp dword [ebp - 0x268], 0
jne 0x401b17
mov ecx, dword [ebp - 0x23c]
push ecx
call fcn.00401c30
add esp, 4
mov dword [ebp - 0x268], eax
mov edx, dword [ebp - 0x268]
mov dword [ebp - 0x260], edx
lea eax, [ebp - 0x264]
push eax
lea ecx, [ebp - 0x18]
call fcn.004024e0
lea ecx, [ebp - 0x264]
call fcn.004021c0
jmp 0x4018df
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00402380
lea ecx, [ebp - 0x18]
call fcn.00402460
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x30]
xor ecx, ebp
call fcn.00432039
mov esp, ebp
pop ebp
ret