Function at 0x44e570
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cf728
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x50d4cc]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 0x3c], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
or ebx, 0xffffffff
mov edi, 1
test eax, eax
je 0x44e914
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
call fcn.00406580
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1c]
push 0x4df3d0
mov dword [ebp - 0x1c], 0
call fcn.00406580
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
push 0x4df41c
mov dword [ebp - 0x28], 0
call fcn.00406580
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
push 0x4df3d0
mov dword [ebp - 0x20], 0
call fcn.00406580
mov byte [ebp - 4], 3
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], ebx
mov ecx, dword [eax - 0xc]
lea edi, [ecx - 1]
test edi, edi
js 0x44e6c2
test edi, edi
js 0x44e93e
mov ecx, dword [eax - 0xc]
cmp edi, ecx
jg 0x44e93e
mov dl, byte [edi + eax]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x35], dl
cmp dword [eax - 0xc], 0
jl 0x44e93e
mov al, byte [eax]
cmp dl, al
je 0x44e6c2
cmp edi, ecx
jg 0x44e93e
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax - 0xc]
lea esi, [ebx + 1]
test esi, esi
js 0x44e93e
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, esi
or ecx, edx
jge 0x44e694
push esi
lea ecx, [ebp - 0x1c]
call fcn.00407ad0
mov eax, dword [ebp - 0x1c]
mov cl, byte [ebp - 0x35]
mov byte [ebx + eax], cl
mov eax, dword [ebp - 0x1c]
cmp esi, dword [eax - 8]
jg 0x44e93e
mov ebx, dword [ebp - 0x44]
mov dword [eax - 0xc], esi
inc ebx
dec edi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], ebx
mov byte [esi + eax], 0
js 0x44e6c2
mov eax, dword [ebp - 0x24]
jmp 0x44e632
lea edi, [ebx - 1]
test edi, edi
js 0x44e737
lea esp, [esp]
test edi, edi
js 0x44e93e
mov eax, dword [ebp - 0x1c]
cmp edi, dword [eax - 0xc]
jg 0x44e93e
mov al, byte [edi + eax]
mov byte [ebp - 0x35], al
mov eax, dword [ebp - 0x20]
mov ebx, dword [eax - 0xc]
lea esi, [ebx + 1]
test esi, esi
js 0x44e93e
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, esi
or ecx, edx
jge 0x44e718
push esi
lea ecx, [ebp - 0x20]
call fcn.00407ad0
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp - 0x35]
mov byte [ebx + eax], cl
mov eax, dword [ebp - 0x20]
cmp esi, dword [eax - 8]
jg 0x44e93e
dec edi
mov dword [eax - 0xc], esi
mov eax, dword [ebp - 0x20]
mov byte [esi + eax], 0
jns 0x44e6d0
push ecx
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x44]
call fcn.0044ffc0
add esp, 4
mov edi, dword [ebp - 0x40]
mov esi, edi
mov byte [ebp - 4], 4
mov ecx, edi
mov ebx, dword [eax]
call fcn.0040ca90
test eax, eax
je 0x44e76d
lea esp, [esp]
mov ecx, eax
mov esi, eax
call fcn.0040ca90
test eax, eax
jne 0x44e760
test esi, esi
je 0x44e77d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x9c]
jmp 0x44e77f
xor eax, eax
push 0x24
push 0x4e5d0c
push ebx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x44]
setne byte [ebp - 0x35]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44e7b8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x35], 0
je 0x44e88c
mov ecx, edi
mov esi, edi
call fcn.0040ca90
test eax, eax
je 0x44e7dd
nop
mov ecx, eax
mov esi, eax
call fcn.0040ca90
test eax, eax
jne 0x44e7d0
test esi, esi
je 0x44e7ed
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x9c]
jmp 0x44e7ef
xor eax, eax
push edi
push 0x10902
push 0x111
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov byte [ebp - 4], 2
mov ecx, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44e821
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov ecx, ebx
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44e841
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov ecx, ebx
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44e861
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x24]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x44e882
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, 1
jmp 0x44ea5f
mov byte [ebp - 4], 2
mov ecx, ebx
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44e8ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov ecx, ebx
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44e8cc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov ecx, ebx
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44e8ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov ecx, ebx
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44e90f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, 1
push dword [ebp - 0x3c]
mov dword [ebp - 0x18], 0
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
push eax
lea ecx, [ebp - 0x18]
call fcn.00406580
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x18]
mov esi, dword [eax - 0xc]
test esi, esi
jns 0x44e948
push 0x80070057
call fcn.00401330
mov ecx, dword [eax - 8]
sub edi, dword [eax - 4]
sub ecx, esi
or ecx, edi
jge 0x44e960
push esi
lea ecx, [ebp - 0x18]
call fcn.00407ad0
mov eax, dword [ebp - 0x18]
lea ecx, [esi + 1]
push ecx
push eax
call fcn.0048b127
push eax
call fcn.00401350
mov eax, dword [ebp - 0x18]
add esp, 0xc
cmp esi, dword [eax - 8]
jg 0x44e93e
mov dword [eax - 0xc], esi
lea ecx, [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov byte [esi + eax], 0
call fcn.00407480
mov ecx, eax
call fcn.00406a50
push 0x7f02
xorps xmm0, xmm0
mov dword [ebp - 0x2c], 0
push 0
movq qword [ebp - 0x34], xmm0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov esi, dword [sym.imp.USER32.dll_SetCursor]
push eax
mov dword [ebp - 0x34], eax
call esi
mov edi, eax
mov byte [ebp - 0x2c], 1
mov dword [ebp - 0x30], edi
mov byte [ebp - 4], 6
push 0x4e0fc0
push dword [ebp - 0x18]
call fcn.0048ccf3
add esp, 8
test eax, eax
sete al
test al, al
je 0x44e9ef
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
call fcn.0044ea80
jmp 0x44ea39
push str..tif
push dword [ebp - 0x18]
call fcn.0048ccf3
add esp, 8
test eax, eax
sete al
test al, al
jne 0x44ea2e
push str..tiff
push dword [ebp - 0x18]
call fcn.0048ccf3
add esp, 8
test eax, eax
sete al
test al, al
jne 0x44ea2e
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
call fcn.0044f360
jmp 0x44ea39
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
call fcn.0044ef00
push edi
call esi
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x44ea5d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0048b090
mov esp, ebp
pop ebp
ret 4