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

Disassembly:
push ebp
sub esp, 0x60
mov eax, 0x6a64a5
call fcn.006375a8
sub esp, 0x2ec
cmp byte [0x7d2b34], 0
je 0x599388
mov al, 1
jmp 0x599abb
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.00651ed0
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 0x5993e2
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 0x599415
call esi
mov edi, eax
mov dword [ebp + 0x34], edi
jmp 0x599418
mov edi, dword [ebp + 0x34]
mov esi, 0xd0
lea eax, [ebp - 0x158]
push esi
push 0
push eax
call fcn.00651ed0
push esi
lea eax, [ebp - 0x228]
push 0
push eax
call fcn.00651ed0
push esi
xor esi, esi
lea eax, [ebp - 0x2f8]
push esi
push eax
call fcn.00651ed0
add esp, 0x24
call dword [sym.imp.KERNEL32.DLL_GetLogicalDrives]
mov edx, eax
mov dword [ebp + 0x38], edx
test edx, edx
je 0x599531
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 0x599519
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 0x599516
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 0x599519
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 0x599519
mov edx, dword [ebp + 0x38]
inc esi
cmp esi, 0x1a
jb 0x59947b
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], 0x6b6dbc
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.0040d4cf
mov byte [ebp - 4], 1
test ebx, ebx
je 0x599560
mov esi, str..nomem
jmp 0x59956e
mov esi, str..nopwr
test edi, edi
jne 0x59956e
mov esi, 0x706744
push esi
call fcn.0040d6de
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.0040d642
push str.action
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.004383c1
push 0
push 1
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], 1
call fcn.0040daff
call fcn.00460941
mov esi, eax
lea ecx, [ebp + 0x4c]
sub esi, dword [0x7a3c20]
push 0x6c5874
call fcn.0040d4cf
push esi
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
xor esi, esi
mov byte [ebp - 4], 1
push esi
push 1
lea ecx, [ebp + 0x4c]
call fcn.0040daff
lea ecx, [ebp + 0x4c]
test ebx, ebx
je 0x599616
push str.mserr
call fcn.0040d4cf
push ebx
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
xor ebx, ebx
inc ebx
jmp 0x599747
push 0x706750
call fcn.0040d4cf
push dword [ebp - 0x84]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
xor ebx, ebx
lea ecx, [ebp + 0x4c]
inc ebx
push esi
push ebx
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x706754
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp - 0x80]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x706758
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp - 0x78]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x70675c
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp - 0x70]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x706760
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp - 0x68]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x706764
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
mov byte [ebp - 4], 0xa
push dword [ebp - 0x60]
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x706768
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp - 0x58]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x70676c
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
movzx eax, word [ebp - 0x48]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xc
push eax
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x6dd0c8
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp - 0x44]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push str.apmsk
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp - 0x38]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x6ce080
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp - 0x34]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x6dd0dc
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
movzx eax, word [ebp - 0x28]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x10
push eax
call fcn.00469da3
push esi
mov byte [ebp - 4], bl
lea ecx, [ebp + 0x4c]
push ebx
call fcn.0040daff
push 0x706778
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
movzx eax, word [ebp - 0x26]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x11
push eax
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
lea ecx, [ebp + 0x4c]
test edi, edi
je 0x599883
push str.pserr
call fcn.0040d4cf
mov byte [ebp - 4], 0x12
push edi
jmp 0x59997d
push str.acls
call fcn.0040d4cf
movzx eax, byte [ebp]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x13
push eax
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x70678c
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
movzx eax, byte [ebp + 1]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x14
push eax
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x706790
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
movzx eax, byte [ebp + 2]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x15
push eax
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x706794
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
movzx eax, byte [ebp + 3]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x16
push eax
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x706798
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp + 4]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push str.bflt
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp + 8]
mov byte [ebp - 4], 0x18
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x7067a4
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
push dword [ebp + 0x30]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp + 0x3c]
call fcn.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x6fd834
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
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.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x7067a8
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
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.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push 0x7067ac
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
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.00469da3
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040daff
push str.btfssys
lea ecx, [ebp + 0x4c]
call fcn.0040d4cf
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.00485acc
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [0x7d2b34], al
call fcn.0040daff
mov bl, byte [0x7d2b34]
lea ecx, [ebp - 0x24]
push esi
push 1
call fcn.0040daff
lea ecx, [ebp + 0x40]
call fcn.004370d5
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