Function at 0x524c9c
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x163
push 0
push 0
dec ecx
jne 0x524ca5
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, eax
lea edi, [ebp - 0x164]
push ecx
xor ecx, ecx
mov cl, byte [esi]
inc ecx
rep movsb byte es:[edi], byte [esi]
pop ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
xor eax, eax
push ebp
push 0x5255b6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
mov word [eax], 0x2d
mov byte [ebp - 0x11], 0
lea edx, [ebp - 0xabc]
xor eax, eax
call fcn.004049bc
mov edx, dword [ebp - 0xabc]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.0040a390
lea eax, [ebp - 0x464]
lea edx, [ebp - 0x264]
call fcn.00409b8c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c28
mov eax, dword [ebp - 0xc]
mov byte [eax], 0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x164]
call fcn.00523a1c
test al, al
je 0x524e6d
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0
jne 0x524e6d
mov eax, dword [ebp - 0x10]
cmp word [eax], 0xf8
jne 0x524e6d
mov byte [ebp - 0x11], 1
jmp 0x52558d
lea eax, [ebp - 0xac4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xac4]
lea eax, [ebp - 0xac0]
mov edx, 0x5255d4
call fcn.00409de0
mov edx, dword [ebp - 0xac0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
mov edx, 0x525604
lea eax, [ebp - 0x6b4]
call fcn.00405098
mov edx, 4
lea eax, [ebp - 0x6b4]
call fcn.004063d0
call fcn.00404780
test eax, eax
jne 0x524f36
lea eax, [ebp - 0x6b4]
call fcn.00405434
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x6b4]
call fcn.0040520c
cmp dword [ebp - 0x54], 0x46
je 0x524fa7
lea eax, [ebp - 0xacc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xacc]
lea eax, [ebp - 0xac8]
mov edx, 0x525628
call fcn.00409de0
mov edx, dword [ebp - 0xac8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
jmp 0x52558d
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x164]
call fcn.00523a1c
test al, al
je 0x524f66
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0
jne 0x524f66
mov eax, dword [ebp - 0x10]
cmp word [eax], 0xf8
jne 0x524f66
mov byte [ebp - 0x11], 1
jmp 0x52558d
lea eax, [ebp - 0xad4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xad4]
lea eax, [ebp - 0xad0]
mov edx, 0x525658
call fcn.00409de0
mov edx, dword [ebp - 0xad0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
jmp 0x52558d
mov edx, 4
lea eax, [ebp - 0x6b4]
call fcn.004063d0
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x8305a4d
je 0x52501a
lea eax, [ebp - 0xadc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xadc]
lea eax, [ebp - 0xad8]
mov edx, 0x525688
call fcn.00409de0
mov edx, dword [ebp - 0xad8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x52558d
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x6b2d626a
je 0x52507d
lea eax, [ebp - 0xae4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xae4]
lea eax, [ebp - 0xae0]
mov edx, 0x5256bc
call fcn.00409de0
mov edx, dword [ebp - 0xae0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x52558d
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x642e7965
je 0x5250e0
lea eax, [ebp - 0xaec]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xaec]
lea eax, [ebp - 0xae8]
mov edx, 0x5256f0
call fcn.00409de0
mov edx, dword [ebp - 0xae8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x52558d
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x6c6c
je 0x525143
lea eax, [ebp - 0xaf4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xaf4]
lea eax, [ebp - 0xaf0]
mov edx, 0x525724
call fcn.00409de0
mov edx, dword [ebp - 0xaf0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x52558d
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x1b00
je 0x5251a6
lea eax, [ebp - 0xafc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xafc]
lea eax, [ebp - 0xaf8]
mov edx, 0x525758
call fcn.00409de0
mov edx, dword [ebp - 0xaf8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x52558d
lea edx, [ebp - 8]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 4]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
fld qword [ebp - 8]
fcomp dword [0x525780]
wait
fnstsw ax
sahf
jne 0x5251da
mov dword [ebp - 0x64], 0x3e7
jmp 0x5251ea
call fcn.00425494
fsubr qword [ebp - 8]
call fcn.00404c78
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x54], 8
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xb
jne 0x5251f1
mov dword [ebp - 0x54], 1
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xb
jne 0x52520f
mov dword [ebp - 0x54], 1
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xb
jne 0x52522d
mov dword [ebp - 0x54], 1
lea edx, [ebp - 0x24]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xb
jne 0x52524b
mov dword [ebp - 0x54], 1
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xb
jne 0x525269
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x38]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x3c]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x40]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x44]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x48]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x4c]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x50]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
lea edx, [ebp - 0x2c]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x30], 9
jne 0x525386
cmp dword [ebp - 0x34], 2
jne 0x525386
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 8]
jne 0x525386
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x3c]
jne 0x525386
cmp dword [ebp - 0x40], 9
jne 0x525386
cmp dword [ebp - 0x44], 2
jne 0x525386
cmp dword [ebp - 0x64], 0
jg 0x525386
lea eax, [ebp - 0xb04]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d38
mov ecx, dword [ebp - 0xb04]
lea eax, [ebp - 0xb00]
mov edx, 0x525790
call fcn.00409de0
mov edx, dword [ebp - 0xb00]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d64
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x52558d
lea eax, [ebp - 0x6b4]
call fcn.0040520c
not dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
je 0x5253b2
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x5257b4
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x52558d
push 0x200
lea eax, [ebp - 0xab8]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x58]
push eax
push 0x200
lea eax, [ebp - 0x8b8]
push eax
push 0x5257d8
call sub.kernel32.dll_GetVolumeInformationW
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x58]
je 0x5253fe
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x5257e0
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x52558d
mov eax, dword [ebp - 0x20]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b404
lea eax, [ebp - 0x264]
lea edx, [ebp - 0x364]
call fcn.00409b8c
mov eax, dword [ebp - 0x24]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b404
lea eax, [ebp - 0xb08]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.00409d38
lea eax, [ebp - 0xb08]
push eax
lea eax, [ebp - 0xb0c]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.00409d38
mov edx, dword [ebp - 0xb0c]
pop eax
call fcn.00409d88
mov edx, dword [ebp - 0xb08]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409d64
mov eax, dword [ebp - 0x28]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b404
lea eax, [ebp - 0xb10]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.00409d38
lea eax, [ebp - 0xb10]
push eax
lea eax, [ebp - 0xb14]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.00409d38
mov edx, dword [ebp - 0xb14]
pop eax
call fcn.00409d88
mov edx, dword [ebp - 0xb10]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409d64
mov eax, dword [ebp - 0x2c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b404
lea eax, [ebp - 0xb18]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.00409d38
lea eax, [ebp - 0xb18]
push eax
lea eax, [ebp - 0xb1c]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.00409d38
mov edx, dword [ebp - 0xb1c]
pop eax
call fcn.00409d88
mov edx, dword [ebp - 0xb18]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409d64
lea eax, [ebp - 0x264]
lea edx, [ebp - 0x164]
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00409b1c
je 0x525581
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x525804
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x52558d
mov byte [ebp - 0x11], 1
mov eax, dword [ebp - 0x10]
mov word [eax], 0x6f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5255bd
lea eax, [ebp - 0xb1c]
mov edx, 0x18
call fcn.00409558
lea eax, [ebp - 0xabc]
call fcn.004094c8
ret