Function at 0x45574e
Capabilities:
Check if file exists

Disassembly:
push 0x620
mov eax, 0x5c14ac
call fcn.00598fca
mov eax, dword [ebp + 8]
mov edi, ecx
xor esi, esi
mov dword [ebp - 0x5d0], edi
mov dword [ebp - 0x5ec], eax
mov dword [ebp - 0x5e0], esi
call fcn.004541f0
cmp dword [edi + 0xc], esi
jne 0x455787
xor eax, eax
jmp 0x456288
lea eax, [ebp - 0x5a0]
push eax
push 7
pop ebx
mov dword [ebp - 4], esi
call fcn.0054af1d
lea eax, [ebp - 0x570]
push eax
mov byte [ebp - 4], 1
call fcn.0054af1d
mov esi, eax
mov ebx, str.main
mov edx, ebx
lea ecx, [ebp - 0x5a0]
mov byte [ebp - 4], 2
call fcn.0054b949
push esi
mov esi, eax
call fcn.0054b224
lea ecx, [ebp - 0x570]
mov byte [ebp - 4], 1
call fcn.0054b1a0
mov ecx, edi
call fcn.00456290
push eax
lea edi, [ebp - 0x570]
call fcn.0054af9b
mov edx, ebx
lea ecx, [ebp - 0x5a0]
mov byte [ebp - 4], 3
call fcn.0054b949
mov edx, 0x5e9904
mov ecx, eax
call fcn.0054b949
mov ecx, edi
push ecx
mov esi, eax
call fcn.0054b224
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.0054b1a0
mov edi, dword [ebp - 0x5d0]
add edi, 0x18
mov edx, ebx
mov ecx, edi
mov dword [ebp - 0x5d8], edi
call fcn.0054b949
mov esi, str.order
mov edx, esi
mov ecx, eax
call fcn.0054b949
mov edx, ebx
lea ecx, [ebp - 0x5a0]
mov dword [ebp - 0x5dc], eax
call fcn.0054b949
mov edx, esi
mov ecx, eax
call fcn.0054b949
push dword [ebp - 0x5dc]
mov esi, eax
call fcn.0054b224
mov edx, ebx
mov ecx, edi
call fcn.0054b949
mov esi, str.adtxt
mov edx, esi
mov ecx, eax
call fcn.0054b949
mov edx, ebx
lea ecx, [ebp - 0x5a0]
mov edi, eax
call fcn.0054b949
mov edx, esi
mov ecx, eax
call fcn.0054b949
push edi
mov esi, eax
call fcn.0054b224
mov ecx, dword [ebp - 0x5d8]
mov edx, ebx
call fcn.0054b949
mov esi, str.adimgswitch
mov edx, esi
mov ecx, eax
call fcn.0054b949
mov edx, ebx
lea ecx, [ebp - 0x5a0]
mov edi, eax
call fcn.0054b949
mov edx, esi
mov ecx, eax
call fcn.0054b949
push edi
mov esi, eax
call fcn.0054b224
mov edx, str.items
lea ecx, [ebp - 0x5a0]
call fcn.0054b949
mov esi, eax
lea eax, [ebp - 0x570]
push eax
push 7
pop ebx
mov dword [ebp - 0x5d4], esi
call fcn.0054af1d
push eax
mov byte [ebp - 4], 4
call fcn.0054b224
lea ecx, [ebp - 0x570]
mov byte [ebp - 4], 1
call fcn.0054b1a0
and dword [ebp - 0x5c8], 0
cmp dword [ebp - 0x5c8], 8
jae 0x455d7e
push dword [ebp - 0x5c8]
xor eax, eax
mov byte [ebp - 0x28], 0
lea edi, [ebp - 0x27]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
push str.id_d
stosb byte es:[edi], al
lea eax, [ebp - 0x28]
push 0x14
push eax
call fcn.005927ef
mov ecx, dword [ebp - 0x5d8]
add esp, 0x10
mov edx, str.items
call fcn.0054b949
lea edx, [ebp - 0x28]
mov ecx, eax
call fcn.0054b949
mov ecx, eax
cmp byte [ecx + 8], 0
mov dword [ebp - 0x5dc], ecx
je 0x455d73
call fcn.0054bd37
test al, al
je 0x455d73
mov edx, 0x5defbc
call fcn.0054b949
mov edi, eax
mov al, byte [edi + 8]
test al, al
je 0x455d73
cmp al, 4
jne 0x455d73
mov eax, dword [edi]
test eax, eax
je 0x455d73
push eax
lea eax, [ebp - 0x5cc]
push eax
call fcn.0047f54f
pop ecx
pop ecx
lea eax, [ebp - 0x570]
push eax
push 7
pop ebx
mov byte [ebp - 4], 5
call fcn.0054af1d
mov esi, 0x5df818
mov byte [ebp - 4], 6
push esi
push dword [ebp - 0x5cc]
call fcn.0058f69a
pop ecx
pop ecx
test eax, eax
jne 0x455a9f
push 0xfe
push eax
mov word [ebp - 0x338], ax
lea eax, [ebp - 0x336]
push eax
call fcn.00596530
add esp, 0xc
push 0x6bad88
push esi
push str._s_tn_s
lea eax, [ebp - 0x338]
push 0x80
push eax
call fcn.0058f42f
add esp, 0x14
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x5e4]
push eax
call fcn.0047f493
pop ecx
pop ecx
mov byte [ebp - 4], bl
push dword [eax]
lea eax, [ebp - 0x628]
push eax
call fcn.0054afd5
mov esi, eax
mov edx, 0x5defbc
lea ecx, [ebp - 0x570]
mov byte [ebp - 4], 8
call fcn.0054b949
push esi
mov esi, eax
call fcn.0054b224
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], bl
call fcn.0054b1a0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x5e4]
add eax, 0xfffffff0
call fcn.00407b6b
jmp 0x455ab7
mov edx, 0x5defbc
lea ecx, [ebp - 0x570]
call fcn.0054b949
push edi
mov esi, eax
call fcn.0054b224
mov ecx, dword [ebp - 0x5dc]
mov edi, 0x5e9964
mov edx, edi
call fcn.0054b949
mov esi, eax
mov al, byte [esi + 8]
test al, al
je 0x455aee
cmp al, 4
jne 0x455aee
mov eax, dword [esi]
test eax, eax
je 0x455aee
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x455adf
sub eax, edx
jne 0x455bc8
call fcn.004ac99c
mov ebx, eax
test ebx, ebx
je 0x455bc8
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x540], ax
lea eax, [ebp - 0x53e]
push eax
call fcn.00596530
add esp, 0xc
mov edx, 0x5defbc
lea ecx, [ebp - 0x570]
call fcn.0054b949
push dword [eax]
lea eax, [ebp - 0x5e8]
push eax
call fcn.0047f54f
pop ecx
pop ecx
mov byte [ebp - 4], 9
mov edx, dword [eax]
lea eax, [ebp - 0x540]
push 0x103
push eax
call fcn.00427623
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x5e8]
pop ecx
pop ecx
add eax, 0xfffffff0
call fcn.00407b6b
cmp word [ebp - 0x540], 0
je 0x455bc2
lea eax, [ebp - 0x540]
push eax
lea eax, [ebp - 0x5f4]
push eax
call fcn.0047f493
pop ecx
pop ecx
mov byte [ebp - 4], 0xa
push dword [eax]
lea eax, [ebp - 0x628]
push eax
call fcn.0054afd5
push eax
mov byte [ebp - 4], 0xb
call fcn.0054b224
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], 0xa
call fcn.0054b1a0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x5f4]
add eax, 0xfffffff0
call fcn.00407b6b
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov al, byte [esi + 8]
test al, al
je 0x455bed
cmp al, 4
jne 0x455bed
cmp dword [esi], 0
je 0x455bed
mov edx, edi
lea ecx, [ebp - 0x570]
call fcn.0054b949
push esi
mov esi, eax
call fcn.0054b224
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x238], ax
lea eax, [ebp - 0x236]
push eax
call fcn.00596530
mov ebx, dword [ebp - 0x5cc]
add esp, 0xc
lea eax, [ebp - 0x238]
push eax
push dword [ebp - 0x5c8]
push dword [ebp - 0x5d0]
call fcn.0045749e
test eax, eax
je 0x455d36
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x5f0]
push eax
call fcn.0047f493
pop ecx
pop ecx
mov byte [ebp - 4], 0xc
push dword [eax]
lea eax, [ebp - 0x628]
push eax
call fcn.0054afd5
mov esi, eax
mov edx, 0x5e99e8
lea ecx, [ebp - 0x570]
mov byte [ebp - 4], 0xd
call fcn.0054b949
push esi
mov esi, eax
call fcn.0054b224
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], 0xc
call fcn.0054b1a0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x5f0]
add eax, 0xfffffff0
call fcn.00407b6b
push 6
lea eax, [ebp - 0x238]
push str.res:__
push eax
call fcn.00590d27
add esp, 0xc
test eax, eax
jne 0x455cc6
push 1
lea edi, [ebp - 0x628]
call fcn.0054af9b
mov edi, eax
mov byte [ebp - 4], 0xe
jmp 0x455d0f
mov ecx, dword [ebp - 0x5dc]
mov edx, str.preset
call fcn.0054b949
cmp byte [eax + 8], 1
jne 0x455cfc
mov ecx, eax
call fcn.0054b340
test eax, eax
je 0x455cfc
push 1
lea edi, [ebp - 0x628]
call fcn.0054af9b
mov edi, eax
mov byte [ebp - 4], 0xf
jmp 0x455d0f
push 0
lea edi, [ebp - 0x628]
call fcn.0054af9b
mov edi, eax
mov byte [ebp - 4], 0x10
mov edx, 0x5e99ec
lea ecx, [ebp - 0x570]
call fcn.0054b949
push edi
mov esi, eax
call fcn.0054b224
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], 6
call fcn.0054b1a0
mov ecx, dword [ebp - 0x5d4]
lea edx, [ebp - 0x28]
call fcn.0054b949
lea ecx, [ebp - 0x570]
push ecx
mov esi, eax
call fcn.0054b224
lea ecx, [ebp - 0x570]
mov byte [ebp - 4], 5
call fcn.0054b1a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x5cc]
add eax, 0xfffffff0
call fcn.00407b6b
inc dword [ebp - 0x5c8]
jmp 0x455925
mov edi, str.main
mov edx, edi
lea ecx, [ebp - 0x5a0]
call fcn.0054b949
mov edx, 0x5e9948
mov ecx, eax
call fcn.0054b949
mov esi, eax
lea eax, [ebp - 0x628]
push eax
push 6
pop ebx
mov dword [ebp - 0x5cc], esi
call fcn.0054af1d
push eax
mov byte [ebp - 4], 0x11
call fcn.0054b224
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], 1
call fcn.0054b1a0
cmp dword [0x6b44b8], 0
je 0x455fa5
and dword [ebp - 0x5c8], 0
mov ecx, dword [ebp - 0x5d8]
mov edx, edi
call fcn.0054b949
mov esi, 0x5e9948
mov edx, esi
mov ecx, eax
call fcn.0054b949
call fcn.0054b6cc
cmp dword [ebp - 0x5c8], eax
jae 0x455fa5
mov ecx, dword [ebp - 0x5d8]
mov edx, edi
call fcn.0054b949
mov edx, esi
mov ecx, eax
call fcn.0054b949
push dword [ebp - 0x5c8]
mov ecx, eax
call fcn.0054b71c
mov ebx, eax
cmp byte [ebx + 8], 0
je 0x455f95
call fcn.0054bd37
test al, al
je 0x455f95
mov edx, str.fidx
mov ecx, ebx
call fcn.0054b949
cmp byte [eax + 8], 1
jne 0x455f95
mov ecx, eax
call fcn.0054b340
mov edx, str.fext
mov ecx, ebx
mov edi, eax
call fcn.0054b949
cmp byte [eax + 8], 4
jne 0x455f95
mov eax, dword [eax]
test eax, eax
je 0x455f95
push eax
lea eax, [ebp - 0x5d0]
push eax
call fcn.0047f54f
pop ecx
pop ecx
mov byte [ebp - 4], 0x12
mov esi, dword [ebp - 0x5d0]
cmp dword [esi - 0xc], 0
jne 0x455eb2
mov byte [ebp - 4], 1
lea eax, [esi - 0x10]
jmp 0x455f90
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x238], ax
lea eax, [ebp - 0x236]
push eax
call fcn.00596530
add esp, 0xc
lea eax, [ebp - 0x238]
push eax
push edi
push dword [ebp - 0x5c8]
mov ecx, esi
mov eax, str.adimgbg
call fcn.004578a8
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x455f83
push ebx
push dword [ebp - 0x5cc]
call fcn.0054bb5f
mov eax, dword [ebp - 0x5cc]
call fcn.0054b6cc
mov ecx, dword [ebp - 0x5cc]
dec eax
push eax
call fcn.0054b71c
mov ebx, eax
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x5d4]
push eax
call fcn.0047f493
pop ecx
pop ecx
mov byte [ebp - 4], 0x13
push dword [eax]
lea eax, [ebp - 0x628]
push eax
call fcn.0054afd5
mov esi, eax
mov edx, 0x5e99e8
mov ecx, ebx
mov byte [ebp - 4], 0x14
call fcn.0054b949
push esi
mov esi, eax
call fcn.0054b224
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], 0x13
call fcn.0054b1a0
mov eax, dword [ebp - 0x5d4]
add eax, 0xfffffff0
call fcn.00407b6b
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x5d0]
add eax, 0xfffffff0
call fcn.00407b6b
inc dword [ebp - 0x5c8]
mov edi, str.main
jmp 0x455de0
mov edx, edi
lea ecx, [ebp - 0x5a0]
call fcn.0054b949
mov edi, 0x5e9950
mov edx, edi
mov ecx, eax
call fcn.0054b949
mov esi, eax
lea eax, [ebp - 0x628]
push eax
push 6
pop ebx
mov dword [ebp - 0x5d0], esi
call fcn.0054af1d
push eax
mov byte [ebp - 4], 0x15
call fcn.0054b224
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], 1
call fcn.0054b1a0
cmp dword [0x6b44b8], 0
je 0x4561c9
and dword [ebp - 0x5c8], 0
mov ecx, dword [ebp - 0x5d8]
mov esi, str.main
mov edx, esi
call fcn.0054b949
mov edx, edi
mov ecx, eax
call fcn.0054b949
call fcn.0054b6cc
cmp dword [ebp - 0x5c8], eax
jae 0x4561c9
mov ecx, dword [ebp - 0x5d8]
mov edx, esi
call fcn.0054b949
mov edx, edi
mov ecx, eax
call fcn.0054b949
push dword [ebp - 0x5c8]
mov ecx, eax
call fcn.0054b71c
mov ebx, eax
cmp byte [ebx + 8], 0
je 0x4561b9
call fcn.0054bd37
test al, al
je 0x4561b9
mov edx, str.fidx
mov ecx, ebx
call fcn.0054b949
cmp byte [eax + 8], 1
jne 0x4561b9
mov ecx, eax
call fcn.0054b340
mov edx, str.fext
mov ecx, ebx
mov edi, eax
call fcn.0054b949
cmp byte [eax + 8], 4
jne 0x4561b9
mov eax, dword [eax]
test eax, eax
je 0x4561b9
push eax
lea eax, [ebp - 0x5cc]
push eax
call fcn.0047f54f
pop ecx
pop ecx
mov byte [ebp - 4], 0x16
mov esi, dword [ebp - 0x5cc]
cmp dword [esi - 0xc], 0
jne 0x4560d6
mov byte [ebp - 4], 1
lea eax, [esi - 0x10]
jmp 0x4561b4
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x238], ax
lea eax, [ebp - 0x236]
push eax
call fcn.00596530
add esp, 0xc
lea eax, [ebp - 0x238]
push eax
push edi
push dword [ebp - 0x5c8]
mov ecx, esi
mov eax, str.adimgpop
call fcn.004578a8
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4561a7
push ebx
push dword [ebp - 0x5d0]
call fcn.0054bb5f
mov eax, dword [ebp - 0x5d0]
call fcn.0054b6cc
mov ecx, dword [ebp - 0x5d0]
dec eax
push eax
call fcn.0054b71c
mov ebx, eax
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x5d4]
push eax
call fcn.0047f493
pop ecx
pop ecx
mov byte [ebp - 4], 0x17
push dword [eax]
lea eax, [ebp - 0x628]
push eax
call fcn.0054afd5
mov esi, eax
mov edx, 0x5e99e8
mov ecx, ebx
mov byte [ebp - 4], 0x18
call fcn.0054b949
push esi
mov esi, eax
call fcn.0054b224
lea ecx, [ebp - 0x628]
mov byte [ebp - 4], 0x17
call fcn.0054b1a0
mov eax, dword [ebp - 0x5d4]
add eax, 0xfffffff0
call fcn.00407b6b
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x5cc]
add eax, 0xfffffff0
call fcn.00407b6b
inc dword [ebp - 0x5c8]
mov edi, 0x5e9950
jmp 0x456004
lea edi, [ebp - 0x5c4]
call fcn.0054d534
lea eax, [ebp - 0x5a0]
push eax
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x19
call fcn.0054d54b
mov byte [ebp - 4], 0x1a
cmp dword [eax + 0x18], 0x10
jb 0x4561f9
mov eax, dword [eax + 4]
jmp 0x4561fc
add eax, 4
push eax
lea eax, [ebp - 0x5d4]
push eax
call fcn.0047f54f
pop ecx
pop ecx
mov edi, dword [ebp - 0x5ec]
mov byte [ebp - 4], 0x1b
call fcn.0040a3cc
mov eax, dword [ebp - 0x5d4]
add eax, 0xfffffff0
call fcn.00407b6b
xor esi, esi
push 0
inc esi
push esi
lea ecx, [ebp - 0x30]
call fcn.00407567
lea ecx, [ebp - 0x5c4]
mov dword [ebp - 0x5e0], esi
call fcn.0041a853
lea ecx, [ebp - 0x5a0]
mov byte [ebp - 4], 0
call fcn.0054b1a0
or dword [ebp - 4], 0xffffffff
jmp 0x45626f
call fcn.0045f8eb
xor ecx, ecx
inc ecx
push ecx
mov edx, 0x5e9a24
call fcn.0045f9b4
mov eax, dword [ebp - 0x5e0]
call fcn.00599026
ret 4