Function at 0x1010c520
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101c6113
mov eax, dword fs:[0]
push eax
mov eax, 0x14dc
call fcn.101beed0
mov eax, dword [0x1023c014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14dc], ecx
mov ebx, dword [ebp + 8]
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
mov dword [ebp - 0x14e8], eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [ebp - 0x14e4], eax
mov byte [ebp - 0x14e0], 1
push 0x410
lea eax, [ebp - 0x1040]
mov dword [ebp - 4], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x208
lea eax, [ebp - 0x220]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x208
lea eax, [ebp - 0xc30]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x208
lea eax, [ebp - 0xa28]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
xor eax, eax
push 0x200
push eax
mov dword [ebp - 0x18], eax
mov word [ebp - 0x14], ax
lea eax, [ebp - 0x420]
push eax
call sub.VCRUNTIME140.dll_memset
push 0x200
lea eax, [ebp - 0x620]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x48
lea eax, [ebp - 0x820]
push 0x200
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsUNCW]
test eax, eax
je 0x1010c6ce
push 0x100
lea eax, [ebp - 0x820]
push eax
push 0x100
lea eax, [ebp - 0x620]
push eax
push 0x100
lea eax, [ebp - 0x420]
push eax
push 3
lea eax, [ebp - 0x18]
push eax
push ebx
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wsplitpath_s]
mov esi, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wmakepath_s]
lea eax, [ebp - 0x820]
push eax
lea eax, [ebp - 0x620]
push eax
push 0
push 0
lea eax, [ebp - 0xc30]
push 0x104
push eax
call esi
add esp, 0x3c
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsUNCServerW]
test eax, eax
je 0x1010c6ab
push ebx
lea eax, [ebp - 0xa28]
push 0x104
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
jmp 0x1010c7ce
push 0
push 0
lea eax, [ebp - 0x420]
push eax
push 0
lea eax, [ebp - 0xa28]
push 0x104
push eax
call esi
add esp, 0x18
jmp 0x1010c7ce
push ebx
call dword [sym.imp.HncVfs.dll_int___cdecl_HncVfs::PathIsURLW_unsigned_short_int_const__]
add esp, 4
test eax, eax
lea eax, [ebp - 0x820]
push 0x100
push eax
push 0x100
lea eax, [ebp - 0x620]
push eax
push 0x100
lea eax, [ebp - 0x420]
push eax
push 3
lea eax, [ebp - 0x18]
push eax
push ebx
je 0x1010c782
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wsplitpath_s]
mov esi, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wmakepath_s]
lea eax, [ebp - 0x820]
push eax
lea eax, [ebp - 0x620]
push eax
push 0
push 0
lea eax, [ebp - 0xc30]
push 0x104
push eax
call esi
push 0
push 0
lea eax, [ebp - 0x420]
push eax
push 0
lea eax, [ebp - 0xa28]
push 0x104
push eax
call esi
add esp, 0x54
mov esi, 1
push dword [ebp - 0x14e4]
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1008548c
mov esp, ebp
pop ebp
ret 4
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wsplitpath_s]
mov esi, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wmakepath_s]
lea eax, [ebp - 0x820]
push eax
lea eax, [ebp - 0x620]
push eax
push 0
push 0
lea eax, [ebp - 0xc30]
push 0x104
push eax
call esi
push 0
push 0
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0xa28]
push 0x104
push eax
call esi
add esp, 0x54
mov eax, dword [0x1023c868]
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x14d4], eax
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1010c7e0
sub ecx, edx
sar ecx, 1
je 0x1010c827
test ecx, ecx
je 0x1010c92f
cmp ecx, 2
jl 0x1010c92f
push dword [ebp - 0x18]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_towupper]
sub ax, 0x41
add esp, 4
cmp ax, 0x1a
ja 0x1010c92f
cmp word [ebp - 0x16], 0x3a
jne 0x1010c92f
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1010c830
sub ecx, edx
sar ecx, 1
je 0x1010c8fe
test ecx, ecx
je 0x1010c92f
lea ecx, [ebp - 0x14d8]
call dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::constructor_void_]
lea eax, [ebp - 0x420]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x14d8]
call dword [sym.imp.HncFoundation.dll_public:_int___thiscall_CHncStringW::Assign_unsigned_short_int_const__]
mov edi, dword [sym.imp.HncFoundation.dll_public:_int___thiscall_CHncStringW::Find_unsigned_short_int_const__const]
xor esi, esi
mov dword [ebp - 0x1470], 0x101d4594
mov eax, 0x101d4594
mov dword [ebp - 0x146c], 0x101d3bd0
mov dword [ebp - 0x1468], 0x101d5a18
mov dword [ebp - 0x1464], 0x101d5a1c
mov dword [ebp - 0x1460], 0x101d5a20
mov dword [ebp - 0x145c], 0x101d5a24
mov dword [ebp - 0x1458], 0x101d5a28
mov dword [ebp - 0x1454], 0
nop dword [eax]
push eax
lea ecx, [ebp - 0x14d8]
call edi
cmp eax, 0xffffffff
jne 0x1010ca05
mov eax, dword [ebp + esi*4 - 0x146c]
inc esi
test eax, eax
jne 0x1010c8d0
mov byte [ebp - 4], al
lea ecx, [ebp - 0x14d8]
mov eax, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::destructor_void_]
call eax
lea ecx, [ebp - 0xc30]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1010c907
sub ecx, edx
sar ecx, 1
je 0x1010ca1b
lea ecx, [ebp - 0xc30]
call fcn.1011a640
test eax, eax
jne 0x1010ca1b
push 0x104
lea eax, [ebp - 0x220]
push eax
push 0x3bbc
push dword [ebp - 0x14d4]
call dword [sym.imp.HncFoundation.dll_int___stdcall_HncLoadStringWToWSTRUsingRC_Deprecate_struct_HINSTANCE_____unsigned_int__unsigned_short_int___int_]
push ebx
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x1040]
push eax
call fcn.1002c9d0
mov ecx, dword [ebp - 0x14dc]
add esp, 0xc
mov edi, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::constructor_unsigned_short_int_const__]
mov ecx, dword [ecx + 4]
push 0x101cfd00
mov eax, dword [ecx + 0x2c]
mov ebx, dword [ecx + 4]
lea ecx, [ebp - 0x14d4]
mov eax, dword [eax + 0x24]
mov esi, dword [eax + 0x2c]
call edi
test esi, esi
mov byte [ebp - 4], 2
mov eax, 0x101cfd00
lea ecx, [ebp - 0x14dc]
cmovne eax, esi
push eax
call edi
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x14d8]
call edi
mov byte [ebp - 4], 4
call dword [sym.imp.HncFoundation.dll_class_Hnc::Framework____cdecl_Hnc::GetFramework_void_]
lea ecx, [ebp - 0x14d4]
push ecx
push 0
mov edx, dword [eax]
lea ecx, [ebp - 0x14dc]
push ebx
push 0x30
push ecx
lea ecx, [ebp - 0x14d8]
push ecx
mov ecx, eax
call dword [edx + 0x4c]
mov ebx, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::destructor_void_]
lea ecx, [ebp - 0x14d8]
call ebx
lea ecx, [ebp - 0x14dc]
call ebx
lea ecx, [ebp - 0x14d4]
call ebx
xor esi, esi
jmp 0x1010c756
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14d8]
mov eax, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::destructor_void_]
call eax
jmp 0x1010c92f
lea ecx, [ebp - 0x620]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1010ca24
sub ecx, edx
sar ecx, 1
je 0x1010cb61
test ecx, ecx
je 0x1010cb61
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
xor esi, esi
mov dword [ebp - 0x14d0], 0x101d5a2c
mov eax, 0x101d5a2c
mov dword [ebp - 0x14cc], 0x101d5a34
mov dword [ebp - 0x14c8], 0x101d5a3c
mov dword [ebp - 0x14c4], 0x101d5a44
mov dword [ebp - 0x14c0], 0x101d5a54
mov dword [ebp - 0x14bc], str.COM1
mov dword [ebp - 0x14b8], str.COM2
mov dword [ebp - 0x14b4], str.COM3
mov dword [ebp - 0x14b0], str.COM4
mov dword [ebp - 0x14ac], str.COM5
mov dword [ebp - 0x14a8], str.COM6
mov dword [ebp - 0x14a4], str.COM7
mov dword [ebp - 0x14a0], str.COM8
mov dword [ebp - 0x149c], str.COM9
mov dword [ebp - 0x1498], str.LPT1
mov dword [ebp - 0x1494], str.LPT2
mov dword [ebp - 0x1490], str.LPT3
mov dword [ebp - 0x148c], str.LPT4
mov dword [ebp - 0x1488], str.LPT5
mov dword [ebp - 0x1484], str.LPT6
mov dword [ebp - 0x1480], str.LPT7
mov dword [ebp - 0x147c], str.LPT8
mov dword [ebp - 0x1478], str.LPT9
mov dword [ebp - 0x1474], 0
nop
push eax
lea eax, [ebp - 0x620]
push eax
call edi
add esp, 8
test eax, eax
je 0x1010cc80
mov eax, dword [ebp + esi*4 - 0x14cc]
inc esi
test eax, eax
jne 0x1010cb40
lea ecx, [ebp - 0x18]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1010cb67
sub ecx, edx
sar ecx, 1
je 0x1010cd56
test ecx, ecx
je 0x1010cbaa
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push dword [ebp - 0x18]
mov esi, eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_towupper]
sub ax, 0x41
mov edx, 1
movzx ecx, ax
add esp, 4
shl edx, cl
test esi, edx
jne 0x1010cd56
push 0x104
lea eax, [ebp - 0x220]
push eax
push 0x3bbd
push dword [ebp - 0x14d4]
call dword [sym.imp.HncFoundation.dll_int___stdcall_HncLoadStringWToWSTRUsingRC_Deprecate_struct_HINSTANCE_____unsigned_int__unsigned_short_int___int_]
push ebx
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x1040]
push eax
call fcn.1002c9d0
mov ecx, dword [ebp - 0x14dc]
add esp, 0xc
mov edi, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::constructor_unsigned_short_int_const__]
mov ecx, dword [ecx + 4]
push 0x101cfd00
mov eax, dword [ecx + 0x2c]
mov ebx, dword [ecx + 4]
lea ecx, [ebp - 0x14d4]
mov eax, dword [eax + 0x24]
mov esi, dword [eax + 0x2c]
call edi
test esi, esi
mov byte [ebp - 4], 0x10
mov eax, 0x101cfd00
lea ecx, [ebp - 0x14dc]
cmovne eax, esi
push eax
call edi
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x14d8]
call edi
mov byte [ebp - 4], 0x12
call dword [sym.imp.HncFoundation.dll_class_Hnc::Framework____cdecl_Hnc::GetFramework_void_]
lea ecx, [ebp - 0x14d4]
push ecx
push 0
mov edx, dword [eax]
lea ecx, [ebp - 0x14dc]
push ebx
push 0x30
push ecx
lea ecx, [ebp - 0x14d8]
push ecx
mov ecx, eax
call dword [edx + 0x4c]
mov ebx, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::destructor_void_]
lea ecx, [ebp - 0x14d8]
call ebx
lea ecx, [ebp - 0x14dc]
call ebx
lea ecx, [ebp - 0x14d4]
call ebx
xor esi, esi
jmp 0x1010c756
push 0x104
lea eax, [ebp - 0x220]
push eax
push 0x3bbf
push dword [ebp - 0x14d4]
call dword [sym.imp.HncFoundation.dll_int___stdcall_HncLoadStringWToWSTRUsingRC_Deprecate_struct_HINSTANCE_____unsigned_int__unsigned_short_int___int_]
push ebx
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x1040]
push eax
call fcn.1002c9d0
mov ecx, dword [ebp - 0x14dc]
add esp, 0xc
mov edi, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::constructor_unsigned_short_int_const__]
mov ecx, dword [ecx + 4]
push 0x101cfd00
mov eax, dword [ecx + 0x2c]
mov ebx, dword [ecx + 4]
lea ecx, [ebp - 0x14d4]
mov eax, dword [eax + 0x24]
mov esi, dword [eax + 0x2c]
call edi
test esi, esi
mov byte [ebp - 4], 9
mov eax, 0x101cfd00
lea ecx, [ebp - 0x14dc]
cmovne eax, esi
push eax
call edi
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x14d8]
call edi
mov byte [ebp - 4], 0xb
call dword [sym.imp.HncFoundation.dll_class_Hnc::Framework____cdecl_Hnc::GetFramework_void_]
lea ecx, [ebp - 0x14d4]
push ecx
push 0
mov edx, dword [eax]
lea ecx, [ebp - 0x14dc]
push ebx
push 0x30
push ecx
lea ecx, [ebp - 0x14d8]
push ecx
mov ecx, eax
call dword [edx + 0x4c]
mov ebx, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::destructor_void_]
lea ecx, [ebp - 0x14d8]
call ebx
lea ecx, [ebp - 0x14dc]
call ebx
lea ecx, [ebp - 0x14d4]
call ebx
xor esi, esi
jmp 0x1010c756
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsUNCW]
test eax, eax
jne 0x1010cede
lea ecx, [ebp - 0x18]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1010cd70
sub ecx, edx
sar ecx, 1
je 0x1010cede
test ecx, ecx
je 0x1010ce08
lea eax, [ebp - 0x1458]
mov dword [ebp - 0x1460], 0
mov dword [ebp - 0x145c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x18]
movq qword [ebp - 0x1458], xmm0
push eax
lea eax, [ebp - 0x1248]
push 0x104
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea eax, [ebp - 0x1248]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push 0
push 0
push 0
push 0
push 0
push 0x104
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1248]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea ecx, [ebp - 0x1460]
mov esi, eax
call fcn.10002630
test esi, esi
jne 0x1010cede
push 0x104
lea eax, [ebp - 0x220]
push eax
push 0x3bc0
push dword [ebp - 0x14d4]
call dword [sym.imp.HncFoundation.dll_int___stdcall_HncLoadStringWToWSTRUsingRC_Deprecate_struct_HINSTANCE_____unsigned_int__unsigned_short_int___int_]
push ebx
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x1040]
push eax
call fcn.1002c9d0
mov ecx, dword [ebp - 0x14dc]
add esp, 0xc
mov edi, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::constructor_unsigned_short_int_const__]
mov ecx, dword [ecx + 4]
push 0x101cfd00
mov eax, dword [ecx + 0x2c]
mov ebx, dword [ecx + 4]
lea ecx, [ebp - 0x14d4]
mov eax, dword [eax + 0x24]
mov esi, dword [eax + 0x2c]
call edi
test esi, esi
mov byte [ebp - 4], 0x17
mov eax, 0x101cfd00
lea ecx, [ebp - 0x14dc]
cmovne eax, esi
push eax
call edi
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0x18
push eax
lea ecx, [ebp - 0x14d8]
call edi
mov byte [ebp - 4], 0x19
call dword [sym.imp.HncFoundation.dll_class_Hnc::Framework____cdecl_Hnc::GetFramework_void_]
lea ecx, [ebp - 0x14d4]
push ecx
push 0
mov edx, dword [eax]
lea ecx, [ebp - 0x14dc]
push ebx
push 0x30
push ecx
lea ecx, [ebp - 0x14d8]
push ecx
mov ecx, eax
call dword [edx + 0x4c]
mov ebx, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::destructor_void_]
lea ecx, [ebp - 0x14d8]
call ebx
lea ecx, [ebp - 0x14dc]
call ebx
lea ecx, [ebp - 0x14d4]
call ebx
xor esi, esi
jmp 0x1010c756
lea ecx, [ebp - 0xa28]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1010cee7
sub ecx, edx
sar ecx, 1
je 0x1010c751
lea eax, [ebp - 0xa28]
push eax
call sym.HncOfficeFramework.dll_int___cdecl_PathIsExists_unsigned_short_int__
add esp, 4
test eax, eax
jne 0x1010c751
push 0x104
lea eax, [ebp - 0x220]
push eax
push 0x5086
push dword [ebp - 0x14d4]
call dword [sym.imp.HncFoundation.dll_int___stdcall_HncLoadStringWToWSTRUsingRC_Deprecate_struct_HINSTANCE_____unsigned_int__unsigned_short_int___int_]
push ebx
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x1040]
push eax
call fcn.1002c9d0
mov ecx, dword [ebp - 0x14dc]
add esp, 0xc
mov edi, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::constructor_unsigned_short_int_const__]
mov ecx, dword [ecx + 4]
push 0x101cfd00
mov eax, dword [ecx + 0x2c]
mov ebx, dword [ecx + 4]
lea ecx, [ebp - 0x14d4]
mov eax, dword [eax + 0x24]
mov esi, dword [eax + 0x2c]
call edi
test esi, esi
mov byte [ebp - 4], 0x1e
mov eax, 0x101cfd00
lea ecx, [ebp - 0x14dc]
cmovne eax, esi
push eax
call edi
lea eax, [ebp - 0x1040]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0x14d8]
call edi
mov byte [ebp - 4], 0x20
call dword [sym.imp.HncFoundation.dll_class_Hnc::Framework____cdecl_Hnc::GetFramework_void_]
lea ecx, [ebp - 0x14d4]
push ecx
push 0
mov edx, dword [eax]
lea ecx, [ebp - 0x14dc]
push ebx
push 0x30
push ecx
lea ecx, [ebp - 0x14d8]
push ecx
mov ecx, eax
call dword [edx + 0x4c]
mov ebx, dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::destructor_void_]
lea ecx, [ebp - 0x14d8]
call ebx
lea ecx, [ebp - 0x14dc]
call ebx
lea ecx, [ebp - 0x14d4]
call ebx
xor esi, esi
jmp 0x1010c756