Function at 0x407219
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47cd5a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x38]
call fcn.0043a8f0
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp + 8], eax
push 0
mov ecx, dword [ebp - 0x44]
call fcn.00406c64
mov dword [ebp - 0x3c], 0
push 0
mov ecx, dword [ebp - 0x44]
add ecx, 0x288
call fcn.0043baa0
push eax
push 0x3ef
mov ecx, dword [ebp - 0x44]
call fcn.00439df0
mov ecx, dword [ebp - 0x44]
add ecx, 0x288
call fcn.0043acd0
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x270], 0
mov dword [ecx + 0x274], 0
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
push 0x3f2
mov ecx, dword [ebp - 0x44]
call fcn.00439df0
lea ecx, [ebp - 0x38]
call fcn.0043acd0
mov edx, dword [ebp - 0x44]
add edx, 0x270
push edx
push 0x49266c
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
call fcn.0046fcfa
add esp, 0xc
mov eax, dword [ebp - 0x44]
push 0
push 0x100000
mov ecx, dword [eax + 0x274]
push ecx
mov edx, dword [eax + 0x270]
push edx
call fcn.0046fc00
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x270], eax
mov dword [ecx + 0x274], edx
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
push 0x3f3
mov ecx, dword [ebp - 0x44]
call fcn.00439df0
lea ecx, [ebp - 0x38]
call fcn.0043acd0
mov edx, dword [ebp - 0x44]
add edx, 0x278
push edx
push 0x492674
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
call fcn.0046fcfa
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x280], 0
mov dword [eax + 0x284], 0
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
push 0x3fc
mov ecx, dword [ebp - 0x44]
call fcn.00439df0
lea ecx, [ebp - 0x38]
call fcn.0043acd0
mov ecx, dword [ebp - 0x44]
add ecx, 0x280
push ecx
push 0x492678
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
call fcn.0046fcfa
add esp, 0xc
mov edx, dword [ebp - 0x44]
push 0
push 0x100000
mov eax, dword [edx + 0x284]
push eax
mov ecx, dword [edx + 0x280]
push ecx
call fcn.0046fc00
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x280], eax
mov dword [ecx + 0x284], edx
mov edx, dword [0x4a2a70]
and edx, 4
test edx, edx
jne 0x407420
mov eax, dword [0x4a2a70]
and eax, 0x40
test eax, eax
je 0x4073ff
mov ecx, dword [ebp - 0x44]
call fcn.00407854
test eax, eax
jne 0x4073ff
jmp 0x40757d
mov ecx, dword [0x4a2a70]
and ecx, 0x200000
test ecx, ecx
je 0x407420
mov ecx, dword [ebp - 0x44]
call fcn.0040796f
test eax, eax
jne 0x407420
jmp 0x40757d
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x268], 0
mov dword [edx + 0x26c], 0
push 0x640000
push 0
push 0x401
mov eax, dword [0x4a2a74]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0x28
push 0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [ebp - 0x3c], 1
mov eax, dword [0x4a2a70]
and eax, 4
test eax, eax
je 0x407497
mov ecx, dword [0x4a2a70]
and ecx, 0xfffffffb
mov dword [0x4a2a70], ecx
push 2
mov ecx, dword [ebp - 0x44]
call fcn.00407a03
test eax, eax
jne 0x407497
jmp 0x40757d
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x268], 0
mov dword [edx + 0x26c], 0
push 0
push 0
push 0x402
mov eax, dword [0x4a2a74]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x4a2a70]
and ecx, 0xa
cmp ecx, 0xa
jne 0x40752b
push 0
mov ecx, dword [ebp - 0x44]
add ecx, 0x288
call fcn.0043ba70
movsx edx, al
push edx
push 0x492680
lea eax, [ebp - 0x38]
push eax
call fcn.0043bde0
add esp, 0xc
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x40752b
push 1
mov ecx, dword [ebp - 0x44]
call fcn.00407a03
test eax, eax
jne 0x40752b
mov ecx, dword [0x4a2a70]
and ecx, 0xfffffffd
mov dword [0x4a2a70], ecx
jmp 0x40757d
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x268], 0
mov dword [edx + 0x26c], 0
push 0
push 0
push 0x402
mov eax, dword [0x4a2a74]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x4a2a70]
and ecx, 2
test ecx, ecx
je 0x40757d
mov edx, dword [0x4a2a70]
and edx, 0xfffffffd
mov dword [0x4a2a70], edx
push 0
mov ecx, dword [ebp - 0x44]
call fcn.00407a03
mov eax, dword [0x4a2a70]
and al, 0xfd
mov dword [0x4a2a70], eax
mov ecx, dword [0x4a2a70]
and ecx, 0xfffffffb
mov dword [0x4a2a70], ecx
cmp dword [ebp - 0x3c], 1
jne 0x4075ad
push 0
mov edx, dword [ebp - 0x44]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.USER32.dll_KillTimer]
push 0
push 0
push 0x402
mov ecx, dword [0x4a2a74]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 1
mov ecx, dword [ebp - 0x44]
call fcn.00406c64
mov dword [ebp - 0x40], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4