Function at 0x42e3b0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov esi, edx
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ebx
call fcn.0042f754
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x28], eax
call fcn.0042f276
mov ecx, dword [ebp + 0xc]
call fcn.0042f202
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42e963
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], ebx
push eax
push ebx
mov edx, esi
mov dword [ebp - 0x1c], ebx
mov ecx, edi
call fcn.0042de39
push dword [ebp - 0x20]
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x18], edi
test edi, edi
je 0x42e963
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x20]
push eax
push edi
mov edx, esi
call fcn.0042de39
pop ecx
pop ecx
test eax, eax
jne 0x42e957
lea ecx, [ebp - 0xc0]
call fcn.00421ed0
push ecx
mov ecx, esp
push edi
call fcn.00402969
lea ecx, [ebp - 0xc0]
call fcn.00421e30
test eax, eax
jne 0x42e941
push esi
lea ecx, [ebp - 4]
call fcn.00401e23
mov esi, dword [ebp - 4]
cmp dword [esi - 4], 1
jle 0x42e47c
push dword [esi - 0xc]
lea ecx, [ebp - 4]
call fcn.00401f75
mov esi, dword [ebp - 4]
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push ecx
lea ecx, [ebp - 4]
call fcn.00411d9f
push ecx
push ebx
push str.plugins
lea ecx, [ebp - 0xc0]
call fcn.00413337
test eax, eax
je 0x42e939
push ecx
push ebx
push str.plugin
mov ecx, eax
call fcn.00413337
mov dword [ebp - 0x10], eax
test eax, eax
je 0x42e936
mov edi, dword [ebp + 8]
push ecx
push ebx
push str.hotfix
mov ecx, eax
call fcn.00413578
test eax, eax
je 0x42e916
mov eax, dword [eax + 4]
test eax, eax
jne 0x42e4e4
mov eax, 0x44c488
push str.true
push eax
call sub.msvcrt.dll__stricmp
pop ecx
pop ecx
test eax, eax
jne 0x42e916
push ecx
mov ecx, dword [ebp - 0x10]
push ebx
push str.item
call fcn.00413337
mov esi, eax
mov dword [ebp - 8], esi
jmp 0x42e90e
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
call fcn.00402506
push eax
lea ecx, [ebp - 0x48]
call fcn.00402331
call fcn.00402506
push eax
lea ecx, [ebp - 0x44]
call fcn.00402331
call fcn.00402506
push eax
lea ecx, [ebp - 0x40]
call fcn.00402331
call fcn.00402506
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402331
call fcn.00402506
push eax
lea ecx, [ebp - 0x38]
call fcn.00402331
push ecx
push ebx
push str.type
mov ecx, esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
call fcn.00413578
test eax, eax
je 0x42e595
mov eax, dword [eax + 4]
test eax, eax
jne 0x42e585
mov eax, 0x44c488
push 0xa
push ebx
push eax
call dword [sym.imp.msvcrt.dll_strtoul]
add esp, 0xc
mov dword [ebp - 0x4c], eax
push ecx
push ebx
push str.autoexec
mov ecx, esi
call fcn.00413578
test eax, eax
je 0x42e5c3
mov eax, dword [eax + 4]
test eax, eax
jne 0x42e5b3
mov eax, 0x44c488
push 0xa
push ebx
push eax
call dword [sym.imp.msvcrt.dll_strtoul]
add esp, 0xc
mov dword [ebp - 0x34], eax
push ecx
push ebx
push str.boot
mov ecx, esi
call fcn.00413578
test eax, eax
je 0x42e5f9
mov eax, dword [eax + 4]
test eax, eax
jne 0x42e5e1
mov eax, 0x44c488
push str.true
push eax
call sub.msvcrt.dll__stricmp
pop ecx
pop ecx
test eax, eax
jne 0x42e5f9
mov dword [ebp - 0x30], 1
push ecx
push ebx
push 0x455e38
mov ecx, esi
call fcn.00413337
test eax, eax
je 0x42e627
mov eax, dword [eax + 4]
test eax, eax
jne 0x42e617
mov eax, 0x44c488
push 0xa
push ebx
push eax
call dword [sym.imp.msvcrt.dll_strtoul]
add esp, 0xc
mov dword [ebp - 0x50], eax
push ecx
push ebx
push str.name
mov ecx, esi
call fcn.00413337
test eax, eax
je 0x42e661
mov edx, dword [eax + 4]
test edx, edx
jne 0x42e645
mov edx, 0x44c488
lea ecx, [ebp - 0x54]
call fcn.00414b97
push eax
lea ecx, [ebp - 0x48]
call fcn.00402280
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
call fcn.004025d7
push ecx
push ebx
push str.desc
mov ecx, esi
call fcn.00413337
test eax, eax
je 0x42e69b
mov edx, dword [eax + 4]
test edx, edx
jne 0x42e67f
mov edx, 0x44c488
lea ecx, [ebp - 0x58]
call fcn.00414b97
push eax
lea ecx, [ebp - 0x44]
call fcn.00402280
mov ecx, dword [ebp - 0x58]
add ecx, 0xfffffff0
call fcn.004025d7
push ecx
push ebx
push str.related
mov ecx, esi
call fcn.00413337
mov dword [ebp - 0x14], eax
test eax, eax
je 0x42e707
mov edx, dword [eax + 4]
test edx, edx
jne 0x42e6bc
mov edx, 0x44c488
lea ecx, [ebp - 0x5c]
call fcn.00414b97
push eax
lea ecx, [ebp - 0x40]
call fcn.00402280
mov ecx, dword [ebp - 0x5c]
add ecx, 0xfffffff0
call fcn.004025d7
push ecx
mov ecx, dword [ebp - 0x14]
push ebx
push 0x455e38
call fcn.00413578
test eax, eax
je 0x42e707
mov eax, dword [eax + 4]
test eax, eax
jne 0x42e6f7
mov eax, 0x44c488
push 0xa
push ebx
push eax
call dword [sym.imp.msvcrt.dll_strtoul]
add esp, 0xc
mov dword [ebp - 0x2c], eax
push ecx
push ebx
push str.btntxt
mov ecx, esi
call fcn.00413337
test eax, eax
je 0x42e741
mov edx, dword [eax + 4]
test edx, edx
jne 0x42e725
mov edx, 0x44c488
lea ecx, [ebp - 0x60]
call fcn.00414b97
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402280
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
call fcn.004025d7
push ecx
push ebx
push 0x455e94
mov ecx, esi
call fcn.00413337
test eax, eax
je 0x42e7d1
mov edx, dword [eax + 4]
test edx, edx
jne 0x42e75f
mov edx, 0x44c488
lea ecx, [ebp - 0x68]
call fcn.00414b97
push 0x44eb58
lea edx, [ebp - 4]
mov ebx, eax
lea ecx, [ebp - 0x64]
call fcn.00401ec9
pop ecx
mov esi, eax
mov ecx, esi
call fcn.00401e55
push eax
lea ecx, [ebp - 0xc]
call fcn.00402331
mov ecx, dword [ebx]
mov edx, dword [esi]
push dword [ecx - 0xc]
push ecx
push dword [edx - 0xc]
lea ecx, [ebp - 0xc]
call fcn.00401e78
add esp, 0xc
lea eax, [ebp - 0xc]
lea ecx, [ebp - 0x38]
push eax
call fcn.00402280
mov ecx, dword [ebp - 0xc]
lea ecx, [ecx - 0x10]
call fcn.004025d7
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.004025d7
mov ecx, dword [ebp - 0x68]
add ecx, 0xfffffff0
call fcn.004025d7
xor ebx, ebx
mov esi, dword [ebp - 0x50]
test esi, esi
je 0x42e8f2
mov eax, dword [ebp - 0x48]
cmp dword [eax - 0xc], ebx
je 0x42e8f2
mov eax, dword [ebp - 0x44]
cmp dword [eax - 0xc], ebx
je 0x42e8f2
mov eax, dword [ebp - 0x40]
cmp dword [eax - 0xc], ebx
je 0x42e8f2
mov eax, dword [ebp - 0x38]
cmp dword [eax - 0xc], ebx
je 0x42e8f2
cmp dword [ebp - 0x4c], 0
je 0x42e81c
cmp dword [ebp - 0x4c], 1
jne 0x42e8f2
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x42e847
mov ecx, edx
cmp dword [eax + 0x10], esi
jae 0x42e834
mov eax, dword [eax + 8]
jmp 0x42e838
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x42e82a
cmp ecx, edx
je 0x42e847
cmp esi, dword [ecx + 0x10]
jae 0x42e849
mov ecx, edx
cmp ecx, edx
jne 0x42e8f2
push dword [ebp - 0x18]
lea eax, [ebp - 0x50]
push eax
push ecx
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x28]
call fcn.0042fc25
mov eax, dword [edi + 4]
lea ecx, [ebp - 0x50]
push ecx
cmp dword [edi + 8], eax
je 0x42e880
mov ecx, eax
call fcn.0042ee22
push 0x28
pop eax
add dword [edi + 4], eax
jmp 0x42e888
push eax
mov ecx, edi
call fcn.0042fa22
mov eax, dword [edi + 4]
sub eax, dword [edi]
cdq
push 0x28
pop ecx
idiv ecx
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
mov eax, esi
mov ecx, dword [esi + 4]
jmp 0x42e8b3
cmp dword [ecx + 0x10], edx
jae 0x42e8af
mov ecx, dword [ecx + 8]
jmp 0x42e8b3
mov esi, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0xd], 0
je 0x42e8a5
cmp esi, eax
je 0x42e8c2
cmp edx, dword [esi + 0x10]
jae 0x42e8eb
lea eax, [ebp - 0x50]
push ecx
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.0042fe22
mov ecx, dword [ebp + 0xc]
push eax
add eax, 0x10
push eax
push esi
lea eax, [ebp - 0x6c]
push eax
call fcn.0042ffbe
mov esi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [esi + 0x14], eax
push ecx
mov ecx, dword [ebp - 8]
push ebx
push str.item
call fcn.004132cf
mov esi, eax
lea ecx, [ebp - 0x50]
mov dword [ebp - 8], esi
call fcn.0042e987
test esi, esi
jne 0x42e512
push ecx
mov ecx, dword [ebp - 0x10]
push ebx
push str.plugin
call fcn.004132cf
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x42e4c2
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 4]
xor ebx, ebx
inc ebx
lea ecx, [esi - 0x10]
call fcn.004025d7
mov ecx, dword [ebp - 0x80]
lea ecx, [ecx - 0x10]
call fcn.004025d7
lea ecx, [ebp - 0x8c]
call fcn.00422970
test edi, edi
je 0x42e963
push edi
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x18]
push ecx
push dword [ecx]
lea ecx, [ebp - 0x28]
push eax
call fcn.0042f2f0
mov ecx, dword [ebp - 0x28]
push 0x14
pop edx
call fcn.00401abc
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret