Function at 0x10002f50
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003c028
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
push esi
mov dword [ebp - 4], 0
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov byte [ebp - 4], 1
xor esi, esi
mov dword [ebp - 0x24], 0
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dl, 0x47
mov byte [ebp - 0x11], 0
mov byte [ebp - 0x16], dl
mov edi, eax
movsx edx, dl
mov al, 0x36
mov cl, 0x48
mov ch, 0x41
mov ah, al
and edx, 0x8000000f
jns 0x10002fc6
dec edx
or edx, 0xfffffff0
inc edx
sub cl, dl
mov byte [ebp - 0x11], 0
sub ch, dl
mov byte [ebp - 0x15], cl
sub al, dl
mov byte [ebp - 0x14], ch
sub ah, dl
mov byte [ebp - 0x13], al
lea ecx, [ebp - 0x15]
mov byte [ebp - 0x12], ah
mov dword [ebp - 0x64], esi
lea edx, [ecx + 1]
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10002ff2
sub ecx, edx
lea eax, [ebp - 0x15]
push ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.10001d00
mov byte [ebp - 4], 2
mov dword [ebp - 0x1c], 0x12b
mov eax, dword [ebp - 0x1c]
xor eax, 0x12b
cmp edi, eax
je 0x100030ab
mov dword [ebp - 0x2c], 0x4a4
mov dword [ebp - 0x20], 0xb4
mov dword [ebp - 0x1c], 0x12b
nop dword [eax + eax]
mov eax, dword [ebp - 0x2c]
xor eax, 0x4a5
test edi, eax
je 0x10003087
cmp dword [ebp - 0x60], 0x10
lea ecx, [ebp - 0x24]
push 0
push 0
push 0
push 0
push ecx
push 0
lea eax, [ebp - 0x74]
cmovae eax, dword [ebp - 0x74]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
je 0x10003075
add esi, dword [ebp - 0x24]
mov dword [ebp - 0x24], 0x386
mov eax, dword [ebp - 0x24]
xor eax, 0x386
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x60], 0x10
lea eax, [ebp - 0x74]
mov ecx, dword [ebp - 0x20]
cmovae eax, dword [ebp - 0x74]
xor ecx, 0xb5
shr edi, cl
inc byte [eax]
mov eax, dword [ebp - 0x1c]
xor eax, 0x12b
cmp edi, eax
jne 0x10003040
mov dword [ebp - 0x20], 0x168
lea edi, [ebp - 0xaf]
mov ecx, dword [ebp - 0x20]
mov eax, esi
xor ecx, 0x16b
shr eax, cl
add esi, eax
mov dword [ebp - 0x1c], esi
nop word [eax + eax]
mov eax, 0xcccccccd
dec edi
mul esi
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
mov esi, edx
add cl, al
mov eax, dword [ebp - 0x1c]
add cl, cl
sub al, cl
add al, 0x30
mov byte [edi], al
mov eax, edx
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x100030d0
lea eax, [ebp - 0xaf]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
cmp edi, eax
je 0x1000312b
sub eax, edi
lea ecx, [ebp - 0x94]
push eax
push edi
call fcn.10001d00
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x1000315f
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10003155
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100033f7
push edx
push ecx
call fcn.1001a1f6
add esp, 8
movups xmm0, xmmword [ebp - 0x94]
mov dword [ebp - 0x20], 0x1ba
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x84]
xor edx, 0x1b8
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], 0
movups xmmword [ebp - 0x44], xmm0
movq xmm0, qword [ebp - 0x84]
movq qword [ebp - 0x34], xmm0
cmp eax, edx
jb 0x100033f2
sub eax, edx
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x94]
push ecx
add eax, edx
lea ecx, [ebp - 0xac]
push eax
call fcn.10001d00
lea eax, [ebp - 0xac]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x44]
call fcn.10003400
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x98]
cmp edx, 0x10
jb 0x10003229
mov ecx, dword [ebp - 0xac]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000321f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100033f7
push edx
push ecx
call fcn.1001a1f6
add esp, 8
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
mov byte [ebp - 4], 4
xor ecx, ecx
cmp ecx, dword [ebp - 0x34]
jae 0x100032ff
mov dword [ebp - 0x20], 0x5f2
lea esi, [ecx + 1]
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x48]
xor eax, 0x5f3
test esi, eax
lea eax, [ebp - 0x44]
je 0x100032b1
cmp dword [ebp - 0x30], 0x10
mov edx, dword [ebp - 0x4c]
cmovae eax, dword [ebp - 0x44]
mov cl, byte [eax + ecx]
add cl, 0x40
mov byte [ebp - 0x2c], cl
cmp edx, edi
jae 0x1000329a
lea eax, [edx + 1]
cmp edi, 0x10
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
mov byte [eax + edx], cl
mov ecx, esi
mov byte [eax + edx + 1], 0
jmp 0x10003241
push dword [ebp - 0x2c]
mov byte [ebp - 0x1c], 0
push dword [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.10001e30
mov ecx, esi
jmp 0x10003241
cmp dword [ebp - 0x30], 0x10
cmovae eax, dword [ebp - 0x44]
mov dl, byte [eax + ecx]
mov ecx, dword [ebp - 0x4c]
mov byte [ebp - 0x78], dl
cmp ecx, edi
jae 0x100032e5
lea eax, [ecx + 1]
cmp edi, 0x10
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
mov ecx, esi
jmp 0x10003241
push dword [ebp - 0x78]
mov byte [ebp - 0x7c], 0
push dword [ebp - 0x7c]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.10001e30
mov ecx, esi
jmp 0x10003241
mov esi, dword [ebp - 0x28]
movups xmm0, xmmword [ebp - 0x5c]
mov edx, dword [ebp - 0x60]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x4c]
movq qword [esi + 0x10], xmm0
cmp edx, 0x10
jb 0x10003355
mov ecx, dword [ebp - 0x74]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000334b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100033f7
push edx
push ecx
call fcn.1001a1f6
add esp, 8
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
cmp edx, 0x10
jb 0x10003397
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000338d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100033f7
push edx
push ecx
call fcn.1001a1f6
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10003480
call fcn.10020517
int3