Function at 0x10020af0
Capabilities:
Get disk information
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x440
mov ebx, ecx
mov eax, dword [0x10080800]
xor eax, ebp
mov dword [esp + 0x438], eax
cmp dword [0x10083490], 0xa
jl 0x10020b32
mov eax, dword [0x10083494]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x10020b32
nop dword [eax + eax]
jmp 0x10020b30
cmp byte [0x10083118], 0
jne 0x10020b4c
mov dword [0x10083114], 0x6d6c65
mov byte [0x10083118], 1
cmp dword [0x10082008], 0xa
jl 0x10020b72
mov eax, dword [0x10082004]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x10020b72
nop word cs:[eax + eax]
jmp 0x10020b70
cmp dword [0x10082850], 0xa
jl 0x10020b92
mov eax, dword [0x10082854]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x10020b92
nop dword [eax + eax]
jmp 0x10020b90
xorps xmm0, xmm0
movaps xmmword [esp + 0x420], xmm0
mov dword [esp + 0x434], 0
mov dword [esp + 0x430], 0
push 0x10083114
call fcn.10058130
add esp, 4
lea ecx, [esp + 0x420]
push eax
push 0x10083114
call fcn.10001f50
lea ecx, [esp + 0x408]
call fcn.10017d30
lea ecx, [esp + 0x3f0]
call fcn.10017d30
lea ecx, [esp + 0x3d8]
call fcn.10017d30
lea ecx, [esp + 0x3c0]
call fcn.10017d30
lea esi, [esp + 0x1b6]
lea ecx, [esp + 0x24]
push esi
push 0x10
call fcn.10008da0
push 0x20a
push 0
push esi
call fcn.1004fef0
add esp, 0xc
mov dword [esp + 0x20], 0
sub esp, 0x20
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 4], esi
mov dword [esp + 8], 0x105
mov dword [esp], 0x10078c4e
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x10020cb3
mov esi, dword [esp + 0x20]
lea edi, [esp + 0x90]
nop dword [eax + eax]
push esi
push edi
call fcn.1002a6d0
add esp, 8
cmp dword [0x10081f28], 0xa
jl 0x10020c9f
mov eax, dword [0x10081f24]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x10020c9f
push esi
push edi
call fcn.1002a6d0
add esp, 8
jmp 0x10020c70
lea ecx, [esp + 0x3c0]
push edi
call fcn.1001a000
mov ecx, edi
call fcn.10001770
cmp dword [0x10081fd0], 0xa
jl 0x10020ccc
mov eax, dword [0x10081fcc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x10020cf5
lea eax, [esp + 0x1c]
push eax
push 0x10072b40
call sub.dxgi.dll_CreateDXGIFactory
cmp dword [0x10081fd0], 0xa
jl 0x10020d06
mov ecx, dword [0x10081fcc]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x10020d06
lea eax, [esp + 0x1c]
push eax
push 0x10072b40
call sub.dxgi.dll_CreateDXGIFactory
jmp 0x10020ccc
test eax, eax
js 0x10020edd
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea esi, [esp + 0x60]
nop dword [eax + eax]
push esi
push 0
push eax
call dword [ecx + 0x1c]
mov edx, dword [0x10081fcc]
mov ecx, dword [0x10081fd0]
cmp ecx, 0xa
jl 0x10020d58
lea edi, [edx + 1]
imul edi, edx
and edi, 1
je 0x10020d58
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push esi
push 0
push eax
call dword [ecx + 0x1c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
jmp 0x10020d20
cmp eax, 0x887a0002
jne 0x10020d6d
lea eax, [edx + 1]
imul eax, edx
and eax, 1
jmp 0x10020e97
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
lea esi, [esp + 0x90]
jmp 0x10020d86
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x20]
mov ecx, dword [0x10081fcc]
mov edx, dword [0x10081fd0]
cmp edx, 0xa
jl 0x10020dd8
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
je 0x10020dd8
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x20]
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x20]
cmp dword [0x10081fd0], 0xa
jl 0x10020d80
mov eax, dword [0x10081fcc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x10020da7
jmp 0x10020d80
test eax, eax
js 0x10020e53
mov esi, dword [esp + 0x194]
cmp dword [0x10082058], 0xa
jl 0x10020dfc
mov eax, dword [0x10082054]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x10020e23
lea edi, [esp + 0x78]
push esi
push edi
call fcn.1002aea0
add esp, 8
cmp dword [0x10082058], 0xa
jl 0x10020e33
mov eax, dword [0x10082054]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x10020e33
lea eax, [esp + 0x78]
push esi
push eax
call fcn.1002aea0
add esp, 8
jmp 0x10020dfc
lea ecx, [esp + 0x3d8]
push edi
call fcn.1001a000
mov ecx, edi
call fcn.10001770
mov ecx, dword [0x10081fcc]
mov edx, dword [0x10081fd0]
cmp edx, 0xa
jl 0x10020e63
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
jne 0x10020e8b
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [0x10081fcc]
mov ecx, dword [0x10081fd0]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
cmp ecx, 0xa
jl 0x10020e97
test eax, eax
je 0x10020e97
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10020e63
cmp ecx, 0xa
jl 0x10020eba
test eax, eax
je 0x10020eba
jmp 0x10020ea0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [0x10081fd0], 0xa
jl 0x10020edd
mov eax, dword [0x10081fcc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x10020eb0
mov dword [esp + 0x10], ebx
xor eax, eax
xor ecx, ecx
cpuid
cmp dword [0x10081fd0], 0xa
jl 0x10020f12
mov esi, dword [0x10081fcc]
lea edi, [esi + 1]
imul edi, esi
and edi, 1
je 0x10020f12
nop word cs:[eax + eax]
jmp 0x10020f10
mov esi, eax
shr esi, 0x10
add eax, ebx
shr ebx, 0x10
add eax, esi
add ebx, ecx
shr ecx, 0x10
add ebx, eax
add ecx, edx
shr edx, 0x10
add edx, ecx
add edx, ebx
movzx eax, dx
add dword [esp + 0x10], 0x18
lea esi, [esp + 0x90]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov dword [esp + 0x14], eax
push eax
push esi
call fcn.1002b300
add esp, 8
lea ecx, [esp + 0x408]
push esi
call fcn.1001a000
mov ecx, esi
call fcn.10001770
mov dword [esp + 0x90], 0x40
push esi
call edi
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
shrd esi, edi, 0x14
shr edi, 0x14
cmp dword [0x10082060], 0xa
jl 0x10020fa1
mov eax, dword [0x1008205c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x10020fcc
push edi
push esi
lea eax, [esp + 0x80]
push eax
call fcn.1002b830
add esp, 0xc
cmp dword [0x10082060], 0xa
jl 0x10020fe0
mov eax, dword [0x1008205c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x10020fe0
push edi
push esi
lea eax, [esp + 0x80]
push eax
call fcn.1002b830
add esp, 0xc
jmp 0x10020fa1
lea ecx, [esp + 0x3f0]
lea edi, [esp + 0x78]
push edi
call fcn.1001a000
mov ecx, edi
call fcn.10001770
lea eax, [esp + 0x3c0]
push eax
lea eax, [esp + 0x424]
push eax
lea ebx, [esp + 0x38]
push ebx
call fcn.100224b0
add esp, 0xc
lea eax, [esp + 0x3d8]
push eax
push ebx
lea esi, [esp + 0x50]
push esi
call fcn.100222c0
add esp, 0xc
lea eax, [esp + 0x408]
push eax
push esi
lea ebx, [esp + 0x68]
push ebx
call fcn.100222c0
add esp, 0xc
lea eax, [esp + 0x3f0]
push eax
push ebx
push edi
call fcn.100222c0
add esp, 0xc
mov ecx, ebx
call fcn.10001770
mov ecx, esi
call fcn.10001770
lea ecx, [esp + 0x30]
call fcn.10001770
mov eax, dword [0x10081e60]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081e5c], 0xa
setl al
or al, cl
nop word [eax + eax]
test al, al
je 0x10021090
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x8c], 0x10
lea ecx, [esp + 0x78]
jb 0x100210d8
mov ecx, dword [0x100824dc]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete dl
cmp dword [0x100824d8], 0xa
setl cl
or cl, dl
nop word cs:[eax + eax]
test cl, cl
je 0x100210d0
mov ecx, dword [esp + 0x78]
push eax
push ecx
call fcn.1002ea10
add esp, 8
mov eax, dword [0x10081e80]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081e7c], 0xa
setl al
or al, cl
mov ecx, dword [0x100828b4]
mov edx, dword [0x100828b0]
jne 0x10021118
lea esi, [ecx + 1]
imul esi, ecx
and esi, 1
jmp 0x10021191
lea esi, [ecx + 1]
imul esi, ecx
and esi, 1
cmp edx, 0xa
jl 0x1002112e
test esi, esi
jne 0x10021790
test al, al
je 0x10021191
lea ecx, [esp + 0x24]
lea eax, [esp + 0x18]
push eax
call fcn.10020a80
mov eax, dword [0x10081e90]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081e8c], 0xa
setl al
or al, cl
mov ecx, dword [0x1008287c]
mov dword [esp + 4], ecx
mov ecx, dword [0x10082878]
mov dword [esp + 8], ecx
mov ebx, dword [0x10082884]
mov edi, dword [0x10082880]
jne 0x100211a3
mov ecx, dword [esp + 4]
lea esi, [ecx + 1]
imul esi, ecx
and esi, 1
jmp 0x10021346
cmp edx, 0xa
jl 0x10021118
test esi, esi
je 0x10021118
jmp 0x100217a0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 4]
lea esi, [ecx + 1]
imul esi, ecx
and esi, 1
sete dl
cmp dword [esp + 8], 0xa
setl ah
or ah, dl
cmp ah, 1
je 0x100211e0
lea edx, [ebx + 1]
imul edx, ebx
and edx, 1
jmp 0x10021303
lea edx, [ebx + 1]
imul edx, ebx
and edx, 1
cmp edi, 0xa
jl 0x100211f6
test edx, edx
jne 0x10021750
test ah, ah
je 0x10021303
test al, al
je 0x10021346
push dword [esp + 0x10]
push dword [esp + 0x1c]
push dword [esp + 0x14]
lea eax, [esp + 0x6c]
push eax
call fcn.10021850
add esp, 0x10
lea ecx, [esp + 0x78]
call fcn.10001770
lea ecx, [esp + 0x24]
call fcn.10001ba0
lea ecx, [esp + 0x3c0]
call fcn.10001770
lea ecx, [esp + 0x3d8]
call fcn.10001770
lea ecx, [esp + 0x3f0]
call fcn.10001770
lea ecx, [esp + 0x408]
call fcn.10001770
lea ecx, [esp + 0x420]
call fcn.10001770
cmp dword [0x10081fd0], 0xa
jl 0x10021832
mov eax, dword [0x10081fcc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x10021832
push dword [esp + 0x14]
lea esi, [esp + 0x94]
push esi
call fcn.1002b300
add esp, 8
lea ecx, [esp + 0x408]
push esi
call fcn.1001a000
mov ecx, esi
call fcn.10001770
mov dword [esp + 0x90], 0x40
push esi
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
shrd esi, edi, 0x14
shr edi, 0x14
cmp dword [0x10082060], 0xa
jl 0x100213c6
mov eax, dword [0x1008205c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x100213f1
jmp 0x100213c6
cmp edi, 0xa
jl 0x10021327
test edx, edx
je 0x10021327
lea ecx, [ebx + 1]
imul ecx, ebx
xor edx, edx
test cl, 1
jne 0x100217e0
cmp edi, 0xa
jge 0x10021339
jmp 0x100211e0
lea edx, [ebx + 1]
imul edx, ebx
and edx, 1
cmp edi, 0xa
jl 0x100211e0
test edx, edx
je 0x100211e0
jmp 0x10021770
test esi, esi
sete cl
cmp dword [esp + 8], 0xa
setl dl
or dl, cl
cmp dl, 1
je 0x10021370
lea esi, [ebx + 1]
imul esi, ebx
and esi, 1
jmp 0x1002138e
lea esi, [ebx + 1]
imul esi, ebx
and esi, 1
cmp edi, 0xa
jl 0x10021386
test esi, esi
jne 0x10021760
test dl, dl
jne 0x100211a3
cmp edi, 0xa
jl 0x100213af
test esi, esi
je 0x100213af
lea ecx, [ebx + 1]
imul ecx, ebx
xor esi, esi
test cl, 1
jne 0x100217f0
cmp edi, 0xa
jge 0x100213bd
jmp 0x10021370
lea esi, [ebx + 1]
imul esi, ebx
and esi, 1
cmp edi, 0xa
jl 0x10021370
test esi, esi
je 0x10021370
jmp 0x10021780
push edi
push esi
lea eax, [esp + 0x80]
push eax
call fcn.1002b830
add esp, 0xc
cmp dword [0x10082060], 0xa
jl 0x10021405
mov eax, dword [0x1008205c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x10021405
push edi
push esi
lea eax, [esp + 0x80]
push eax
call fcn.1002b830
add esp, 0xc
jmp 0x100213c6
lea ecx, [esp + 0x3f0]
lea edi, [esp + 0x78]
push edi
call fcn.1001a000
mov ecx, edi
call fcn.10001770
lea eax, [esp + 0x3c0]
push eax
lea eax, [esp + 0x424]
push eax
lea ebx, [esp + 0x38]
push ebx
call fcn.100224b0
add esp, 0xc
lea eax, [esp + 0x3d8]
push eax
push ebx
lea esi, [esp + 0x50]
push esi
call fcn.100222c0
add esp, 0xc
lea eax, [esp + 0x408]
push eax
push esi
lea ebx, [esp + 0x68]
push ebx
call fcn.100222c0
add esp, 0xc
lea eax, [esp + 0x3f0]
push eax
push ebx
push edi
call fcn.100222c0
add esp, 0xc
mov ecx, ebx
call fcn.10001770
mov ecx, esi
call fcn.10001770
lea ecx, [esp + 0x30]
call fcn.10001770
mov eax, dword [0x10081e60]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081e5c], 0xa
setl al
or al, cl
nop dword [eax]
test al, al
je 0x100214b0
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x8c], 0x10
lea ecx, [esp + 0x78]
jb 0x100214f8
mov ecx, dword [0x100824dc]
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete dl
cmp dword [0x100824d8], 0xa
setl cl
or cl, dl
nop word cs:[eax + eax]
test cl, cl
je 0x100214f0
mov ecx, dword [esp + 0x78]
push eax
push ecx
call fcn.1002ea10
add esp, 8
mov eax, dword [0x10081e80]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081e7c], 0xa
setl al
or al, cl
mov ecx, dword [0x100828b4]
mov edx, dword [0x100828b0]
jne 0x10021538
lea esi, [ecx + 1]
imul esi, ecx
and esi, 1
jmp 0x100215b1
lea esi, [ecx + 1]
imul esi, ecx
and esi, 1
cmp edx, 0xa
jl 0x1002154e
test esi, esi
jne 0x10021800
test al, al
je 0x100215b1
lea ecx, [esp + 0x24]
lea eax, [esp + 0x18]
push eax
call fcn.10020a80
mov eax, dword [0x10081e90]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x10081e8c], 0xa
setl al
or al, cl
mov ecx, dword [0x1008287c]
mov dword [esp + 4], ecx
mov ecx, dword [0x10082878]
mov dword [esp + 8], ecx
mov ebx, dword [0x10082884]
mov edi, dword [0x10082880]
jne 0x100215c3
mov ecx, dword [esp + 4]
lea esi, [ecx + 1]
imul esi, ecx
and esi, 1
jmp 0x100216d5
cmp edx, 0xa
jl 0x10021538
test esi, esi
je 0x10021538
jmp 0x10021810
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 4]
lea esi, [ecx + 1]
imul esi, ecx
and esi, 1
sete dl
cmp dword [esp + 8], 0xa
setl ah
or ah, dl
cmp ah, 1
je 0x100215f8
lea edx, [ebx + 1]
imul edx, ebx
and edx, 1
jmp 0x1002169b
lea edx, [ebx + 1]
imul edx, ebx
and edx, 1
cmp edi, 0xa
jl 0x1002160e
test edx, edx
jne 0x100217b0
test ah, ah
je 0x1002169b
test al, al
je 0x100216d5
push dword [esp + 0x10]
push dword [esp + 0x1c]
push dword [esp + 0x14]
lea eax, [esp + 0x6c]
push eax
call fcn.10021850
add esp, 0x10
lea ecx, [esp + 0x78]
call fcn.10001770
lea ecx, [esp + 0x24]
call fcn.10001ba0
lea ecx, [esp + 0x3c0]
call fcn.10001770
lea ecx, [esp + 0x3d8]
call fcn.10001770
lea ecx, [esp + 0x3f0]
call fcn.10001770
lea ecx, [esp + 0x408]
call fcn.10001770
lea ecx, [esp + 0x420]
call fcn.10001770
mov eax, dword [esp + 0x14]
lea esi, [esp + 0x90]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
jmp 0x10020f47
cmp edi, 0xa
jl 0x100216b6
test edx, edx
je 0x100216b6
lea ecx, [ebx + 1]
imul ecx, ebx
xor edx, edx
test cl, 1
je 0x100216bf
jmp 0x10021820
lea edx, [ebx + 1]
imul edx, ebx
and edx, 1
cmp edi, 0xa
jl 0x100215f8
test edx, edx
je 0x100215f8
jmp 0x100217d0
test esi, esi
sete cl
cmp dword [esp + 8], 0xa
setl dl
or dl, cl
cmp dl, 1
je 0x100216f4
lea esi, [ebx + 1]
imul esi, ebx
and esi, 1
jmp 0x10021712
lea esi, [ebx + 1]
imul esi, ebx
and esi, 1
cmp edi, 0xa
jl 0x1002170a
test esi, esi
jne 0x100217c0
test dl, dl
jne 0x100215c3
cmp edi, 0xa
jl 0x1002172d
test esi, esi
je 0x1002172d
lea ecx, [ebx + 1]
imul ecx, ebx
xor esi, esi
test cl, 1
je 0x10021736
jmp 0x10021830
lea esi, [ebx + 1]
imul esi, ebx
and esi, 1
cmp edi, 0xa
jl 0x100216f4
test esi, esi
je 0x100216f4
nop
jmp 0x10021740
jmp 0x10021750
jmp 0x10021760
jmp 0x10021770
jmp 0x10021780
jmp 0x10021790
jmp 0x100217a0
jmp 0x100217b0
jmp 0x100217c0
jmp 0x100217d0
jmp 0x100217e0
jmp 0x100217f0
jmp 0x10021800
jmp 0x10021810
jmp 0x10021820
jmp 0x10021830
mov ecx, dword [esp + 0x438]
xor ecx, ebp
call fcn.10035778
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret