Function at 0x451110
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c8795
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x647f80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov dword [ebp - 0x2c], esi
mov edi, ecx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
push esi
mov dword [ebp - 0x30], edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
xorps xmm0, xmm0
cmp eax, 0xffffffff
je 0x4516b6
mov ecx, esi
mov dword [ebp - 0x54], 0
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x50], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x451174
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x64]
call fcn.00454080
cmp dword [ebp - 0x50], 0xf
lea ecx, [ebp - 0x64]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x54]
cmova ecx, edx
test eax, eax
je 0x4511be
or esi, 0xffffffff
dec eax
cmp eax, esi
cmovb esi, eax
add esi, ecx
cmp byte [esi], 0x2e
je 0x4511ba
nop dword [eax + eax]
cmp esi, ecx
je 0x4511be
dec esi
cmp byte [esi], 0x2e
jne 0x4511b0
sub esi, ecx
jmp 0x4511c1
or esi, 0xffffffff
mov eax, dword [ebp - 0x50]
cmp eax, 0xf
jbe 0x4511f4
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4511ea
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4516f2
push ecx
push edx
call fcn.0059e516
add esp, 8
xorps xmm0, xmm0
cmp esi, 0xffffffff
je 0x4516b6
mov edx, dword [ebp - 0x2c]
mov ecx, edx
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
lea eax, [ecx + 1]
mov dword [ebp - 0x2c], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x451220
sub ecx, dword [ebp - 0x2c]
push ecx
push edx
lea ecx, [ebp - 0x4c]
call fcn.00454080
mov dword [ebp - 4], 0
inc esi
mov eax, dword [ebp - 0x3c]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x28], xmm0
cmp eax, esi
jb 0x4516f7
sub eax, esi
mov ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [ebp - 0x38], 0xf
lea eax, [ebp - 0x4c]
cmova eax, dword [ebp - 0x4c]
push ecx
add eax, esi
lea ecx, [ebp - 0x28]
push eax
call fcn.00454080
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x38]
cmp ecx, 0xf
jbe 0x4512b8
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4512ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4516fc
push ecx
push edx
call fcn.0059e516
add esp, 8
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x28]
cmova eax, dword [ebp - 0x28]
lea esi, [ebp - 0x28]
cmova edx, dword [ebp - 0x28]
add eax, ecx
cmp dword [ebp - 0x14], 0xf
mov dword [ebp - 0x30], eax
cmova esi, dword [ebp - 0x28]
cmp esi, eax
je 0x451300
sub edx, esi
mov edi, edx
movsx eax, byte [esi]
push eax
call fcn.005a3ae6
mov byte [edi + esi], al
add esp, 4
inc esi
cmp esi, dword [ebp - 0x30]
jne 0x4512e5
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x28]
mov esi, dword [ebp - 0x28]
cmp eax, 0xf
cmova edx, esi
cmp ecx, 3
jne 0x4513dd
mov eax, ecx
mov esi, 0x63f4e0
sub eax, 4
mov dword [ebp - 0x2c], eax
jb 0x45133e
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x451343
mov eax, dword [ebp - 0x2c]
add edx, 4
add esi, 4
sub eax, 4
mov dword [ebp - 0x2c], eax
jae 0x451327
cmp eax, 0xfffffffc
je 0x45137a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x451373
cmp dword [ebp - 0x2c], 0xfffffffd
je 0x45137a
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x451373
cmp dword [ebp - 0x2c], 0xfffffffe
je 0x45137a
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x451373
cmp dword [ebp - 0x2c], 0xffffffff
je 0x45137a
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x45137a
sbb eax, eax
or eax, 1
jmp 0x45137c
xor eax, eax
test eax, eax
jne 0x4513d7
xorps xmm0, xmm0
movups xmmword [edi], xmm0
push 0xa
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
push str.Executable
mov ecx, edi
call fcn.00454080
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x4516d5
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4513c8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4516fc
push ecx
push edx
call fcn.0059e516
add esp, 8
jmp 0x4516d5
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
cmp eax, 0xf
lea edx, [ebp - 0x28]
cmova edx, esi
cmp ecx, 3
jne 0x451463
mov eax, ecx
mov esi, 0x63f4f0
sub eax, 4
mov dword [ebp - 0x2c], eax
jb 0x451417
nop word [eax + eax]
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x45141c
mov eax, dword [ebp - 0x2c]
add edx, 4
add esi, 4
sub eax, 4
mov dword [ebp - 0x2c], eax
jae 0x451400
cmp eax, 0xfffffffc
je 0x451453
mov al, byte [edx]
cmp al, byte [esi]
jne 0x45144c
cmp dword [ebp - 0x2c], 0xfffffffd
je 0x451453
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x45144c
cmp dword [ebp - 0x2c], 0xfffffffe
je 0x451453
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x45144c
cmp dword [ebp - 0x2c], 0xffffffff
je 0x451453
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x451453
sbb eax, eax
or eax, 1
jmp 0x451455
xor eax, eax
test eax, eax
je 0x451645
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
cmp eax, 0xf
lea edx, [ebp - 0x28]
cmova edx, esi
cmp ecx, 4
jne 0x4514e3
mov eax, ecx
mov esi, str.jpeg
sub eax, ecx
mov dword [ebp - 0x2c], eax
jb 0x451497
nop
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x45149c
mov eax, dword [ebp - 0x2c]
add edx, 4
add esi, 4
sub eax, 4
mov dword [ebp - 0x2c], eax
jae 0x451480
cmp eax, 0xfffffffc
je 0x4514d3
mov al, byte [edx]
cmp al, byte [esi]
jne 0x4514cc
cmp dword [ebp - 0x2c], 0xfffffffd
je 0x4514d3
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x4514cc
cmp dword [ebp - 0x2c], 0xfffffffe
je 0x4514d3
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x4514cc
cmp dword [ebp - 0x2c], 0xffffffff
je 0x4514d3
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x4514d3
sbb eax, eax
or eax, 1
jmp 0x4514d5
xor eax, eax
test eax, eax
je 0x451645
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
cmp eax, 0xf
lea edx, [ebp - 0x28]
cmova edx, esi
cmp ecx, 3
jne 0x451563
mov eax, ecx
mov esi, 0x63f4fc
sub eax, 4
mov dword [ebp - 0x2c], eax
jb 0x451517
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x45151c
mov eax, dword [ebp - 0x2c]
add edx, 4
add esi, 4
sub eax, 4
mov dword [ebp - 0x2c], eax
jae 0x451500
cmp eax, 0xfffffffc
je 0x451553
mov al, byte [edx]
cmp al, byte [esi]
jne 0x45154c
cmp dword [ebp - 0x2c], 0xfffffffd
je 0x451553
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x45154c
cmp dword [ebp - 0x2c], 0xfffffffe
je 0x451553
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x45154c
cmp dword [ebp - 0x2c], 0xffffffff
je 0x451553
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x451553
sbb eax, eax
or eax, 1
jmp 0x451555
xor eax, eax
test eax, eax
je 0x451645
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
cmp eax, 0xf
lea edx, [ebp - 0x28]
cmova edx, esi
cmp ecx, 3
jne 0x4515dc
mov eax, ecx
mov esi, 0x63f500
sub eax, 4
mov dword [ebp - 0x2c], eax
jb 0x451597
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x45159c
mov eax, dword [ebp - 0x2c]
add edx, 4
add esi, 4
sub eax, 4
mov dword [ebp - 0x2c], eax
jae 0x451580
cmp eax, 0xfffffffc
je 0x4515d3
mov al, byte [edx]
cmp al, byte [esi]
jne 0x4515cc
cmp dword [ebp - 0x2c], 0xfffffffd
je 0x4515d3
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x4515cc
cmp dword [ebp - 0x2c], 0xfffffffe
je 0x4515d3
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x4515cc
cmp dword [ebp - 0x2c], 0xffffffff
je 0x4515d3
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x4515d3
sbb eax, eax
or eax, 1
jmp 0x4515d5
xor eax, eax
test eax, eax
je 0x451645
mov eax, dword [ebp - 0x14]
cmp eax, 0xf
lea edx, [ebp - 0x28]
cmova edx, dword [ebp - 0x28]
cmp ecx, 3
jne 0x451665
mov esi, 0x63f504
sub ecx, 4
jb 0x451606
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x45160b
add edx, 4
add esi, 4
sub ecx, 4
jae 0x4515f5
cmp ecx, 0xfffffffc
je 0x45163f
mov al, byte [edx]
cmp al, byte [esi]
jne 0x451638
cmp ecx, 0xfffffffd
je 0x45163f
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x451638
cmp ecx, 0xfffffffe
je 0x45163f
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x451638
cmp ecx, 0xffffffff
je 0x45163f
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x45163f
sbb eax, eax
or eax, 1
jmp 0x451641
xor eax, eax
test eax, eax
jne 0x451665
xorps xmm0, xmm0
movups xmmword [edi], xmm0
push 5
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
push str.Image
jmp 0x451393
xorps xmm0, xmm0
mov ecx, edi
push 4
movups xmmword [edi], xmm0
push str.File
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
call fcn.00454080
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x4516d5
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4513c8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4516fc
jmp 0x4513c8
push 4
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov ecx, edi
push str.File
mov dword [edi + 0x14], 0
call fcn.00454080
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059e4d3
mov esp, ebp
pop ebp
ret
call fcn.005a920f
call fcn.00453660
call fcn.005a920f
int3