Function at 0x5a7b27
Capabilities:
Get disk information
Get disk size
Get memory capacity
Get system information on windows

Disassembly:
push ebp
sub esp, 0x60
mov eax, 0x6bf59e
call fcn.00651da4
sub esp, 0x2ec
cmp byte [0x7f828c], 0
je 0x5a7b4b
mov al, 1
jmp 0x5a827e
push ebx
push esi
xor eax, eax
push edi
push 0x40
pop esi
push esi
mov ebx, eax
mov dword [ebp + 0x34], eax
push eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
lea eax, [ebp - 0x88]
push eax
mov dword [ebp + 0xc], ebx
call fcn.0066c620
add esp, 0xc
mov dword [ebp - 0x88], esi
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatusEx]
mov esi, dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x5a7ba5
call esi
mov ebx, eax
mov dword [ebp + 0xc], eax
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x48]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
xor eax, eax
lea edi, [ebp]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemPowerStatus]
test eax, eax
jne 0x5a7bd8
call esi
mov edi, eax
mov dword [ebp + 0x34], edi
jmp 0x5a7bdb
mov edi, dword [ebp + 0x34]
mov esi, 0xd0
lea eax, [ebp - 0x158]
push esi
push 0
push eax
call fcn.0066c620
push esi
lea eax, [ebp - 0x228]
push 0
push eax
call fcn.0066c620
push esi
xor esi, esi
lea eax, [ebp - 0x2f8]
push esi
push eax
call fcn.0066c620
add esp, 0x24
call dword [sym.imp.KERNEL32.DLL_GetLogicalDrives]
mov edx, eax
mov dword [ebp + 0x38], edx
test edx, edx
je 0x5a7cf4
mov edi, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x24]
push 0x3a
pop eax
mov word [ebp + 0x12], ax
push 0x5c
pop eax
mov word [ebp + 0x14], ax
xor eax, eax
mov word [ebp + 0x16], ax
xor eax, eax
mov ecx, esi
inc eax
shl eax, cl
test edx, eax
je 0x5a7cdc
lea eax, [esi + 0x41]
mov word [ebp + 0x10], ax
lea eax, [ebp + 0x10]
push eax
call dword [sym.imp.KERNEL32.DLL_GetDriveTypeW]
cmp eax, 3
jne 0x5a7cd9
lea eax, [ebp - 0x2f8]
lea eax, [eax + esi*8]
push eax
lea ecx, [ebp - 0x228]
lea ecx, [ecx + esi*8]
lea edx, [ebp - 0x158]
push ecx
lea edx, [edx + esi*8]
push edx
lea eax, [ebp + 0x10]
push eax
call dword [sym.imp.KERNEL32.DLL_GetDiskFreeSpaceExW]
mov edx, dword [ebp + 0x38]
test eax, eax
je 0x5a7cdc
mov eax, dword [ebp + 0x28]
add eax, dword [ebp + esi*8 - 0x158]
mov dword [ebp + 0x28], eax
adc edi, dword [ebp + esi*8 - 0x154]
mov eax, dword [ebp + 0x20]
add eax, dword [ebp + esi*8 - 0x228]
mov dword [ebp + 0x20], eax
adc ebx, dword [ebp + esi*8 - 0x224]
mov eax, dword [ebp + 0x18]
add eax, dword [ebp + esi*8 - 0x2f8]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x1c]
adc eax, dword [ebp + esi*8 - 0x2f4]
inc dword [ebp + 0x30]
mov dword [ebp + 0x1c], eax
jmp 0x5a7cdc
mov edx, dword [ebp + 0x38]
inc esi
cmp esi, 0x1a
jb 0x5a7c3e
mov dword [ebp + 0x24], ebx
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [ebp + 0x2c], edi
mov edi, dword [ebp + 0x34]
mov dword [ebp + 0x3c], fcn.0043b3cd
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], esi
push str.btfssys
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], esi
call fcn.0040f49f
mov byte [ebp - 4], 1
test ebx, ebx
je 0x5a7d23
mov esi, str..nomem
jmp 0x5a7d31
mov esi, str..nopwr
test edi, edi
jne 0x5a7d31
mov esi, 0x722514
push esi
call fcn.0040f6ae
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.0040f612
push str.action
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.0043716a
push 0
push 1
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], 1
call fcn.0040facf
call fcn.0045edef
mov esi, eax
lea ecx, [ebp + 0x4c]
sub esi, dword [0x7c6578]
push 0x6dfc5c
call fcn.0040f49f
push esi
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
xor esi, esi
mov byte [ebp - 4], 1
push esi
push 1
lea ecx, [ebp + 0x4c]
call fcn.0040facf
lea ecx, [ebp + 0x4c]
test ebx, ebx
je 0x5a7dd9
push str.mserr
call fcn.0040f49f
push ebx
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
xor ebx, ebx
inc ebx
jmp 0x5a7f0a
push 0x722520
call fcn.0040f49f
push dword [ebp - 0x84]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
xor ebx, ebx
lea ecx, [ebp + 0x4c]
inc ebx
push esi
push ebx
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722524
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp - 0x80]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722528
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp - 0x78]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x72252c
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp - 0x70]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722530
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp - 0x68]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722534
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
mov byte [ebp - 4], 0xa
push dword [ebp - 0x60]
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722538
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp - 0x58]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x72253c
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
movzx eax, word [ebp - 0x48]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xc
push eax
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x6f7560
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp - 0x44]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push str.apmsk
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp - 0x38]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x6e8538
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp - 0x34]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x6f7574
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
movzx eax, word [ebp - 0x28]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x10
push eax
call fcn.00468d45
push esi
mov byte [ebp - 4], bl
lea ecx, [ebp + 0x4c]
push ebx
call fcn.0040facf
push 0x722548
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
movzx eax, word [ebp - 0x26]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x11
push eax
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
lea ecx, [ebp + 0x4c]
test edi, edi
je 0x5a8046
push str.pserr
call fcn.0040f49f
mov byte [ebp - 4], 0x12
push edi
jmp 0x5a8140
push str.acls
call fcn.0040f49f
movzx eax, byte [ebp]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x13
push eax
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x72255c
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
movzx eax, byte [ebp + 1]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x14
push eax
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722560
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
movzx eax, byte [ebp + 2]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x15
push eax
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722564
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
movzx eax, byte [ebp + 3]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x16
push eax
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722568
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp + 4]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push str.bflt
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp + 8]
mov byte [ebp - 4], 0x18
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722574
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push dword [ebp + 0x30]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x719090
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x28]
shrd ecx, eax, 0x14
mov byte [ebp - 4], 0x1a
shr eax, 0x14
push ecx
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x722578
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
shrd ecx, eax, 0x14
mov byte [ebp - 4], 0x1b
shr eax, 0x14
push ecx
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push 0x72257c
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
shrd ecx, eax, 0x14
mov byte [ebp - 4], 0x1c
shr eax, 0x14
push ecx
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00468d45
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040facf
push str.btfssys
lea ecx, [ebp + 0x4c]
call fcn.0040f49f
push esi
push esi
push esi
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x1d
push eax
lea eax, [ebp + 0x3c]
push eax
push 0x2b
call fcn.004857ca
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [0x7f828c], al
call fcn.0040facf
mov bl, byte [0x7f828c]
lea ecx, [ebp - 0x24]
push esi
push 1
call fcn.0040facf
lea ecx, [ebp + 0x40]
call fcn.0043603c
pop edi
pop esi
mov al, bl
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
lea esp, [ebp + 0x64]
pop ebp
ret