Function at 0x40359c
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4cc
mov dword [ebp - 0x4b0], eax
mov dword [ebp - 0x49c], eax
lea eax, [ebp - 0x49c]
mov dword [esp + 4], eax
mov dword [esp], 0x431060
call fcn.0040a3f5
mov ebx, eax
mov eax, dword [eax]
mov dword [ebp - 0x4ac], eax
test eax, eax
je 0x403653
cmp dword [0x42878c], eax
je 0x403653
mov eax, dword [eax + 8]
test eax, eax
je 0x4035ec
mov eax, dword [eax + 0x40]
jmp 0x4035f5
mov eax, dword [ebp - 0x4ac]
mov eax, dword [eax + 4]
mov edx, dword [0x428e24]
cmp edx, eax
je 0x40393a
test byte [0x43154c], 2
je 0x40363f
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x4b0]
mov dword [esp], str.Directory__s_cache_invalidated__count__lu___command__lu__n
mov dword [esp + 4], eax
call fcn.00403113
mov dword [esp], 1
call dword [0x428f30]
mov dword [esp], eax
call fcn.00425884
mov eax, dword [ebp - 0x4ac]
mov eax, dword [eax + 8]
test eax, eax
je 0x4036a3
call fcn.00403555
jmp 0x4036a3
mov eax, dword [ebp - 0x4b0]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp], 0xc
mov esi, eax
call fcn.00411363
mov dword [ebp - 0x4ac], eax
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x4b0]
mov dword [esp], eax
call fcn.00419fd7
mov edi, dword [ebp - 0x4ac]
mov dword [edi], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], 0x431060
call fcn.0040a4ab
mov eax, dword [ebp - 0x4ac]
xor ecx, ecx
mov edi, dword [ebp - 0x4ac]
mov dword [eax + 8], ecx
mov eax, dword [0x428e24]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x4b0]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov esi, dword [ebp - 0x4b0]
mov edx, eax
lea eax, [ebp - 0x218]
lea ecx, [edx + 1]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x216]
cmp byte [ebp - 0x217], 0x3a
je 0x4036f0
mov ecx, eax
lea edx, [eax + edx - 1]
cmp ecx, edx
jae 0x40370c
movzx ebx, byte [edx]
cmp word [ebx + ebx + 0x4312c0], 0
jns 0x40370c
mov byte [edx], 0
dec edx
jmp 0x4036f4
lea edx, [ebp - 0x490]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [sym.imp.msvcrt.dll__stati64]
test eax, eax
js 0x40393a
lea edx, [ebp - 0x45c]
xor eax, eax
mov ecx, 0x11
mov edi, edx
lea esi, [ebp - 0x460]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x490]
mov dword [ebp - 0x460], eax
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x4b0]
mov dword [esp], eax
call fcn.0041ce64
mov dword [ebp - 0x4b4], eax
mov dword [ebp - 0x45c], eax
mov eax, dword [ebp - 0x468]
mov dword [ebp - 0x458], eax
mov dword [esp + 4], esi
mov dword [esp], 0x4310a0
call fcn.0040a3f5
mov ebx, dword [eax]
mov dword [ebp - 0x4b8], eax
test ebx, ebx
je 0x4037a0
cmp dword [0x42878c], ebx
jne 0x403892
mov dword [esp], 0x48
call fcn.00411389
mov ecx, 0x12
mov edi, eax
mov ebx, eax
mov eax, dword [ebp - 0x4b4]
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x218]
mov dword [esp], eax
call fcn.004114b6
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x46c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x4b4]
mov byte [eax + 3], 0
lea eax, [ebp - 0x4a4]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x4a0]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4a8]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x418]
mov dword [esp + 0x1c], 0x200
mov dword [esp + 0x18], esi
mov dword [esp + 8], 0x200
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4b4]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov edx, eax
sub esp, 0x20
mov eax, 4
test edx, edx
je 0x403875
mov dword [esp + 4], 0x42a282
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
mov edx, eax
mov eax, 1
test edx, edx
je 0x403875
mov dword [esp + 4], str.NTFS
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
mov edx, eax
mov eax, 2
test edx, edx
je 0x403875
mov eax, 4
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x4b8]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], 0x4310a0
call fcn.0040a4ab
mov eax, dword [ebp - 0x4ac]
mov dword [eax + 8], ebx
mov eax, dword [ebx + 0x40]
cmp eax, dword [0x428e24]
je 0x40393a
test eax, eax
je 0x4038b5
mov eax, ebx
call fcn.00403555
mov eax, dword [0x428e24]
mov dword [ebx + 0x40], eax
mov esi, dword [sym.imp.msvcrt.dll__errno]
call esi
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x4b0]
mov dword [esp], eax
call fcn.00421340
mov dword [ebx + 0x44], eax
test eax, eax
jne 0x4038f2
call esi
cmp dword [eax], 4
je 0x4038bd
cmp dword [ebx + 0x44], 0
jne 0x4038f2
xor eax, eax
mov dword [ebx + 0x14], eax
jmp 0x40393a
add ebx, 0x14
mov dword [esp + 0x10], 0x4034de
mov dword [esp + 0xc], 0x40398d
mov dword [esp + 8], 0x4030ca
mov dword [esp + 4], 0x6b
mov dword [esp], ebx
call fcn.0040a349
mov eax, dword [0x4310cc]
inc eax
mov dword [0x4310cc], eax
cmp eax, 0xa
jne 0x40393a
mov eax, dword [ebp - 0x4ac]
xor edx, edx
call fcn.00403143
mov eax, dword [ebp - 0x4ac]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret