Function at 0x55f090
Capabilities:
Check os version
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5864ce
mov eax, dword fs:[0]
push eax
sub esp, 0x3c0
mov eax, dword [0x61c948]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebp + 0xc]
call fcn.004090e0
lea ecx, [ebp - 0x10]
call fcn.00416770
mov dword [ebp - 4], 0
movzx eax, word [ebp + 8]
push eax
push 0x5de824
lea ecx, [ebp - 0x10]
push ecx
call fcn.00409fe0
add esp, 0xc
push 0x5e8650
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x358]
push eax
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x39c], eax
mov ecx, dword [ebp - 0x39c]
call fcn.004084b0
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor ecx, ecx
cmp eax, 5
sete cl
mov byte [ebp - 0x351], cl
lea ecx, [ebp - 0x358]
call fcn.004b29a0
movzx edx, byte [ebp - 0x351]
test edx, edx
je 0x55f547
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x35c], esp
push str.mpegav_avseq__.dat
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3a0], eax
call fcn.0055f580
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x360], esp
push str.mpegav_avseq__.mpg
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3a4], eax
call fcn.0055f580
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x364], esp
push str.mpeg2_avseq__.dat
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3a8], eax
call fcn.0055f580
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x368], esp
push str.mpeg2_avseq__.mpg
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3ac], eax
call fcn.0055f580
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x36c], esp
push str.mpegavmusic__.dat
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3b0], eax
call fcn.0055f580
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x370], esp
push str.mpegavmusic__.mpg
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3b4], eax
call fcn.0055f580
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x374], esp
push str.mpeg2music__.dat
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3b8], eax
call fcn.0055f580
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x378], esp
push str.mpeg2music__.mpg
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3bc], eax
call fcn.0055f580
add esp, 8
mov ecx, dword [ebp + 0xc]
call fcn.00544160
test eax, eax
jle 0x55f2d8
mov dword [ebp - 0x37c], 2
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004b29a0
mov eax, dword [ebp - 0x37c]
jmp 0x55f566
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x380], esp
push str.VIDEO_TS_video_ts.ifo
lea edx, [ebp - 0x10]
push edx
push ecx
call fcn.0040f080
add esp, 0xc
mov dword [ebp - 0x3c0], eax
call fcn.0055f580
add esp, 8
mov ecx, dword [ebp + 0xc]
call fcn.00544160
test eax, eax
jle 0x55f335
mov dword [ebp - 0x384], 3
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004b29a0
mov eax, dword [ebp - 0x384]
jmp 0x55f566
call dword [sym.imp.KERNEL32.dll_GetVersion]
and eax, 0x80000000
jne 0x55f4f9
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
lea eax, [ebp - 0x10]
push eax
push 0x595048
lea ecx, [ebp - 0x388]
call fcn.0040a190
mov dword [ebp - 0x3c4], eax
mov ecx, dword [ebp - 0x3c4]
mov dword [ebp - 0x3c8], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x3c8]
push edx
lea eax, [ebp - 0x38c]
push eax
call fcn.00467732
add esp, 0xc
mov dword [ebp - 0x3cc], eax
mov ecx, dword [ebp - 0x3cc]
call fcn.004084b0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x38c]
call fcn.004b29a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x388]
call fcn.004b29a0
cmp dword [ebp - 0x14], 0xffffffff
je 0x55f4f9
push 0
lea ecx, [ebp - 0x348]
push ecx
push 0x324
lea edx, [ebp - 0x344]
push edx
push 0
push 0
push 0x24000
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x55f4ef
movzx ecx, byte [ebp - 0x342]
mov dword [ebp - 0x34c], ecx
jmp 0x55f425
mov edx, dword [ebp - 0x34c]
add edx, 1
mov dword [ebp - 0x34c], edx
movzx eax, byte [ebp - 0x341]
cmp dword [ebp - 0x34c], eax
jg 0x55f4ef
mov ecx, dword [ebp - 0x34c]
mov dl, byte [ebp + ecx*8 - 0x347]
and dl, 0xf
movzx eax, dl
and eax, 5
and al, 0xf
mov ecx, dword [ebp - 0x34c]
mov dl, byte [ebp + ecx*8 - 0x347]
and dl, 0xf0
or dl, al
mov eax, dword [ebp - 0x34c]
mov byte [ebp + eax*8 - 0x347], dl
mov ecx, dword [ebp - 0x34c]
mov dl, byte [ebp + ecx*8 - 0x347]
and dl, 0xf
movzx eax, dl
test eax, eax
je 0x55f49e
mov ecx, dword [ebp - 0x34c]
mov dl, byte [ebp + ecx*8 - 0x347]
and dl, 0xf
movzx eax, dl
cmp eax, 1
jne 0x55f4ea
lea ecx, [ebp - 0x350]
call fcn.00416770
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x34c]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push str._s_track_02d.cda
lea eax, [ebp - 0x350]
push eax
call fcn.00409fe0
add esp, 0x10
lea ecx, [ebp - 0x350]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004090a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x350]
call fcn.004b29a0
jmp 0x55f416
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 0xc]
call fcn.00544160
test eax, eax
jle 0x55f526
mov dword [ebp - 0x390], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004b29a0
mov eax, dword [ebp - 0x390]
jmp 0x55f566
mov dword [ebp - 0x394], 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004b29a0
mov eax, dword [ebp - 0x394]
jmp 0x55f566
mov dword [ebp - 0x398], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004b29a0
mov eax, dword [ebp - 0x398]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.004721e8
mov esp, ebp
pop ebp
ret