Function at 0x4079e0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x46cbf1
push eax
mov eax, 0xab04
mov dword fs:[0], esp
call fcn.00445ff0
push ebx
push ebp
push esi
mov esi, dword [esp + 0xab24]
push edi
mov edi, dword [esp + 0xab24]
push esi
push edi
mov byte [esp + 0x23], 0
call fcn.00402a10
push 0
push 1
push eax
mov dword [esp + 0x4c], eax
call fcn.0040b170
add esp, 0x14
xor cl, cl
cmp eax, 0x139c
jne 0x407a56
call fcn.0040b390
test al, al
je 0x40962d
push esi
push edi
call fcn.00402a10
push eax
call fcn.0040b0f0
add esp, 0xc
mov cl, 1
test eax, eax
jne 0x4095ab
mov ebp, dword [esp + 0xab2c]
mov ecx, 0x12a
mov edi, ebp
push 0xaa
rep stosd dword es:[edi], eax
lea eax, [esp + 0x2c]
push eax
call fcn.00404f90
mov eax, dword [eax]
or ecx, 0xffffffff
mov edi, eax
xor eax, eax
add esp, 8
lea ebx, [ebp + 4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
call fcn.00462ded
mov edi, 0x48beac
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x27c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x3c], edx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp + 0x484]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov dword [esp + 0x28], edx
rep movsb byte es:[edi], byte [esi]
mov edi, 0x48beac
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp + 0x2fe]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov dword [esp + 0x24], edx
rep movsb byte es:[edi], byte [esi]
mov edi, 0x48beac
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp + 0x402]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov dword [esp + 0x2c], edx
rep movsb byte es:[edi], byte [esi]
mov edi, 0x48beac
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp + 0xc8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x48beac
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0xab28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0xab24]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xed4]
mov dword [ebp], 0
push ecx
push edx
push eax
mov dword [ebp + 0xc4], 0xffffffff
call fcn.00402c00
add esp, 0xc
cmp eax, 1
je 0x407bd1
mov ecx, dword [esp + 0x38]
push 0
push 0
push ecx
call fcn.0040b170
add esp, 0xc
jmp 0x40962d
mov edx, dword [esp + 0xed4]
mov eax, dword [esp + 0xed5]
mov ecx, dword [esp + 0xed6]
and edx, 0xff
shl edx, 8
and eax, 0xff
and ecx, 0xff
add edx, eax
mov eax, dword [esp + 0xed7]
shl edx, 8
add edx, ecx
and eax, 0xff
shl edx, 8
push 0x48835c
lea ecx, [edx + eax + 1]
mov dword [ebp + 0x84], ecx
call fcn.00404c90
mov esi, dword [esp + 0xab2c]
mov edi, dword [esp + 0xab28]
push esi
push edi
mov dword [ebp + 0x1f8], 0
call fcn.00404ce0
add esp, 0xc
cmp eax, 0x40
mov dword [esp + 0x10], eax
jl 0x407c68
cmp eax, 0x43
jg 0x407c68
lea edx, [ebp + 0x190]
push edx
push 0x24
push 0
push esi
push edi
call fcn.00404410
jmp 0x407c94
lea eax, [ebp + 0x190]
push eax
push 0x24
push 0
push esi
push edi
call fcn.00404480
add esp, 0x14
cmp eax, 1
je 0x407cae
lea eax, [ebp + 0x190]
push eax
push 0x24
push 0x11
push esi
push edi
call fcn.00404480
add esp, 0x14
cmp eax, 1
jne 0x407e5b
mov edi, dword [esp + 0xab24]
mov esi, dword [esp + 0xab28]
lea eax, [esp + 0xed4]
push eax
push 8
push 1
push esi
push edi
call fcn.00404480
add esp, 0x14
cmp eax, 1
jne 0x407cdc
mov ecx, dword [esp + 0xed8]
and ecx, 0xff
mov dword [ebp + 0x1f8], ecx
mov edx, dword [str.DVD_ROM]
mov eax, dword [0x48cf14]
mov ecx, dword [str.DVD_RAM]
mov dword [esp + 0x100], edx
mov edx, dword [0x48cf0c]
mov dword [esp + 0x104], eax
mov dword [esp + 0x10e], edx
mov dx, word [0x48cf04]
xor eax, eax
mov dword [esp + 0x10a], ecx
mov ecx, dword [str.DVD_R]
mov word [esp + 0x108], ax
mov word [esp + 0x112], ax
mov word [esp + 0x118], dx
mov dx, word [0x48cefc]
mov dword [esp + 0x11a], eax
mov dword [esp + 0x12e], eax
mov eax, dword [str.DVDRW]
mov dword [esp + 0x114], ecx
mov ecx, dword [str.DVD_RW]
mov word [esp + 0x122], dx
mov dword [esp + 0x132], eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x11e], ecx
mov cl, byte [0x48cefe]
mov word [esp + 0x125], dx
mov word [esp + 0x139], ax
mov byte [esp + 0x124], cl
mov ecx, dword [str.DVDR]
mov byte [esp + 0x127], dl
mov dx, word [0x48ceec]
mov byte [esp + 0x13b], al
mov al, byte [0x48cee4]
mov dword [esp + 0x128], ecx
mov cx, word [0x48cef4]
mov word [esp + 0x12c], dx
mov dl, byte [0x48cef6]
mov byte [esp + 0x144], al
xor eax, eax
mov al, byte [ebp + 0x194]
mov word [esp + 0x136], cx
mov ecx, dword [str.DVDR_DL]
mov byte [esp + 0x138], dl
mov edx, dword [0x48cee0]
mov dword [esp + 0x13c], ecx
shr eax, 4
mov dword [esp + 0x140], edx
mov byte [esp + 0x145], 0
je 0x407e23
cmp eax, 1
je 0x407e23
mov dword [ebp], 5
jmp 0x407e2a
mov dword [ebp], 3
cmp eax, 9
jne 0x407e8d
mov eax, 5
lea eax, [eax + eax*4]
lea edi, [esp + eax*2 + 0x100]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x10]
cmp edx, 0x40
jne 0x407ec6
mov edi, str.BD_ROM
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp], 6
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x407fa9
cmp eax, 0xa
jne 0x407e99
mov eax, 4
jmp 0x407e34
cmp eax, 0xe
jne 0x407ea5
mov eax, 6
jmp 0x407e34
cmp eax, 2
jne 0x407e34
mov cl, byte [ebp + 0x196]
and cl, 0x60
cmp cl, 0x20
jne 0x407e34
mov edi, str.DVD_R_DL
jmp 0x407e3e
cmp edx, 0x41
je 0x407ed0
cmp edx, 0x42
jne 0x407ef9
mov edi, str.BD_R
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp], 7
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp edx, 0x43
jne 0x407f0f
mov dword [ebp], 7
mov edi, str.BD_RE
jmp 0x407f91
cmp edx, 0x15
je 0x407f19
cmp edx, 0x16
jne 0x407f42
mov edi, str.DVD_R_DL
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp], 5
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp edx, 0x1b
jne 0x407f55
mov dword [ebp], 5
mov edi, str.DVDR
jmp 0x407f91
cmp edx, 0x1a
jne 0x407f80
mov edi, str.DVDRW
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp], 5
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x407fa9
cmp edx, 0x2b
jne 0x407fae
mov dword [ebp], 5
mov edi, str.DVDR_DL
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [ebp], 5
jne 0x407fd3
mov ecx, dword [esp + 0xab24]
lea eax, [ebp + 0xc8]
push eax
mov eax, dword [esp + 0xab2c]
push eax
push ecx
call fcn.00409650
add esp, 0xc
mov eax, dword [ebp]
cmp eax, 5
je 0x407fe4
cmp eax, 7
jne 0x40816c
mov eax, dword [esp + 0xab28]
mov ecx, dword [esp + 0xab24]
lea edx, [esp + 0x6d4]
push edx
push 0x20
push 3
push 0
push eax
push ecx
call fcn.00404d50
add esp, 0x18
cmp eax, 1
jne 0x40816c
mov edx, dword [esp + 0x6d6]
mov eax, dword [esp + 0x6d7]
and edx, 0xff
and eax, 0xff
shl edx, 8
lea eax, [edx + eax - 4]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp eax, 0x20
mov dword [esp + 0x14], eax
jle 0x40804d
mov dword [esp + 0x14], 0x20
mov eax, dword [esp + 0x14]
or ebx, 0xffffffff
test eax, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], 0
jle 0x408349
lea ecx, [esp + 0x6eb]
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x10]
xor eax, eax
xor edx, edx
mov al, byte [esi - 1]
mov dl, byte [esi]
shl eax, 8
add eax, edx
cmp ebx, 0xffffffff
mov dword [esp + 0x34], eax
jne 0x4080bf
cmp dword [ebp], 7
cdq
jne 0x4080a9
mov ecx, 0x112b
idiv ecx
mov ebx, edx
neg ebx
sbb ebx, ebx
and ebx, 0x69
add ebx, ecx
jmp 0x4080bb
mov ecx, 0x569
idiv ecx
mov ebx, edx
neg ebx
sbb ebx, ebx
and ebx, 0xffffffdf
add ebx, ecx
mov dword [esp + 0x30], ebx
fild dword [esp + 0x34]
sub esp, 8
lea edx, [esp + 0x64]
fidiv dword [esp + 0x38]
fstp qword [esp]
push str._2.1f_X
push edx
call fcn.00445f93
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
add esp, 0x10
dec eax
cmp ecx, eax
jge 0x40811a
mov edi, 0x48ceac
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
lea edi, [ebp + 0x110]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1c]
mov ecx, edx
mov edx, dword [esp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
inc eax
add edx, 0x10
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
jl 0x408073
jmp 0x408349
mov ecx, dword [esp + 0xab28]
mov edx, dword [esp + 0xab24]
lea eax, [esp + 0xed4]
push eax
push 0x80
push 0x2a
push ecx
push edx
call fcn.00402ff0
add esp, 0x14
cmp eax, 1
jne 0x408349
mov edx, dword [esp + 0xef3]
mov edi, 0x4a778c
or ecx, 0xffffffff
xor eax, eax
and edx, 0xff
xor ebx, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x30], edx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 0x110]
mov dword [esp + 0x14], ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x10], ebx
and ecx, 3
test edx, edx
rep movsb byte es:[edi], byte [esi]
jle 0x408349
lea esi, [esp + 0xef7]
mov dword [esp + 0x1c], esi
jmp 0x4081f6
mov esi, dword [esp + 0x1c]
xor ecx, ecx
xor edx, edx
mov cl, byte [esi - 1]
mov dl, byte [esi]
shl ecx, 8
add ecx, edx
test ebx, ebx
mov dword [esp + 0x34], ecx
jne 0x408274
mov eax, ecx
mov esi, 0x569
cdq
idiv esi
test edx, edx
je 0x40826b
cmp ecx, 0xcfc
je 0x40826b
mov eax, ecx
mov esi, 0x564
cdq
idiv esi
test edx, edx
je 0x408264
cmp ecx, 0xcf0
je 0x408264
mov eax, ecx
mov esi, 0x548
cdq
idiv esi
test edx, edx
je 0x40825d
cmp ecx, 0xcac
je 0x40825d
cmp ecx, 0xcad
je 0x40825d
mov ebx, 0xb0
jmp 0x408270
mov ebx, 0x548
jmp 0x408270
mov ebx, 0x564
jmp 0x408270
mov ebx, 0x569
mov dword [esp + 0x14], ebx
mov eax, ecx
cdq
idiv ebx
test edx, edx
je 0x4082a7
cmp ebx, 0xb0
je 0x4082a7
fild dword [esp + 0x34]
sub esp, 8
lea eax, [esp + 0x64]
fidiv dword [esp + 0x1c]
fstp qword [esp]
push str._2.1f_X
push eax
call fcn.00445f93
add esp, 0x10
jmp 0x4082bf
mov eax, ecx
lea ecx, [esp + 0x5c]
cdq
idiv ebx
push eax
push str._d_X
push ecx
call fcn.00445f93
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
lea eax, [edx - 1]
cmp ecx, eax
jge 0x4082fc
mov edi, 0x48ceac
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
lea edi, [ebp + 0x110]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ecx, edx
mov edx, dword [esp + 0x1c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x30]
inc eax
add edx, 4
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edx
jl 0x4081f2
push 0x488314
call fcn.00404c90
mov edi, dword [esp + 0xab2c]
mov ebx, dword [esp + 0xab28]
lea eax, [ebp + 0x97]
push eax
push 0x20
push 0
push 4
push edi
push ebx
call fcn.004031c0
add esp, 0x1c
cmp eax, 1
je 0x408386
mov byte [ebp + 0x96], 0
jmp 0x4083c0
lea ecx, [ebp + 0x10c]
lea edx, [ebp + 0xbc]
push ecx
lea eax, [ebp + 0xb8]
push edx
push eax
lea ecx, [ebp + 0xc0]
lea eax, [ebp + 0xc8]
push ecx
lea edx, [ebp + 0x108]
push eax
push edx
push edi
push ebx
call fcn.00403ad0
add esp, 0x20
mov byte [ebp + 0x96], al
lea eax, [esp + 0xed4]
push eax
push 0x20
push edi
push ebx
call fcn.00403160
add esp, 0x10
cmp eax, 1
jne 0x4083e9
mov cl, byte [esp + 0xed6]
and ecx, 3
mov dword [ebp + 0xc4], ecx
push 0x48cea8
call fcn.00404c90
lea edx, [esp + 0x228]
push edx
push 0x324
push 0
push edi
push ebx
call fcn.00402ba0
add esp, 0x18
cmp eax, 1
jne 0x409350
push str.
call fcn.00404c90
mov eax, dword [esp + 0x22a]
mov ecx, dword [esp + 0x22b]
and eax, 0xff
and ecx, 0xff
sub ecx, eax
add esp, 4
or esi, 0xffffffff
mov dword [esp + 0x10], 0
lea eax, [ecx + 1]
mov dword [esp + 0x1c], esi
test eax, eax
mov dword [ebp + 0x88], eax
jle 0x408495
lea ecx, [esp + 0x22d]
test byte [ecx - 4], 4
je 0x408487
cmp esi, 0xffffffff
jne 0x40848b
xor edx, edx
mov dl, byte [ecx]
mov esi, edx
xor edx, edx
mov dl, byte [ecx + 1]
shl esi, 8
add esi, edx
xor edx, edx
mov dl, byte [ecx + 2]
shl esi, 8
add esi, edx
jmp 0x40848b
inc dword [esp + 0x10]
add ecx, 8
dec eax
jne 0x408460
mov dword [esp + 0x1c], esi
lea eax, [esp + 0x224]
mov dword [ebp + 0x90], 1
push eax
push 0x3e8
push 2
push edi
push ebx
call fcn.00402ba0
mov ecx, dword [esp + 0x23a]
mov edx, dword [esp + 0x23b]
mov eax, dword [esp + 0x238]
and ecx, 0xff
and edx, 0xff
add esp, 0x14
sub edx, ecx
and eax, 0xff
inc edx
xor ecx, ecx
mov dword [ebp + 0x8c], edx
mov edx, dword [esp + 0x225]
shl eax, 8
and edx, 0xff
lea edx, [eax + edx - 2]
mov eax, 0x2e8ba2e9
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
test edx, edx
jle 0x40853d
lea eax, [esp + 0x226]
cmp byte [eax], 0xa0
je 0x408527
inc ecx
add eax, 0xb
cmp ecx, edx
jl 0x408518
jmp 0x40853d
lea edx, [ecx + ecx*4]
lea eax, [esp + edx*2 + 0x22d]
xor edx, edx
mov dl, byte [eax + ecx]
inc edx
mov dword [ebp + 0x90], edx
cmp esi, 0xffffffff
je 0x4090e3
push 0x48ce98
call fcn.00404c90
lea eax, [esp + 0xed8]
lea ecx, [esi + 0x10]
push eax
push 1
push ecx
push edi
push ebx
call fcn.00404750
add esp, 0x18
cmp eax, 1
jne 0x40857d
mov dl, byte [esp + 0xee3]
and edx, 3
mov dword [ebp + 0x90], edx
mov eax, dword [ebp]
cmp eax, 3
je 0x40875c
cmp eax, 5
je 0x40875c
cmp eax, 6
je 0x40875c
cmp eax, 7
je 0x40875c
mov eax, dword [esp + 0x10]
mov dword [ebp], 2
test eax, eax
je 0x40860a
cmp dword [ebp + 0x8c], 1
jle 0x4085e3
mov edi, str.CD_Extra
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp + 4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x408622
mov edi, str.Mixed_CD
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp + 4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x408622
mov eax, dword [ebp + 0x90]
lea ebx, [ebp + 4]
push eax
push str.Data_CD__Mode__d_
push ebx
call fcn.00445f93
add esp, 0xc
cmp dword [ebp + 0x90], 2
jne 0x40874a
lea ecx, [esp + 0x40]
call fcn.0043dae2
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x5c]
mov dword [esp + 0xab1c], 0
lea esi, [ecx + 0x41]
push esi
push str._c:VCD
push edx
call fcn.00445f93
add esp, 0xc
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x40]
push 0
push eax
call fcn.0043dba5
test eax, eax
je 0x4086c6
push esi
lea ecx, [esp + 0x60]
push str._c:MPEGAV
push ecx
call fcn.00445f93
add esp, 0xc
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x40]
push 0
push edx
call fcn.0043dba5
test eax, eax
je 0x4086c6
push esi
lea eax, [esp + 0x60]
push str._c:CDI
push eax
call fcn.00445f93
add esp, 0xc
lea ecx, [esp + 0x5c]
push 0
push ecx
lea ecx, [esp + 0x48]
call fcn.0043dba5
test eax, eax
je 0x4086c6
mov edi, str.VideoCD
jmp 0x408719
push esi
lea eax, [esp + 0x60]
push str._c:PHOTO_CD
push eax
call fcn.00445f93
add esp, 0xc
lea ecx, [esp + 0x5c]
push 0
push ecx
lea ecx, [esp + 0x48]
call fcn.0043dba5
test eax, eax
je 0x408736
push esi
lea edx, [esp + 0x60]
push str._c:CDI
push edx
call fcn.00445f93
add esp, 0xc
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x40]
push 0
push eax
call fcn.0043dba5
test eax, eax
je 0x408736
mov edi, str.PhotoCD
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x40]
mov dword [esp + 0xab1c], 0xffffffff
call fcn.0043db1f
mov ebx, dword [esp + 0xab24]
mov edi, dword [esp + 0xab28]
mov esi, dword [esp + 0x1c]
cmp dword [ebp + 0x88], 1
jne 0x408767
xor esi, esi
lea eax, [esp + 0xed4]
add esi, 0x10
push eax
push 0x10
push esi
push edi
push ebx
call fcn.00402d00
add esp, 0x14
cmp eax, 1
jne 0x409595
push 0x48ce28
call fcn.00404c90
push 5
lea edx, [esp + 0xedd]
lea ecx, [esp + 0xedc]
push str.CD001
push edx
mov dword [esp + 0x20], ecx
call fcn.00446320
add esp, 0x10
test eax, eax
jne 0x40904b
mov edi, str.ISO9660
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp + 0x1fc]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x20
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0x60]
and ecx, 3
mov byte [esp + 0x1f], 1
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xf00]
push ecx
push edx
call fcn.00404a60
push eax
mov eax, dword [esp + 0x4c]
push 0x48be64
push eax
call fcn.00445f93
lea ecx, [esp + 0x102a]
push 0x80
lea edx, [esp + 0x78]
push ecx
push edx
call fcn.00404a60
push eax
mov eax, dword [esp + 0x4c]
push 0x48be64
push eax
call fcn.00445f93
lea ecx, [esp + 0x1142]
push 0x80
lea edx, [esp + 0x90]
push ecx
push edx
call fcn.00404a60
push eax
mov eax, dword [esp + 0x6c]
push 0x48be64
push eax
call fcn.00445f93
add esp, 0x48
lea ecx, [esp + 0x1201]
lea edx, [esp + 0x5c]
push ecx
push str._.4s
push edx
call fcn.00445f93
lea eax, [esp + 0x68]
push eax
call fcn.00445da3
lea ecx, [esp + 0x1215]
lea edx, [esp + 0x6c]
push ecx
push str._.2s
push edx
mov ebx, eax
call fcn.00445f93
lea eax, [esp + 0x78]
push eax
call fcn.00445da3
lea ecx, [esp + 0x1227]
lea edx, [esp + 0x7c]
push ecx
push str._.2s
push edx
mov edi, eax
call fcn.00445f93
lea eax, [esp + 0x88]
push eax
call fcn.00445da3
mov esi, eax
add esp, 0x30
cmp esi, 1
jl 0x408903
cmp esi, 0x1f
jg 0x408903
cmp edi, 1
jl 0x408903
cmp edi, 0xc
jg 0x408903
dec edi
push ebx
push edi
call fcn.00404a50
add esp, 4
lea ecx, [esp + 0x60]
push eax
push esi
push str._d__s__d
push ecx
call fcn.00445f93
add esp, 0x14
jmp 0x408929
mov edi, 0x48beac
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea eax, [esp + 0x16dc]
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, str.L_TORITO_SPECIFICATION
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x408980
test cl, cl
je 0x40897c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x408980
add eax, 2
add esi, 2
test cl, cl
jne 0x408958
xor eax, eax
jmp 0x408985
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4089b5
mov edi, str.__bootable_
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
lea edi, [ebp + 0x1fc]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 1
mov eax, esi
push 5
shl eax, 0xb
push str.CD001
lea ebx, [esp + eax + 0xedc]
lea ecx, [ebx + 1]
push ecx
call fcn.00446320
add esp, 0xc
test eax, eax
jne 0x408acf
cmp byte [ebx], 2
jne 0x408acf
mov edi, str.__Joliet
or ecx, 0xffffffff
xor eax, eax
push 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x14], ebx
mov esi, edi
mov edx, ecx
lea edi, [ebp + 0x1fc]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebx + 0x28]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x64]
push ecx
call fcn.00404780
lea edx, [esp + 0x68]
push 0x10
lea eax, [esp + 0x1b0]
push edx
push eax
call fcn.00404a60
mov ecx, dword [esp + 0x54]
push eax
push 0x48be64
push ecx
call fcn.00445f93
lea edx, [ebx + 0x13e]
push 0x40
lea eax, [esp + 0x84]
push edx
push eax
call fcn.00404780
lea ecx, [esp + 0x8c]
push 0x40
lea edx, [esp + 0x1d4]
push ecx
push edx
call fcn.00404a60
push eax
mov eax, dword [esp + 0x64]
push 0x48be64
push eax
call fcn.00445f93
add esp, 0x48
add ebx, 0x23e
lea ecx, [esp + 0x5c]
push 0x40
push ebx
push ecx
call fcn.00404780
lea edx, [esp + 0x68]
push 0x40
lea eax, [esp + 0x1b0]
push edx
push eax
call fcn.00404a60
mov ecx, dword [esp + 0x44]
push eax
push 0x48be64
push ecx
call fcn.00445f93
add esp, 0x24
mov esi, 0x10
inc esi
cmp esi, 0x10
jl 0x4089ba
mov edx, dword [esp + 0x3c]
push edx
call fcn.00402b00
mov eax, dword [esp + 0x14]
add esp, 4
mov esi, str.PlayStation
add eax, 8
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x408b1a
test cl, cl
je 0x408b16
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x408b1a
add eax, 2
add esi, 2
test cl, cl
jne 0x408af2
xor eax, eax
jmp 0x408b1f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408b44
mov edi, str.PlayStation
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp]
cmp eax, 3
je 0x408b55
cmp eax, 5
jne 0x40904b
lea ecx, [esp + 0x180]
call fcn.0043dae2
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x5c]
mov dword [esp + 0xab1c], 1
lea eax, [ecx + 0x41]
push eax
push str._c:VIDEO_TSVIDEO_TS.IFO
push edx
mov dword [esp + 0x34], eax
call fcn.00445f93
add esp, 0xc
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x180]
push 0
push eax
call fcn.0043dba5
test eax, eax
je 0x409034
mov dword [ebp], 4
mov esi, str.DVD_ROM
lea eax, [ebp + 4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x408bdc
test cl, cl
je 0x408bd8
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x408bdc
add eax, 2
add esi, 2
test cl, cl
jne 0x408bb4
xor eax, eax
jmp 0x408be1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408c03
mov edi, 0x48cd98
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x408c3b
lea ebx, [ebp + 4]
lea ecx, [esp + 0x1a0]
push ebx
push str.DVD_Video___s_
push ecx
call fcn.00445f93
lea edi, [esp + 0x1ac]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push 0x100
lea eax, [esp + 0x60]
push 0x8000
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.00451f06
mov ebx, eax
add esp, 0xc
cmp ebx, 0xffffffff
je 0x40902a
push 0x48cd80
call fcn.00404c90
mov eax, 0x160
push 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, 0x1e0
push 0x100
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov eax, 0x240
push ebx
mov dword [esp + 0x50], 0x2d0
mov dword [esp + 0x54], 0x2c0
mov dword [esp + 0x10c], 0xf0
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], 0x120
call fcn.004508d7
lea ecx, [esp + 0x44]
push 2
push ecx
push ebx
call fcn.004504e1
mov eax, dword [esp + 0x50]
add esp, 0x1c
mov cl, al
mov dl, ah
and cl, 0x10
cmp cl, 0x10
jne 0x408d12
shr edx, 2
and edx, 3
shl edx, 2
mov esi, dword [esp + edx + 0xe0]
jmp 0x408d22
shr edx, 2
and edx, 3
shl edx, 2
mov esi, dword [esp + edx + 0xf0]
test al, 0xc
mov edi, 0x48cd7c
je 0x408d30
mov edi, str.16:9
cmp cl, 0x10
mov ecx, 0x48cd70
je 0x408d3f
mov ecx, str.NTSC
mov edx, dword [esp + edx + 0x40]
and eax, 0xff
shr eax, 6
push esi
inc eax
push edx
push eax
push edi
push ecx
lea eax, [ebp + 0x1b4]
push str._s__s__Mpeg__d___dx_d_
push eax
call fcn.00445f93
push 0
push 0x23
push ebx
mov byte [esp + 0x42], 0
call fcn.004508d7
lea ecx, [esp + 0x41]
push 1
push ecx
push ebx
call fcn.004504e1
mov al, byte [esp + 0x4d]
add esp, 0x34
test al, 0x3f
lea edx, [esp + 0x5c]
jne 0x408db4
mov edi, 0x48c124
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x408e85
mov edi, 0x4a778c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor eax, eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x10], eax
mov dl, byte [esp + 0x19]
mov cl, al
shr dl, cl
test dl, 1
jne 0x408e77
mov cl, byte [esp + 0x1a]
test cl, cl
je 0x408e27
mov edi, 0x48c3e0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
inc eax
push eax
lea eax, [esp + 0x1a4]
push 0x48c118
push eax
call fcn.00445f93
lea edi, [esp + 0x1ac]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x5c]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov ecx, edx
and ecx, 3
mov byte [esp + 0x1a], 1
rep movsb byte es:[edi], byte [esi]
inc eax
cmp eax, 6
mov dword [esp + 0x10], eax
jl 0x408ddc
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x1d4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0044c499
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x60]
push ecx
push str._c:VIDEO_TSVTS_01_0.IFO
push edx
call fcn.00445f93
push 0x100
lea eax, [esp + 0x70]
push 0x8000
push eax
call fcn.00451f06
mov esi, eax
add esp, 0x1c
cmp esi, 0xffffffff
je 0x409034
push 0
push 0xcc
push esi
call fcn.004508d7
lea ecx, [esp + 0x6e0]
push 4
push ecx
push esi
call fcn.004504e1
mov ebx, dword [esp + 0x6ee]
mov edx, dword [esp + 0x6ef]
and ebx, 0xff
and edx, 0xff
shl ebx, 8
add ebx, edx
push 0
shl ebx, 0xb
push ebx
push esi
call fcn.004508d7
lea eax, [esp + 0x6f8]
push 0x800
push eax
push esi
call fcn.004504e1
mov eax, dword [esp + 0x705]
add esp, 0x30
and eax, 0xff
mov dword [esp + 0x10], 0
jle 0x409015
lea edi, [esp + 0x6e3]
mov dword [esp + 0x24], eax
xor ecx, ecx
xor edx, edx
mov cl, byte [edi - 1]
mov dl, byte [edi]
shl ecx, 8
mov eax, ebx
push 0
add eax, ecx
lea eax, [edx + eax + 4]
push eax
push esi
call fcn.004508d7
lea ecx, [esp + 0x28]
push 4
push ecx
push esi
call fcn.004504e1
mov eax, dword [esp + 0x34]
add esp, 0x18
and eax, 0xff
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea edx, [ecx + ecx*4]
lea edx, [eax + edx*2]
mov eax, dword [esp + 0x1d]
and eax, 0xff
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1e]
and eax, 0xff
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2]
lea eax, [edx + edx*2]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea eax, [eax + edx*4]
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*4]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jle 0x409003
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
add edi, 8
dec eax
mov dword [esp + 0x24], eax
jne 0x408f6b
mov eax, dword [esp + 0x10]
push esi
mov dword [ebp + 0x1f4], eax
call fcn.0044c499
add esp, 4
jmp 0x409034
mov dword [ebp + 0x1f4], 0
lea ecx, [esp + 0x180]
mov dword [esp + 0xab1c], 0xffffffff
call fcn.0043db1f
lea ebx, [esp + 0xed5]
mov dword [esp + 0x24], 0x10
push 3
push 0x48cd30
push ebx
call fcn.00446320
add esp, 0xc
test eax, eax
jne 0x4090c0
mov al, byte [esp + 0x1b]
lea edx, [ebp + 0x1fc]
test al, al
mov edi, str.__UDF
je 0x4090a3
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x4090bb
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x24]
add ebx, 0x800
dec eax
mov dword [esp + 0x24], eax
jne 0x40905a
push 0x48cd1c
call fcn.00404c90
add esp, 4
jmp 0x409595
mov edi, str.Audio
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x1fc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, dword [esp + 0xab28]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.Audio_CD
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea eax, [esp + 0xed4]
mov edx, ecx
mov esi, edi
lea edi, [ebp + 4]
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x8000
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xab30]
mov dword [ebp], 1
push ecx
call fcn.00404090
mov edx, dword [esp + 0xee4]
mov eax, dword [esp + 0xee5]
and edx, 0xff
and eax, 0xff
shl edx, 8
add edx, eax
push 0x48ccfc
cmp edx, 0x16
setg cl
mov byte [ebp + 0x4a4], cl
call fcn.00404c90
mov al, byte [ebp + 0x4a4]
add esp, 0x14
test al, al
je 0x4092a3
lea edx, [esp + 0xed4]
lea eax, [esp + 0x100]
push edx
push eax
push 0
push 0x80
call fcn.004042f0
add esp, 0x10
test al, al
je 0x4091e5
lea edi, [esp + 0x100]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x3c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0xed4]
lea ecx, [esp + 0x100]
push eax
push ecx
push 0
push 0x81
call fcn.004042f0
add esp, 0x10
test al, al
je 0x40922e
lea edi, [esp + 0x100]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0xed4]
lea ecx, [esp + 0x100]
push eax
push ecx
push 0
push 0x86
call fcn.004042f0
add esp, 0x10
test al, al
je 0x409277
lea edi, [esp + 0x100]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x24]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0xed4]
lea ecx, [esp + 0x100]
push eax
push ecx
push 0
push 0x8e
call fcn.004042f0
add esp, 0x10
test al, al
je 0x4092a3
lea edi, [esp + 0x100]
jmp 0x409303
mov ecx, dword [esp + 0xab24]
lea eax, [esp + 0xed4]
push eax
push 0x14
push 0
push 2
push ebx
push ecx
call fcn.00402ca0
add esp, 0x18
cmp eax, 1
jne 0x409327
push 0x48ccf0
call fcn.00404c90
mov al, byte [esp + 0xed9]
add esp, 4
test al, 0x80
je 0x4092fe
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0xed9]
push edx
push str._.13s
push eax
call fcn.00445f93
add esp, 0xc
jmp 0x409595
mov edi, 0x48beac
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x2c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x409595
mov edi, 0x48beac
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x2c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x409595
push edi
push ebx
call fcn.00404020
add esp, 8
mov byte [ebp + 0x94], al
test al, al
je 0x40958e
mov eax, dword [ebp]
or ecx, 0xffffffff
cmp eax, 3
mov dword [ebp + 0x84], ecx
je 0x409443
cmp eax, 5
je 0x409443
cmp eax, 6
je 0x409443
cmp eax, 7
je 0x409443
mov eax, dword [ebp + 0xb8]
test eax, eax
je 0x40941e
mov eax, dword [ebp + 0xbc]
cmp eax, 0xa
jle 0x4093d2
mov edi, str.Blank_UltraSpeed_CD_RW
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
lea edi, [ebp + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x409581
jne 0x4093f9
mov edi, str.Blank_HighSpeed_CD_RW
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x409581
mov edi, str.Blank_CD_RW
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
lea edi, [ebp + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x409581
mov edi, str.Blank_CD_R
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x409581
lea ebx, [ebp + 4]
lea ecx, [esp + 0x180]
push ebx
push str.Blank__s
push ecx
mov byte [ebp + 0x95], 1
call fcn.00445f93
lea edi, [esp + 0x18c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea eax, [esp + 0xee0]
mov edx, ecx
mov esi, edi
mov edi, ebx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0xab34]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xab38]
push ecx
push edx
call fcn.004043c0
add esp, 0x18
cmp eax, 1
jne 0x4094ef
mov eax, dword [esp + 0xee4]
mov ecx, dword [esp + 0xee5]
mov edx, dword [esp + 0xee6]
and eax, 0xff
shl eax, 8
and ecx, 0xff
and edx, 0xff
add eax, ecx
mov ecx, dword [esp + 0xee7]
shl eax, 8
add eax, edx
shl eax, 8
and ecx, 0xff
lea eax, [eax + ecx + 1]
jmp 0x4094f2
or eax, 0xffffffff
cmp eax, 1
mov dword [ebp + 0x10c], eax
jne 0x409581
mov eax, dword [esp + 0xab28]
mov ecx, dword [esp + 0xab24]
lea edx, [esp + 0xed4]
push edx
push 0x20
push eax
push ecx
call fcn.00402c50
add esp, 0x10
cmp eax, 1
jne 0x409581
cmp byte [esp + 0xed7], 7
jbe 0x409581
mov eax, dword [esp + 0xedb]
cmp ah, 1
jne 0x409581
mov edx, dword [esp + 0xed8]
mov ecx, dword [esp + 0xed9]
and edx, 0xff
and ecx, 0xff
shl edx, 8
add edx, ecx
mov ecx, dword [esp + 0xeda]
shl edx, 8
and ecx, 0xff
add edx, ecx
shl edx, 8
and eax, 0xff
lea edx, [edx + eax + 1]
mov dword [ebp + 0x10c], edx
push 0x48cc88
call fcn.00404c90
add esp, 4
mov dword [ebp], 0
mov eax, dword [esp + 0x38]
push 0
push 0
push eax
call fcn.0040b170
add esp, 0xc
jmp 0x40962d
test cl, cl
je 0x40962d
mov ecx, dword [0x4a4060]
mov dword [esp + 0x14], ecx
lea edx, [esp + 0x14]
push 0x6a
push edx
mov dword [esp + 0xab24], 2
call fcn.0045c847
mov eax, dword [esp + 0x1c]
add esp, 8
push 0
push 0x10
push eax
call fcn.00466a99
mov edi, dword [esp + 0x14]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x60c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x60c]
push ecx
call fcn.00404c90
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0xab1c], 0xffffffff
call fcn.00462ded
mov ecx, dword [esp + 0xab14]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov dword fs:[0], ecx
add esp, 0xab10
ret