Function at 0x4019e0
Capabilities:
Check if file exists
Copy file
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x280
push ebx
push ebp
push esi
push edi
call fcn.00401960
mov esi, eax
cmp esi, 0xffffffff
je 0x401cac
xor eax, eax
mov byte [esp + 0x80], 0
mov ecx, 0x40
lea edi, [esp + 0x81]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dl, byte [0x40b58c]
xor eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov byte [esp + 0x188], 0
mov ecx, 0x40
lea edi, [esp + 0x189]
rep stosd dword es:[edi], eax
mov ecx, dword [str..JPG]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
xor eax, eax
mov dword [esp + 0x15], eax
mov byte [esp + 0x19], al
mov eax, dword [str..PNG]
mov dword [esp + 0x25], eax
mov al, byte [0x40b57c]
mov byte [esp + 0x2e], al
mov eax, dword [esi*4 + 0x40d130]
mov dword [esp + 0x20], ecx
mov cl, byte [0x40b584]
mov byte [esp + 0x24], dl
mov edx, dword [str..PDF]
xor ebp, ebp
cmp eax, 1
mov byte [esp + 0x14], 0
mov byte [esp + 0x29], cl
mov dword [esp + 0x2a], edx
jne 0x401ad8
mov ecx, dword [esi*4 + 0x40d0c0]
push str..JPG
push 0x42e488
push ecx
push 0x42e278
lea edx, [esp + 0x90]
push str._s_s_s_s
push edx
call edi
add esp, 0x18
lea eax, [esp + 0x80]
push eax
call ebx
cmp eax, 0xffffffff
jne 0x401b30
mov ebp, 1
jmp 0x401b30
cmp eax, 2
jne 0x401ae1
mov ebp, eax
jmp 0x401b30
cmp eax, 3
jne 0x401aed
mov ebp, 1
jmp 0x401b30
cmp eax, 4
jne 0x401b30
mov ecx, dword [esi*4 + 0x40d0c0]
push str..PDF
push 0x42e488
push ecx
push 0x42e278
lea edx, [esp + 0x90]
push str._s_s_s_s
push edx
call edi
add esp, 0x18
lea eax, [esp + 0x80]
push eax
call ebx
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
inc ecx
mov ebp, ecx
cmp dword [esi*4 + 0x40d130], 5
jne 0x401b77
mov edx, dword [esi*4 + 0x40d0c0]
push str..JPG
push 0x42e488
push edx
push 0x42e278
lea eax, [esp + 0x90]
push str._s_s_s_s
push eax
call edi
add esp, 0x18
lea ecx, [esp + 0x80]
push ecx
call ebx
cmp eax, 0xffffffff
jne 0x401b77
mov ebp, 2
mov ecx, dword [esi*4 + 0x40d0c0]
lea edx, [esp + ebp + 0x20]
lea eax, [edx + ebp*4]
push eax
push 0x42e488
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1c]
push eax
push ecx
push 0x42e278
lea edx, [esp + 0x94]
push str._s_s_s_s_s
push edx
call edi
add esp, 0x1c
lea eax, [esp + 0x80]
push eax
call ebx
cmp eax, 0xffffffff
je 0x401cac
mov ecx, dword [esp + 0x1c]
push ecx
push 0x42e488
lea edx, [esp + 0x190]
push str._s_s
push edx
call edi
xor eax, eax
mov ecx, 0x13
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
mov eax, dword [0x42e1fc]
add esp, 0x10
sub ebp, 0
lea ecx, [esp + 0x188]
mov dword [esp + 0x30], 0x4c
mov dword [esp + 0x34], eax
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 0x104
mov dword [esp + 0x64], 6
je 0x401c4b
dec ebp
je 0x401c39
dec ebp
jne 0x401c4b
mov dword [esp + 0x3c], 0x40b53c
mov dword [esp + 0x6c], 0x40b534
jmp 0x401c5b
mov dword [esp + 0x3c], 0x40b518
mov dword [esp + 0x6c], 0x40b510
jmp 0x401c5b
mov dword [esp + 0x3c], 0x40b4d8
mov dword [esp + 0x6c], str.jpg_.jpeg_.jpe
lea edx, [esp + 0x30]
push edx
call dword [sym.imp.comdlg32.dll_GetSaveFileNameA]
test eax, eax
je 0x401c9f
push 0
lea eax, [esp + 0x18c]
push eax
lea ecx, [esp + 0x88]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x401c9f
push 0x30
push 0x40b4b4
push 0x40b428
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0x30
push 0x40b418
push 0x40b3c8
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret