Function at 0x6c819128
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 [0x6c8457e0], 8
jne 0x6c818d40
xor eax, eax
mov word [ebx + 3], ax
call fcn.6c818960
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 0x6c818d78
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 0x6c818c18
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0xc0000013
jne 0x6c818d98
movzx eax, byte [ebx + 2]
cmp al, 6
je 0x6c818bef
cmp al, 0xf
jne 0x6c818df8
xor edx, edx
cmp al, 0x88
ja case.0x6c818c0c.1
test al, al
jns 0x6c818c78
lea edx, [eax - 0x80]
cmp dl, 8
ja case.0x6c818c0c.1
movzx edx, dl
jmp dword [edx*4 + 0x6c84bb38]
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 0x6c818bcc
movzx eax, byte [ebx + 2]
mov edx, 1
jmp 0x6c818bf1
cmp al, 3
je 0x6c8192b0
cmp al, 0xc
jne case.0x6c818c0c.1
mov eax, dword [ebx + 0xe]
mov dword [esp], eax
call sym.krnl386.exe16_MapSL
sub esp, 4
mov edx, eax
test byte [0x6c8457e0], 8
jne 0x6c819550
movzx eax, byte [edx]
cmp al, 3
je 0x6c819590
ja 0x6c819200
test al, al
je 0x6c819300
cmp al, 2
jne 0x6c8193d0
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 [0x6c8457e0], 8
je 0x6c818dcd
mov dword [esp + 0xc], str._______RESET_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
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], 0x6c8457e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6c818910
jmp 0x6c818b08
test byte [0x6c8457e0], 4
jne 0x6c819280
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 [0x6c8457e0], 1
jne 0x6c819440
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 0x6c818d8d
test byte [0x6c8457e0], 8
jne 0x6c819410
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 0x6c818dcd
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 0x6c819380
mov eax, dword [ebp - 0x37c]
mov dword [esp + 4], 0x24008
mov dword [esp], edi
call eax
sub esp, 0x20
test byte [0x6c8457e0], 8
je 0x6c818dcd
mov dword [esp + 0xc], str._____STOP_AUDIO__Stopped__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
mov ecx, dword [ebx + 0xe]
mov eax, dword [ebx + 0x12]
add eax, ecx
mov dword [ebp - 0x380], eax
test byte [0x6c8457e0], 8
jne 0x6c8194b8
movzx eax, byte [ebx + 0xd]
test al, al
je 0x6c818f68
cmp al, 1
jne 0x6c8191c0
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 0x6c818dcd
mov ecx, dword [ebx + 0x14]
test byte [0x6c8457e0], 8
jne 0x6c819470
movzx eax, byte [ebx + 0xd]
test al, al
je 0x6c81908b
cmp al, 1
jne 0x6c8191c0
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 0x6c818dcd
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 0x6c819172
cmp al, 1
jne 0x6c8191c0
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 0x6c819d30
cmp al, 1
je 0x6c819cb0
test byte [0x6c8457e0], 2
je 0x6c818dc5
mov dword [esp + 0xc], str.Unsupported_read_mode____n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 1
call fcn.6c818910
jmp 0x6c818dc5
test byte [0x6c8457e0], 2
je 0x6c818dc5
mov dword [esp + 0xc], str.Unsupported_address_mode____n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 1
call fcn.6c818910
jmp 0x6c818dc5
cmp al, 5
jne 0x6c8193d0
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 [0x6c8457e0], 8
je 0x6c818dcd
mov dword [esp + 0xc], str._______CLOSE_TRAY_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
mov dword [esp + 0xc], str.Couldnt_open_cdrom_handle_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 2
call fcn.6c818910
jmp 0x6c818d85
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 [0x6c8457e0]
sub esp, 4
test al, 8
mov byte [ebp - 0x37c], al
movzx eax, byte [esi]
jne 0x6c819500
cmp al, 0xf
ja case.0x6c819549.0
movzx ecx, al
jmp dword [ecx*4 + 0x6c84bb5c]
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 [0x6c8457e0], 8
je 0x6c818dcd
mov dword [esp + 0xc], str._______EJECT_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
mov eax, dword [ebp - 0x37c]
mov dword [esp + 4], 0x2400c
mov dword [esp], edi
call eax
sub esp, 0x20
test byte [0x6c8457e0], 8
je 0x6c818dcd
mov dword [esp + 0xc], str._____STOP_AUDIO__Paused__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
test byte [0x6c8457e0], 1
je 0x6c818dc5
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], 0x6c8457e0
mov dword [esp], 0
call fcn.6c818910
jmp 0x6c818dc5
mov dword [esp + 0xc], str._____RESUME_AUDIO_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818e25
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], 0x6c8457e0
mov dword [esp], 0
call fcn.6c818910
jmp 0x6c818dc5
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], 0x6c8457e0
mov dword [esp + 0x10], eax
mov dword [esp], 3
mov dword [ebp - 0x380], ecx
call fcn.6c818910
mov ecx, dword [ebp - 0x380]
jmp 0x6c819060
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], 0x6c8457e0
mov dword [esp], 3
mov dword [ebp - 0x384], ecx
call fcn.6c818910
mov ecx, dword [ebp - 0x384]
jmp 0x6c818f13
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], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
movzx eax, byte [0x6c8457e0]
mov byte [ebp - 0x37c], al
movzx eax, byte [esi]
cmp al, 0xf
ja case.0x6c819549.0
movzx ecx, al
mov edx, dword [ebp - 0x380]
jmp dword [ecx*4 + 0x6c84bb9c]
movzx eax, byte [eax]
mov dword [esp + 0xc], str._____IOCTL_OUTPUT___d__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
mov dword [ebp - 0x380], edx
call fcn.6c818910
mov edx, dword [ebp - 0x380]
jmp 0x6c818ca5
test byte [0x6c8457e0], 1
je 0x6c818dcd
mov dword [esp + 0xc], str._______AUDIO_CHANNEL_CONTROL__NIY__n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 0
call fcn.6c818910
jmp 0x6c818dcd
test byte [ebp - 0x37c], 1
je 0x6c818dc5
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], 0x6c8457e0
mov dword [esp], 0
call fcn.6c818910
jmp 0x6c818dc5
movzx eax, byte [esi + 1]
test al, al
je 0x6c819e91
cmp al, 1
je 0x6c819de7
test byte [ebp - 0x37c], 2
jne 0x6c819eb8
test byte [ebp - 0x37c], 8
je 0x6c818dc5
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], 0x6c8457e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6c818910
jmp 0x6c818dc5
xor eax, eax
cmp byte [ebp - 0x353], 0x12
sete al
add eax, 2
mov word [esi + 1], ax
test edx, edx
jne 0x6c819d73
mov dword [esi + 3], 0
xor ecx, ecx
mov dword [esi + 7], ecx
test byte [ebp - 0x37c], 8
je 0x6c818dcd
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], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
mov eax, 0x291
sub eax, edx
mov dword [esi + 1], eax
test byte [ebp - 0x37c], 8
je 0x6c818dcd
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], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
movzx ecx, byte [esi + 1]
movzx eax, byte [ebp - 0x33a]
cmp cl, al
jb 0x6c819d65
cmp cl, byte [ebp - 0x339]
ja 0x6c819d65
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 0x6c818dcd
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], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
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 0x6c818dcd
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], 0x6c8457e0
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.6c818910
jmp 0x6c818dcd
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 0x6c818dcd
movzx ecx, byte [ebp - 0x34e]
mov dword [esp + 4], 0x6c8457e0
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.6c818910
jmp 0x6c818dcd
mov byte [esi + 1], 0
test byte [ebp - 0x37c], 8
je 0x6c818dcd
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], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
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 0x6c818dcd
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], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
mov dword [esi + 1], 0xff01ff00
mov dword [esi + 5], 0x30002
jmp 0x6c818dcd
mov dword [esi + 1], 0xff01ff00
mov dword [esi + 5], 0x30002
test byte [ebp - 0x37c], 8
je 0x6c818dcd
mov dword [esp + 0xc], str._______AUDIO_CHANNEL_INFO_n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 3
call fcn.6c818910
jmp 0x6c818dcd
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 0x6c818dcd
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 0x6c818dcd
mov dword [esi + 2], 0
xor eax, eax
jmp 0x6c8197ef
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 0x6c819694
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 0x6c818dcd
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], 0x6c8457e0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6c818910
jmp 0x6c818dcd
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 0x6c819e54
mov dword [esp + 0xc], str.CD_ROM_driver:_unsupported_addressing_mode____n
mov dword [esp + 8], str.MSCDEX_Request
mov dword [esp + 4], 0x6c8457e0
mov dword [esp], 1
call fcn.6c818910
movzx eax, byte [0x6c8457e0]
mov byte [ebp - 0x37c], al
jmp 0x6c81962b