Function at 0x471850
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56ec22
mov eax, dword fs:[0]
push eax
sub esp, 0xfd0
mov eax, dword [0x5f969c]
xor eax, ebp
mov dword [ebp - 0x18], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xf60], ecx
mov dword [ebp - 0xf5c], 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xf60]
call fcn.00471010
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov word [ebp - 0x864], cx
push 0x206
push 0
lea edx, [ebp - 0x862]
push edx
call fcn.0053c870
add esp, 0xc
push 0x103
lea eax, [ebp - 0x864]
push eax
push 8
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0xf60]
call fcn.00470ce0
mov ecx, dword [ebp - 0xf60]
add ecx, 0x668
call fcn.004dfdf0
mov dword [ebp - 0x658], eax
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x8a0], 0
lea edx, [ebp - 0x8a4]
push edx
push 0x472560
lea eax, [ebp - 0x658]
push eax
mov ecx, dword [ebp - 0xf60]
add ecx, 0x668
call fcn.00475310
push 0
push 0x100000
mov ecx, dword [ebp - 0x8a0]
push ecx
mov edx, dword [ebp - 0x8a4]
push edx
call fcn.0053ed40
mov dword [ebp - 0x8a4], eax
mov dword [ebp - 0x8a0], edx
cmp dword [ebp - 0x8a0], 0
ja 0x471964
cmp dword [ebp - 0x8a4], 0x1f4
jb 0x4719d1
lea ecx, [ebp - 0xd8c]
call fcn.0049ee50
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0xf60]
mov ecx, dword [eax + 4]
sub ecx, 0x42c
mov dword [ebp - 0xab4], ecx
mov ecx, dword [ebp - 0xab4]
call dword [sym.imp.DuiLib.dll_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::GetHWND_void_const]
push eax
lea ecx, [ebp - 0xd8c]
call fcn.0049f230
cmp eax, 6
je 0x4719bf
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd8c]
call fcn.0049eea0
jmp 0x472535
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd8c]
call fcn.0049eea0
mov ecx, dword [ebp - 0x14]
call fcn.00476080
mov ecx, eax
call fcn.00406410
push eax
lea ecx, [ebp - 0x448]
call fcn.004061d0
mov dword [ebp - 4], 1
push 0xffffffffffffffff
push 0x5c
lea ecx, [ebp - 0x448]
call fcn.00474460
mov dword [ebp - 0xab0], eax
cmp dword [ebp - 0xab0], 0xffffffff
jne 0x471a54
push 0x583a80
lea ecx, [ebp - 0xe44]
call fcn.004061d0
mov dword [ebp - 0xf64], eax
mov edx, dword [ebp - 0xf64]
mov dword [ebp - 0xf68], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0xf5c]
or eax, 1
mov dword [ebp - 0xf5c], eax
mov ecx, dword [ebp - 0xf68]
mov dword [ebp - 0xf6c], ecx
jmp 0x471aa3
mov edx, dword [ebp - 0xab0]
push edx
push 0
lea eax, [ebp - 0xe60]
push eax
lea ecx, [ebp - 0x448]
call fcn.00406270
mov dword [ebp - 0xf70], eax
mov ecx, dword [ebp - 0xf70]
mov dword [ebp - 0xf74], ecx
mov dword [ebp - 4], 3
mov edx, dword [ebp - 0xf5c]
or edx, 2
mov dword [ebp - 0xf5c], edx
mov eax, dword [ebp - 0xf74]
mov dword [ebp - 0xf6c], eax
mov ecx, dword [ebp - 0xf6c]
mov dword [ebp - 0xe28], ecx
mov edx, dword [ebp - 0xe28]
push edx
lea ecx, [ebp - 0x448]
call fcn.00407d20
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0xf5c]
and eax, 2
je 0x471ae5
and dword [ebp - 0xf5c], 0xfffffffd
lea ecx, [ebp - 0xe60]
call fcn.00406210
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0xf5c]
and ecx, 1
je 0x471b09
and dword [ebp - 0xf5c], 0xfffffffe
lea ecx, [ebp - 0xe44]
call fcn.00406210
xor edx, edx
mov word [ebp - 0x42c], dx
push 0x206
push 0
lea eax, [ebp - 0x42a]
push eax
call fcn.0053c870
add esp, 0xc
push 0x103
lea ecx, [ebp - 0x42c]
push ecx
push 3
mov edx, dword [ebp - 0x14]
push edx
mov ecx, dword [ebp - 0xf60]
call fcn.00470ce0
lea eax, [ebp - 0x448]
push eax
lea ecx, [ebp - 0x880]
call fcn.00408ba7
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x42c]
push ecx
push 0x5c
lea edx, [ebp - 0x880]
push edx
lea eax, [ebp - 0xe7c]
push eax
call fcn.00476960
add esp, 0xc
mov dword [ebp - 0xf78], eax
mov ecx, dword [ebp - 0xf78]
mov dword [ebp - 0xf7c], ecx
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0xf7c]
push edx
lea eax, [ebp - 0xe98]
push eax
call fcn.00437480
add esp, 0xc
mov dword [ebp - 0xf80], eax
mov ecx, dword [ebp - 0xf80]
mov dword [ebp - 0xf84], ecx
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0xf84]
push edx
lea ecx, [ebp - 0x880]
call fcn.00407d20
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xe98]
call fcn.00406210
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xe7c]
call fcn.00406210
lea ecx, [ebp - 0x880]
call fcn.00406240
test eax, eax
jbe 0x471c5f
push 0
lea ecx, [ebp - 0x880]
call fcn.00408bcd
movzx eax, word [eax]
cmp eax, 0x5c
je 0x471c5f
lea ecx, [ebp - 0x880]
push ecx
push 0x5c
lea edx, [ebp - 0xeb4]
push edx
call fcn.00452a60
add esp, 0xc
mov dword [ebp - 0xf88], eax
mov eax, dword [ebp - 0xf88]
mov dword [ebp - 0xf8c], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xf8c]
push ecx
lea ecx, [ebp - 0x880]
call fcn.00407d20
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xeb4]
call fcn.00406210
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0xeb8], esp
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xebc], esp
lea edx, [ebp - 0x880]
push edx
call fcn.00408ba7
mov dword [ebp - 0xf90], eax
push esi
call fcn.00473f20
add esp, 0x20
mov dword [ebp - 0xf94], eax
mov eax, dword [ebp - 0xf94]
mov dword [ebp - 0xf98], eax
lea ecx, [ebp - 0x89c]
push ecx
call fcn.00451a70
add esp, 0x20
mov dword [ebp - 0xf9c], eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x89c]
call fcn.00406240
test eax, eax
jbe 0x471d2c
push 0
lea ecx, [ebp - 0x89c]
call fcn.00408bcd
movzx edx, word [eax]
cmp edx, 0x2e
jne 0x471d2c
push 0xffffffffffffffff
push 1
lea eax, [ebp - 0xed8]
push eax
lea ecx, [ebp - 0x89c]
call fcn.00406270
mov dword [ebp - 0xfa0], eax
mov ecx, dword [ebp - 0xfa0]
mov dword [ebp - 0xfa4], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0xfa4]
push edx
lea ecx, [ebp - 0x89c]
call fcn.00407d20
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xed8]
call fcn.00406210
lea eax, [ebp - 0x89c]
push eax
push 0x583a84
call fcn.004769f0
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x471e71
lea edx, [ebp - 0x89c]
push edx
push str.jpeg
call fcn.004769f0
add esp, 8
movzx eax, al
test eax, eax
jne 0x471e71
lea ecx, [ebp - 0x89c]
push ecx
push 0x583a98
call fcn.004769f0
add esp, 8
movzx edx, al
test edx, edx
jne 0x471e71
lea eax, [ebp - 0x89c]
push eax
push 0x583aa0
call fcn.004769f0
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x471e71
lea edx, [ebp - 0x89c]
push edx
push 0x583aa8
call fcn.004769f0
add esp, 8
movzx eax, al
test eax, eax
jne 0x471e71
lea ecx, [ebp - 0x89c]
push ecx
push 0x583ab0
call fcn.004769f0
add esp, 8
movzx edx, al
test edx, edx
jne 0x471e71
lea eax, [ebp - 0x89c]
push eax
push 0x583ab8
call fcn.004769f0
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x471e71
lea edx, [ebp - 0x89c]
push edx
push str.tiff
call fcn.004769f0
add esp, 8
movzx eax, al
test eax, eax
jne 0x471e71
lea ecx, [ebp - 0x89c]
push ecx
push 0x583acc
call fcn.004769f0
add esp, 8
movzx edx, al
test edx, edx
jne 0x471e71
lea eax, [ebp - 0x89c]
push eax
push 0x583ad4
call fcn.004769f0
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x471e71
lea edx, [ebp - 0x89c]
push edx
push 0x583adc
call fcn.004769f0
add esp, 8
movzx eax, al
test eax, eax
je 0x47209b
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xedc], esp
push 0x583ae4
call fcn.004061d0
mov dword [ebp - 0xfa8], eax
mov ecx, dword [ebp - 0xfa8]
mov dword [ebp - 0xfac], ecx
mov byte [ebp - 4], 0xa
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xee0], esp
push str.HKEY_CURRENT_USERSoftwareImageViewer_
call fcn.004061d0
mov dword [ebp - 0xfb0], eax
lea edx, [ebp - 0xdc4]
push edx
mov byte [ebp - 4], 8
call fcn.00452310
add esp, 0x3c
mov dword [ebp - 0xfb4], eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0xf60]
add eax, 0x30
push eax
lea ecx, [ebp - 0xda8]
call fcn.004061d0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x880]
push ecx
lea edx, [ebp - 0xda8]
push edx
lea eax, [ebp - 0xefc]
push eax
call fcn.00452970
add esp, 0xc
mov dword [ebp - 0xfb8], eax
mov ecx, dword [ebp - 0xfb8]
mov dword [ebp - 0xfbc], ecx
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0xfbc]
push edx
lea ecx, [ebp - 0xda8]
call fcn.00407d20
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xefc]
call fcn.00406210
push 0x22
lea eax, [ebp - 0xda8]
push eax
push 0x22
lea ecx, [ebp - 0xf18]
push ecx
call fcn.00452a60
add esp, 0xc
mov dword [ebp - 0xfc0], eax
mov edx, dword [ebp - 0xfc0]
mov dword [ebp - 0xfc4], edx
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0xfc4]
push eax
lea ecx, [ebp - 0xf34]
push ecx
call fcn.00476960
add esp, 0xc
mov dword [ebp - 0xfc8], eax
mov edx, dword [ebp - 0xfc8]
mov dword [ebp - 0xfcc], edx
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0xfcc]
push eax
lea ecx, [ebp - 0xda8]
call fcn.00407d20
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xf34]
call fcn.00406210
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0xf18]
call fcn.00406210
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xf38], esp
lea edx, [ebp - 0xdc4]
push edx
call fcn.00408ba7
mov dword [ebp - 0xfd0], eax
call fcn.004740f0
add esp, 0x1c
mov dword [ebp - 0xfd4], eax
cmp dword [ebp - 0xfd4], 0
je 0x47207d
push 1
push 0
lea ecx, [ebp - 0xda8]
call fcn.00406410
push eax
lea ecx, [ebp - 0xdc4]
call fcn.00406410
push eax
push 0x583b38
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xda8]
call fcn.00406210
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xdc4]
call fcn.00406210
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x89c]
call fcn.00406210
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x880]
call fcn.00406210
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x448]
call fcn.00406210
jmp 0x472535
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xda8]
call fcn.00406210
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xdc4]
call fcn.00406210
push 0x103
lea eax, [ebp - 0x224]
push eax
push 3
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0xf60]
call fcn.00470ce0
xor edx, edx
mov word [ebp - 0x654], dx
push 0x206
push 0
lea eax, [ebp - 0x652]
push eax
call fcn.0053c870
add esp, 0xc
lea ecx, [ebp - 0x654]
push ecx
mov ecx, dword [ebp - 0xf60]
call fcn.00472be0
lea edx, [ebp - 0x654]
push edx
lea eax, [ebp - 0xaac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea ecx, [ebp - 0x448]
call fcn.00406410
push eax
lea ecx, [ebp - 0xaac]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x224]
push edx
lea eax, [ebp - 0xaac]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x472163
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x89c]
call fcn.00406210
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x880]
call fcn.00406210
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x448]
call fcn.00406210
jmp 0x472535
mov dword [ebp - 0x10], 0
cmp dword [ebp + 0xc], 0
jne 0x4721db
lea ecx, [ebp - 0xaac]
push ecx
mov ecx, 0x5fd228
call fcn.004b86f0
test eax, eax
je 0x4721db
push 0
lea edx, [ebp - 0x654]
push edx
push 0xffffffffffffffff
push 0
mov ecx, dword [ebp - 0xf60]
call fcn.00472690
test eax, eax
jne 0x4721d6
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x89c]
call fcn.00406210
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x880]
call fcn.00406210
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x448]
call fcn.00406210
jmp 0x472535
jmp 0x472289
lea ecx, [ebp - 0xddc]
call fcn.00456120
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0xddc]
push eax
mov ecx, dword [ebp - 0xf60]
call fcn.004710c0
push 0
lea ecx, [ebp - 0x654]
push ecx
push 1
push 0
lea ecx, [ebp - 0xddc]
call fcn.0045fcc0
push eax
mov ecx, dword [ebp - 0xf60]
call fcn.00472690
test eax, eax
jne 0x472268
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xddc]
call fcn.00456190
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x89c]
call fcn.00406210
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x880]
call fcn.00406210
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x448]
call fcn.00406210
jmp 0x472535
push 0
lea ecx, [ebp - 0xddc]
call fcn.0045fcc0
mov edx, dword [eax]
mov dword [ebp - 0x10], edx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xddc]
call fcn.00456190
lea eax, [ebp - 0xaac]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4722cf
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x89c]
call fcn.00406210
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x880]
call fcn.00406210
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x448]
call fcn.00406210
jmp 0x472535
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0xaac]
push edx
mov ecx, 0x5fd228
call fcn.004b83f0
test eax, eax
je 0x472505
mov eax, dword [ebp - 0xf60]
mov ecx, dword [eax + 0x664]
and ecx, 8
jne 0x472332
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x89c]
call fcn.00406210
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x880]
call fcn.00406210
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x448]
call fcn.00406210
jmp 0x472535
push 0x428
call fcn.0053cf1e
add esp, 4
mov dword [ebp - 0xf3c], eax
mov edx, dword [ebp - 0xf3c]
mov dword [ebp - 0xe20], edx
mov dword [ebp - 0xe1c], 0
xor eax, eax
mov dword [ebp - 0xe18], eax
mov dword [ebp - 0xe14], eax
mov dword [ebp - 0xe10], eax
mov dword [ebp - 0xe0c], eax
mov dword [ebp - 0xe08], eax
mov dword [ebp - 0xe04], eax
mov dword [ebp - 0xe00], eax
mov dword [ebp - 0xdfc], eax
lea ecx, [ebp - 0xe1c]
push ecx
push 0
lea edx, [ebp - 0xaac]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
jne 0x4723dc
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x89c]
call fcn.00406210
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x880]
call fcn.00406210
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x448]
call fcn.00406210
jmp 0x472535
mov eax, dword [ebp - 0xe20]
mov ecx, dword [ebp - 0xe08]
mov dword [eax + 0x414], ecx
mov edx, dword [ebp - 0xe04]
mov dword [eax + 0x418], edx
mov eax, dword [ebp - 0xe20]
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
mov edx, dword [ebp - 0xe20]
mov eax, dword [ebp - 0xf60]
mov dword [edx + 0x420], eax
lea ecx, [ebp - 0xaac]
push ecx
mov edx, dword [ebp - 0xe20]
add edx, 0x20c
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea ecx, [ebp - 0x448]
call fcn.00406410
push eax
mov eax, dword [ebp - 0xe20]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea ecx, [ebp - 0xaac]
push ecx
lea ecx, [ebp - 0xdf8]
call fcn.004061d0
mov byte [ebp - 4], 0x11
push 0xffffffffffffffff
push 0x583b44
lea ecx, [ebp - 0xdf8]
call fcn.00436870
mov dword [ebp - 0xe24], eax
cmp dword [ebp - 0xe24], 0xffffffff
je 0x4724d9
mov edx, dword [ebp - 0xe24]
add edx, 1
push edx
push 0
lea eax, [ebp - 0xf58]
push eax
lea ecx, [ebp - 0xdf8]
call fcn.00406270
mov dword [ebp - 0xfd8], eax
mov ecx, dword [ebp - 0xfd8]
mov dword [ebp - 0xfdc], ecx
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0xfdc]
push edx
lea ecx, [ebp - 0xdf8]
call fcn.00407d20
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xf58]
call fcn.00406210
mov eax, dword [ebp - 0xe20]
push eax
lea ecx, [ebp - 0xdf8]
call fcn.00406410
push eax
mov ecx, 0x5fc570
call fcn.0046b9e0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xdf8]
call fcn.00406210
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x89c]
call fcn.00406210
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x880]
call fcn.00406210
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x448]
call fcn.00406210
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.0053c85d
mov esp, ebp
pop ebp
ret 8