Function at 0x4222d0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov dword [ebp - 0x58], 0xc0f2
mov dword [ebp - 0x50], 0x177cf
mov dword [ebp - 0xcc], 0x583a
mov dword [ebp - 0x14], 0xc617
mov dword [ebp - 0x2c], 0x4ead
mov dword [ebp - 0x38], 0x5c3d
mov dword [ebp - 0x18], 0x122ce
mov dword [ebp - 0x54], 0x911f
mov dword [ebp - 0x40], 0xac26
mov dword [ebp - 0x44], 0x11c36
mov dword [ebp - 0x28], 0xa01a
mov dword [ebp - 0x1c], 0x15158
mov dword [ebp - 0x10], 0x17863
mov dword [ebp - 0x48], 0x17e5f
mov dword [ebp - 0x34], 0x17468
mov dword [ebp - 4], 0xcae5
mov dword [ebp - 0x30], 0x148e2
mov dword [ebp - 0xc], 0x11edd
mov dword [ebp - 0x20], 0x10a04
mov dword [ebp - 0x3c], 0x9a47
mov dword [ebp - 0x24], 0x8e50
mov dword [ebp - 8], 0x147b9
mov eax, dword [ebp - 0x44]
sub eax, 0x8560
push eax
call fcn.00413220
add esp, 4
mov ecx, dword [0x7f82f8]
add ecx, 0x14f9e
push ecx
mov edx, dword [0x7f8324]
add edx, 0x6ae1
push edx
mov eax, dword [0x7f832c]
sub eax, 0x13657
push eax
mov ecx, dword [ebp - 0x20]
add ecx, 0x79be
push ecx
mov edx, dword [0x7f82f8]
add edx, 0xbf3d
push edx
call fcn.00407be0
add esp, 0x14
mov eax, dword [0x7f8328]
sub eax, 1
mov dword [0x7f8328], eax
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x4c], 0
jmp 0x4223f3
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x2c]
sub eax, 0x4eac
cmp dword [ebp - 0x4c], eax
jge 0x42258b
mov ecx, dword [0x7f8388]
mov dword [ebp - 0xe4], ecx
mov edx, dword [0x7f8330]
mov dword [ebp - 0xe8], edx
mov eax, dword [0x7f8388]
add eax, 1
mov dword [0x7f8388], eax
mov ecx, dword [ebp - 0xe4]
cmp ecx, dword [ebp - 0xe8]
jge 0x422440
mov dword [ebp - 0x64], 1
jmp 0x422447
mov dword [ebp - 0x64], 0
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
add eax, dword [0x7f82fc]
cmp eax, dword [ebp - 8]
jge 0x422467
mov dword [ebp - 0x68], 1
jmp 0x42246e
mov dword [ebp - 0x68], 0
mov ecx, dword [ebp - 0x64]
and ecx, dword [ebp - 0x68]
je 0x422586
mov edx, dword [0x7f82f8]
sub edx, dword [ebp - 0x30]
cmp edx, dword [0x7f8334]
jge 0x422494
mov dword [ebp - 0x6c], 1
jmp 0x42249b
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 4]
sub eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp - 4]
jge 0x4224b5
mov dword [ebp - 0x70], 1
jmp 0x4224bc
mov dword [ebp - 0x70], 0
mov edx, dword [0x7f82fc]
sub edx, dword [ebp - 0xc]
cmp edx, dword [0x7f8324]
jge 0x4224d6
mov dword [ebp - 0x74], 1
jmp 0x4224dd
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x6c]
or eax, dword [ebp - 0x70]
or eax, dword [ebp - 0x74]
je 0x422586
mov ecx, dword [0x7f838c]
mov dword [ebp - 0xec], ecx
mov edx, dword [ebp - 8]
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 8]
sub eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xec]
cmp ecx, dword [ebp - 0xf0]
jge 0x422521
mov dword [ebp - 0x78], 1
jmp 0x422528
mov dword [ebp - 0x78], 0
mov edx, dword [0x7f83b4]
sub edx, dword [0x7f82fc]
cmp edx, dword [0x7f8328]
jge 0x422545
mov dword [ebp - 0x7c], 1
jmp 0x42254c
mov dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0x78]
or eax, dword [ebp - 0x7c]
je 0x422586
mov ecx, dword [0x7f8320]
cmp ecx, dword [ebp - 0x34]
jne 0x422586
mov edx, dword [ebp - 0x3c]
cmp edx, dword [0x7f8324]
jne 0x422586
push 0x1eca
push 0x7c63
call dword [sym.imp.KERNEL32.dll_GetCalendarInfoW]
add esp, 8
mov eax, dword [ebp - 0x38]
add eax, 1
mov dword [ebp - 0x38], eax
jmp 0x4223ea
call fcn.0041a210
mov ecx, dword [ebp - 0xc]
add ecx, 0x6378
push ecx
mov edx, dword [ebp - 0x40]
sub edx, 0x14ea
push edx
mov eax, dword [0x7f8324]
sub eax, 0x4a63
push eax
mov ecx, dword [ebp - 0x10]
sub ecx, 0x2770
push ecx
mov edx, dword [ebp - 0x24]
sub edx, 0x856b
push edx
mov eax, dword [0x7f832c]
sub eax, 0x7e1d
push eax
mov ecx, dword [ebp - 0x40]
add ecx, 0x58a1
push ecx
mov edx, dword [ebp - 0x18]
sub edx, 0x7ff1
push edx
mov eax, dword [ebp - 0x24]
add eax, 0xcf1e
push eax
call fcn.00409530
add esp, 0x24
mov ecx, dword [0x7f8328]
cmp ecx, dword [ebp - 4]
jge 0x422607
mov dword [ebp - 0x80], 1
jmp 0x42260e
mov dword [ebp - 0x80], 0
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x44]
jge 0x422622
mov dword [ebp - 0x84], 1
jmp 0x42262c
mov dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x80]
or eax, dword [ebp - 0x84]
je 0x422646
mov ecx, dword [0x7f832c]
add ecx, 1
mov dword [0x7f832c], ecx
mov edx, dword [ebp + 0x18]
and edx, 0x5ee1
xor edx, 0x48e1
mov eax, dword [ebp + 0x18]
and eax, 0x6d33
or eax, 0xd788
xor eax, 0xffa8
mov byte [eax + str.reffUp], dl
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0xf4], ecx
mov edx, dword [0x7f8320]
mov dword [ebp - 0xf8], edx
mov eax, dword [0x7f8320]
add eax, 1
mov dword [0x7f8320], eax
mov ecx, dword [ebp - 0xf4]
cmp ecx, dword [ebp - 0xf8]
jge 0x4226a9
mov dword [ebp - 0x88], 1
jmp 0x4226b3
mov dword [ebp - 0x88], 0
mov edx, dword [0x7f838c]
sub edx, 1
mov dword [0x7f838c], edx
mov eax, dword [0x7f8334]
imul eax, dword [0x7f838c]
cmp eax, dword [ebp - 0x18]
jge 0x4226df
mov dword [ebp - 0x8c], 1
jmp 0x4226e9
mov dword [ebp - 0x8c], 0
mov ecx, dword [ebp - 8]
and ecx, dword [0x7f832c]
and ecx, dword [ebp - 0x88]
or ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xfc], ecx
mov edx, dword [0x7f832c]
add edx, 1
mov dword [0x7f832c], edx
cmp dword [ebp - 0xfc], 0
je 0x42286a
mov eax, dword [0x7f8328]
cmp eax, dword [0x7f8330]
jne 0x42286a
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0xcc]
jne 0x42286a
mov edx, dword [ebp - 0x54]
cmp edx, dword [ebp - 0x10]
jne 0x42286a
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x24]
jge 0x422760
mov dword [ebp - 0x90], 1
jmp 0x42276a
mov dword [ebp - 0x90], 0
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [ebp - 4]
jge 0x42277e
mov dword [ebp - 0x94], 1
jmp 0x422788
mov dword [ebp - 0x94], 0
mov edx, dword [ebp - 0x90]
or edx, dword [ebp - 0x94]
je 0x42286a
mov eax, dword [ebp - 0xc]
sub eax, dword [0x7f838c]
cmp eax, dword [ebp - 0x24]
jge 0x4227b4
mov dword [ebp - 0x98], 1
jmp 0x4227be
mov dword [ebp - 0x98], 0
mov ecx, dword [0x7f832c]
add ecx, dword [0x7f83b4]
cmp ecx, dword [ebp - 0x28]
jge 0x4227db
mov dword [ebp - 0x9c], 1
jmp 0x4227e5
mov dword [ebp - 0x9c], 0
mov edx, dword [0x7f8388]
add edx, 1
mov dword [0x7f8388], edx
mov eax, dword [0x7f8328]
cmp eax, dword [0x7f8388]
jge 0x42280d
mov dword [ebp - 0xa0], 1
jmp 0x422817
mov dword [ebp - 0xa0], 0
mov ecx, dword [ebp - 0x98]
and ecx, dword [ebp - 0x9c]
and ecx, dword [ebp - 0xa0]
je 0x422834
mov edx, dword [ebp - 0x34]
add edx, 1
mov dword [ebp - 0x34], edx
push 0x5374
push 0x1073d
push 0x1117f
push 0x6bcd
push 0x1742d
push 0x12c36
push 0x12247
push 0x8da9
push 0x2af1
call dword [sym.imp.KERNEL32.dll_ConvertThreadToFiber]
add esp, 0x24
mov eax, dword [ebp - 8]
or eax, dword [ebp - 0x38]
mov dword [ebp - 0x100], eax
mov ecx, dword [0x7f8330]
mov dword [ebp - 0x104], ecx
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x100]
cmp eax, dword [ebp - 0x104]
jge 0x42293a
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp - 0xc]
jge 0x4228b1
mov dword [ebp - 0xa4], 1
jmp 0x4228bb
mov dword [ebp - 0xa4], 0
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x108]
cmp edx, dword [ebp - 0x10c]
jge 0x4228f0
mov dword [ebp - 0xa8], 1
jmp 0x4228fa
mov dword [ebp - 0xa8], 0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 4]
jge 0x42290e
mov dword [ebp - 0xac], 1
jmp 0x422918
mov dword [ebp - 0xac], 0
mov ecx, dword [ebp - 0xa4]
or ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0x2c]
xor edx, dword [ebp - 0xac]
or ecx, edx
je 0x42293a
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 4]
add ecx, 0xb81a
push ecx
mov edx, dword [0x7f832c]
sub edx, 0x152af
push edx
mov eax, dword [ebp - 8]
sub eax, 0x10dfd
push eax
mov ecx, dword [0x7f82f8]
add ecx, 0x148a0
push ecx
call fcn.00405ff0
add esp, 0x10
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp + 0x20]
add eax, 0x2ff6
xor eax, 0x476d
mov ecx, dword [ebp + 0x1c]
add ecx, 0xf827
xor ecx, 0xf92c
mov byte [ecx + str.reffUp], al
call fcn.004153e0
mov edx, dword [ebp + 8]
or edx, 0x24c3
xor edx, 0x6672
mov eax, dword [ebp + 0x14]
or eax, 0xcd41
or eax, 0xa146
xor eax, 0xff6a
mov byte [eax + str.reffUp], dl
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [ebp - 0x38]
jge 0x422a7a
mov edx, dword [0x7f8388]
sub edx, 1
mov dword [0x7f8388], edx
mov eax, dword [ebp - 0x48]
cmp eax, dword [0x7f8388]
jge 0x4229f8
mov dword [ebp - 0xb0], 1
jmp 0x422a02
mov dword [ebp - 0xb0], 0
mov ecx, dword [ebp - 0x28]
sub ecx, dword [ebp - 4]
and ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x18]
imul edx, dword [0x7f8334]
and ecx, edx
je 0x422a7a
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x2c]
jne 0x422a7a
mov ecx, dword [0x7f82fc]
cmp ecx, dword [ebp - 0xc]
jne 0x422a7a
mov edx, dword [0x7f8320]
cmp edx, dword [ebp - 0x58]
jne 0x422a7a
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x1c]
jne 0x422a7a
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x34]
jne 0x422a7a
push 0x14c45
push 0x5efe
push 0x70f2
push 0xa12c
push 0x124e
push 0xe41d
call dword [sym.imp.KERNEL32.dll_GetProcessHandleCount]
add esp, 0x18
mov edx, dword [ebp - 0x1c]
add edx, 1
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp + 0x24]
xor eax, 0xfa9d
and eax, 0x4e92
xor eax, 0x8bad
xor eax, 0xcb7f
mov ecx, dword [ebp + 8]
add ecx, 0x1096a
xor ecx, 0x1705b
mov byte [ecx + str.reffUp], al
mov edx, dword [ebp - 0x14]
sub edx, dword [0x7f83b8]
cmp edx, dword [ebp - 0x20]
jge 0x422ba2
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x28]
jge 0x422acc
mov dword [ebp - 0xb4], 1
jmp 0x422ad6
mov dword [ebp - 0xb4], 0
mov ecx, dword [0x7f8320]
and ecx, dword [0x7f83b8]
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x114], edx
mov eax, dword [0x7f83b8]
sub eax, 1
mov dword [0x7f83b8], eax
mov ecx, dword [ebp - 0x110]
cmp ecx, dword [ebp - 0x114]
jge 0x422b18
mov dword [ebp - 0xb8], 1
jmp 0x422b22
mov dword [ebp - 0xb8], 0
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 8]
jge 0x422b36
mov dword [ebp - 0xbc], 1
jmp 0x422b40
mov dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0xb4]
and eax, dword [ebp - 0xb8]
and eax, dword [ebp - 0xbc]
je 0x422ba2
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [0x7f82fc]
jne 0x422ba2
mov edx, dword [0x7f83b4]
cmp edx, dword [ebp - 0x54]
jne 0x422ba2
mov eax, dword [0x7f838c]
cmp eax, dword [ebp - 0x1c]
jne 0x422ba2
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x20]
jne 0x422ba2
push 0x11234
push 0x101fc
push 0xf2f0
push 0x8fa0
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
add esp, 0x10
mov edx, dword [ebp - 4]
sub edx, 1
mov dword [ebp - 4], edx
mov eax, 0x249
sub eax, dword [ebp + 0x18]
xor eax, 0xffff196d
mov ecx, dword [ebp + 0x18]
or ecx, 0xf904
xor ecx, 0x53c9
xor ecx, 0xaa24
mov byte [ecx + str.reffUp], al
mov edx, dword [0x7f82fc]
imul edx, dword [ebp - 0x44]
cmp edx, dword [ebp - 4]
jge 0x422be5
mov dword [ebp - 0xc0], 1
jmp 0x422bef
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [0x7f838c]
cmp ecx, dword [ebp - 4]
jge 0x422c0f
mov dword [ebp - 0xc4], 1
jmp 0x422c19
mov dword [ebp - 0xc4], 0
mov edx, dword [0x7f83b4]
cmp edx, dword [ebp - 0x18]
jge 0x422c30
mov dword [ebp - 0xc8], 1
jmp 0x422c3a
mov dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xc0]
and eax, dword [ebp - 0xc4]
or eax, dword [ebp - 0xc8]
je 0x422d64
mov ecx, dword [ebp - 0x30]
cmp ecx, dword [ebp - 0xcc]
jne 0x422d64
mov edx, dword [ebp - 0x58]
cmp edx, dword [0x7f832c]
jne 0x422d64
mov eax, dword [0x7f8330]
cmp eax, dword [0x7f8328]
jne 0x422d64
mov ecx, dword [ebp - 0x40]
cmp ecx, dword [ebp - 0x3c]
jne 0x422d64
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 0x50]
jne 0x422d64
push 0x104a4
call dword [sym.imp.KERNEL32.dll_SetFileIoOverlappedRange]
add esp, 4
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x1c]
jge 0x422cc4
mov dword [ebp - 0xd0], 1
jmp 0x422cce
mov dword [ebp - 0xd0], 0
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x38]
jge 0x422ce2
mov dword [ebp - 0xd4], 1
jmp 0x422cec
mov dword [ebp - 0xd4], 0
mov eax, dword [ebp - 0xd0]
or eax, dword [ebp - 0xd4]
je 0x422d64
mov ecx, dword [ebp - 0x54]
cmp ecx, dword [ebp - 0x3c]
jge 0x422d0e
mov dword [ebp - 0xd8], 1
jmp 0x422d18
mov dword [ebp - 0xd8], 0
mov edx, dword [0x7f8328]
sub edx, 1
mov dword [0x7f8328], edx
mov eax, dword [0x7f8328]
cmp eax, dword [ebp - 0x58]
jge 0x422d3d
mov dword [ebp - 0xdc], 1
jmp 0x422d47
mov dword [ebp - 0xdc], 0
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x20]
or ecx, dword [ebp - 0xd8]
or ecx, dword [ebp - 0xdc]
je 0x422d64
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 0x1c]
or eax, 0x480d
xor eax, 0x4960
mov ecx, dword [ebp + 0x14]
add ecx, 0x8d6a
xor ecx, 0x167d6
mov byte [ecx + str.reffUp], al
mov edx, dword [0x7f83b4]
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x11c], eax
mov ecx, dword [0x7f83b4]
add ecx, 1
mov dword [0x7f83b4], ecx
mov edx, dword [ebp - 0x118]
cmp edx, dword [ebp - 0x11c]
jge 0x422dc1
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov eax, str.reffUp
jmp 0x422e67
mov esp, ebp
pop ebp
ret