Function at 0x1003ec20
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006be75
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf4
mov dword [ebp - 0x14], 0x53b26bdd
mov dword [ebp - 0xbc], 0xf5ecce35
mov dword [ebp - 0x14], 0
jmp 0x1003ec5f
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xfffffffa
jg 0x1003ee31
mov dword [ebp - 0x2c], 0xb999fb0
mov dword [ebp - 0x64], 0xa2c39d5b
push 1
lea ecx, [ebp - 0xe0]
call fcn.1000bc50
and dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
jmp 0x1003ec98
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x1003ecae
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x100], 0xfffffffb
jmp 0x1003ec91
mov dword [ebp - 0x18], 0
jmp 0x1003ecbe
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 1
jge 0x1003ecd7
push dword [ebp - 0x18]
lea ecx, [ebp - 0xe0]
call fcn.1000bcce
or dword [eax], 0xffffffff
jmp 0x1003ecb7
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x74], eax
push 4
pop eax
shl eax, 1
mov ecx, dword [ebp - 0x74]
mov dword [ebp + eax - 0x100], ecx
cmp dword [ebp - 0x74], 0x307a329f
jl 0x1003ecfe
mov dword [ebp - 0x54], 1
jmp 0x1003ed02
and dword [ebp - 0x54], 0
cmp dword [ebp - 0x54], 0x24891023
jl 0x1003ed1d
cmp dword [ebp - 0x2c], 0
je 0x1003ed1d
mov dword [ebp - 0xac], 1
jmp 0x1003ed24
and dword [ebp - 0xac], 0
mov eax, dword [ebp - 0xac]
sub eax, dword [ebp - 0x14]
cmp eax, 1
jbe 0x1003ed3b
mov dword [ebp - 0x5c], 1
jmp 0x1003ed3f
and dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x5c]
jne 0x1003ed56
mov dword [ebp - 0xa4], 1
jmp 0x1003ed5d
and dword [ebp - 0xa4], 0
mov eax, dword [ebp - 0xa4]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x64], eax
jle 0x1003ed7d
mov dword [ebp - 0x90], 1
jmp 0x1003ed84
and dword [ebp - 0x90], 0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x90], eax
jge 0x1003ed98
mov dword [ebp - 0x6c], 1
jmp 0x1003ed9c
and dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x6c], eax
jne 0x1003edb0
mov dword [ebp - 0x98], 1
jmp 0x1003edb7
and dword [ebp - 0x98], 0
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x98], eax
je 0x1003edcb
mov dword [ebp - 0x3c], 1
jmp 0x1003edcf
and dword [ebp - 0x3c], 0
push 0
lea ecx, [ebp - 0xe0]
call fcn.1000bcce
mov ecx, dword [ebp - 0x3c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], eax
jl 0x1003edf5
mov dword [ebp - 0x4c], 1
jmp 0x1003edf9
and dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xbc], eax
mov byte [ebp - 0x24], 0
movzx eax, byte [ebp - 0x24]
test eax, eax
je 0x1003ee1d
push 0xe1f
push 0
push 0
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe0]
call fcn.1000bcb2
jmp 0x1003ec58
mov dword [ebp - 0x10], 0x42c7
mov dword [ebp - 0x68], 0xf8067e3
mov dword [ebp - 0x44], 4
mov dword [ebp - 0x40], 0x441791e6
push 3
lea ecx, [ebp - 0xd4]
call fcn.1000bc50
mov dword [ebp - 4], 1
mov dword [ebp - 0x78], 0xbb1300ca
mov dword [ebp - 0xc4], 0x2967684a
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0x34], 0
jmp 0x1003ee8c
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 3
jge 0x1003eea8
push dword [ebp - 0x34]
lea ecx, [ebp - 0xd4]
call fcn.1000bcce
mov dword [eax], 5
jmp 0x1003ee85
mov dword [ebp - 0x10], 0xfffffff8
cmp dword [ebp - 0x10], 0xfffffffc
jb 0x1003eec1
mov dword [ebp - 0xa0], 1
jmp 0x1003eec8
and dword [ebp - 0xa0], 0
cmp dword [ebp - 0xa0], 0x478c9dff
jne 0x1003eedd
mov dword [ebp - 0x7c], 1
jmp 0x1003eee1
and dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0xfff7
ja 0x1003eefc
mov dword [ebp - 0xa8], 1
jmp 0x1003ef03
and dword [ebp - 0xa8], 0
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xa8]
cmp dword [ebp - 0x10], eax
jne 0x1003ef1d
mov dword [ebp - 0x84], 1
jmp 0x1003ef24
and dword [ebp - 0x84], 0
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x84], eax
jl 0x1003ef3b
mov dword [ebp - 0xb0], 1
jmp 0x1003ef42
and dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0xb0], eax
jge 0x1003ef59
mov dword [ebp - 0x8c], 1
jmp 0x1003ef60
and dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x8c], eax
jg 0x1003ef77
mov dword [ebp - 0xb8], 1
jmp 0x1003ef7e
and dword [ebp - 0xb8], 0
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x94], eax
push 2
lea ecx, [ebp - 0xd4]
call fcn.1000bcce
mov ecx, dword [ebp - 0x94]
mov dword [eax], ecx
cmp dword [ebp - 0x94], 0
jne 0x1003efbd
cmp dword [ebp - 0x44], 0
jne 0x1003efbd
and dword [ebp - 0xb4], 0
jmp 0x1003efc7
mov dword [ebp - 0xb4], 1
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0xb4], eax
jle 0x1003efde
mov dword [ebp - 0x9c], 1
jmp 0x1003efe5
and dword [ebp - 0x9c], 0
mov eax, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x10]
jne 0x1003efff
cmp dword [ebp - 0x40], 0
je 0x1003efff
mov dword [ebp - 0x50], 1
jmp 0x1003f003
and dword [ebp - 0x50], 0
cmp dword [ebp - 0x50], 0xffffffff
jb 0x1003f012
mov dword [ebp - 0x58], 1
jmp 0x1003f016
and dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x58], eax
jle 0x1003f027
mov dword [ebp - 0x60], 1
jmp 0x1003f02b
and dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x60]
dec eax
imul eax, eax, 0x7279
cmp dword [ebp - 0x68], eax
jle 0x1003f049
mov dword [ebp - 0x70], 1
jmp 0x1003f04d
and dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x70]
add eax, 0x2e8326ad
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xc4], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd4]
call fcn.1000bcb2
mov byte [ebp - 0x25], 0
movzx eax, byte [ebp - 0x25]
test eax, eax
je 0x1003f0c7
mov dword [ebp - 0xe8], 0xaf43
mov byte [ebp - 0x22], 0
movzx eax, byte [ebp - 0x22]
test eax, eax
je 0x1003f0a2
push 0x89b
push 0x163f
call dword [sym.imp.USER32.dll_SetCaretPos]
mov byte [ebp - 0x26], 0
movzx eax, byte [ebp - 0x26]
test eax, eax
je 0x1003f0b8
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
push 0xe1f
push 0
push 0
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov dword [ebp - 0x20], 0xd5e48d32
mov dword [ebp - 0x1c], 0x91cb4e76
mov dword [ebp - 0x48], 0xffffffff
mov dword [ebp - 0x38], 0
jmp 0x1003f0ec
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 1
jge 0x1003f102
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0xc8], 0x66c1932e
jmp 0x1003f0e5
mov dword [ebp - 0x20], 0xffffffea
jmp 0x1003f112
mov eax, dword [ebp - 0x20]
dec eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xffffffe9
jg 0x1003f21d
mov dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xf4], eax
mov eax, 0x30cc2fdc
sub eax, dword [ebp - 0x20]
cmp eax, 1
jg 0x1003f154
mov dword [ebp - 0x80], 1
jmp 0x1003f158
and dword [ebp - 0x80], 0
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x30]
jl 0x1003f16f
mov dword [ebp - 0x88], 1
jmp 0x1003f176
and dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x88]
neg eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + ecx - 0x3703aa75]
test eax, eax
je 0x1003f1c8
mov byte [ebp - 0x21], 0
movzx eax, byte [ebp - 0x21]
test eax, eax
je 0x1003f1a6
push 0
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
mov byte [ebp - 0x28], 0
movzx eax, byte [ebp - 0x28]
test eax, eax
je 0x1003f1c6
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
jmp 0x1003f218
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x1c], 0
jmp 0x1003f1de
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x2e
jg 0x1003f218
mov dword [ebp - 0x48], 0xfffffffb
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp - 0x48]
mov dword [ebp + eax - 0xc8], ecx
mov byte [ebp - 0x23], 0
movzx eax, byte [ebp - 0x23]
test eax, eax
je 0x1003f216
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_TranslateMDISysAccel]
jmp 0x1003f1d7
jmp 0x1003f10b
mov dword [ebp - 0x1c], 0x16
jmp 0x1003f22d
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x26
jge 0x1003f25e
mov dword [ebp - 0xc0], 1
cmp dword [ebp - 0xc0], 0
je 0x1003f248
jmp 0x1003f25e
mov byte [ebp - 0x27], 0
movzx eax, byte [ebp - 0x27]
test eax, eax
je 0x1003f25c
push 0
call dword [sym.imp.USER32.dll_RegisterClassW]
jmp 0x1003f226
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret