Function at 0x442ed0
Capabilities:
Check if file exists
Get file attributes
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4d2f40
push eax
mov dword fs:[0], esp
sub esp, 0x6bc
lea eax, [esp + 0x154]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x6e0]
push str.descript.ion
push edi
mov esi, ecx
push eax
call fcn.00471100
add esp, 0xc
lea ebx, [esi + 0x78]
lea ecx, [esp + 0x164]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test eax, eax
je 0x442fe0
mov eax, dword [esi + 0x48]
test eax, eax
je 0x442fd5
push 0x1388
lea ecx, [esp + 0x18]
call fcn.00407ad0
mov dword [esp + 0x14], vtable.DescTable.0
mov edx, dword fs:[0x2c]
mov eax, dword [0x4f83ec]
xor ecx, ecx
mov dword [esp + 0x6d4], 0
mov edi, dword [edx + eax*4]
mov dword [esp + 0x24], 1
mov cl, byte [edi + 0x21f]
push ecx
push ebx
lea ecx, [esp + 0x1c]
call fcn.00423f30
lea ebp, [esi + 0x3c]
lea ecx, [esp + 0x14]
push ebp
call fcn.00424510
xor edx, edx
xor eax, eax
mov dl, byte [edi + 0x21f]
mov al, byte [edi + 0x21e]
push edx
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00424140
mov ecx, ebp
call fcn.004446d0
lea ecx, [esp + 0x14]
mov dword [esp + 0x6d4], 0xffffffff
call fcn.00444680
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [esp + 0x6e0]
lea ecx, [esp + 0x164]
push ecx
push ebx
call ebp
mov edx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x6dc]
push edx
lea ecx, [esi + 4]
push ebx
call fcn.00440a50
mov eax, dword [esi + 8]
push edi
push 0x183
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ecx, dword [ebx + 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x60]
add ecx, edx
mov dword [esi + 0x60], ecx
mov edx, dword [esi + 0x64]
adc edx, eax
mov dword [esi + 0x64], edx
mov eax, dword [esi + 8]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esi]
cmp dword [ecx + 8], 2
jne 0x44303d
push edi
push ebx
mov ecx, esi
call fcn.00442d70
jmp 0x44366a
mov eax, dword [ebx + 4]
test eax, eax
jne 0x44304b
xor eax, eax
jmp 0x44366a
mov ecx, ebx
call fcn.00425eb0
test eax, eax
je 0x443064
push edi
push ebx
mov ecx, esi
call fcn.00443690
jmp 0x44366a
mov eax, dword [esi + 0x6c]
lea edx, [esp + 0x268]
inc eax
mov dword [esi + 0x6c], eax
mov eax, dword [ebx + 0x34]
push eax
push edx
call ebp
mov eax, dword [esi + 0x28]
cmp eax, 1
jne 0x4430ad
test eax, eax
jle 0x44308c
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
jmp 0x44308e
xor eax, eax
cmp ebx, eax
jne 0x4430ad
mov eax, dword [esi]
add eax, 0x118
test eax, eax
je 0x4430ad
cmp byte [eax], 0
je 0x4430ad
lea ecx, [esp + 0x268]
push eax
push ecx
call ebp
lea edx, [esp + 0x268]
lea eax, [esp + 0x5c]
push edx
push edi
push eax
call fcn.00471100
mov eax, dword [esi + 0x74]
add esp, 0xc
test eax, eax
jne 0x4434a1
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
mov ecx, dword [esi + 8]
push 1
push 0
push 0
lea edx, [esp + 0x20]
push ecx
push edx
call ebp
test eax, eax
je 0x443132
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x44349a
mov ecx, dword [esi + 8]
lea eax, [esp + 0x14]
push eax
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x44311d
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov ecx, dword [esi + 8]
push 1
push 0
push 0
lea edx, [esp + 0x20]
push ecx
push edx
call ebp
test eax, eax
jne 0x4430e9
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x44349a
mov eax, dword [ebx + 4]
mov ecx, dword [esi]
add ecx, 0xc
mov eax, dword [eax + 0x28]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4431e3
mov eax, dword [esi]
mov cl, byte [eax + 0x118]
test cl, cl
jne 0x4431e3
mov eax, dword [eax + 8]
test eax, eax
je 0x443665
cmp eax, 1
jne 0x4431e3
mov edi, dword [ebx + 0x34]
lea edx, [esp + 0x5c]
push edx
call fcn.00471a00
mov ecx, dword [esi]
add esp, 4
mov edx, dword [ecx]
push edi
push 0x73
push edx
push eax
call fcn.00472a10
add esp, 0x10
lea eax, [esp + 0x5c]
mov edi, 2
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4431e3
mov ebp, dword [ebx + 0x34]
lea ecx, [esp + 0x5c]
push ecx
call fcn.00471a00
mov edx, dword [esi]
add esp, 4
mov ecx, dword [edx]
push ebp
push edi
push 0x74
push ecx
push eax
call fcn.00472a10
add esp, 0x14
lea edx, [esp + 0x5c]
inc edi
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4431aa
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4432d0
mov eax, dword [esi + 0x70]
test eax, eax
je 0x4432d0
mov ecx, dword fs:[0x2c]
mov edx, dword [0x4f83ec]
mov eax, 1
mov edi, dword [ecx + edx*4]
cmp dword [edi + 0x2e0], eax
je 0x44366a
mov al, byte [edi + 0x2e4]
test al, al
je 0x443241
lea eax, [esp + 0x5c]
mov ecx, ebx
push eax
call fcn.00425af0
test eax, eax
jne 0x443503
mov cl, byte [edi + 0x520]
lea edx, [esp + 0x36c]
push ecx
lea eax, [esp + 0x60]
push edx
push eax
call fcn.004728a0
mov eax, dword [edi + 0x2e0]
add esp, 0xc
cmp eax, 2
jne 0x44327d
lea ecx, [esp + 0x36c]
lea edx, [esp + 0x5c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x4432d0
mov eax, dword [esi + 8]
push 4
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edi, dword [esi + 8]
lea eax, [esp + 0x36c]
push eax
call fcn.00471a00
mov edx, dword [esi]
lea ecx, [esp + 0x60]
push eax
push ecx
mov eax, dword [edx]
push ebx
push edi
push eax
call fcn.004429a0
add esp, 0x18
cmp eax, 2
je 0x443522
cmp eax, 0x109
je 0x443665
cmp eax, 0x107
jne 0x4432d0
mov dword [esi + 0x70], 0
mov ecx, dword [esi]
lea eax, [esp + 0x5c]
mov edx, dword [ecx + 8]
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], eax
lea eax, [esi + 4]
push ecx
mov ecx, ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], 0x442b30
mov dword [esp + 0x40], eax
call fcn.00425980
mov ecx, dword [esi + 0x14]
test ecx, ecx
jne 0x44352f
test eax, eax
jne 0x4434a1
lea edx, [esp + 0x5c8]
push 0x104
lea eax, [esp + 0x60]
push edx
push eax
call sub.comdlg32.dll_GetFileTitleA
lea ecx, [esp + 0x5c8]
lea edx, [esp + 0x474]
push ecx
push str.__s_:
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebx + 4]
add esp, 0xc
add eax, 0x30
lea ecx, [esp + 0x474]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [esi + 0x48]
test eax, eax
je 0x443452
push 0x1388
lea ecx, [esp + 0x44]
call fcn.00407ad0
mov dword [esp + 0x40], vtable.DescTable.0
mov edx, dword fs:[0x2c]
mov eax, 1
mov dword [esp + 0x6d4], eax
mov dword [esp + 0x50], eax
mov eax, dword [0x4f83ec]
xor ecx, ecx
lea ebx, [esi + 0x78]
mov edi, dword [edx + eax*4]
mov cl, byte [edi + 0x21f]
push ecx
push ebx
lea ecx, [esp + 0x48]
call fcn.00423f30
lea ebp, [esi + 0x3c]
lea ecx, [esp + 0x40]
push ebp
call fcn.00424510
xor edx, edx
xor eax, eax
mov dl, byte [edi + 0x21f]
mov al, byte [edi + 0x21e]
push edx
push eax
push ebx
lea ecx, [esp + 0x4c]
call fcn.00424140
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x44340d
mov eax, dword [ebp + 8]
xor ebx, ebx
test eax, eax
jle 0x44340d
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + ebx*4]
test ecx, ecx
je 0x443405
mov edi, dword [ecx + 4]
test ecx, ecx
je 0x4433ff
mov edx, dword [ecx]
push 1
call dword [edx]
test edi, edi
mov ecx, edi
jne 0x4433f2
mov eax, dword [ebp + 8]
inc ebx
cmp ebx, eax
jl 0x4433e8
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 4]
shl ecx, 2
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov dword [esp + 0x6d4], 0xffffffff
and ecx, 3
rep stosb byte es:[edi], al
xor eax, eax
lea ecx, [esp + 0x40]
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
call fcn.00444680
mov ebx, dword [esp + 0x6dc]
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
mov eax, dword [esi + 8]
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [str.ACDSee]
mov eax, dword [esi + 8]
push 0x102
lea edx, [esp + 0x478]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 3
je 0x44352f
cmp eax, 5
je 0x443665
mov eax, dword [esi + 0x74]
test eax, eax
jne 0x4434a1
jmp 0x4430d4
mov dword [esi + 0x74], 1
mov edx, dword [esi]
mov eax, dword [edx + 8]
test eax, eax
jne 0x44355c
mov eax, dword [esp + 0x6e0]
push 1
push eax
call fcn.0045fce0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4435dd
push 0x40
call fcn.004bd49b
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x6d4], 2
je 0x44353d
lea ecx, [esp + 0x5c]
push ecx
call fcn.00471a00
add esp, 4
mov ecx, edi
push eax
push ebp
call fcn.00424810
mov edi, eax
jmp 0x44353f
mov eax, dword [esi]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x443665
mov ecx, dword [esi + 8]
push 0
push ecx
mov ecx, ebx
call fcn.004259a0
jmp 0x443665
mov eax, 1
mov dword [esi + 0x74], eax
jmp 0x44366a
mov dword [esi + 0x74], 1
xor eax, eax
jmp 0x44366a
xor edi, edi
push edi
push ebx
mov ecx, 0x4f5850
mov dword [esp + 0x6dc], 0xffffffff
call fcn.0043c460
test edi, edi
je 0x4435d6
jmp 0x4435ce
cmp eax, 1
jne 0x4435dd
push eax
mov eax, dword [esp + 0x6e4]
push eax
call fcn.0045fce0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4435dd
push 0x40
call fcn.004bd49b
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x6d4], 3
je 0x4435b1
lea ecx, [esp + 0x5c]
push ecx
call fcn.00471a00
add esp, 4
mov ecx, edi
push eax
push ebp
call fcn.00424810
mov edi, eax
jmp 0x4435b3
xor edi, edi
push edi
push ebx
mov ecx, 0x4f5850
mov dword [esp + 0x6dc], 0xffffffff
call fcn.0043c840
test edi, edi
je 0x4435d6
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
mov ecx, ebp
call fcn.0045f810
mov ecx, ebx
call fcn.00425340
test eax, eax
je 0x443665
push 0x14
call fcn.004bd49b
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
test edi, edi
mov dword [esp + 0x6d4], 4
je 0x44361e
mov ebp, dword [ebx + 0x34]
mov ecx, ebx
call fcn.00425340
push eax
push ebp
mov ecx, edi
call fcn.00423c00
mov edi, eax
jmp 0x443620
xor edi, edi
lea eax, [esp + 0x5c]
mov dword [esp + 0x6d4], 0xffffffff
push eax
call fcn.00471a00
add esp, 4
mov ecx, edi
push eax
call fcn.00423cd0
test edi, edi
je 0x443665
mov ecx, dword [esi + 0x44]
push ecx
mov ecx, edi
call fcn.00423cf0
mov edx, dword [esi + 0x40]
mov ecx, dword [edx + eax*4]
mov dword [edi + 4], ecx
mov edx, dword [esi + 0x40]
mov dword [edx + eax*4], edi
mov eax, dword [esi + 0x48]
inc eax
mov dword [esi + 0x48], eax
mov eax, 1
mov ecx, dword [esp + 0x6cc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c8
ret 8