Function at 0x41d7ad
Capabilities:
Check if file exists

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x9c
and dword [ebp + 0x74], 0
push edi
mov edi, ecx
mov eax, dword [edi + 0x78]
push str._step_list
push eax
call fcn.0044eb30
pop ecx
pop ecx
mov dword [ebp + 0x50], eax
test eax, eax
jne 0x41d7e0
mov eax, 0x8000aaa0
jmp 0x41dbcc
push ebx
push esi
mov eax, dword [ebp + 0x50]
inc eax
push str._step
push eax
call fcn.0044eb30
mov esi, eax
pop ecx
pop ecx
mov dword [ebp + 0x50], esi
test esi, esi
je 0x41dbac
lea ecx, [ebp + 0x48]
call fcn.0042ef80
lea ecx, [ebp + 0x64]
call fcn.0042ef80
lea ecx, [ebp + 0x54]
call fcn.0042ef80
lea ecx, [ebp + 0x5c]
call fcn.0042ef80
push 0x4754d0
lea ecx, [ebp - 0x14]
call fcn.0042f200
or dword [ebp + 0x74], 1
push esi
lea ecx, [ebp - 0xc]
call fcn.0042f200
or dword [ebp + 0x74], 2
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x14]
push eax
lea ebx, [ebp - 0xc]
call fcn.0041ad6b
pop ecx
pop ecx
test eax, eax
je 0x41d88c
push str.name
lea ecx, [ebp - 0x24]
call fcn.0042f200
or dword [ebp + 0x74], 4
push esi
lea ecx, [ebp - 0x1c]
call fcn.0042f200
or dword [ebp + 0x74], 8
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp - 0x24]
push eax
lea ebx, [ebp - 0x1c]
call fcn.0041ad6b
pop ecx
pop ecx
mov byte [ebp + 0x6f], 0
test eax, eax
jne 0x41d890
mov byte [ebp + 0x6f], 1
mov ebx, dword [ebp + 0x74]
test bl, 8
je 0x41d8a3
lea ecx, [ebp - 0x1c]
and ebx, 0xfffffff7
call fcn.0042f1e0
test bl, 4
je 0x41d8b3
lea ecx, [ebp - 0x24]
and ebx, 0xfffffffb
call fcn.0042f1e0
test bl, 2
je 0x41d8c3
lea ecx, [ebp - 0xc]
and ebx, 0xfffffffd
call fcn.0042f1e0
test bl, 1
je 0x41d8d3
lea ecx, [ebp - 0x14]
and ebx, 0xfffffffe
call fcn.0042f1e0
cmp byte [ebp + 0x6f], 0
jne 0x41db8a
push 0x4754cc
lea ecx, [ebp + 0x18]
call fcn.0042f200
push esi
lea ecx, [ebp + 0x28]
or ebx, 0x10
call fcn.0042f200
lea eax, [ebp + 0x54]
push eax
or ebx, 0x20
lea eax, [ebp + 0x18]
mov dword [ebp + 0x74], ebx
push eax
lea ebx, [ebp + 0x28]
call fcn.0041ad6b
pop ecx
pop ecx
test eax, eax
jne 0x41d94d
push str.resource
lea ecx, [ebp + 0x10]
call fcn.0042f200
or dword [ebp + 0x74], 0x40
push esi
lea ecx, [ebp + 0x30]
call fcn.0042f200
or dword [ebp + 0x74], 0x80
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x10]
push eax
lea ebx, [ebp + 0x30]
call fcn.0041ad6b
pop ecx
pop ecx
test eax, eax
jne 0x41d94d
mov bl, 1
jmp 0x41d94f
xor bl, bl
test byte [ebp + 0x74], 0x80
je 0x41d964
and dword [ebp + 0x74], 0xffffff7f
lea ecx, [ebp + 0x30]
call fcn.0042f1e0
test byte [ebp + 0x74], 0x40
je 0x41d976
and dword [ebp + 0x74], 0xffffffbf
lea ecx, [ebp + 0x10]
call fcn.0042f1e0
test byte [ebp + 0x74], 0x20
je 0x41d988
and dword [ebp + 0x74], 0xffffffdf
lea ecx, [ebp + 0x28]
call fcn.0042f1e0
test byte [ebp + 0x74], 0x10
je 0x41d99a
and dword [ebp + 0x74], 0xffffffef
lea ecx, [ebp + 0x18]
call fcn.0042f1e0
test bl, bl
jne 0x41db8a
lea eax, [ebp + 0x48]
push eax
lea ecx, [edi + 0x354]
call fcn.00414bf5
push 0x475370
push esi
call fcn.0044eb30
push 0x47554c
push esi
mov ebx, eax
call fcn.0044eb30
add esp, 0x10
cmp eax, ebx
jbe 0x41da77
push str.__step_
push esi
call fcn.0044eb30
pop ecx
pop ecx
mov dword [ebp - 4], eax
test eax, eax
je 0x41db8a
and dword [ebp + 0x70], 0
mov esi, dword [ebp + 0x50]
push str._constraint
inc esi
push esi
call fcn.0044eb30
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x41da6d
cmp esi, dword [ebp - 4]
ja 0x41da6d
lea ecx, [ebp]
call fcn.0042ef80
push str.test
lea ecx, [ebp + 0x40]
call fcn.0042f200
push esi
lea ecx, [ebp + 8]
call fcn.0042f200
lea eax, [ebp]
push eax
lea eax, [ebp + 0x40]
push eax
lea ebx, [ebp + 8]
call fcn.0041ad6b
pop ecx
pop ecx
mov ecx, ebx
call fcn.0042f1e0
lea ecx, [ebp + 0x40]
call fcn.0042f1e0
push 0
lea eax, [ebp]
push eax
mov ecx, edi
call fcn.0041d00b
test eax, eax
jl 0x41da63
mov dword [ebp + 0x70], 1
lea ecx, [ebp]
call fcn.0042f1e0
jmp 0x41d9f3
cmp dword [ebp + 0x70], 0
je 0x41db65
lea ebx, [edi + 0x168]
push 0x2c
mov ecx, ebx
call fcn.0042efc0
mov esi, eax
test esi, esi
jle 0x41db65
xor eax, eax
inc eax
cmp esi, eax
mov dword [ebp + 0x70], eax
jl 0x41db65
push dword [ebp + 0x70]
lea eax, [ebp + 0x38]
push 0x2c
push eax
mov ecx, ebx
call fcn.0042fac0
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0040d40d
pop ecx
pop ecx
lea ecx, [ebp + 0x38]
test al, al
jne 0x41dad6
call fcn.0042f1e0
inc dword [ebp + 0x70]
cmp dword [ebp + 0x70], esi
jle 0x41da9e
jmp 0x41db65
call fcn.0042f1e0
lea eax, [ebp + 0x48]
lea esi, [edi + 0x36e]
push eax
mov ecx, esi
call fcn.00413103
test eax, eax
jne 0x41db8a
lea eax, [ebp + 0x48]
push eax
mov ecx, esi
call fcn.00414bf5
mov esi, eax
lea eax, [ebp + 0x64]
push eax
lea ecx, [esi + 0xc]
call fcn.0042f220
lea eax, [ebp + 0x48]
push eax
lea ecx, [esi + 4]
call fcn.0042f220
lea ecx, [ebp + 0x54]
call fcn.00401005
lea ecx, [esi + 0x14]
test al, al
je 0x41db3a
lea eax, [ebp + 0x5c]
push eax
call fcn.0042f220
mov dword [esi + 0x1c], 1
jmp 0x41db47
lea eax, [ebp + 0x54]
push eax
call fcn.0042f220
and dword [esi + 0x1c], 0
and dword [esi], 0
mov ebx, 0x4727a6
push ebx
lea ecx, [esi + 0x24]
call fcn.0042f2d0
push ebx
lea ecx, [esi + 0x2c]
call fcn.0042f2d0
and dword [esi + 0x20], 0
lea ecx, [ebp + 0x5c]
call fcn.0042f1e0
lea ecx, [ebp + 0x54]
call fcn.0042f1e0
lea ecx, [ebp + 0x64]
call fcn.0042f1e0
lea ecx, [ebp + 0x48]
call fcn.0042f1e0
jmp 0x41d7e2
lea ecx, [ebp + 0x5c]
call fcn.0042f1e0
lea ecx, [ebp + 0x54]
call fcn.0042f1e0
lea ecx, [ebp + 0x64]
call fcn.0042f1e0
lea ecx, [ebp + 0x48]
call fcn.0042f1e0
jmp 0x41dbc5
lea esi, [edi + 0x168]
push 0x2c
mov ecx, esi
mov dword [ebp + 0x50], esi
call fcn.0042efc0
mov dword [ebp + 0x70], eax
test eax, eax
jg 0x41dbd2
mov eax, 0x8000aaa0
pop esi
pop ebx
pop edi
add ebp, 0x78
leave
ret
mov ebx, 0x4727a6
lea ecx, [edi + 0x178]
push ebx
call fcn.0042f2d0
lea ecx, [edi + 0x170]
push ebx
call fcn.0042f2d0
push ebx
lea ecx, [ebp + 0x20]
call fcn.0042f200
xor eax, eax
inc eax
cmp dword [ebp + 0x70], eax
mov dword [ebp + 0x74], eax
jl 0x41dec8
xor ebx, ebx
cmp dword [edi + 0x28], ebx
je 0x41dcce
lea ecx, [ebp + 0x54]
call fcn.0042ef80
push ebx
lea eax, [ebp + 0x54]
push eax
push 0x475528
push ebx
call fcn.004056dc
add esp, 0x10
test eax, eax
je 0x41dc7e
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 8]
push eax
mov ecx, edi
call fcn.00408d5a
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0042f950
add esp, 0xc
cmp byte [eax + 7], 0xff
jne 0x41dc55
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [ebp + 0x40]
inc bl
call fcn.0042f1e0
lea ecx, [ebp + 8]
call fcn.0042f1e0
test bl, bl
jne 0x41df0f
xor ebx, ebx
lea ecx, [ebp + 0x5c]
call fcn.0042ef80
push ebx
lea eax, [ebp + 0x5c]
push eax
push str.Cleanup
push ebx
call fcn.004056dc
add esp, 0x10
test eax, eax
je 0x41dcbe
cmp byte [ebp + 0x63], 0xff
lea eax, [ebp + 0x5c]
jne 0x41dca9
mov eax, dword [ebp + 0x5c]
push 0x472928
push eax
call fcn.0044ebc0
pop ecx
pop ecx
test eax, eax
je 0x41df40
lea ecx, [ebp + 0x5c]
call fcn.0042f1e0
lea ecx, [ebp + 0x54]
call fcn.0042f1e0
push dword [ebp + 0x74]
lea eax, [ebp + 0x64]
push 0x2c
push eax
mov ecx, esi
call fcn.0042fac0
lea eax, [ebp + 0x64]
push eax
lea ecx, [edi + 0x354]
call fcn.00413103
test eax, eax
je 0x41df7b
lea eax, [ebp + 0x64]
lea ecx, [edi + 0x36e]
push eax
call fcn.00413103
test eax, eax
jne 0x41dd3d
lea ebx, [edi + 0x178]
mov ecx, ebx
call fcn.00401005
test al, al
jne 0x41dd25
push 0x473934
mov ecx, ebx
call fcn.0042f630
lea eax, [ebp + 0x64]
push eax
mov ecx, ebx
call fcn.0042f690
lea ecx, [ebp + 0x64]
call fcn.0042f1e0
jmp 0x41deb9
lea eax, [ebp + 0x64]
push eax
lea ecx, [edi + 0x36e]
call fcn.00414bf5
mov esi, eax
cmp dword [esi + 0x1c], 0
jne 0x41dd9f
lea eax, [esi + 0x14]
push eax
lea eax, [ebp + 0x28]
push eax
mov ecx, edi
call fcn.00408d5a
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0042f950
add esp, 0xc
cmp byte [eax + 7], 0xff
jne 0x41dd78
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [ebp + 0x18]
inc bl
call fcn.0042f1e0
lea ecx, [ebp + 0x28]
call fcn.0042f1e0
test bl, bl
jne 0x41df7b
lea ecx, [esi + 0x2c]
push 0x4727a6
call fcn.0042f2d0
lea eax, [edi + 0x178]
push eax
lea ecx, [esi + 0x24]
call fcn.0042f220
mov ebx, dword [ebp + 0x74]
jmp 0x41de0f
mov ecx, dword [ebp + 0x50]
push ebx
push 0x2c
lea eax, [ebp + 0x38]
push eax
call fcn.0042fac0
lea eax, [ebp + 0x38]
push eax
lea ecx, [edi + 0x36e]
call fcn.00413103
test eax, eax
jne 0x41de07
lea ecx, [esi + 0x2c]
call fcn.00401005
test al, al
jne 0x41ddfb
push 0x473934
lea ecx, [esi + 0x2c]
call fcn.0042f630
lea eax, [ebp + 0x38]
push eax
lea ecx, [esi + 0x2c]
call fcn.0042f690
lea ecx, [ebp + 0x38]
call fcn.0042f1e0
inc ebx
cmp ebx, dword [ebp + 0x70]
jle 0x41ddc0
lea eax, [ebp + 0x20]
push eax
lea ebx, [esi + 0xc]
push ebx
call fcn.0040d429
pop ecx
pop ecx
test al, al
je 0x41de45
push ebx
lea ecx, [ebp + 0x20]
call fcn.0042f220
cmp byte [ebx + 7], 0xff
jne 0x41de39
mov ebx, dword [ebx]
push ebx
lea ecx, [edi + 0x2d8]
call fcn.00430440
lea eax, [edi + 0x2d8]
test eax, eax
je 0x41de54
mov eax, dword [eax + 0x10]
jmp 0x41de56
xor eax, eax
dec eax
mov dword [esi + 0x20], eax
lea esi, [edi + 0x170]
mov ecx, esi
call fcn.0042ef90
test eax, eax
jbe 0x41de8d
push 0x473934
lea eax, [ebp + 0x10]
push esi
push eax
call fcn.0042f9d0
add esp, 0xc
push eax
mov ecx, esi
call fcn.0042f220
lea ecx, [ebp + 0x10]
call fcn.0042f1e0
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp + 0x30]
push esi
push eax
call fcn.0042f950
add esp, 0xc
push eax
mov ecx, esi
call fcn.0042f220
lea ecx, [ebp + 0x30]
call fcn.0042f1e0
lea ecx, [ebp + 0x64]
call fcn.0042f1e0
mov esi, dword [ebp + 0x50]
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
cmp eax, dword [ebp + 0x70]
jle 0x41dc07
push esi
lea eax, [ebp + 0x40]
push str.Original_Page_List_
push eax
call fcn.0042fa40
add esp, 0xc
push eax
mov ecx, edi
call fcn.0040da11
lea ecx, [ebp + 0x40]
call fcn.0042f1e0
lea eax, [edi + 0x170]
push eax
lea eax, [ebp + 0x40]
push str.Current_Page_List_
push eax
call fcn.0042fa40
add esp, 0xc
push eax
mov ecx, edi
call fcn.0040da11
lea ecx, [ebp + 0x40]
jmp 0x41df65
lea ecx, [edi + 0x36e]
inc byte [ecx + 0x19]
call fcn.0041c710
push 0x4727a6
mov ecx, esi
call fcn.0042f2d0
lea ecx, [ebp + 0x54]
call fcn.0042f1e0
lea ecx, [ebp + 0x20]
call fcn.0042f1e0
xor eax, eax
jmp 0x41dbca
lea ecx, [edi + 0x36e]
inc byte [ecx + 0x19]
call fcn.0041c710
push 0x4727a6
mov ecx, esi
call fcn.0042f2d0
lea ecx, [ebp + 0x5c]
call fcn.0042f1e0
lea ecx, [ebp + 0x54]
call fcn.0042f1e0
xor esi, esi
lea ecx, [ebp + 0x20]
call fcn.0042f1e0
mov eax, esi
jmp 0x41dbca
lea ecx, [ebp + 0x64]
call fcn.0042f1e0
mov esi, 0x80004005
jmp 0x41df6c