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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x46b641
push eax
mov eax, 0xab04
mov dword fs:[0], esp
call fcn.004453d0
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.00402a20
push 0
push 1
push eax
mov dword [esp + 0x4c], eax
call fcn.0040ad80
add esp, 0x14
xor cl, cl
cmp eax, 0x139c
jne 0x407756
call fcn.0040afa0
test al, al
je 0x40932d
push esi
push edi
call fcn.00402a20
push eax
call fcn.0040ad00
add esp, 0xc
mov cl, 1
test eax, eax
jne 0x4092ab
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.00404ef0
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.00461a95
mov edi, 0x489e9c
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, 0x489e9c
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, 0x489e9c
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, 0x489e9c
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, 0x489e9c
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.00402c10
add esp, 0xc
cmp eax, 1
je 0x4078d1
mov ecx, dword [esp + 0x38]
push 0
push 0
push ecx
call fcn.0040ad80
add esp, 0xc
jmp 0x40932d
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 0x48634c
lea ecx, [edx + eax + 1]
mov dword [ebp + 0x84], ecx
call fcn.00404bf0
mov esi, dword [esp + 0xab2c]
mov edi, dword [esp + 0xab28]
push esi
push edi
mov dword [ebp + 0x1f8], 0
call fcn.00404c40
add esp, 0xc
cmp eax, 0x40
mov dword [esp + 0x10], eax
jl 0x407968
cmp eax, 0x43
jg 0x407968
lea edx, [ebp + 0x190]
push edx
push 0x24
push 0
push esi
push edi
call fcn.00404370
jmp 0x407994
lea eax, [ebp + 0x190]
push eax
push 0x24
push 0
push esi
push edi
call fcn.004043e0
add esp, 0x14
cmp eax, 1
je 0x4079ae
lea eax, [ebp + 0x190]
push eax
push 0x24
push 0x11
push esi
push edi
call fcn.004043e0
add esp, 0x14
cmp eax, 1
jne 0x407b5b
mov esi, dword [esp + 0xab28]
mov edi, dword [esp + 0xab24]
lea eax, [esp + 0xed4]
push eax
push 8
push 1
push esi
push edi
call fcn.004043e0
add esp, 0x14
cmp eax, 1
jne 0x4079dc
mov ecx, dword [esp + 0xed8]
and ecx, 0xff
mov dword [ebp + 0x1f8], ecx
mov edx, dword [str.DVD_ROM]
mov eax, dword [0x48ad1c]
mov ecx, dword [str.DVD_RAM]
mov dword [esp + 0x100], edx
mov edx, dword [0x48ad14]
mov dword [esp + 0x104], eax
mov dword [esp + 0x10e], edx
mov dx, word [0x48ad0c]
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 [0x48ad04]
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 [0x48ad06]
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 [0x48acf4]
mov byte [esp + 0x13b], al
mov al, byte [0x48acec]
mov dword [esp + 0x128], ecx
mov cx, word [0x48acfc]
mov word [esp + 0x12c], dx
mov dl, byte [0x48acfe]
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 [0x48ace8]
mov dword [esp + 0x13c], ecx
shr eax, 4
mov dword [esp + 0x140], edx
mov byte [esp + 0x145], 0
je 0x407b23
cmp eax, 1
je 0x407b23
mov dword [ebp], 5
jmp 0x407b2a
mov dword [ebp], 3
cmp eax, 9
jne 0x407b8d
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 0x407bc6
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 0x407ca9
cmp eax, 0xa
jne 0x407b99
mov eax, 4
jmp 0x407b34
cmp eax, 0xe
jne 0x407ba5
mov eax, 6
jmp 0x407b34
cmp eax, 2
jne 0x407b34
mov cl, byte [ebp + 0x196]
and cl, 0x60
cmp cl, 0x20
jne 0x407b34
mov edi, str.DVD_R_DL
jmp 0x407b3e
cmp edx, 0x41
je 0x407bd0
cmp edx, 0x42
jne 0x407bf9
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 0x407c0f
mov dword [ebp], 7
mov edi, str.BD_RE
jmp 0x407c91
cmp edx, 0x15
je 0x407c19
cmp edx, 0x16
jne 0x407c42
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 0x407c55
mov dword [ebp], 5
mov edi, str.DVDR
jmp 0x407c91
cmp edx, 0x1a
jne 0x407c80
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 0x407ca9
cmp edx, 0x2b
jne 0x407cae
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 0x407cd3
mov ecx, dword [esp + 0xab24]
lea eax, [ebp + 0xc8]
push eax
mov eax, dword [esp + 0xab2c]
push eax
push ecx
call fcn.00409350
add esp, 0xc
mov eax, dword [ebp]
cmp eax, 5
je 0x407ce4
cmp eax, 7
jne 0x407e6c
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.00404cb0
add esp, 0x18
cmp eax, 1
jne 0x407e6c
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 0x407d4d
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 0x408049
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 0x407dbf
cmp dword [ebp], 7
cdq
jne 0x407da9
mov ecx, 0x112b
idiv ecx
mov ebx, edx
neg ebx
sbb ebx, ebx
and ebx, 0x69
add ebx, ecx
jmp 0x407dbb
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.0044537b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
add esp, 0x10
dec eax
cmp ecx, eax
jge 0x407e1a
mov edi, 0x48acb4
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 0x407d73
jmp 0x408049
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.00403000
add esp, 0x14
cmp eax, 1
jne 0x408049
mov edx, dword [esp + 0xef3]
mov edi, 0x4a53ec
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 0x408049
lea esi, [esp + 0xef7]
mov dword [esp + 0x1c], esi
jmp 0x407ef6
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 0x407f74
mov eax, ecx
mov esi, 0x569
cdq
idiv esi
test edx, edx
je 0x407f6b
cmp ecx, 0xcfc
je 0x407f6b
mov eax, ecx
mov esi, 0x564
cdq
idiv esi
test edx, edx
je 0x407f64
cmp ecx, 0xcf0
je 0x407f64
mov eax, ecx
mov esi, 0x548
cdq
idiv esi
test edx, edx
je 0x407f5d
cmp ecx, 0xcac
je 0x407f5d
cmp ecx, 0xcad
je 0x407f5d
mov ebx, 0xb0
jmp 0x407f70
mov ebx, 0x548
jmp 0x407f70
mov ebx, 0x564
jmp 0x407f70
mov ebx, 0x569
mov dword [esp + 0x14], ebx
mov eax, ecx
cdq
idiv ebx
test edx, edx
je 0x407fa7
cmp ebx, 0xb0
je 0x407fa7
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.0044537b
add esp, 0x10
jmp 0x407fbf
mov eax, ecx
lea ecx, [esp + 0x5c]
cdq
idiv ebx
push eax
push str._d_X
push ecx
call fcn.0044537b
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
lea eax, [edx - 1]
cmp ecx, eax
jge 0x407ffc
mov edi, 0x48acb4
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 0x407ef2
push 0x486304
call fcn.00404bf0
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.004031d0
add esp, 0x1c
cmp eax, 1
je 0x408086
mov byte [ebp + 0x96], 0
jmp 0x4080c0
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.00403a30
add esp, 0x20
mov byte [ebp + 0x96], al
lea eax, [esp + 0xed4]
push eax
push 0x20
push edi
push ebx
call fcn.00403170
add esp, 0x10
cmp eax, 1
jne 0x4080e9
mov cl, byte [esp + 0xed6]
and ecx, 3
mov dword [ebp + 0xc4], ecx
push 0x48acb0
call fcn.00404bf0
lea edx, [esp + 0x228]
push edx
push 0x324
push 0
push edi
push ebx
call fcn.00402bb0
add esp, 0x18
cmp eax, 1
jne 0x409050
push str.
call fcn.00404bf0
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 0x408195
lea ecx, [esp + 0x22d]
test byte [ecx - 4], 4
je 0x408187
cmp esi, 0xffffffff
jne 0x40818b
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 0x40818b
inc dword [esp + 0x10]
add ecx, 8
dec eax
jne 0x408160
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.00402bb0
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 0x40823d
lea eax, [esp + 0x226]
cmp byte [eax], 0xa0
je 0x408227
inc ecx
add eax, 0xb
cmp ecx, edx
jl 0x408218
jmp 0x40823d
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 0x408de3
push 0x48aca0
call fcn.00404bf0
lea eax, [esp + 0xed8]
lea ecx, [esi + 0x10]
push eax
push 1
push ecx
push edi
push ebx
call fcn.004046b0
add esp, 0x18
cmp eax, 1
jne 0x40827d
mov dl, byte [esp + 0xee3]
and edx, 3
mov dword [ebp + 0x90], edx
mov eax, dword [ebp]
cmp eax, 3
je 0x40845c
cmp eax, 5
je 0x40845c
cmp eax, 6
je 0x40845c
cmp eax, 7
je 0x40845c
mov eax, dword [esp + 0x10]
mov dword [ebp], 2
test eax, eax
je 0x40830a
cmp dword [ebp + 0x8c], 1
jle 0x4082e3
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 0x408322
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 0x408322
mov eax, dword [ebp + 0x90]
lea ebx, [ebp + 4]
push eax
push str.Data_CD__Mode__d_
push ebx
call fcn.0044537b
add esp, 0xc
cmp dword [ebp + 0x90], 2
jne 0x40844a
lea ecx, [esp + 0x40]
call fcn.0043cf12
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.0044537b
add esp, 0xc
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x40]
push 0
push eax
call fcn.0043cfd5
test eax, eax
je 0x4083c6
push esi
lea ecx, [esp + 0x60]
push str._c:MPEGAV
push ecx
call fcn.0044537b
add esp, 0xc
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x40]
push 0
push edx
call fcn.0043cfd5
test eax, eax
je 0x4083c6
push esi
lea eax, [esp + 0x60]
push str._c:CDI
push eax
call fcn.0044537b
add esp, 0xc
lea ecx, [esp + 0x5c]
push 0
push ecx
lea ecx, [esp + 0x48]
call fcn.0043cfd5
test eax, eax
je 0x4083c6
mov edi, str.VideoCD
jmp 0x408419
push esi
lea eax, [esp + 0x60]
push str._c:PHOTO_CD
push eax
call fcn.0044537b
add esp, 0xc
lea ecx, [esp + 0x5c]
push 0
push ecx
lea ecx, [esp + 0x48]
call fcn.0043cfd5
test eax, eax
je 0x408436
push esi
lea edx, [esp + 0x60]
push str._c:CDI
push edx
call fcn.0044537b
add esp, 0xc
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x40]
push 0
push eax
call fcn.0043cfd5
test eax, eax
je 0x408436
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.0043cf4f
mov ebx, dword [esp + 0xab24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xab28]
cmp dword [ebp + 0x88], 1
jne 0x408467
xor esi, esi
lea eax, [esp + 0xed4]
add esi, 0x10
push eax
push 0x10
push esi
push edi
push ebx
call fcn.00402d10
add esp, 0x14
cmp eax, 1
jne 0x409295
push 0x48ac30
call fcn.00404bf0
push 5
lea edx, [esp + 0xedd]
lea ecx, [esp + 0xedc]
push str.CD001
push edx
mov dword [esp + 0x20], ecx
call fcn.00445700
add esp, 0x10
test eax, eax
jne 0x408d4b
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.004049c0
push eax
mov eax, dword [esp + 0x4c]
push 0x489e54
push eax
call fcn.0044537b
lea ecx, [esp + 0x102a]
push 0x80
lea edx, [esp + 0x78]
push ecx
push edx
call fcn.004049c0
push eax
mov eax, dword [esp + 0x4c]
push 0x489e54
push eax
call fcn.0044537b
lea ecx, [esp + 0x1142]
push 0x80
lea edx, [esp + 0x90]
push ecx
push edx
call fcn.004049c0
push eax
mov eax, dword [esp + 0x6c]
push 0x489e54
push eax
call fcn.0044537b
add esp, 0x48
lea ecx, [esp + 0x1201]
lea edx, [esp + 0x5c]
push ecx
push str._.4s
push edx
call fcn.0044537b
lea eax, [esp + 0x68]
push eax
call fcn.0044518b
lea ecx, [esp + 0x1215]
lea edx, [esp + 0x6c]
push ecx
push str._.2s
push edx
mov ebx, eax
call fcn.0044537b
lea eax, [esp + 0x78]
push eax
call fcn.0044518b
lea ecx, [esp + 0x1227]
lea edx, [esp + 0x7c]
push ecx
push str._.2s
push edx
mov edi, eax
call fcn.0044537b
lea eax, [esp + 0x88]
push eax
call fcn.0044518b
mov esi, eax
add esp, 0x30
cmp esi, 1
jl 0x408603
cmp esi, 0x1f
jg 0x408603
cmp edi, 1
jl 0x408603
cmp edi, 0xc
jg 0x408603
dec edi
push ebx
push edi
call fcn.004049b0
add esp, 4
lea ecx, [esp + 0x60]
push eax
push esi
push str._d__s__d
push ecx
call fcn.0044537b
add esp, 0x14
jmp 0x408629
mov edi, 0x489e9c
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 0x408680
test cl, cl
je 0x40867c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x408680
add eax, 2
add esi, 2
test cl, cl
jne 0x408658
xor eax, eax
jmp 0x408685
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4086b5
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.00445700
add esp, 0xc
test eax, eax
jne 0x4087cf
cmp byte [ebx], 2
jne 0x4087cf
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.004046e0
lea edx, [esp + 0x68]
push 0x10
lea eax, [esp + 0x1b0]
push edx
push eax
call fcn.004049c0
mov ecx, dword [esp + 0x54]
push eax
push 0x489e54
push ecx
call fcn.0044537b
lea edx, [ebx + 0x13e]
push 0x40
lea eax, [esp + 0x84]
push edx
push eax
call fcn.004046e0
lea ecx, [esp + 0x8c]
push 0x40
lea edx, [esp + 0x1d4]
push ecx
push edx
call fcn.004049c0
push eax
mov eax, dword [esp + 0x64]
push 0x489e54
push eax
call fcn.0044537b
add esp, 0x48
add ebx, 0x23e
lea ecx, [esp + 0x5c]
push 0x40
push ebx
push ecx
call fcn.004046e0
lea edx, [esp + 0x68]
push 0x40
lea eax, [esp + 0x1b0]
push edx
push eax
call fcn.004049c0
mov ecx, dword [esp + 0x44]
push eax
push 0x489e54
push ecx
call fcn.0044537b
add esp, 0x24
mov esi, 0x10
inc esi
cmp esi, 0x10
jl 0x4086ba
mov edx, dword [esp + 0x3c]
push edx
call fcn.00402b10
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 0x40881a
test cl, cl
je 0x408816
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40881a
add eax, 2
add esi, 2
test cl, cl
jne 0x4087f2
xor eax, eax
jmp 0x40881f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408844
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 0x408855
cmp eax, 5
jne 0x408d4b
lea ecx, [esp + 0x180]
call fcn.0043cf12
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.0044537b
add esp, 0xc
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x180]
push 0
push eax
call fcn.0043cfd5
test eax, eax
je 0x408d34
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 0x4088dc
test cl, cl
je 0x4088d8
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4088dc
add eax, 2
add esi, 2
test cl, cl
jne 0x4088b4
xor eax, eax
jmp 0x4088e1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408903
mov edi, 0x48aba0
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 0x40893b
lea ebx, [ebp + 4]
lea ecx, [esp + 0x1a0]
push ebx
push str.DVD_Video___s_
push ecx
call fcn.0044537b
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 pe_nt_image_headers32
lea eax, [esp + 0x60]
push 0x8000
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.004512e6
mov ebx, eax
add esp, 0xc
cmp ebx, 0xffffffff
je 0x408d2a
push 0x48ab88
call fcn.00404bf0
mov eax, 0x160
push 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, 0x1e0
push pe_nt_image_headers32
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.0044fc27
lea ecx, [esp + 0x44]
push 2
push ecx
push ebx
call fcn.0044f831
mov eax, dword [esp + 0x50]
add esp, 0x1c
mov cl, al
mov dl, ah
and cl, 0x10
cmp cl, 0x10
jne 0x408a12
shr edx, 2
and edx, 3
shl edx, 2
mov esi, dword [esp + edx + 0xe0]
jmp 0x408a22
shr edx, 2
and edx, 3
shl edx, 2
mov esi, dword [esp + edx + 0xf0]
test al, 0xc
mov edi, 0x48ab84
je 0x408a30
mov edi, str.16:9
cmp cl, 0x10
mov ecx, 0x48ab78
je 0x408a3f
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.0044537b
push 0
push 0x23
push ebx
mov byte [esp + 0x42], 0
call fcn.0044fc27
lea ecx, [esp + 0x41]
push 1
push ecx
push ebx
call fcn.0044f831
mov al, byte [esp + 0x4d]
add esp, 0x34
test al, 0x3f
lea edx, [esp + 0x5c]
jne 0x408ab4
mov edi, 0x48a0a0
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 0x408b85
mov edi, 0x4a53ec
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 0x408b77
mov cl, byte [esp + 0x1a]
test cl, cl
je 0x408b27
mov edi, 0x48a35c
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 0x48a094
push eax
call fcn.0044537b
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 0x408adc
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.0044b7e9
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x60]
push ecx
push str._c:VIDEO_TSVTS_01_0.IFO
push edx
call fcn.0044537b
push pe_nt_image_headers32
lea eax, [esp + 0x70]
push 0x8000
push eax
call fcn.004512e6
mov esi, eax
add esp, 0x1c
cmp esi, 0xffffffff
je 0x408d34
push 0
push 0xcc
push esi
call fcn.0044fc27
lea ecx, [esp + 0x6e0]
push 4
push ecx
push esi
call fcn.0044f831
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.0044fc27
lea eax, [esp + 0x6f8]
push 0x800
push eax
push esi
call fcn.0044f831
mov eax, dword [esp + 0x705]
add esp, 0x30
and eax, 0xff
mov dword [esp + 0x10], 0
jle 0x408d15
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.0044fc27
lea ecx, [esp + 0x28]
push 4
push ecx
push esi
call fcn.0044f831
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 0x408d03
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
add edi, 8
dec eax
mov dword [esp + 0x24], eax
jne 0x408c6b
mov eax, dword [esp + 0x10]
push esi
mov dword [ebp + 0x1f4], eax
call fcn.0044b7e9
add esp, 4
jmp 0x408d34
mov dword [ebp + 0x1f4], 0
lea ecx, [esp + 0x180]
mov dword [esp + 0xab1c], 0xffffffff
call fcn.0043cf4f
lea ebx, [esp + 0xed5]
mov dword [esp + 0x24], 0x10
push 3
push 0x48ab38
push ebx
call fcn.00445700
add esp, 0xc
test eax, eax
jne 0x408dc0
mov al, byte [esp + 0x1b]
lea edx, [ebp + 0x1fc]
test al, al
mov edi, str.__UDF
je 0x408da3
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 0x408dbb
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 0x408d5a
push 0x48ab24
call fcn.00404bf0
add esp, 4
jmp 0x409295
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.00403ff0
mov edx, dword [esp + 0xee4]
mov eax, dword [esp + 0xee5]
and edx, 0xff
and eax, 0xff
shl edx, 8
add edx, eax
push 0x48ab04
cmp edx, 0x16
setg cl
mov byte [ebp + 0x4a4], cl
call fcn.00404bf0
mov al, byte [ebp + 0x4a4]
add esp, 0x14
test al, al
je 0x408fa3
lea edx, [esp + 0xed4]
lea eax, [esp + 0x100]
push edx
push eax
push 0
push 0x80
call fcn.00404250
add esp, 0x10
test al, al
je 0x408ee5
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.00404250
add esp, 0x10
test al, al
je 0x408f2e
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.00404250
add esp, 0x10
test al, al
je 0x408f77
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.00404250
add esp, 0x10
test al, al
je 0x408fa3
lea edi, [esp + 0x100]
jmp 0x409003
mov ecx, dword [esp + 0xab24]
lea eax, [esp + 0xed4]
push eax
push 0x14
push 0
push 2
push ebx
push ecx
call fcn.00402cb0
add esp, 0x18
cmp eax, 1
jne 0x409027
push 0x48aaf8
call fcn.00404bf0
mov al, byte [esp + 0xed9]
add esp, 4
test al, 0x80
je 0x408ffe
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0xed9]
push edx
push str._.13s
push eax
call fcn.0044537b
add esp, 0xc
jmp 0x409295
mov edi, 0x489e9c
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 0x409295
mov edi, 0x489e9c
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 0x409295
push edi
push ebx
call fcn.00403f80
add esp, 8
mov byte [ebp + 0x94], al
test al, al
je 0x40928e
mov eax, dword [ebp]
or ecx, 0xffffffff
cmp eax, 3
mov dword [ebp + 0x84], ecx
je 0x409143
cmp eax, 5
je 0x409143
cmp eax, 6
je 0x409143
cmp eax, 7
je 0x409143
mov eax, dword [ebp + 0xb8]
test eax, eax
je 0x40911e
mov eax, dword [ebp + 0xbc]
cmp eax, 0xa
jle 0x4090d2
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 0x409281
jne 0x4090f9
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 0x409281
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 0x409281
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 0x409281
lea ebx, [ebp + 4]
lea ecx, [esp + 0x180]
push ebx
push str.Blank__s
push ecx
mov byte [ebp + 0x95], 1
call fcn.0044537b
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.00404320
add esp, 0x18
cmp eax, 1
jne 0x4091ef
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 0x4091f2
or eax, 0xffffffff
cmp eax, 1
mov dword [ebp + 0x10c], eax
jne 0x409281
mov eax, dword [esp + 0xab28]
mov ecx, dword [esp + 0xab24]
lea edx, [esp + 0xed4]
push edx
push 0x20
push eax
push ecx
call fcn.00402c60
add esp, 0x10
cmp eax, 1
jne 0x409281
cmp byte [esp + 0xed7], 7
jbe 0x409281
mov eax, dword [esp + 0xedb]
cmp ah, 1
jne 0x409281
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 0x48aa90
call fcn.00404bf0
add esp, 4
mov dword [ebp], 0
mov eax, dword [esp + 0x38]
push 0
push 0
push eax
call fcn.0040ad80
add esp, 0xc
jmp 0x40932d
test cl, cl
je 0x40932d
mov ecx, dword [0x4a1da0]
mov dword [esp + 0x14], ecx
lea edx, [esp + 0x14]
push 0x6a
push edx
mov dword [esp + 0xab24], 2
call fcn.0045bc67
mov eax, dword [esp + 0x1c]
add esp, 8
push 0
push 0x10
push eax
call fcn.004655d3
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.00404bf0
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0xab1c], 0xffffffff
call fcn.00461a95
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