Function at 0x524cd0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x163
push 0
push 0
dec ecx
jne 0x524cd9
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 0x5255ea
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.0040a3c4
lea eax, [ebp - 0x464]
lea edx, [ebp - 0x264]
call fcn.00409bc0
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
xor edx, edx
mov dl, byte [ebp - 0x464]
lea eax, [ebp - 0x464]
mov ecx, 1
call fcn.00409c5c
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.00523a50
test al, al
je 0x524ea1
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0
jne 0x524ea1
mov eax, dword [ebp - 0x10]
cmp word [eax], 0xf8
jne 0x524ea1
mov byte [ebp - 0x11], 1
jmp 0x5255c1
lea eax, [ebp - 0xac4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xac4]
lea eax, [ebp - 0xac0]
mov edx, 0x525608
call fcn.00409e14
mov edx, dword [ebp - 0xac0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
mov edx, 0x525638
lea eax, [ebp - 0x6b4]
call fcn.00405098
mov edx, 4
lea eax, [ebp - 0x6b4]
call fcn.004063d0
call fcn.00404780
test eax, eax
jne 0x524f6a
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 0x524fdb
lea eax, [ebp - 0xacc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xacc]
lea eax, [ebp - 0xac8]
mov edx, 0x52565c
call fcn.00409e14
mov edx, dword [ebp - 0xac8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
jmp 0x5255c1
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 0x164]
call fcn.00523a50
test al, al
je 0x524f9a
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0
jne 0x524f9a
mov eax, dword [ebp - 0x10]
cmp word [eax], 0xf8
jne 0x524f9a
mov byte [ebp - 0x11], 1
jmp 0x5255c1
lea eax, [ebp - 0xad4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xad4]
lea eax, [ebp - 0xad0]
mov edx, 0x52568c
call fcn.00409e14
mov edx, dword [ebp - 0xad0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
jmp 0x5255c1
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 0x52504e
lea eax, [ebp - 0xadc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xadc]
lea eax, [ebp - 0xad8]
mov edx, 0x5256bc
call fcn.00409e14
mov edx, dword [ebp - 0xad8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x5255c1
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x6b2d626a
je 0x5250b1
lea eax, [ebp - 0xae4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xae4]
lea eax, [ebp - 0xae0]
mov edx, 0x5256f0
call fcn.00409e14
mov edx, dword [ebp - 0xae0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x5255c1
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x642e7965
je 0x525114
lea eax, [ebp - 0xaec]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xaec]
lea eax, [ebp - 0xae8]
mov edx, 0x525724
call fcn.00409e14
mov edx, dword [ebp - 0xae8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x5255c1
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x6c6c
je 0x525177
lea eax, [ebp - 0xaf4]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xaf4]
lea eax, [ebp - 0xaf0]
mov edx, 0x525758
call fcn.00409e14
mov edx, dword [ebp - 0xaf0]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x5255c1
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x6b4]
call fcn.0040551c
cmp dword [ebp - 0x18], 0x1b00
je 0x5251da
lea eax, [ebp - 0xafc]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xafc]
lea eax, [ebp - 0xaf8]
mov edx, 0x52578c
call fcn.00409e14
mov edx, dword [ebp - 0xaf8]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x5255c1
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 [0x5257b4]
wait
fnstsw ax
sahf
jne 0x52520e
mov dword [ebp - 0x64], 0x3e7
jmp 0x52521e
call fcn.004254c8
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 0x525225
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 0x525243
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 0x525261
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 0x52527f
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 0x52529d
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 0x5253ba
cmp dword [ebp - 0x34], 2
jne 0x5253ba
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 8]
jne 0x5253ba
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x3c]
jne 0x5253ba
cmp dword [ebp - 0x40], 9
jne 0x5253ba
cmp dword [ebp - 0x44], 2
jne 0x5253ba
cmp dword [ebp - 0x64], 0
jg 0x5253ba
lea eax, [ebp - 0xb04]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call fcn.00409d6c
mov ecx, dword [ebp - 0xb04]
lea eax, [ebp - 0xb00]
mov edx, 0x5257c4
call fcn.00409e14
mov edx, dword [ebp - 0xb00]
mov eax, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.00409d98
lea eax, [ebp - 0x6b4]
call fcn.0040520c
jmp 0x5255c1
lea eax, [ebp - 0x6b4]
call fcn.0040520c
not dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
je 0x5253e6
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x5257e8
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x5255c1
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 0x52580c
call sub.kernel32.dll_GetVolumeInformationW
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x58]
je 0x525432
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x525814
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x5255c1
mov eax, dword [ebp - 0x20]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b438
lea eax, [ebp - 0x264]
lea edx, [ebp - 0x364]
call fcn.00409bc0
mov eax, dword [ebp - 0x24]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b438
lea eax, [ebp - 0xb08]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.00409d6c
lea eax, [ebp - 0xb08]
push eax
lea eax, [ebp - 0xb0c]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.00409d6c
mov edx, dword [ebp - 0xb0c]
pop eax
call fcn.00409dbc
mov edx, dword [ebp - 0xb08]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409d98
mov eax, dword [ebp - 0x28]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b438
lea eax, [ebp - 0xb10]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.00409d6c
lea eax, [ebp - 0xb10]
push eax
lea eax, [ebp - 0xb14]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.00409d6c
mov edx, dword [ebp - 0xb14]
pop eax
call fcn.00409dbc
mov edx, dword [ebp - 0xb10]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409d98
mov eax, dword [ebp - 0x2c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x364]
call fcn.0040b438
lea eax, [ebp - 0xb18]
lea edx, [ebp - 0x264]
mov ecx, 0
call fcn.00409d6c
lea eax, [ebp - 0xb18]
push eax
lea eax, [ebp - 0xb1c]
lea edx, [ebp - 0x364]
mov ecx, 0
call fcn.00409d6c
mov edx, dword [ebp - 0xb1c]
pop eax
call fcn.00409dbc
mov edx, dword [ebp - 0xb18]
lea eax, [ebp - 0x264]
mov ecx, 0xff
call fcn.00409d98
lea eax, [ebp - 0x264]
lea edx, [ebp - 0x164]
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00409b50
je 0x5255b5
mov eax, dword [ebp - 0xc]
mov edi, eax
mov esi, 0x525838
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
jmp 0x5255c1
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 0x5255f1
lea eax, [ebp - 0xb1c]
mov edx, 0x18
call fcn.0040958c
lea eax, [ebp - 0xabc]
call fcn.004094fc
ret