Function at 0x66418930
Capabilities:
Read file on windows

Disassembly:
push ebp
mov edx, 0x3a40
mov ebp, esp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x3cc
mov word [ebp - 0x36b], dx
mov dword [ebp - 0x36f], 0x5c2e5c5c
mov byte [ebp - 0x369], 0
test byte [0x664447e0], 8
jne 0x66418ba0
xor eax, eax
mov word [ebx + 3], ax
call fcn.664187c0
movzx ecx, byte [ebx + 1]
movzx edx, byte [eax + 0x14]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
lea eax, [ecx + edx + 0x41]
mov dword [esp + 8], 1
mov byte [ebp - 0x36b], al
lea eax, [ebp - 0x36f]
mov dword [esp + 4], 0x80000000
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CreateFileA]
sub esp, 0x1c
mov edi, eax
cmp eax, 0xffffffff
je 0x66418bd8
lea eax, [ebp - 0x33c]
mov byte [ebp - 0x376], 1
mov dword [esp + 0x10], eax
mov eax, dword [sym.imp.kernel32.dll_DeviceIoControl]
lea esi, [ebp - 0x374]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x324
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x24000
mov dword [esp], edi
mov dword [ebp - 0x37c], eax
call eax
sub esp, 0x20
test eax, eax
jne 0x66418a78
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0xc0000013
jne 0x66418bf8
movzx eax, byte [ebx + 2]
cmp al, 6
je 0x66418a4f
cmp al, 0xf
jne 0x66418c58
xor edx, edx
cmp al, 0x88
ja case.0x66418a6c.1
test al, al
jns 0x66418ad8
lea edx, [eax - 0x80]
cmp dl, 8
ja case.0x66418a6c.1
movzx edx, dl
jmp dword [edx*4 + 0x6644ab38]
lea eax, [ebp - 0x354]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x376]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x37c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x18
mov dword [esp + 0xc], 2
mov dword [esp + 4], 0x2402c
mov dword [esp], edi
call eax
sub esp, 0x20
test eax, eax
je 0x66418a2c
movzx eax, byte [ebx + 2]
mov edx, 1
jmp 0x66418a51
cmp al, 3
je 0x66419110
cmp al, 0xc
jne case.0x66418a6c.1
mov eax, dword [ebx + 0xe]
mov dword [esp], eax
call sym.krnl386.exe16_MapSL
sub esp, 4
mov edx, eax
test byte [0x664447e0], 8
jne 0x664193b0
movzx eax, byte [edx]
cmp al, 3
je 0x664193f0
ja 0x66419060
test al, al
je 0x66419160
cmp al, 2
jne 0x66419230
mov eax, dword [ebp - 0x37c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2d5004
mov dword [esp], edi
call eax
sub esp, 0x20
test byte [0x664447e0], 8
je 0x66418c2d
mov dword [esp + 0xc], str._______RESET_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
movzx eax, byte [eax + 2]
mov dword [esp + 0xc], str.CDROM_device_driver____command___d__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.66418730
jmp 0x66418968
test byte [0x664447e0], 4
jne 0x664190e0
or byte [ebx + 4], 0x80
mov byte [ebx + 3], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
or byte [ebx + 4], 0x80
mov byte [ebx + 3], 1
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x664447e0], 1
jne 0x664192a0
or byte [ebx + 4], 0x80
mov byte [ebx + 3], 0xc
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
cmp byte [ebp - 0x353], 0x11
sete al
lea eax, [eax + eax + 1]
or byte [ebx + 4], al
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
or byte [ebx + 4], 0x80
mov byte [ebx + 3], 2
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
jmp 0x66418bed
test byte [0x664447e0], 8
jne 0x66419270
mov eax, dword [ebp - 0x37c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2400c
mov dword [esp], edi
call eax
sub esp, 0x20
jmp 0x66418c2d
cmp byte [ebp - 0x353], 0x11
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
je 0x664191e0
mov eax, dword [ebp - 0x37c]
mov dword [esp + 4], 0x24008
mov dword [esp], edi
call eax
sub esp, 0x20
test byte [0x664447e0], 8
je 0x66418c2d
mov dword [esp + 0xc], str._____STOP_AUDIO__Stopped__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
mov ecx, dword [ebx + 0xe]
mov eax, dword [ebx + 0x12]
add eax, ecx
mov dword [ebp - 0x380], eax
test byte [0x664447e0], 8
jne 0x66419318
movzx eax, byte [ebx + 0xd]
test al, al
je 0x66418dc8
cmp al, 1
jne 0x66419020
movzx eax, cl
movzx edx, ch
shr ecx, 0x10
imul edx, edx, 0x4b
imul eax, eax, 0x1194
add eax, edx
movzx edx, cl
lea ecx, [eax + edx]
mov edx, dword [ebp - 0x380]
movzx eax, dl
movzx edx, dh
imul edx, edx, 0x4b
imul eax, eax, 0x1194
add eax, edx
mov edx, dword [ebp - 0x380]
shr edx, 0x10
movzx edx, dl
add eax, edx
mov dword [ebp - 0x380], eax
mov eax, 0xe90452d5
mov dword [esp + 0x1c], 0
mul ecx
mov eax, 0x1b4e81b5
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
shr edx, 0xc
mov dword [esp + 0xc], 6
mov byte [ebp - 0x368], dl
mul ecx
mov eax, 0x88888889
mov dword [esp + 4], 0x24018
mov dword [esp], edi
shr edx, 3
mov dword [ebp - 0x384], edx
mul edx
mov eax, dword [ebp - 0x384]
shr edx, 5
imul edx, edx, 0x3c
sub eax, edx
imul edx, dword [ebp - 0x384], 0x4b
mov byte [ebp - 0x367], al
mov eax, ecx
mov ecx, dword [ebp - 0x380]
sub eax, edx
mov byte [ebp - 0x366], al
mov eax, 0xe90452d5
mul ecx
mov eax, 0x1b4e81b5
shr edx, 0xc
mov byte [ebp - 0x365], dl
mul ecx
mov eax, 0x88888889
shr edx, 3
mov ecx, edx
mul edx
mov eax, ecx
imul ecx, ecx, 0x4b
shr edx, 5
imul edx, edx, 0x3c
sub eax, edx
mov byte [ebp - 0x364], al
mov eax, dword [ebp - 0x380]
sub eax, ecx
mov byte [ebp - 0x363], al
lea eax, [ebp - 0x368]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x37c]
call eax
sub esp, 0x20
jmp 0x66418c2d
mov ecx, dword [ebx + 0x14]
test byte [0x664447e0], 8
jne 0x664192d0
movzx eax, byte [ebx + 0xd]
test al, al
je 0x66418eeb
cmp al, 1
jne 0x66419020
mov eax, ecx
movzx edx, ch
movzx ecx, cl
shr eax, 0x10
imul edx, edx, 0x4b
movzx eax, al
imul eax, eax, 0x1194
add eax, edx
add ecx, eax
mov eax, ecx
mov edx, 0xe90452d5
mov dword [esp + 0x18], esi
mul edx
mov eax, ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
shr edx, 0xc
mov dword [esp + 0xc], 3
mov byte [ebp - 0x368], dl
mov edx, 0x1b4e81b5
mul edx
mov dword [esp + 4], 0x24004
mov dword [esp], edi
shr edx, 3
mov eax, edx
mov edx, 0x88888889
mov dword [ebp - 0x380], eax
mul edx
mov eax, dword [ebp - 0x380]
shr edx, 5
imul edx, edx, 0x3c
sub eax, edx
mov byte [ebp - 0x367], al
imul eax, dword [ebp - 0x380], 0x4b
sub ecx, eax
lea eax, [ebp - 0x368]
mov byte [ebp - 0x366], cl
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x37c]
call eax
sub esp, 0x20
jmp 0x66418c2d
mov eax, dword [ebx + 0xe]
mov dword [esp], eax
call sym.krnl386.exe16_MapSL
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x380], eax
movzx eax, word [ebx + 0x12]
sub esp, 4
mov word [ebp - 0x384], ax
movzx eax, byte [ebx + 0xd]
test al, al
je 0x66418fd2
cmp al, 1
jne 0x66419020
mov edx, ecx
movzx eax, ch
shr edx, 0x10
imul eax, eax, 0x4b
movzx edx, dl
imul edx, edx, 0x1194
add eax, edx
movzx edx, cl
lea ecx, [eax + edx]
movzx eax, byte [ebx + 0x18]
test al, al
je 0x66419b90
cmp al, 1
je 0x66419b10
test byte [0x664447e0], 2
je 0x66418c25
mov dword [esp + 0xc], str.Unsupported_read_mode____n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 1
call fcn.66418730
jmp 0x66418c25
test byte [0x664447e0], 2
je 0x66418c25
mov dword [esp + 0xc], str.Unsupported_address_mode____n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 1
call fcn.66418730
jmp 0x66418c25
cmp al, 5
jne 0x66419230
mov eax, dword [ebp - 0x37c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2d480c
mov dword [esp], edi
call eax
sub esp, 0x20
test byte [0x664447e0], 8
je 0x66418c2d
mov dword [esp + 0xc], str._______CLOSE_TRAY_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
mov dword [esp + 0xc], str.Couldnt_open_cdrom_handle_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 2
call fcn.66418730
jmp 0x66418be5
mov eax, dword [ebx + 0xe]
mov dword [ebp - 0x380], edx
mov dword [esp], eax
call sym.krnl386.exe16_MapSL
mov edx, dword [ebp - 0x380]
mov esi, eax
movzx eax, byte [0x664447e0]
sub esp, 4
test al, 8
mov byte [ebp - 0x37c], al
movzx eax, byte [esi]
jne 0x66419360
cmp al, 0xf
ja case.0x664193a9.0
movzx ecx, al
jmp dword [ecx*4 + 0x6644ab5c]
mov eax, dword [ebp - 0x37c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2d4808
mov dword [esp], edi
call eax
sub esp, 0x20
test byte [0x664447e0], 8
je 0x66418c2d
mov dword [esp + 0xc], str._______EJECT_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
mov eax, dword [ebp - 0x37c]
mov dword [esp + 4], 0x2400c
mov dword [esp], edi
call eax
sub esp, 0x20
test byte [0x664447e0], 8
je 0x66418c2d
mov dword [esp + 0xc], str._____STOP_AUDIO__Paused__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
test byte [0x664447e0], 1
je 0x66418c25
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._IOCTL_OUTPUT:_Unimplemented___d____n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 0
call fcn.66418730
jmp 0x66418c25
mov dword [esp + 0xc], str._____RESUME_AUDIO_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c85
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._ioctl_unimplemented___d__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 0
call fcn.66418730
jmp 0x66418c25
movzx eax, byte [ebx + 0xd]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], str._____SEEK_AUDIO_mode_:_0x_02X_____ld__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp + 0x10], eax
mov dword [esp], 3
mov dword [ebp - 0x380], ecx
call fcn.66418730
mov ecx, dword [ebp - 0x380]
jmp 0x66418ec0
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + 0xd]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], str._____PLAY_AUDIO_mode_:_0x_02X_____ld__ld__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
mov dword [ebp - 0x384], ecx
call fcn.66418730
mov ecx, dword [ebp - 0x384]
jmp 0x66418d73
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._____IOCTL_INPUT___d__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
movzx eax, byte [0x664447e0]
mov byte [ebp - 0x37c], al
movzx eax, byte [esi]
cmp al, 0xf
ja case.0x664193a9.0
movzx ecx, al
mov edx, dword [ebp - 0x380]
jmp dword [ecx*4 + 0x6644ab9c]
movzx eax, byte [eax]
mov dword [esp + 0xc], str._____IOCTL_OUTPUT___d__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
mov dword [ebp - 0x380], edx
call fcn.66418730
mov edx, dword [ebp - 0x380]
jmp 0x66418b05
test byte [0x664447e0], 1
je 0x66418c2d
mov dword [esp + 0xc], str._______AUDIO_CHANNEL_CONTROL__NIY__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 0
call fcn.66418730
jmp 0x66418c2d
test byte [ebp - 0x37c], 1
je 0x66418c25
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.IOCTL_INPUT:_Unimplemented___d____n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 0
call fcn.66418730
jmp 0x66418c25
movzx eax, byte [esi + 1]
test al, al
je 0x66419cf1
cmp al, 1
je 0x66419c47
test byte [ebp - 0x37c], 2
jne 0x66419d18
test byte [ebp - 0x37c], 8
je 0x66418c25
mov eax, dword [esi + 2]
mov dword [esp + 0xc], str._______HEAD_LOCATION___ld__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.66418730
jmp 0x66418c25
xor eax, eax
cmp byte [ebp - 0x353], 0x12
sete al
add eax, 2
mov word [esi + 1], ax
test edx, edx
jne 0x66419bd3
mov dword [esi + 3], 0
xor ecx, ecx
mov dword [esi + 7], ecx
test byte [ebp - 0x37c], 8
je 0x66418c2d
mov dword [esp + 0x18], ecx
mov edx, dword [esi + 3]
movzx eax, ax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Audio_status_info:_status_04x_startLoc_ld_endLoc_ld_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 0x14], edx
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
mov eax, 0x291
sub eax, edx
mov dword [esi + 1], eax
test byte [ebp - 0x37c], 8
je 0x66418c2d
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._______DEVICE_STATUS__0x_08lx__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
movzx ecx, byte [esi + 1]
movzx eax, byte [ebp - 0x33a]
cmp cl, al
jb 0x66419bc5
cmp cl, byte [ebp - 0x339]
ja 0x66419bc5
movzx edx, cl
mov dword [ebp - 0x388], edx
sub edx, eax
movzx eax, byte [ebp + edx*8 - 0x333]
imul eax, eax, 0x1194
mov dword [ebp - 0x380], eax
movzx eax, byte [ebp + edx*8 - 0x332]
movzx edx, byte [ebp + edx*8 - 0x331]
mov byte [esi + 5], 0
imul eax, eax, 0x4b
add eax, dword [ebp - 0x380]
add eax, edx
mov edx, 0xe90452d5
mov dword [ebp - 0x380], eax
mul edx
mov eax, dword [ebp - 0x380]
shr edx, 0xc
mov byte [esi + 4], dl
mov edx, 0x1b4e81b5
mul edx
shr edx, 3
mov eax, edx
mov edx, 0x88888889
mov dword [ebp - 0x384], eax
mul edx
shr edx, 5
imul eax, edx, 0x3c
mov edx, dword [ebp - 0x384]
sub edx, eax
mov eax, dword [ebp - 0x380]
mov byte [esi + 3], dl
imul edx, dword [ebp - 0x384], 0x4b
sub eax, edx
mov byte [esi + 2], al
mov eax, dword [ebp - 0x388]
movzx edx, byte [ebp - 0x33a]
sub eax, edx
movzx eax, byte [ebp + eax*8 - 0x337]
rol al, 4
mov byte [esi + 6], al
test byte [ebp - 0x37c], 8
je 0x66418c2d
movzx eax, al
mov dword [esp + 0x18], eax
mov eax, dword [esi + 2]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str._______AUDIO_TRACK_INFO__d_____08lx:_d__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
movzx eax, byte [ebp - 0x33a]
mov byte [esi + 1], al
mov byte [ebp - 0x384], al
movzx eax, byte [ebp - 0x339]
mov byte [esi + 2], al
lea edx, [eax + 1]
mov dword [ebp - 0x388], eax
movzx eax, byte [ebp - 0x33a]
sub edx, eax
movzx ecx, byte [ebp + edx*8 - 0x333]
movzx eax, byte [ebp + edx*8 - 0x332]
movzx edx, byte [ebp + edx*8 - 0x331]
imul ecx, ecx, 0x1194
imul eax, eax, 0x4b
add eax, ecx
lea ecx, [eax + edx]
movzx edx, byte [ebp - 0x333]
movzx eax, byte [ebp - 0x332]
imul edx, edx, 0x1194
imul eax, eax, 0x4b
add eax, edx
movzx edx, byte [ebp - 0x331]
mov byte [esi + 6], 0
add edx, eax
sub ecx, edx
mov edx, 0xe90452d5
lea eax, [ecx - 1]
mov ecx, eax
mul edx
mov eax, ecx
mov dword [ebp - 0x380], ecx
shr edx, 0xc
mov byte [esi + 5], dl
mov edx, 0x1b4e81b5
mul edx
mov ecx, edx
mov edx, 0x88888889
shr ecx, 3
mov eax, ecx
mul edx
shr edx, 5
imul eax, edx, 0x3c
mov edx, ecx
imul ecx, ecx, 0x4b
sub edx, eax
mov eax, dword [ebp - 0x380]
mov byte [esi + 4], dl
sub eax, ecx
mov byte [esi + 3], al
test byte [ebp - 0x37c], 8
je 0x66418c2d
mov eax, dword [esi + 3]
mov dword [esp + 0xc], str._______AUDIO_DISK_INFO___d__d__08lx__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x388]
mov dword [esp + 0x14], eax
movzx eax, byte [ebp - 0x384]
mov dword [esp + 0x10], eax
call fcn.66418730
jmp 0x66418c2d
movzx eax, byte [ebp - 0x34e]
movzx edx, byte [ebp - 0x33a]
sub eax, edx
movzx eax, byte [ebp + eax*8 - 0x337]
rol al, 4
mov byte [esi + 1], al
mov byte [ebp - 0x389], al
movzx eax, byte [ebp - 0x34e]
mov byte [esi + 3], 0
mov byte [esi + 2], al
movzx edx, byte [ebp - 0x346]
mov byte [ebp - 0x38a], al
movzx eax, byte [ebp - 0x347]
imul edx, edx, 0x4b
imul eax, eax, 0x1194
add eax, edx
movzx edx, byte [ebp - 0x345]
mov byte [esi + 7], 0
lea ecx, [eax + edx]
mov eax, 0xe90452d5
mul ecx
mov eax, 0x1b4e81b5
mov dword [ebp - 0x380], ecx
shr edx, 0xc
mov dword [ebp - 0x384], edx
mul ecx
mov eax, 0x88888889
shr edx, 3
mov ecx, edx
mul edx
shr edx, 5
imul eax, edx, 0x3c
mov edx, ecx
imul ecx, ecx, 0x4b
sub edx, eax
mov eax, dword [ebp - 0x380]
mov byte [esi + 5], dl
mov dword [ebp - 0x390], edx
sub eax, ecx
mov ecx, eax
mov dword [ebp - 0x394], eax
movzx eax, byte [ebp - 0x384]
mov byte [esi + 6], cl
mov byte [esi + 4], al
movzx eax, byte [ebp - 0x34b]
movzx edx, byte [ebp - 0x34a]
imul eax, eax, 0x1194
imul edx, edx, 0x4b
add eax, edx
movzx edx, byte [ebp - 0x349]
lea ecx, [eax + edx]
mov eax, 0xe90452d5
mul ecx
mov eax, 0x1b4e81b5
mov dword [ebp - 0x388], ecx
shr edx, 0xc
mov dword [ebp - 0x380], edx
mul ecx
mov eax, 0x88888889
shr edx, 3
mov ecx, edx
mul edx
shr edx, 5
imul eax, edx, 0x3c
mov edx, ecx
imul ecx, ecx, 0x4b
sub edx, eax
mov eax, dword [ebp - 0x388]
mov byte [esi + 9], dl
sub eax, ecx
mov ecx, eax
mov dword [ebp - 0x388], eax
movzx eax, byte [ebp - 0x380]
mov byte [esi + 8], al
mov byte [esi + 0xa], cl
mov byte [esi + 0xb], 0
test byte [ebp - 0x37c], 8
je 0x66418c2d
movzx ecx, byte [ebp - 0x34e]
mov dword [esp + 4], 0x664447e0
movzx eax, byte [ebp - 0x33a]
mov dword [esp], 3
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], 0
mov esi, ecx
mov dword [esp + 0xc], str.Q_Channel_info:_Ctrl_adr_02x_TNO_02x_X_02x_rtt_02x:_02x:_02x_rtd_02x:_02x:_02x__cf_08x__tp_08x__n
sub esi, eax
mov dword [esp + 8], str.MSCDEX_Request
movzx ecx, byte [ebp + esi*8 - 0x333]
movzx eax, byte [ebp + esi*8 - 0x332]
imul ecx, ecx, 0x1194
imul eax, eax, 0x4b
add eax, ecx
movzx ecx, byte [ebp + esi*8 - 0x331]
add eax, ecx
movzx ecx, byte [ebp - 0x34b]
mov dword [esp + 0x38], eax
movzx eax, byte [ebp - 0x34a]
imul ecx, ecx, 0x1194
imul eax, eax, 0x4b
add eax, ecx
movzx ecx, byte [ebp - 0x349]
add eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [ebp - 0x388]
mov dword [esp + 0x30], eax
movzx eax, byte [ebp - 0x380]
mov dword [esp + 0x28], eax
mov eax, dword [ebp - 0x394]
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0x390]
mov dword [esp + 0x20], eax
movzx eax, byte [ebp - 0x384]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp - 0x38a]
mov dword [esp + 0x14], eax
movzx eax, byte [ebp - 0x389]
mov dword [esp + 0x10], eax
call fcn.66418730
jmp 0x66418c2d
mov byte [esi + 1], 0
test byte [ebp - 0x37c], 8
je 0x66418c2d
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str._______MEDIA_CHANGED___d__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
movzx edx, byte [ebp - 0x339]
movzx eax, byte [ebp - 0x33a]
add edx, 1
sub edx, eax
movzx ecx, byte [ebp + edx*8 - 0x333]
movzx eax, byte [ebp + edx*8 - 0x332]
movzx edx, byte [ebp + edx*8 - 0x331]
imul ecx, ecx, 0x1194
imul eax, eax, 0x4b
add eax, ecx
movzx ecx, byte [ebp - 0x333]
add eax, edx
movzx edx, byte [ebp - 0x332]
imul ecx, ecx, 0x1194
imul edx, edx, 0x4b
add edx, ecx
movzx ecx, byte [ebp - 0x331]
add ecx, edx
sub eax, ecx
sub eax, 1
mov dword [esi + 1], eax
test byte [ebp - 0x37c], 8
je 0x66418c2d
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._______VOLUME_SIZE___ld__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
mov dword [esi + 1], 0xff01ff00
mov dword [esi + 5], 0x30002
jmp 0x66418c2d
mov dword [esi + 1], 0xff01ff00
mov dword [esi + 5], 0x30002
test byte [ebp - 0x37c], 8
je 0x66418c2d
mov dword [esp + 0xc], str._______AUDIO_CHANNEL_INFO_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
call fcn.66418730
jmp 0x66418c2d
movzx eax, word [ebp - 0x384]
shl ecx, 0xb
mov dword [esp], edi
mov dword [ebp - 0x364], 0
mov dword [ebp - 0x368], ecx
mov dword [ebp - 0x35c], 0
mov dword [ebp - 0x360], eax
imul eax, eax, 0x930
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x380]
mov dword [esp + 0xc], 0x10
mov dword [esp + 4], 0x2403e
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x368]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x37c]
call eax
sub esp, 0x20
jmp 0x66418c2d
movzx eax, word [ebp - 0x384]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp], edi
shl eax, 0xb
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x380]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
jmp 0x66418c2d
mov dword [esi + 2], 0
xor eax, eax
jmp 0x6641964f
movzx edx, byte [ebp - 0x333]
imul ecx, edx, 0x1194
movzx edx, byte [ebp - 0x332]
imul edx, edx, 0x4b
add edx, ecx
movzx ecx, byte [ebp - 0x331]
add edx, ecx
movzx ecx, byte [ebp - 0x33a]
mov dword [esi + 3], edx
movzx edx, byte [ebp - 0x339]
add edx, 1
sub edx, ecx
mov dword [ebp - 0x380], edx
movzx edx, byte [ebp + edx*8 - 0x333]
imul ecx, edx, 0x1194
mov edx, dword [ebp - 0x380]
movzx edx, byte [ebp + edx*8 - 0x332]
imul edx, edx, 0x4b
add ecx, edx
mov edx, dword [ebp - 0x380]
movzx edx, byte [ebp + edx*8 - 0x331]
add ecx, edx
jmp 0x664194f4
movzx eax, byte [ebp - 0x34b]
movzx edx, byte [ebp - 0x34a]
imul eax, eax, 0x1194
imul edx, edx, 0x4b
add eax, edx
movzx edx, byte [ebp - 0x349]
mov byte [esi + 5], 0
add eax, edx
mov edx, 0xe90452d5
mov ecx, eax
mul edx
mov eax, ecx
mov dword [ebp - 0x380], ecx
shr edx, 0xc
mov byte [esi + 4], dl
mov edx, 0x1b4e81b5
mul edx
mov ecx, edx
mov edx, 0x88888889
shr ecx, 3
mov eax, ecx
mul edx
shr edx, 5
imul eax, edx, 0x3c
mov edx, ecx
imul ecx, ecx, 0x4b
sub edx, eax
mov eax, dword [ebp - 0x380]
mov byte [esi + 3], dl
sub eax, ecx
mov byte [esi + 2], al
test byte [ebp - 0x37c], 8
je 0x66418c2d
mov eax, dword [esi + 2]
mov dword [esp + 0xc], str._______HEAD_LOCATION___ld__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.66418730
jmp 0x66418c2d
movzx eax, byte [ebp - 0x34b]
movzx edx, byte [ebp - 0x34a]
imul eax, eax, 0x1194
imul edx, edx, 0x4b
add eax, edx
movzx edx, byte [ebp - 0x349]
add eax, edx
mov dword [esi + 2], eax
jmp 0x66419cb4
mov dword [esp + 0xc], str.CD_ROM_driver:_unsupported_addressing_mode____n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x664447e0
mov dword [esp], 1
call fcn.66418730
movzx eax, byte [0x664447e0]
mov byte [ebp - 0x37c], al
jmp 0x6641948b