Function at 0x523a541b
Capabilities:
Get disk information
Get disk size

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x144
mov eax, dword [0x523ac650]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
mov edi, ecx
push 0x105
lea eax, [ebp - 0x10c]
mov dword [ebp - 0x118], edi
push eax
add edi, 0x54
push edi
call sub.msvcrt.dll__splitpath_s
add esp, 0x24
mov dword [ebp - 0x110], ebx
cmp byte [ebp - 0x10c], bl
je 0x523a547d
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
jmp 0x523a54fe
mov al, byte [edi]
cmp al, 0x5c
je 0x523a548e
cmp al, 0x2f
je 0x523a548e
xor eax, eax
jmp 0x523a569d
mov esi, dword [sym.imp.USER32.dll_CharNextA]
push edi
call esi
mov cl, byte [eax]
cmp cl, 0x5c
je 0x523a54a3
cmp cl, 0x2f
jne 0x523a5487
push eax
call esi
mov cl, byte [eax]
cmp cl, bl
je 0x523a5487
cmp cl, 0x5c
je 0x523a54bf
cmp cl, 0x2f
je 0x523a54bf
push eax
call esi
mov cl, byte [eax]
cmp cl, bl
jne 0x523a54ac
cmp cl, bl
jne 0x523a54cf
jmp 0x523a5487
cmp cl, 0x5c
je 0x523a54d8
cmp cl, 0x2f
je 0x523a54d8
push eax
call esi
mov cl, byte [eax]
cmp cl, bl
jne 0x523a54c5
sub eax, dword [ebp - 0x118]
sub eax, 0x54
mov esi, eax
push esi
lea eax, [ebp - 0x10c]
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [ebp - 0x110], 1
mov edi, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x10c]
push eax
mov byte [ebp + esi - 0x10c], 0x5c
mov byte [ebp + esi - 0x10b], bl
call edi
cmp eax, ebx
jne 0x523a567f
cmp dword [ebp - 0x110], ebx
je 0x523a5487
cmp dword [0x523adfb8], ebx
jne 0x523a55a5
push 0x52382dc8
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x523adfb8], eax
cmp eax, ebx
je 0x523a55a5
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x52382db4
push eax
call esi
push 0x52382d9c
push dword [0x523adfb8]
mov dword [0x523adfe0], eax
call esi
mov dword [0x523adfe4], eax
cmp dword [0x523adfe0], ebx
je 0x523a5599
cmp eax, ebx
jne 0x523a55a5
mov dword [0x523adfe0], ebx
mov dword [0x523adfe4], ebx
cmp dword [0x523adfe0], ebx
je 0x523a5487
cmp dword [0x523adfe4], ebx
je 0x523a5487
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push 0x1a
pop ecx
xor edx, edx
inc edx
dec ecx
mov esi, edx
shl esi, cl
test eax, esi
je 0x523a55db
cmp ecx, ebx
jne 0x523a55c6
jmp 0x523a5487
lea eax, [ebp - 0x110]
push ebx
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x10c]
push ebx
mov dword [ebp - 0x130], eax
push ebx
lea eax, [ebp - 0x144]
add cl, 0x41
push eax
mov byte [ebp - 0x110], cl
mov byte [ebp - 0x10f], 0x3a
mov byte [ebp - 0x10e], bl
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x128], ebx
call dword [0x523adfe0]
test eax, eax
jne 0x523a5487
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x110]
push eax
mov byte [ebp - 0x10e], 0x5c
mov byte [ebp - 0x10d], bl
call edi
push 1
mov esi, eax
push ebx
lea eax, [ebp - 0x110]
push eax
mov byte [ebp - 0x10e], bl
call dword [0x523adfe4]
cmp esi, ebx
je 0x523a5487
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x118]
imul edx, ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.523a8462
leave
ret