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

Disassembly:
push 0xffffffffffffffff
push 0x577de1
mov eax, dword fs:[0]
push eax
mov eax, 0xae14
call fcn.005401e0
mov eax, dword [0x60bd28]
xor eax, esp
mov dword [esp + 0xae10], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x60bd28]
xor eax, esp
push eax
lea eax, [esp + 0xae28]
mov dword fs:[0], eax
mov eax, dword [esp + 0xae38]
mov esi, dword [eax + 5]
mov ebp, dword [eax + 1]
mov ebx, dword [esp + 0xae3c]
push esi
push ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], 0
mov byte [esp + 0x36], 0
call fcn.004052a0
push 0
push 1
push eax
mov dword [esp + 0x5c], eax
call fcn.0041af40
add esp, 0x14
xor cl, cl
cmp eax, 0x139c
jne 0x414bc0
call fcn.0041baf0
test al, al
je 0x416a25
push esi
push ebp
call fcn.004052a0
push eax
call fcn.0041ad60
add esp, 0xc
mov cl, 1
test eax, eax
jne 0x416979
push 0x62c
push eax
push ebx
call fcn.0053fd60
lea eax, [esp + 0x40]
push 0xaa
push eax
call fcn.004082b0
mov ecx, dword [eax]
lea edi, [ebx + 4]
add esp, 0x14
mov dword [esp + 0x28], edi
mov edx, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x414bf1
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414c1f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx + 0x400]
mov dword [esp + 0x4c], eax
mov dword [eax], 0x612f6e
lea eax, [ebx + 0x608]
mov dword [esp + 0x34], eax
mov dword [eax], 0x612f6e
lea ecx, [esp + 0x11e4]
lea eax, [ebx + 0x482]
push ecx
mov dword [esp + 0x34], eax
mov dword [eax], 0x612f6e
lea eax, [ebx + 0x586]
push esi
push ebp
mov dword [esp + 0x4c], eax
mov dword [eax], 0x612f6e
mov dword [ebx + 0xc8], 0x612f6e
mov dword [ebx], 0
mov dword [ebx + 0xc4], 0xffffffff
call fcn.00405450
add esp, 0xc
cmp eax, 1
je 0x414cb1
lea edx, [esp + 0x11e4]
push edx
push 0x80
push esi
push ebp
call fcn.004054c0
add esp, 0x10
cmp eax, 1
je 0x414ce8
jmp 0x416963
movzx ecx, byte [esp + 0x11e4]
movzx edx, byte [esp + 0x11e5]
movzx eax, byte [esp + 0x11e6]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x11e7]
shl ecx, 8
add ecx, eax
shl ecx, 8
lea eax, [ecx + edx + 1]
mov dword [ebx + 0x84], eax
push 0
push 0x597230
call fcn.00409e00
push esi
push ebp
mov dword [ebx + 0x37c], 0
call fcn.00407370
add esp, 0x10
lea esi, [ebx + 0x311]
push esi
mov dword [esp + 0x28], eax
add eax, 0xffffffc0
cmp eax, 3
push 0x24
push 0
ja 0x414d6a
mov ecx, dword [esp + 0x28]
push ecx
mov edx, ebp
push edx
call fcn.00406a10
mov ebp, eax
movzx eax, byte [esi + 0x10]
shr eax, 4
add esp, 0x14
cmp eax, 1
mov dword [esp + 0x18], eax
jle 0x414d51
mov al, byte [ebx + 0x317]
and al, 0xbf
or al, 0x20
mov byte [ebx + 0x317], al
mov cl, byte [esi + 0xb]
mov dl, byte [ebx + 0x316]
shl cl, 4
and dl, 0xf
or cl, dl
mov byte [ebx + 0x316], cl
jmp 0x414d94
mov eax, dword [esp + 0x28]
push eax
push ebp
call fcn.00406a90
add esp, 0x14
cmp eax, 1
je 0x414d9d
mov ecx, dword [esp + 0x1c]
push esi
push 0x24
push 0x11
push ecx
mov edx, ebp
push edx
call fcn.00406a90
add esp, 0x14
mov ebp, eax
cmp ebp, 1
jne 0x414f85
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x11e4]
push eax
push 8
push 1
push ecx
push edx
call fcn.00406a90
add esp, 0x14
cmp eax, 1
jne 0x414dce
movzx eax, byte [esp + 0x11e8]
mov dword [ebx + 0x37c], eax
mov edx, dword [0x596cb4]
mov ecx, dword [str.DVD_ROM]
mov dword [esp + 0x90], edx
mov edx, dword [0x596cac]
mov dword [esp + 0x8c], ecx
mov ecx, dword [str.DVD_RAM]
mov dword [esp + 0x9a], edx
movzx edx, word [0x596ca4]
mov dword [esp + 0x96], ecx
mov ecx, dword [str.DVD_R]
mov word [esp + 0xa4], dx
movzx edx, word [0x596c9c]
mov dword [esp + 0xa0], ecx
mov ecx, dword [str.DVD_RW]
xor eax, eax
mov dword [esp + 0xaa], ecx
mov cl, byte [0x596c9e]
mov word [esp + 0xae], dx
mov edx, dword [str.DVDR]
mov byte [esp + 0xb0], cl
movzx ecx, word [0x596c88]
mov dword [esp + 0xb4], edx
mov edx, dword [str.DVDRW]
mov word [esp + 0x94], ax
mov word [esp + 0x9e], ax
mov dword [esp + 0xa6], eax
mov word [esp + 0xb1], ax
mov byte [esp + 0xb3], al
mov dword [esp + 0xba], eax
mov dword [esp + 0xbe], edx
movzx edx, byte [0x596c82]
mov word [esp + 0xc5], ax
mov byte [esp + 0xc7], al
mov eax, dword [str.DVDR_DL]
mov word [esp + 0xb8], cx
movzx ecx, word [0x596c80]
mov dword [esp + 0xc8], eax
movzx eax, byte [ebx + 0x315]
shr eax, 4
mov byte [esp + 0xc4], dl
movzx edx, byte [0x596c78]
mov word [esp + 0xc2], cx
mov ecx, dword [0x596c74]
mov dword [esp + 0xcc], ecx
mov byte [esp + 0xd0], dl
mov byte [esp + 0xd1], 0
je 0x414f13
cmp eax, 1
je 0x414f13
mov dword [ebx], 5
jmp 0x414f19
mov dword [ebx], 3
cmp eax, 9
jne 0x414f3f
mov eax, 5
lea eax, [eax + eax*4]
lea eax, [esp + eax*2 + 0x8c]
mov edx, edi
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x414f31
jmp 0x414f93
cmp eax, 0xa
jne 0x414f4b
mov eax, 4
jmp 0x414f23
cmp eax, 0xe
jne 0x414f57
mov eax, 6
jmp 0x414f23
cmp eax, 2
jne 0x414f23
mov cl, byte [ebx + 0x317]
and cl, 0x60
cmp cl, 0x20
jne 0x414f23
mov edx, dword [str.DVD_R_DL]
mov dword [edi], edx
mov eax, dword [0x596c90]
mov dword [edi + 4], eax
mov cl, byte [0x596c94]
mov byte [edi + 8], cl
jmp 0x414f93
cmp dword [esp + 0x24], 0xa
jg 0x414f93
and byte [ebx + 0x317], 0x9f
mov ecx, dword [esp + 0x24]
lea eax, [ecx - 8]
cmp eax, 0x52
ja case.0x414faa.11
movzx edx, byte [eax + 0x416a8c]
jmp dword [edx*4 + 0x416a50]
mov dword [ebx], 0xe
mov eax, dword [str.CD_ROM]
mov dword [edi], eax
mov dx, word [0x59722c]
mov word [edi + 4], dx
mov al, byte [0x59722e]
mov byte [edi + 6], al
jmp case.0x414faa.11
mov dword [ebx], 0xf
mov edx, dword [str.CD_R]
mov dword [edi], edx
mov al, byte [0x59696c]
mov byte [edi + 4], al
jmp case.0x414faa.11
mov dword [ebx], 0x10
mov edx, dword [str.CD_RW]
mov dword [edi], edx
mov ax, word [0x596974]
mov word [edi + 4], ax
jmp case.0x414faa.11
mov dword [ebx], 5
mov edx, dword [str.DVD_R_DL]
mov dword [edi], edx
mov eax, dword [0x596c90]
mov dword [edi + 4], eax
mov dl, byte [0x596c94]
mov byte [edi + 8], dl
jmp case.0x414faa.11
mov dword [ebx], 5
mov eax, dword [str.DVDRW]
mov dword [edi], eax
mov dx, word [0x596c80]
mov word [edi + 4], dx
mov al, byte [0x596c82]
mov byte [edi + 6], al
jmp case.0x414faa.11
mov dword [ebx], 5
mov edx, dword [str.DVDR]
mov dword [edi], edx
mov ax, word [0x596c88]
mov word [edi + 4], ax
jmp case.0x414faa.11
mov dword [ebx], 5
mov edx, dword [str.DVDR_DL]
mov dword [edi], edx
mov eax, dword [0x596c74]
mov dword [edi + 4], eax
mov dl, byte [0x596c78]
mov byte [edi + 8], dl
jmp case.0x414faa.11
cmp dword [esp + 0x18], 1
mov dword [ebx], 6
mov eax, dword [str.BD_ROM]
mov dword [edi], eax
mov dx, word [0x596c6c]
mov word [edi + 4], dx
mov al, byte [0x596c6e]
mov byte [edi + 6], al
jle case.0x414faa.11
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4150c6
mov edx, dword [0x597224]
mov dword [edi], edx
jmp case.0x414faa.11
cmp dword [esp + 0x18], 1
mov dword [ebx], 6
mov eax, dword [str.BD_R]
mov dword [edi], eax
mov dl, byte [0x596c64]
mov byte [edi + 4], dl
jle case.0x414faa.11
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x415101
mov eax, dword [0x597224]
mov dword [edi], eax
jmp case.0x414faa.11
cmp dword [esp + 0x18], 1
mov dword [ebx], 6
mov edx, dword [str.BD_RE]
mov dword [edi], edx
mov ax, word [0x596c5c]
mov word [edi + 4], ax
jle case.0x414faa.11
add edi, 0xffffffff
lea ecx, [ecx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x415140
mov edx, dword [0x597224]
mov dword [edi], edx
jmp case.0x414faa.11
mov dword [ebx], 8
mov eax, dword [str.HD_DVD_ROM]
mov dword [edi], eax
mov edx, dword [0x596c50]
mov dword [edi + 4], edx
mov ax, word [0x596c54]
mov word [edi + 8], ax
mov dl, byte [0x596c56]
mov byte [edi + 0xa], dl
jmp case.0x414faa.11
mov dword [ebx], 9
mov eax, dword [str.HD_DVD_R]
mov dword [edi], eax
mov edx, dword [0x596c44]
mov dword [edi + 4], edx
mov al, byte [0x596c48]
mov byte [edi + 8], al
jmp case.0x414faa.11
mov dword [ebx], 0xc
mov edx, dword [str.HD_DVD_R_DL]
mov dword [edi], edx
mov eax, dword [0x596c38]
mov dword [edi + 4], eax
mov edx, dword [0x596c3c]
mov dword [edi + 8], edx
jmp case.0x414faa.11
mov dword [ebx], 0xd
mov eax, dword [str.HD_DVD_RW_DL]
mov dword [edi], eax
mov edx, dword [0x596c10]
mov dword [edi + 4], edx
mov eax, dword [0x596c14]
mov dword [edi + 8], eax
mov dl, byte [0x596c18]
mov byte [edi + 0xc], dl
mov eax, dword [esp + 0x38]
mov dword [eax + 0x8491], ecx
mov eax, dword [ebx]
cmp eax, 5
mov dword [esp + 0x50], eax
jne 0x415218
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea eax, [ebx + 0xc8]
push eax
push ecx
push edx
call fcn.00414760
add esp, 0xc
cmp dword [ebx], 7
jne 0x415236
mov ecx, dword [esp + 0x20]
lea eax, [ebx + 0xc8]
push eax
mov eax, dword [esp + 0x20]
push eax
push ecx
call fcn.00414890
add esp, 0xc
cmp dword [ebx], 9
jne 0x415254
mov edx, dword [esp + 0x1c]
lea eax, [ebx + 0xc8]
push eax
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.00414910
add esp, 0xc
mov eax, dword [ebx]
cmp eax, 5
je 0x415269
cmp eax, 7
je 0x415269
cmp eax, 9
jne 0x41541b
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x9e4]
push ecx
push 0x20
push 3
push 0
push edx
push eax
call fcn.00407400
add esp, 0x18
cmp eax, 1
jne 0x41541b
movzx ecx, byte [esp + 0x9e6]
movzx edx, byte [esp + 0x9e7]
shl ecx, 8
lea eax, [ecx + edx - 4]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp eax, 0x20
mov dword [esp + 0x24], eax
jle 0x4152c4
mov eax, 0x20
mov dword [esp + 0x24], eax
or ebp, 0xffffffff
test eax, eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x3c], 0
jle 0x415663
lea eax, [esp + 0x9fb]
mov dword [esp + 0x38], eax
jmp 0x4152f0
mov eax, dword [esp + 0x38]
movzx ecx, byte [eax - 1]
movzx edx, byte [eax]
shl ecx, 8
add ecx, edx
cmp ebp, 0xffffffff
mov dword [esp + 0x14], ecx
jne 0x415370
mov eax, dword [ebx]
cmp eax, 7
jne 0x415338
mov eax, 0x3ba55db9
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x112b
sub ecx, eax
neg ecx
sbb ecx, ecx
and ecx, 0x69
add ecx, 0x112b
jmp 0x41536a
cmp eax, 9
jne 0x415344
mov ebp, 0x11da
jmp 0x41536c
mov eax, 0x5ea306d7
imul ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x569
sub ecx, eax
neg ecx
sbb ecx, ecx
and ecx, 0xffffffdf
add ecx, 0x569
mov ebp, ecx
mov dword [esp + 0x18], ebp
fild dword [esp + 0x14]
sub esp, 8
lea ecx, [esp + 0x134]
fidiv dword [esp + 0x20]
fstp qword [esp]
push str._2.1f_X
push ecx
call fcn.00540420
mov eax, dword [esp + 0x34]
add eax, 0xffffffff
add esp, 0x10
cmp dword [esp + 0x3c], eax
jge 0x4153c2
lea edi, [esp + 0x12c]
add edi, 0xffffffff
lea ebx, [ebx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4153b0
mov edx, dword [0x597218]
mov dword [edi], edx
lea eax, [esp + 0x12c]
mov esi, eax
jmp 0x4153d0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4153d0
lea edi, [ebx + 0x110]
sub eax, esi
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4153e4
add dword [esp + 0x38], 0x10
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x3c]
add eax, 1
and ecx, 3
cmp eax, dword [esp + 0x24]
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x3c], eax
jl 0x4152f0
jmp 0x415663
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x11e4]
push eax
push 0x80
push 0x2a
push ecx
push edx
call fcn.00407ab0
add esp, 0x14
cmp eax, 1
jne 0x415663
movzx eax, byte [esp + 0x1203]
fld qword [0x597210]
xor ebp, ebp
fstp qword [esp + 0x54]
cmp eax, ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], ebp
mov byte [ebx + 0x110], 0
mov dword [esp + 0x24], ebp
jle 0x415663
mov esi, ebp
mov edi, eax
movzx ecx, byte [esp + esi*4 + 0x1206]
movzx eax, byte [esp + esi*4 + 0x1207]
shl ecx, 8
add ecx, eax
test ebp, ebp
mov dword [esp + 0x14], ecx
jne 0x41552e
mov eax, 0x5ea306d7
imul ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x569
mov edx, ecx
sub edx, eax
je 0x415525
cmp ecx, 0xcfc
je 0x415525
mov eax, 0x5eface49
imul ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x564
mov edx, ecx
sub edx, eax
je 0x41551e
cmp ecx, 0xcf0
je 0x41551e
mov eax, 0x60f25deb
imul ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x548
mov edx, ecx
sub edx, eax
je 0x415517
cmp ecx, 0xcac
je 0x415517
cmp ecx, 0xcad
je 0x415517
mov ebp, 0xb0
jmp 0x41552a
mov ebp, 0x548
jmp 0x41552a
mov ebp, 0x564
jmp 0x41552a
mov ebp, 0x569
mov dword [esp + 0x18], ebp
mov eax, ecx
cdq
idiv ebp
test edx, edx
mov dword [esp + 0x38], eax
je 0x415568
cmp ebp, 0xb0
je 0x415568
fild dword [esp + 0x14]
sub esp, 8
lea eax, [esp + 0x134]
fidiv dword [esp + 0x20]
fstp qword [esp]
push str._2.1f_X
push eax
call fcn.00540420
add esp, 0x10
jmp 0x41557e
push eax
lea ecx, [esp + 0x130]
push str._d_X
push ecx
call fcn.00540420
add esp, 0xc
fild dword [esp + 0x38]
fld qword [esp + 0x54]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x41564a
add edi, 0xffffffff
fstp qword [esp + 0x54]
cmp esi, edi
jge 0x4155d6
lea eax, [esp + 0x12c]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4155a8
sub eax, edx
cmp eax, 0x1fd
jae 0x4155d6
lea edi, [esp + 0x12c]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4155c4
mov edx, dword [0x597218]
mov dword [edi], edx
lea eax, [ebx + 0x110]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4155e0
sub eax, edx
mov edx, eax
lea eax, [esp + 0x12c]
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4155f7
sub eax, esi
add eax, edx
cmp eax, 0x200
jae 0x41564c
lea eax, [esp + 0x12c]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x415614
lea edi, [ebx + 0x110]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea ebx, [ebx]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x415630
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x41564c
fstp st(0)
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
add esi, 1
cmp esi, edi
mov dword [esp + 0x24], esi
jl 0x415478
push 0
push 0x59720c
call fcn.00409e00
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
lea eax, [ebx + 0x97]
push eax
push 0x20
push 0
push 4
push edi
push esi
call fcn.00406120
add esp, 0x20
cmp eax, 1
je 0x41569c
mov byte [ebx + 0x96], 0
jmp 0x4156d6
lea ecx, [ebx + 0x10c]
push ecx
lea edx, [ebx + 0xbc]
push edx
lea eax, [ebx + 0xb8]
push eax
lea ecx, [ebx + 0xc0]
push ecx
lea eax, [ebx + 0xc8]
push eax
lea edx, [ebx + 0x108]
push edx
push edi
push esi
call fcn.00408a80
add esp, 0x20
mov byte [ebx + 0x96], al
lea eax, [esp + 0x11e4]
push eax
push pe_nt_image_headers32
mov ecx, edi
push ecx
mov edx, esi
push edx
call fcn.00406030
mov esi, dword [esp + 0x38]
mov dword [esp + 0x24], eax
xor eax, eax
mov edi, str.DVD_RAM
mov ecx, 8
repe cmpsb byte [esi], byte es:[edi]
mov edx, eax
mov eax, dword [ebx]
sete dl
push eax
mov edi, edx
call fcn.00414740
movzx edx, byte [esp + 0x1203]
xor ecx, ecx
add esp, 0x14
test eax, eax
setne cl
shl edx, 8
movzx esi, byte [esp + 0x11ed]
add ecx, edx
xor edx, edx
test edi, edi
setne dl
shl esi, 8
add ecx, edx
movzx edx, byte [esp + 0x11e7]
sub ecx, edx
movzx edx, byte [esp + 0x11ea]
add ecx, edx
mov ebp, ecx
movzx ecx, byte [esp + 0x11e8]
add esi, ecx
mov cl, byte [esp + 0x11e6]
mov dl, cl
and dl, 3
cmp dl, 2
je 0x41577c
test edi, edi
jne 0x415783
test eax, eax
jne 0x415783
sub esi, 1
jmp 0x415783
test eax, eax
jne 0x415783
add ebp, 1
cmp dword [esp + 0x14], 1
jne 0x415793
and ecx, 3
mov dword [ebx + 0xc4], ecx
push 0
push 0x597208
call fcn.00409e00
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x53c]
push eax
push 0x324
push 0
push ecx
push edi
call fcn.004053d0
add esp, 0x1c
cmp eax, 1
jne 0x4166d4
push 0
push 0x597200
call fcn.00409e00
add esp, 8
xor edi, edi
xor eax, eax
test ebp, ebp
mov dword [ebx + 0x88], ebp
mov dword [esp + 0x18], 0xffffffff
jle 0x415837
mov ecx, ebp
mov ebp, dword [esp + 0x18]
test byte [esp + eax*8 + 0x539], 4
je 0x415827
cmp ebp, 0xffffffff
jne 0x41582a
movzx ebp, byte [esp + eax*8 + 0x53d]
movzx edx, byte [esp + eax*8 + 0x53e]
shl ebp, 8
add ebp, edx
movzx edx, byte [esp + eax*8 + 0x53f]
shl ebp, 8
add ebp, edx
jmp 0x41582a
add edi, 1
add eax, 1
cmp eax, ecx
jl 0x4157f4
mov dword [esp + 0x18], ebp
jmp 0x41583b
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x534]
push eax
push 0x3e8
push 2
push ecx
push edx
mov dword [ebx + 0x90], 1
call fcn.004053d0
movzx eax, byte [esp + 0x548]
movzx edx, byte [esp + 0x549]
shl eax, 8
lea edx, [eax + edx - 2]
mov eax, 0x2e8ba2e9
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 0x14
xor ecx, ecx
test eax, eax
mov dword [ebx + 0x8c], esi
jle 0x4158c5
lea edx, [esp + 0x536]
cmp byte [edx], 0xa0
je 0x4158b1
add ecx, 1
add edx, 0xb
cmp ecx, eax
jl 0x4158a0
jmp 0x4158c5
imul ecx, ecx, 0xb
movzx eax, byte [esp + ecx + 0x53d]
add eax, 1
mov dword [ebx + 0x90], eax
cmp ebp, 0xffffffff
je 0x41646b
push 0
push 0x5971f8
call fcn.00409e00
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x11ec]
push ecx
mov ecx, dword [esp + 0x2c]
push 1
lea edx, [ebp + 0x10]
push edx
push eax
push ecx
call fcn.00406de0
add esp, 0x1c
cmp eax, 1
jne 0x415910
movzx edx, byte [esp + 0x11f3]
and edx, 3
mov dword [ebx + 0x90], edx
mov eax, dword [ebx]
cmp eax, 3
je 0x415b87
cmp eax, 5
je 0x415b87
cmp eax, 6
je 0x415b87
cmp eax, 7
je 0x415b87
push eax
call fcn.00414740
add esp, 4
test eax, eax
jne 0x415b87
test edi, edi
mov dword [ebx], 2
je 0x4159c9
cmp dword [ebx + 0x8c], 1
jle 0x41598b
lea eax, [esp + 0x14]
push 0x19e
push eax
call fcn.00426ad0
mov ebp, dword [esp + 0x30]
mov ecx, dword [eax]
add esp, 8
mov edx, ebp
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x415978
jmp 0x4159ef
lea ecx, [esp + 0x14]
push 0x19f
push ecx
call fcn.00426ad0
mov ebp, dword [esp + 0x30]
mov ecx, dword [eax]
add esp, 8
mov edx, ebp
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x4159a5
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x415a03
lea ecx, [esp + 0x14]
push 0x1a0
push ecx
call fcn.00426ad0
mov edx, dword [ebx + 0x90]
mov eax, dword [eax]
mov ebp, dword [esp + 0x30]
push edx
push eax
push ebp
call fcn.00540420
add esp, 0x14
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415a0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebx + 0x90], 2
jne 0x415b83
lea ecx, [esp + 0x64]
call fcn.005158f6
mov esi, dword [esp + 0x48]
add esi, 0x41
push esi
lea ecx, [esp + 0x130]
push str._c:VCD
push ecx
mov dword [esp + 0xae3c], 0
call fcn.00540420
add esp, 0xc
push 0
lea edx, [esp + 0x130]
push edx
lea ecx, [esp + 0x6c]
call fcn.00515982
test eax, eax
je 0x415ae8
push esi
lea eax, [esp + 0x130]
push str._c:MPEGAV
push eax
call fcn.00540420
add esp, 0xc
push 0
lea ecx, [esp + 0x130]
push ecx
lea ecx, [esp + 0x6c]
call fcn.00515982
test eax, eax
je 0x415ae8
push esi
lea edx, [esp + 0x130]
push str._c:CDI
push edx
call fcn.00540420
add esp, 0xc
push 0
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0x6c]
call fcn.00515982
test eax, eax
je 0x415ae8
lea ecx, [esp + 0x14]
push 1
push ecx
call fcn.00426ad0
mov ecx, dword [eax]
add esp, 8
mov edx, ebp
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x415ad5
jmp 0x415b66
push esi
lea edx, [esp + 0x130]
push str._c:PHOTO_CD
push edx
call fcn.00540420
add esp, 0xc
push 0
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0x6c]
call fcn.00515982
test eax, eax
je 0x415b6f
push esi
lea ecx, [esp + 0x130]
push str._c:CDI
push ecx
call fcn.00540420
add esp, 0xc
push 0
lea edx, [esp + 0x130]
push edx
lea ecx, [esp + 0x6c]
call fcn.00515982
test eax, eax
je 0x415b6f
lea eax, [esp + 0x14]
push 0x1a2
push eax
call fcn.00426ad0
mov ecx, dword [eax]
add esp, 8
mov edx, ebp
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x415b58
lea ecx, [esp + 0x14]
call fcn.00401340
lea ecx, [esp + 0x64]
mov dword [esp + 0xae30], 0xffffffff
call fcn.0051591a
mov ebp, dword [esp + 0x18]
cmp dword [ebx + 0x88], 1
jne 0x415b92
xor ebp, ebp
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x11e4]
push ecx
push 0x10
add ebp, 0x10
push ebp
push edx
push eax
call fcn.00405690
add esp, 0x14
cmp eax, 1
jne 0x416963
push 0
push 0x5971c4
call fcn.00409e00
push 5
lea edx, [esp + 0x11f1]
lea ecx, [esp + 0x11f0]
push str.CD001
push edx
mov dword [esp + 0x38], ecx
call fcn.00541de1
add esp, 0x14
test eax, eax
jne 0x4163e6
mov eax, dword [str.ISO9660]
mov dword [ebx + 0x380], eax
mov ecx, dword [0x5971b8]
push 0x20
lea edx, [esp + 0x1210]
push edx
lea eax, [esp + 0x134]
push eax
mov byte [esp + 0x3a], 1
mov dword [ebx + 0x384], ecx
call fcn.00404820
mov ecx, dword [esp + 0x58]
push eax
push 0x5971b0
push ecx
call fcn.00540420
push 0x80
lea edx, [esp + 0x133e]
push edx
lea eax, [esp + 0x14c]
push eax
call fcn.00404820
mov ecx, dword [esp + 0x54]
push eax
push 0x5971b0
push ecx
call fcn.00540420
push 0x80
lea edx, [esp + 0x1456]
push edx
lea eax, [esp + 0x164]
push eax
call fcn.00404820
mov ecx, dword [esp + 0x7c]
push eax
push 0x5971b0
push ecx
call fcn.00540420
add esp, 0x48
lea edx, [esp + 0x1511]
push edx
lea eax, [esp + 0x130]
push str._.4s
push eax
call fcn.00540420
lea ecx, [esp + 0x138]
push ecx
call fcn.00541939
lea edx, [esp + 0x1525]
push edx
mov edi, eax
lea eax, [esp + 0x140]
push str._.2s
push eax
call fcn.00540420
lea ecx, [esp + 0x148]
push ecx
call fcn.00541939
lea edx, [esp + 0x1537]
push edx
mov ebp, eax
lea eax, [esp + 0x150]
push str._.2s
push eax
call fcn.00540420
lea ecx, [esp + 0x158]
push ecx
call fcn.00541939
mov esi, eax
lea edx, [esi - 1]
add esp, 0x30
cmp edx, 0x1e
ja 0x415d60
lea eax, [ebp - 1]
cmp eax, 0xb
ja 0x415d60
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0040ac70
mov eax, dword [eax]
push edi
push esi
push eax
lea ecx, [esp + 0x140]
push str._s__d___d
push ecx
call fcn.00540420
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0x1c
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x415d6b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x415d6b
mov dword [esp + 0x12c], 0x612f6e
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x12c]
mov ecx, eax
sub edx, ecx
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x415d80
mov edi, str.L_TORITO_SPECIFICATION
lea esi, [esp + 0x19ec]
mov ecx, 0x17
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x415dd4
lea eax, [ebx + 0x380]
add eax, 0xffffffff
lea esp, [esp]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x415db0
mov ecx, dword [str.__bootable_]
mov dword [eax], ecx
mov edx, dword [0x597174]
mov dword [eax + 4], edx
mov ecx, dword [0x597178]
mov dword [eax + 8], ecx
mov ebp, dword [esp + 0x24]
mov edi, 1
lea ecx, [ecx]
mov edx, edi
shl edx, 0xb
lea esi, [esp + edx + 0x11e4]
push 5
lea eax, [esi + 1]
push str.CD001
push eax
call fcn.00541de1
add esp, 0xc
test eax, eax
jne 0x415f05
cmp byte [esi], 2
jne 0x415f05
lea eax, [ebx + 0x380]
add eax, 0xffffffff
lea esp, [esp]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x415e20
mov ecx, dword [str.__Joliet]
mov dword [eax], ecx
mov edx, dword [0x597168]
mov dword [eax + 4], edx
mov cl, byte [0x59716c]
push 0x10
lea edx, [esi + 0x28]
mov byte [eax + 8], cl
push edx
lea eax, [esp + 0x134]
push eax
mov ebp, esi
call fcn.00404780
push 0x10
lea ecx, [esp + 0x13c]
push ecx
lea edx, [esp + 0x344]
push edx
call fcn.00404820
push eax
mov eax, dword [esp + 0x68]
push 0x5971b0
push eax
call fcn.00540420
push 0x40
lea ecx, [esi + 0x13e]
push ecx
lea edx, [esp + 0x158]
push edx
call fcn.00404780
push 0x40
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x368]
push ecx
call fcn.00404820
mov edx, dword [esp + 0x6c]
push eax
push 0x5971b0
push edx
call fcn.00540420
add esp, 0x48
push 0x40
add esi, 0x23e
lea eax, [esp + 0x130]
push esi
push eax
call fcn.00404780
push 0x40
lea ecx, [esp + 0x13c]
push ecx
lea edx, [esp + 0x344]
push edx
call fcn.00404820
push eax
mov eax, dword [esp + 0x5c]
push 0x5971b0
push eax
call fcn.00540420
add esp, 0x24
mov edi, 0x10
add edi, 1
cmp edi, 0x10
jl 0x415de0
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.00404140
add esp, 4
lea esi, [ebp + 8]
mov ebp, dword [esp + 0x28]
mov edi, str.PlayStation
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x415f4f
mov eax, dword [str.PlayStation]
mov dword [ebp], eax
mov ecx, dword [0x59715c]
mov dword [ebp + 4], ecx
mov edx, dword [0x597160]
mov dword [ebp + 8], edx
mov eax, dword [ebx]
cmp eax, 3
je 0x415f5f
cmp eax, 5
jne 0x4163e6
lea ecx, [esp + 0x10c]
call fcn.005158f6
mov eax, dword [esp + 0x48]
add eax, 0x41
push eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x130]
push str._c:VIDEO_TSVIDEO_TS.IFO
push eax
mov dword [esp + 0xae3c], 1
call fcn.00540420
add esp, 0xc
push 0
lea ecx, [esp + 0x130]
push ecx
lea ecx, [esp + 0x114]
call fcn.00515982
test eax, eax
je 0x4163cb
mov ebx, dword [esp + 0x44]
mov edi, str.DVD_ROM
mov esi, ebp
mov ecx, 8
xor edx, edx
mov dword [ebx], 4
repe cmpsb byte [esi], byte es:[edi]
jne 0x416017
lea eax, [esp + 0x14]
push 0x1a3
push eax
call fcn.00426ad0
mov ecx, dword [eax]
add esp, 8
mov edx, ebp
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x415fe7
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41604c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41604c
push ebp
lea ecx, [esp + 0x334]
push str.DVD_Video___s_
push ecx
call fcn.00540420
lea eax, [esp + 0x33c]
mov edx, ebp
mov ecx, eax
add esp, 0xc
sub edx, ecx
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x416040
push 0x100
lea edx, [esp + 0x130]
push 0x8000
push edx
call fcn.0056b245
mov ebp, eax
add esp, 0xc
cmp ebp, 0xffffffff
je 0x4163c1
push 0
push 0x597124
call fcn.00409e00
mov eax, 0x160
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov eax, 0x1e0
push 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov eax, 0x240
push 0x100
push ebp
mov dword [esp + 0x78], 0x2d0
mov dword [esp + 0x7c], 0x2c0
mov dword [esp + 0x9c], pe_nt_image_headers32
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0x120
call fcn.0055e1af
push 2
lea eax, [esp + 0x34]
push eax
push ebp
call fcn.00557738
mov cx, word [esp + 0x3c]
movzx edx, ch
shr edx, 2
and edx, 3
mov al, cl
add edx, edx
shr al, 4
add esp, 0x20
add edx, edx
and al, 1
je 0x416116
mov esi, dword [esp + edx + 0x54]
jmp 0x41611a
mov esi, dword [esp + edx + 0x7c]
test cl, 0xc
mov edi, 0x597120
je 0x416129
mov edi, str.16:9
cmp al, 1
mov eax, 0x597114
je 0x416137
mov eax, str.NTSC
mov edx, dword [esp + edx + 0x64]
movzx ecx, cl
push esi
push edx
shr ecx, 6
add ecx, 1
push ecx
push edi
push eax
push str._s__s__Mpeg__d___dx_d_
add ebx, 0x335
push ebx
call fcn.00540420
push 0
push 0x23
push ebp
xor bl, bl
call fcn.0055e1af
push 1
lea edx, [esp + 0x5b]
push edx
push ebp
call fcn.00557738
add esp, 0x34
test byte [esp + 0x2f], 0x3f
jne 0x41618d
mov dword [esp + 0x12c], 0x6c6c41
jmp 0x416245
xor edx, edx
mov byte [esp + 0x12c], 0
mov dword [esp + 0x30], edx
mov al, byte [esp + 0x2f]
mov cl, dl
shr al, cl
test al, 1
jne 0x416235
test bl, bl
je 0x4161dd
lea eax, [esp + 0x12c]
add eax, 0xffffffff
lea esp, [esp]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4161c0
mov cx, word [0x596cc4]
mov word [eax], cx
mov cl, byte [0x596cc6]
mov byte [eax + 2], cl
add edx, 1
push edx
lea edx, [esp + 0x334]
push 0x596ba0
push edx
call fcn.00540420
lea eax, [esp + 0x33c]
add esp, 0xc
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x416200
lea edi, [esp + 0x12c]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x416217
mov edx, dword [esp + 0x30]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov bl, 1
add edx, 1
cmp edx, 6
mov dword [esp + 0x30], edx
jl 0x41619b
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x12c]
mov ecx, eax
sub edx, ecx
add edx, 0x355
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x416260
push ebp
call fcn.005567db
mov edx, dword [esp + 0x38]
push edx
lea eax, [esp + 0x134]
push str._c:VIDEO_TSVTS_01_0.IFO
push eax
call fcn.00540420
push 0x100
lea ecx, [esp + 0x140]
push 0x8000
push ecx
call fcn.0056b245
mov edi, eax
add esp, 0x1c
cmp edi, 0xffffffff
je 0x4163cb
xor esi, esi
push esi
push 0xcc
push edi
call fcn.0055e1af
push 4
lea edx, [esp + 0x9f4]
push edx
push edi
call fcn.00557738
movzx ebp, byte [esp + 0x9fe]
movzx eax, byte [esp + 0x9ff]
shl ebp, 8
add ebp, eax
push esi
shl ebp, 0xb
push ebp
push edi
call fcn.0055e1af
push 0x800
lea ecx, [esp + 0xa0c]
push ecx
push edi
call fcn.00557738
movzx eax, byte [esp + 0xa15]
mov edx, dword [esp + 0x74]
add esp, 0x30
cmp eax, esi
mov dword [esp + 0x14], eax
mov dword [edx + 0x378], esi
jle 0x4163b6
movzx eax, byte [esp + esi*8 + 0x9f2]
movzx ecx, byte [esp + esi*8 + 0x9f3]
shl eax, 8
add eax, ebp
lea eax, [ecx + eax + 4]
push 0
push eax
push edi
call fcn.0055e1af
push 4
lea edx, [esp + 0x40]
push edx
push edi
call fcn.00557738
mov ebx, dword [esp + 0x48]
movzx eax, bl
mov ecx, eax
shr ecx, 4
and eax, 0xf
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*2]
movzx eax, bh
mov ecx, eax
shr ecx, 4
and eax, 0xf
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*2]
movzx eax, byte [esp + 0x4a]
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2]
mov eax, edx
shl eax, 4
sub eax, edx
lea eax, [ebx + eax*4]
mov edx, eax
shl edx, 4
sub edx, eax
lea eax, [ecx + edx*4]
mov ecx, dword [esp + 0x5c]
add dword [ecx + 0x378], eax
add esi, 1
add esp, 0x18
cmp esi, dword [esp + 0x14]
jl 0x416320
push edi
call fcn.005567db
add esp, 4
jmp 0x4163cb
mov dword [ebx + 0x378], 0
lea ecx, [esp + 0x10c]
mov dword [esp + 0xae30], 0xffffffff
call fcn.0051591a
mov ebx, dword [esp + 0x44]
lea esi, [esp + 0x11e5]
mov edi, 0x10
push 3
push 0x5970d4
push esi
call fcn.00541de1
add esp, 0xc
test eax, eax
jne 0x41644d
cmp byte [esp + 0x2e], al
je 0x416434
lea eax, [ebx + 0x380]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x416415
mov ecx, dword [str.__UDF]
mov dword [eax], ecx
mov dx, word [0x5970d0]
mov word [eax + 4], dx
jmp 0x41644d
mov eax, dword [str.__UDF]
mov dword [ebx + 0x380], eax
mov cx, word [0x5970d0]
mov word [ebx + 0x384], cx
add esi, 0x800
sub edi, 1
jne 0x4163f2
push edi
push 0x5970c0
call fcn.00409e00
add esp, 8
jmp 0x416963
lea edx, [esp + 0x14]
push 0x150
push edx
call fcn.00426ad0
mov ecx, dword [eax]
add esp, 8
lea edx, [ebx + 0x380]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x416485
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4164b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push 0x1a4
push ecx
call fcn.00426ad0
mov ecx, dword [eax]
mov edx, dword [esp + 0x30]
add esp, 8
jmp 0x4164d0
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x4164d0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4164fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x11e4]
push ecx
push 0x7fff
push edi
push esi
mov dword [ebx], 1
call fcn.00406640
movzx edx, byte [esp + 0x11f4]
movzx eax, byte [esp + 0x11f5]
shl edx, 8
add edx, eax
cmp edx, 0x16
setg cl
push 0
push 0x5970b4
mov byte [ebx + 0x628], cl
call fcn.00409e00
add esp, 0x18
cmp byte [ebx + 0x628], 0
je 0x416661
lea edx, [esp + 0x11e4]
push edx
lea eax, [esp + 0x90]
push eax
push 0
push 0x80
call fcn.00404200
add esp, 0x10
test al, al
je 0x41659c
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x8c]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x416590
lea edx, [esp + 0x11e4]
push edx
lea eax, [esp + 0x90]
push eax
push 0
push 0x81
call fcn.00404200
add esp, 0x10
test al, al
je 0x4165dc
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x8c]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x4165d0
lea edx, [esp + 0x11e4]
push edx
lea eax, [esp + 0x90]
push eax
push 0
push 0x86
call fcn.00404200
add esp, 0x10
test al, al
je 0x41661c
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x8c]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x416610
lea edx, [esp + 0x11e4]
push edx
lea eax, [esp + 0x90]
push eax
push 0
push 0x8e
call fcn.00404200
add esp, 0x10
test al, al
je 0x416661
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x8c]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x416650
jmp 0x416963
lea edx, [esp + 0x11e4]
push edx
push 0x14
push 0
push 2
push edi
push esi
call fcn.00405540
add esp, 0x18
cmp eax, 1
jne 0x4166c5
push 0
push 0x5970a8
call fcn.00409e00
add esp, 8
test byte [esp + 0x11e5], 0x80
je 0x4166b6
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x11e9]
push eax
push str._.13s
push ecx
call fcn.00540420
add esp, 0xc
jmp 0x416963
mov edx, dword [esp + 0x40]
mov dword [edx], 0x612f6e
jmp 0x416963
mov eax, dword [esp + 0x40]
mov dword [eax], 0x612f6e
jmp 0x416963
mov ebp, dword [esp + 0x1c]
push ebp
push edi
call fcn.004065b0
add esp, 8
test al, al
mov byte [ebx + 0x94], al
je 0x416956
mov eax, dword [ebx]
cmp eax, 3
mov dword [ebx + 0x84], 0xffffffff
je 0x416820
cmp eax, 5
je 0x416820
cmp eax, 6
je 0x416820
cmp eax, 7
je 0x416820
cmp eax, 9
je 0x416820
cmp dword [ebx + 0xb8], 0
je 0x4167ec
mov eax, dword [ebx + 0xbc]
cmp eax, 0xa
jle 0x41677c
lea ecx, [esp + 0x14]
push 0x1a5
push ecx
call fcn.00426ad0
mov ecx, dword [eax]
mov edx, dword [esp + 0x30]
add esp, 8
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x416760
lea ecx, [esp + 0x14]
call fcn.00401340
jmp 0x416947
jne 0x4167b2
lea edx, [esp + 0x14]
push 0x1a6
push edx
call fcn.00426ad0
mov ecx, dword [eax]
mov edx, dword [esp + 0x30]
add esp, 8
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x416796
lea ecx, [esp + 0x14]
call fcn.00401340
jmp 0x416947
lea eax, [esp + 0x14]
push 0x1bc
push eax
call fcn.00426ad0
mov ecx, dword [eax]
mov edx, dword [esp + 0x30]
add esp, 8
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x4167d0
lea ecx, [esp + 0x14]
call fcn.00401340
jmp 0x416947
lea ecx, [esp + 0x14]
push 0x1a7
push ecx
call fcn.00426ad0
mov ecx, dword [eax]
mov edx, dword [esp + 0x30]
add esp, 8
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x416804
lea ecx, [esp + 0x14]
call fcn.00401340
jmp 0x416947
lea edx, [esp + 0x14]
push 0x1a8
push edx
mov byte [ebx + 0x95], 1
call fcn.00426ad0
mov esi, dword [esp + 0x30]
mov eax, dword [eax]
push esi
push eax
lea ecx, [esp + 0x11c]
push ecx
call fcn.00540420
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x14
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41686e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esp + 0x10c]
mov edx, esi
mov ecx, eax
sub edx, ecx
jmp 0x416880
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x416880
lea edx, [esp + 0x11e4]
push edx
push ebp
push edi
call fcn.00406870
add esp, 0xc
cmp eax, 1
jne 0x4168d6
movzx eax, byte [esp + 0x11f4]
movzx ecx, byte [esp + 0x11f5]
movzx edx, byte [esp + 0x11f6]
shl eax, 8
add eax, ecx
movzx ecx, byte [esp + 0x11f7]
shl eax, 8
add eax, edx
shl eax, 8
lea eax, [eax + ecx + 1]
jmp 0x4168d9
or eax, 0xffffffff
cmp eax, 1
mov dword [ebx + 0x10c], eax
jne 0x416947
lea edx, [esp + 0x11e4]
push edx
push 0x20
push ebp
push edi
call fcn.004054c0
add esp, 0x10
cmp eax, 1
jne 0x416947
cmp byte [esp + 0x11e7], 7
jbe 0x416947
cmp byte [esp + 0x11ec], al
jne 0x416947
movzx eax, byte [esp + 0x11e8]
movzx ecx, byte [esp + 0x11e9]
movzx edx, byte [esp + 0x11ea]
shl eax, 8
add eax, ecx
movzx ecx, byte [esp + 0x11eb]
shl eax, 8
add eax, edx
shl eax, 8
lea edx, [eax + ecx + 1]
mov dword [ebx + 0x10c], edx
push 0
push 0x597094
call fcn.00409e00
add esp, 8
cmp dword [esp + 0x50], 0
jne 0x416963
mov dword [ebx], 0
mov eax, dword [esp + 0x48]
push 0
push 0
push eax
call fcn.0041af40
add esp, 0xc
jmp 0x416a25
test cl, cl
je 0x416a25
call fcn.00512f10
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41699b
push 0x80004005
call fcn.00401010
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x34]
push 0x6a
push ecx
mov dword [esp + 0xae38], 2
call fcn.00414a30
mov esi, dword [esp + 0x3c]
add esp, 8
push 0
push 0x10
push esi
call fcn.0051ee3c
lea edx, [esp + 0x91c]
mov eax, esi
sub edx, esi
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x4169e0
lea edx, [esp + 0x91c]
push 0
push edx
call fcn.00409e00
add esi, 0xfffffff0
add esp, 8
mov dword [esp + 0xae30], 0xffffffff
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x416a25
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
xor eax, eax
mov ecx, dword [esp + 0xae28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xae10]
xor ecx, esp
call fcn.0053fab2
add esp, 0xae20
ret