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

Disassembly:
push ebp
sub esp, 0x60
mov eax, 0x6b1bc0
call fcn.006426c4
sub esp, 0x2ec
cmp byte [0x7e5254], 0
je 0x59f023
mov al, 1
jmp 0x59f756
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.0065d010
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 0x59f07d
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 0x59f0b0
call esi
mov edi, eax
mov dword [ebp + 0x34], edi
jmp 0x59f0b3
mov edi, dword [ebp + 0x34]
mov esi, 0xd0
lea eax, [ebp - 0x158]
push esi
push 0
push eax
call fcn.0065d010
push esi
lea eax, [ebp - 0x228]
push 0
push eax
call fcn.0065d010
push esi
xor esi, esi
lea eax, [ebp - 0x2f8]
push esi
push eax
call fcn.0065d010
add esp, 0x24
call dword [sym.imp.KERNEL32.DLL_GetLogicalDrives]
mov edx, eax
mov dword [ebp + 0x38], edx
test edx, edx
je 0x59f1cc
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 0x59f1b4
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 0x59f1b1
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 0x59f1b4
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 0x59f1b4
mov edx, dword [ebp + 0x38]
inc esi
cmp esi, 0x1a
jb 0x59f116
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], 0x6c40ec
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.0040f32f
mov byte [ebp - 4], 1
test ebx, ebx
je 0x59f1fb
mov esi, str..nomem
jmp 0x59f209
mov esi, str..nopwr
test edi, edi
jne 0x59f209
mov esi, 0x714344
push esi
call fcn.0040f53e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x24]
call fcn.0040f4a2
push str.action
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.0043a257
push 0
push 1
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], 1
call fcn.0040f95f
call fcn.00462d8a
mov esi, eax
lea ecx, [ebp + 0x4c]
sub esi, dword [0x7b51a8]
push 0x6d2fd0
call fcn.0040f32f
push esi
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
xor esi, esi
mov byte [ebp - 4], 1
push esi
push 1
lea ecx, [ebp + 0x4c]
call fcn.0040f95f
lea ecx, [ebp + 0x4c]
test ebx, ebx
je 0x59f2b1
push str.mserr
call fcn.0040f32f
push ebx
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
xor ebx, ebx
inc ebx
jmp 0x59f3e2
push 0x714350
call fcn.0040f32f
push dword [ebp - 0x84]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
xor ebx, ebx
lea ecx, [ebp + 0x4c]
inc ebx
push esi
push ebx
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x714354
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp - 0x80]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x714358
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp - 0x78]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x71435c
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp - 0x70]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x714360
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp - 0x68]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x714364
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
mov byte [ebp - 4], 0xa
push dword [ebp - 0x60]
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x714368
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp - 0x58]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x71436c
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
movzx eax, word [ebp - 0x48]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xc
push eax
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x6eaa60
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp - 0x44]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push str.apmsk
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp - 0x38]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x6db8c8
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp - 0x34]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x6eaa74
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
movzx eax, word [ebp - 0x28]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x10
push eax
call fcn.0046ca1a
push esi
mov byte [ebp - 4], bl
lea ecx, [ebp + 0x4c]
push ebx
call fcn.0040f95f
push 0x714378
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
movzx eax, word [ebp - 0x26]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x11
push eax
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
lea ecx, [ebp + 0x4c]
test edi, edi
je 0x59f51e
push str.pserr
call fcn.0040f32f
mov byte [ebp - 4], 0x12
push edi
jmp 0x59f618
push str.acls
call fcn.0040f32f
movzx eax, byte [ebp]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x13
push eax
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x71438c
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
movzx eax, byte [ebp + 1]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x14
push eax
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x714390
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
movzx eax, byte [ebp + 2]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x15
push eax
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x714394
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
movzx eax, byte [ebp + 3]
lea ecx, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x16
push eax
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x714398
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp + 4]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push str.bflt
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp + 8]
mov byte [ebp - 4], 0x18
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x7143a4
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
push dword [ebp + 0x30]
lea eax, [ebp + 0x4c]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp + 0x3c]
call fcn.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x70b338
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
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.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x7143a8
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
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.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push 0x7143ac
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
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.0046ca1a
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], bl
call fcn.0040f95f
push str.btfssys
lea ecx, [ebp + 0x4c]
call fcn.0040f32f
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.0048903d
push esi
push ebx
lea ecx, [ebp + 0x4c]
mov byte [0x7e5254], al
call fcn.0040f95f
mov bl, byte [0x7e5254]
lea ecx, [ebp - 0x24]
push esi
push 1
call fcn.0040f95f
lea ecx, [ebp + 0x40]
call fcn.00438f50
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