Function at 0x524914
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x163
push 0
push 0
dec ecx
jne 0x52491d
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 0x52522e
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.00409fc4
lea eax, [ebp - 0x464]
lea edx, [ebp - 0x264]
call fcn.004097c0
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.0040985c
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.00523694
test al, al
je 0x524ae5
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0
jne 0x524ae5
mov eax, dword [ebp - 0x10]
cmp word [eax], 0xf8
jne 0x524ae5
mov byte [ebp - 0x11], 1
jmp 0x525205
lea eax, [ebp - 0xac4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xac4]
lea eax, [ebp - 0xac0]
mov edx, 0x52524c
call fcn.00409a14
mov edx, dword [ebp - 0xac0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
mov edx, 0x52527c
lea eax, [ebp - 0x6b4]
call fcn.00405098
mov edx, 4
lea eax, [ebp - 0x6b4]
call fcn.00405fdc
call fcn.00404780
test eax, eax
jne 0x524bae
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 0x524c1f
lea eax, [ebp - 0xacc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xacc]
lea eax, [ebp - 0xac8]
mov edx, 0x5252a0
call fcn.00409a14
mov edx, dword [ebp - 0xac8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
jmp 0x525205
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x164]
call fcn.00523694
test al, al
je 0x524bde
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0
jne 0x524bde
mov eax, dword [ebp - 0x10]
cmp word [eax], 0xf8
jne 0x524bde
mov byte [ebp - 0x11], 1
jmp 0x525205
lea eax, [ebp - 0xad4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xad4]
lea eax, [ebp - 0xad0]
mov edx, 0x5252d0
call fcn.00409a14
mov edx, dword [ebp - 0xad0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
jmp 0x525205
mov edx, 4
lea eax, [ebp - 0x6b4]
call fcn.00405fdc
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x8305a4d
je 0x524c92
lea eax, [ebp - 0xadc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xadc]
lea eax, [ebp - 0xad8]
mov edx, 0x525300
call fcn.00409a14
mov edx, dword [ebp - 0xad8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x525205
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x6b2d626a
je 0x524cf5
lea eax, [ebp - 0xae4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xae4]
lea eax, [ebp - 0xae0]
mov edx, 0x525334
call fcn.00409a14
mov edx, dword [ebp - 0xae0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x525205
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x642e7965
je 0x524d58
lea eax, [ebp - 0xaec]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xaec]
lea eax, [ebp - 0xae8]
mov edx, 0x525368
call fcn.00409a14
mov edx, dword [ebp - 0xae8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x525205
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x6c6c
je 0x524dbb
lea eax, [ebp - 0xaf4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xaf4]
lea eax, [ebp - 0xaf0]
mov edx, 0x52539c
call fcn.00409a14
mov edx, dword [ebp - 0xaf0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x525205
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x1b00
je 0x524e1e
lea eax, [ebp - 0xafc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xafc]
lea eax, [ebp - 0xaf8]
mov edx, 0x5253d0
call fcn.00409a14
mov edx, dword [ebp - 0xaf8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x525205
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 [0x5253f8]
wait
fnstsw ax
sahf
jne 0x524e52
mov dword [ebp - 0x64], 0x3e7
jmp 0x524e62
call fcn.004250c8
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 0x524e69
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 0x524e87
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 0x524ea5
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 0x524ec3
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 0x524ee1
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 0x524ffe
cmp dword [ebp - 0x34], 2
jne 0x524ffe
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 8]
jne 0x524ffe
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x3c]
jne 0x524ffe
cmp dword [ebp - 0x40], 9
jne 0x524ffe
cmp dword [ebp - 0x44], 2
jne 0x524ffe
cmp dword [ebp - 0x64], 0
jg 0x524ffe
lea eax, [ebp - 0xb04]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.0040996c
mov ecx, dword [ebp - 0xb04]
lea eax, [ebp - 0xb00]
mov edx, 0x525408
call fcn.00409a14
mov edx, dword [ebp - 0xb00]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409998
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x525205
lea eax, [ebp - 0x6b4]
call fcn.0040520c
not dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
je 0x52502a
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x52542c
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x525205
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 0x525450
call sub.kernel32.dll_GetVolumeInformationW
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x58]
je 0x525076
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x525458
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x525205
mov eax, dword [ebp - 0x20]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b038
lea eax, [ebp - 0x264]
lea edx, [ebp - 0x364]
call fcn.004097c0
mov eax, dword [ebp - 0x24]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b038
lea eax, [ebp - 0xb08]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.0040996c
lea eax, [ebp - 0xb08]
push eax
lea eax, [ebp - 0xb0c]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.0040996c
mov edx, dword [ebp - 0xb0c]
pop eax
call fcn.004099bc
mov edx, dword [ebp - 0xb08]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409998
mov eax, dword [ebp - 0x28]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b038
lea eax, [ebp - 0xb10]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.0040996c
lea eax, [ebp - 0xb10]
push eax
lea eax, [ebp - 0xb14]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.0040996c
mov edx, dword [ebp - 0xb14]
pop eax
call fcn.004099bc
mov edx, dword [ebp - 0xb10]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409998
mov eax, dword [ebp - 0x2c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b038
lea eax, [ebp - 0xb18]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.0040996c
lea eax, [ebp - 0xb18]
push eax
lea eax, [ebp - 0xb1c]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.0040996c
mov edx, dword [ebp - 0xb1c]
pop eax
call fcn.004099bc
mov edx, dword [ebp - 0xb18]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409998
lea eax, [ebp - 0x264]
lea edx, [ebp - 0x164]
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00409750
je 0x5251f9
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x52547c
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x525205
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 0x525235
lea eax, [ebp - 0xb1c]
mov edx, 0x18
call fcn.0040918c
lea eax, [ebp - 0xabc]
call fcn.004090fc
ret