Function at 0x91020c
Capabilities:
Get disk information
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xe
push 0
push 0
dec ecx
jne 0x910214
push ecx
push ebx
push esi
push edi
mov eax, 0x910174
nop
nop
nop
nop
nop
xor eax, eax
push ebp
push 0x910ec0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x913778]
add eax, 5
mov dword [0x9146bc], eax
mov dword [0x9146c0], 0xd
call fcn.0090e4d8
cmp dword [0x91367c], 0x407e7e21
jne 0x9102d9
cmp dword [0x9136e8], 0x33435243
jne 0x9102d9
cmp dword [0x9136f4], 0x7e7e4032
jne 0x9102d9
cmp dword [0x9136fc], 0x407e7e21
jne 0x9102d9
cmp dword [0x913704], 0x33435243
jne 0x9102d9
cmp dword [0x913710], 0x7e7e4032
jne 0x9102d9
cmp dword [0x913774], 0x407e7e21
jne 0x9102d9
cmp dword [0x913784], 0x33435243
jne 0x9102d9
push 0x10
push 0
lea edx, [ebp - 0x10]
mov eax, 0x910ed8
call fcn.0090de20
mov eax, dword [ebp - 0x10]
call fcn.009017f4
push eax
push 0
call sub.user32.dll_MessageBoxA_1
jmp 0x910e98
call fcn.0090de60
mov eax, dword [0x9137c4]
cmp eax, 0x7e7e4032
je 0x91035a
cmp eax, dword [0x913778]
jne 0x910380
push 0x30
lea edx, [ebp - 0x14]
mov eax, 0x910ef4
call fcn.0090de20
mov eax, dword [ebp - 0x14]
call fcn.009017f4
push eax
lea edx, [ebp - 0x20]
xor eax, eax
call fcn.00900790
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.00904e04
push dword [ebp - 0x1c]
push 0x910f08
lea edx, [ebp - 0x24]
mov eax, 0x910f14
call fcn.0090de20
push dword [ebp - 0x24]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00901700
mov eax, dword [ebp - 0x18]
call fcn.009017f4
push eax
push 0
call sub.user32.dll_MessageBoxA_1
jmp 0x910380
push 0x10
push 0
lea edx, [ebp - 0x28]
mov eax, 0x910ed8
call fcn.0090de20
mov eax, dword [ebp - 0x28]
call fcn.009017f4
push eax
push 0
call sub.user32.dll_MessageBoxA_1
jmp 0x910e98
call fcn.0090e2fc
mov eax, dword [0x9136f8]
mov dword [0x91469c], eax
mov eax, dword [0x9146bc]
sub eax, 2
xor eax, dword [0x913778]
mov dword [0x9146ac], eax
je 0x9103c4
push dword [0x914af8]
call fcn.0090e69c
lea ecx, [0x914af8]
cmp eax, dword [ecx]
jne 0x9104af
call fcn.0090e2fc
pop ecx
pop edx
push 0x914ad4
call sub.kernel32.dll_GetSystemInfo
mov eax, dword [0x91469c]
mov dword [0x9146a0], eax
mov eax, dword [0x91469c]
mov dword [0x914664], eax
call fcn.0090e120
call fcn.0090af18
mov dword [0x9146a8], eax
push dword [0x914664]
call fcn.0090dfe0
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x910496
mov bl, 0x43
lea eax, [ebp - 0x2c]
mov edx, ebx
call fcn.0090158c
lea eax, [ebp - 0x2c]
mov edx, 0x910f34
call fcn.00901648
mov eax, dword [ebp - 0x2c]
call fcn.009017f4
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x91048c
mov eax, 0x914c10
xor ecx, ecx
mov edx, 0x400
call fcn.0090086c
mov byte [0x914c10], bl
push 0
push 0
push 0x9146ac
push 0x9146ac
push 0x914c11
push 0
push 0
lea eax, [ebp - 0x30]
mov edx, ebx
call fcn.0090158c
lea eax, [ebp - 0x30]
mov edx, 0x910f34
call fcn.00901648
mov eax, dword [ebp - 0x30]
call fcn.009017f4
push eax
call sub.kernel32.dll_GetVolumeInformationA
inc ebx
cmp bl, 0x5b
jne 0x91040f
mov eax, dword [0x9146bc]
mov dword [0x91467c], eax
pop ecx
lea eax, [0x9146a0]
cmp dword [eax], ecx
jne 0x9103a2
mov eax, dword [0x91377c]
call fcn.0090e69c
mov dword [0x914668], eax
mov eax, dword [0x914668]
mov ecx, 1
mov edx, dword [0x913780]
call fcn.0090ae8c
mov ebx, eax
lea edx, [ebp - 0x38]
mov eax, 0x910f40
call fcn.0090de20
mov eax, dword [ebp - 0x38]
push eax
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00900790
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x34]
pop edx
call fcn.00904cdc
mov edx, dword [ebp - 0x34]
mov eax, 0x9146e8
call fcn.00901438
mov dword [0x914680], ebx
mov eax, dword [0x9146e8]
call fcn.00904bac
test al, al
jne 0x9105a5
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x9105a5
lea eax, [ebp - 0x40]
call fcn.00904eb0
mov edx, dword [ebp - 0x40]
mov eax, 0x915014
call fcn.00901438
mov eax, dword [0x915014]
call fcn.00901640
mov edx, dword [0x915014]
cmp byte [edx + eax - 1], 0x5c
je 0x910569
mov eax, 0x915014
mov edx, 0x910f50
call fcn.00901648
lea edx, [ebp - 0x44]
mov eax, dword [0x9146e8]
call fcn.00904e04
mov ecx, dword [ebp - 0x44]
mov eax, 0x9146e8
mov edx, dword [0x915014]
call fcn.0090168c
mov eax, dword [0x9146e8]
call fcn.00904bac
test al, al
jne 0x9105a5
xor edx, edx
mov al, 1
call fcn.0090e6f8
jmp 0x910e98
call fcn.0090e2fc
mov dword [0x914684], ebx
mov eax, 0x9146ec
xor ecx, ecx
mov edx, 0x3e8
call fcn.0090086c
mov eax, dword [0x9146bc]
inc eax
mov dword [0x914688], eax
call fcn.0090e120
call fcn.0090fc44
test al, al
jne 0x9105e8
xor edx, edx
mov al, 2
call fcn.0090e6f8
jmp 0x910e98
xor eax, eax
mov dword [0x9146b4], eax
call fcn.00905878
call fcn.00900834
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
fild qword [ebp - 0x4c]
fstp qword [0x915018]
wait
fld qword [0x914a20]
call fcn.00900834
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
fild qword [ebp - 0x4c]
fstp qword [0x915020]
wait
fld qword [0x915020]
fcomp dword [0x910f54]
fnstsw ax
sahf
jne 0x91064d
mov eax, dword [0x915018]
mov dword [0x915020], eax
mov eax, dword [0x91501c]
mov dword [0x915024], eax
call fcn.0090e4d8
fld qword [0x915020]
fcomp qword [0x915018]
fnstsw ax
sahf
ja 0x910693
mov eax, dword [0x915018]
mov dword [0x914a20], eax
mov eax, dword [0x91501c]
mov dword [0x914a24], eax
mov dword [0x9146c4], 0xffffffff
mov dword [0x9146c8], 0xffffffff
xor ebx, ebx
jmp 0x9106bb
mov eax, dword [0x914a20]
mov dword [0x915018], eax
mov eax, dword [0x914a24]
mov dword [0x91501c], eax
xor eax, eax
mov dword [0x9146c4], eax
xor eax, eax
mov dword [0x9146c8], eax
mov bl, 1
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x910722
fld qword [0x9146f0]
fcomp dword [0x910f54]
fnstsw ax
sahf
je 0x910722
fld qword [0x9146f0]
call fcn.00900834
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
fild qword [ebp - 0x4c]
fcomp qword [0x915018]
fnstsw ax
sahf
jbe 0x910722
cmp dword [0x913798], 1
je 0x910714
call fcn.0090fd80
mov dl, 1
mov al, 3
call fcn.0090e6f8
jmp 0x910e98
or dword [0x9146b4], 8
xor eax, eax
mov dword [0x9146c4], eax
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x9107bc
fld qword [0x9146f8]
fcomp dword [0x910f54]
fnstsw ax
sahf
je 0x9107bc
fld qword [0x9146f8]
call fcn.00900834
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
fild qword [ebp - 0x4c]
fcomp qword [0x915018]
fnstsw ax
sahf
setb al
or al, bl
je 0x910794
cmp dword [0x913798], 1
je 0x910784
call fcn.0090fd80
mov dl, 1
mov al, 4
call fcn.0090e6f8
jmp 0x910e98
or dword [0x9146b4], 0x10
xor eax, eax
mov dword [0x9146c4], eax
jmp 0x9107bc
fld qword [0x9146f8]
call fcn.00900834
mov esi, eax
fld qword [0x915018]
call fcn.00900834
sub esi, eax
cmp esi, dword [0x9146c4]
jae 0x9107bc
mov dword [0x9146c4], esi
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x910819
cmp byte [0x914710], 0
je 0x910819
lea eax, [ebp - 0x50]
mov edx, 0x914710
call fcn.00901608
mov eax, dword [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, 0x910f60
call fcn.0090ea0c
mov edx, dword [ebp - 0x54]
pop eax
call fcn.00901750
je 0x910819
cmp dword [0x913798], 1
je 0x910812
mov dl, 1
mov al, 5
call fcn.0090e6f8
jmp 0x910e98
or dword [0x9146b4], 1
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x910876
cmp byte [0x914810], 0
je 0x910876
lea eax, [ebp - 0x58]
mov edx, 0x914810
call fcn.00901608
mov eax, dword [ebp - 0x58]
push eax
lea edx, [ebp - 0x5c]
mov eax, 0x910f78
call fcn.0090ea0c
mov edx, dword [ebp - 0x5c]
pop eax
call fcn.00901750
je 0x910876
cmp dword [0x913798], 1
je 0x91086f
mov dl, 1
mov al, 6
call fcn.0090e6f8
jmp 0x910e98
or dword [0x9146b4], 2
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x9108b7
cmp dword [0x914708], 0
je 0x9108b7
mov eax, dword [0x914708]
cmp eax, dword [0x9146a8]
je 0x9108b7
cmp dword [0x913798], 1
je 0x9108b0
mov dl, 1
mov al, 7
call fcn.0090e6f8
jmp 0x910e98
or dword [0x9146b4], 4
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x91092f
mov eax, dword [0x9139f0]
mov eax, dword [eax]
and eax, dword [0x914700]
je 0x91092f
mov esi, dword [0x9139f0]
mov esi, dword [esi]
not esi
and esi, dword [0x914700]
test esi, esi
jbe 0x910905
dec esi
cmp esi, dword [0x9146c8]
jae 0x9108f6
mov dword [0x9146c8], esi
mov eax, dword [0x9139f0]
or esi, dword [eax]
mov dword [0x914700], esi
jmp 0x91092f
cmp dword [0x913798], 1
je 0x910921
call fcn.0090fd80
mov dl, 1
mov al, 4
call fcn.0090e6f8
jmp 0x910e98
or dword [0x9146b4], 0x20
xor eax, eax
mov dword [0x9146c8], eax
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x910a12
mov eax, dword [0x9139f0]
mov eax, dword [eax]
and eax, dword [0x914704]
je 0x910a12
mov esi, dword [0x9139f0]
mov esi, dword [esi]
not esi
and esi, dword [0x914704]
test esi, esi
jbe 0x9109df
test bl, bl
jne 0x9109df
fld qword [0x915018]
fsub qword [0x915020]
fcomp dword [0x910f90]
fnstsw ax
sahf
jb 0x9109c3
cmp dword [0x914aac], 1
jne 0x9109c2
fld qword [0x915018]
fsub qword [0x915020]
mov dword [ebp - 0x4c], esi
xor eax, eax
mov dword [ebp - 0x48], eax
fild qword [ebp - 0x4c]
fcompp
fnstsw ax
sahf
jbe 0x9109be
fld qword [0x915018]
fsub qword [0x915020]
call fcn.00900834
sub esi, eax
jmp 0x9109c3
xor esi, esi
jmp 0x9109c3
dec esi
cmp esi, dword [0x9146c4]
jae 0x9109d1
mov dword [0x9146c4], esi
mov eax, dword [0x9139f0]
mov eax, dword [eax]
or eax, esi
mov dword [0x914704], eax
test esi, esi
setbe al
or bl, al
je 0x910a12
cmp dword [0x913798], 1
je 0x910a04
call fcn.0090fd80
mov dl, 1
mov al, 4
call fcn.0090e6f8
jmp 0x910e98
or dword [0x9146b4], 0x40
xor eax, eax
mov dword [0x9146c4], eax
call fcn.0090e2fc
call fcn.0090fd80
nop
nop
nop
nop
nop
call fcn.0090e4d8
mov eax, dword [0x913700]
add dword [0x9146a0], eax
mov eax, dword [0x9136f8]
mov dword [0x91469c], eax
mov eax, dword [0x91469c]
mov dword [0x914664], eax
xor esi, esi
mov ebx, 0x913714
cmp dword [ebx], 0
je 0x910a58
mov eax, ebx
call fcn.0090e8b8
inc esi
add ebx, 0xc
cmp esi, 8
jne 0x910a4c
mov eax, dword [0x914664]
mov edi, dword [eax + 0x3c]
add edi, dword [0x914664]
mov eax, dword [edi + 0x50]
mov dword [0x914698], eax
mov eax, dword [0x913688]
call fcn.0090e69c
mov ebx, eax
mov eax, ebx
call fcn.00910038
test al, al
je 0x910e98
call fcn.0090e4d8
mov eax, dword [0x913690]
call fcn.0090e69c
mov ebx, eax
cmp dword [0x9138d8], 0
jbe 0x910ab3
mov eax, ebx
call fcn.0090ff0c
mov eax, dword [0x913694]
cmp dword [0x9138dc], 0
jbe 0x910af1
mov edx, ebx
mov ecx, 1
xchg edx, eax
call fcn.0090ae8c
and eax, 0xffff
mov edx, dword [0x9138dc]
and edx, 0xffff
cmp eax, edx
je 0x910af1
xor edx, edx
mov al, 8
call fcn.0090e6f8
jmp 0x910e98
call fcn.0090e4d8
sub dword [0x9146a0], 0x800
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x910c26
cmp dword [0x913798], 1
jne 0x910c26
mov eax, dword [0x9137a4]
call fcn.0090e69c
mov edx, eax
mov eax, 0x914a10
mov ecx, 0x10
call fcn.009006d8
mov eax, dword [0x9137b0]
call fcn.0090e69c
mov ebx, eax
lea eax, [ebp - 0x60]
mov edx, 0x914a2c
call fcn.00901608
mov edx, dword [ebp - 0x60]
mov eax, ebx
call fcn.00904f9c
mov eax, dword [0x91379c]
call fcn.0090e69c
mov dword [0x91466c], eax
mov eax, dword [0x91466c]
mov edx, dword [0x9146b4]
mov dword [eax], edx
mov eax, dword [0x9137a0]
call fcn.0090e69c
mov edx, dword [0x9146a8]
mov dword [eax], edx
mov eax, dword [0x9137a8]
call fcn.0090e69c
mov edx, dword [0x9146c4]
mov dword [eax], edx
mov eax, dword [0x9137ac]
call fcn.0090e69c
mov edx, dword [0x9146c8]
mov dword [eax], edx
mov eax, dword [0x9137b4]
call fcn.0090e69c
mov edx, dword [0x9146d0]
mov dword [eax], edx
mov edx, dword [0x9146d4]
mov dword [eax + 4], edx
mov eax, dword [0x9137b8]
call fcn.0090e69c
mov dword [0x914670], eax
mov eax, dword [0x914670]
mov edx, dword [0x9146d8]
mov dword [eax], edx
mov edx, dword [0x9146dc]
mov dword [eax + 4], edx
mov eax, dword [0x9137bc]
call fcn.0090e69c
mov dword [0x914674], eax
mov eax, dword [0x914674]
mov edx, dword [0x9146e0]
mov dword [eax], edx
mov eax, dword [0x9137c0]
call fcn.0090e69c
mov dword [0x914678], eax
mov eax, dword [0x914678]
mov edx, dword [0x9146e4]
mov dword [eax], edx
call sub.kernel32.dll_GetCurrentProcess
mov dword [0x91468c], eax
mov dword [0x914694], 0x138
push 0x9146a4
push 4
mov eax, dword [0x914694]
push eax
mov eax, dword [0x914664]
push eax
mov eax, dword [0x91468c]
push eax
call sub.kernel32.dll_VirtualProtectEx
test eax, eax
je 0x910ca2
xor esi, esi
mov ebx, 0x913680
cmp esi, 0xb
je 0x910c75
mov eax, dword [ebx]
mov dword [edi + esi*8 + 0x78], eax
mov eax, dword [ebx + 4]
mov dword [edi + esi*8 + 0x7c], eax
inc esi
add ebx, 8
cmp esi, 0xd
jne 0x910c63
push 0x9146a4
mov eax, dword [0x9146a4]
push eax
mov eax, dword [0x914694]
push eax
mov eax, dword [0x914664]
push eax
mov eax, dword [0x91468c]
push eax
call sub.kernel32.dll_VirtualProtectEx
jmp 0x910cae
xor eax, eax
call fcn.0090e6a4
jmp 0x910e98
call fcn.0090e4d8
mov eax, dword [0x91377c]
call fcn.0090e69c
mov dword [0x914668], eax
mov eax, dword [0x914668]
mov ecx, 1
mov edx, dword [0x913780]
call fcn.0090ae8c
mov ebx, eax
mov eax, dword [0x9146bc]
add eax, 8
cmp ebx, eax
jne 0x910d22
mov eax, dword [0x9146c0]
add dword [0x9146a0], eax
xor eax, eax
push ebp
push 0x910d0f
push dword fs:[eax]
mov dword fs:[eax], esp
push dword [0x9146a0]
ret
mov eax, dword [0x9146bc]
add dword [0x9146a0], eax
xor eax, eax
push ebp
push 0x910d4b
push dword fs:[eax]
mov dword fs:[eax], esp
call dword [0x9146a0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x910d5c
xor edx, edx
mov al, 8
call fcn.0090e6f8
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x910d8c
mov eax, dword [0x9136f8]
mov dword [0x91469c], eax
mov eax, dword [0x913700]
add eax, dword [0x91469c]
mov dword [0x9146a0], eax
mov ebx, dword [0x913710]
call fcn.0090de60
cmp ebx, dword [0x9146bc]
je 0x910e42
cmp dword [0x914708], 0
je 0x910e42
mov eax, dword [0x914708]
cmp eax, dword [0x9146a8]
je 0x910e42
or dword [0x9146b4], 4
cmp dword [0x913798], 1
je 0x910e42
push 0x10
lea edx, [ebp - 0x64]
mov eax, 0x910f9c
call fcn.0090de20
mov eax, dword [ebp - 0x64]
call fcn.009017f4
push eax
lea eax, [ebp - 0x6c]
mov edx, 0x914910
call fcn.00901608
push dword [ebp - 0x6c]
push 0x910fb8
lea edx, [ebp - 0x70]
mov eax, 0x910fc4
call fcn.0090de20
push dword [ebp - 0x70]
lea ecx, [ebp - 0x74]
mov eax, 0x9146a8
mov edx, 4
call fcn.0090acf8
push dword [ebp - 0x74]
lea eax, [ebp - 0x68]
mov edx, 4
call fcn.00901700
mov eax, dword [ebp - 0x68]
call fcn.009017f4
push eax
push 0
call sub.user32.dll_MessageBoxA_1
jmp 0x910e98
mov eax, dword [0x9146b4]
call fcn.0090e69c
mov dword [0x914668], eax
mov eax, dword [0x914668]
mov ecx, 1
mov edx, dword [0x913780]
call fcn.0090ae8c
mov ebx, eax
mov eax, ebx
call fcn.0090e69c
mov dword [0x91466c], eax
mov eax, dword [0x9137c4]
cmp eax, dword [0x913778]
je 0x910e89
jmp dword [0x91466c]
jmp dword [0x914668]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x910ec7
lea eax, [ebp - 0x74]
mov edx, 0xa
call fcn.00901408
lea eax, [ebp - 0x44]
mov edx, 0xe
call fcn.00901408
ret