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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x370
mov eax, dword [0x4f0100]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov dword [ebp - 0x2f0], edx
mov esi, ecx
mov ecx, dword [ebp + 0x10]
lea edx, [ebp - 0x14]
push edi
call fcn.0045af30
push 0x1000000
call fcn.0048b49b
add esp, 4
mov dword [ebp - 0x2dc], eax
push 0x4deb74
push esi
call fcn.0048c5b4
add esp, 8
mov dword [ebp - 0x44], 0x65844
mov ebx, eax
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x2c0], ebx
mov dword [ebp - 0x3c], 0x30
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x28], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetACP]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0
call dword [sym.imp.KERNEL32.dll_SetFileApisToANSI]
push 0
push 0
push 0
push 0x30
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.0045b030
xorps xmm0, xmm0
add esp, 0x10
movlpd qword [ebp - 0x2fc], xmm0
mov edi, dword [ebp - 0x2f8]
mov esi, dword [ebp - 0x2fc]
nop dword [eax + eax]
push ebx
push 0x30
lea eax, [ebp - 0x44]
add eax, esi
push 1
push eax
call fcn.00485546
add esp, 0x10
add esi, 0x30
adc edi, 0
test edi, edi
jl 0x45ca70
jg 0x45ca94
cmp esi, 0x30
jb 0x45ca70
push 0
push 0
push 0
push 0x30
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.0045b030
push 0x1000000
call fcn.0048b49b
mov esi, eax
add esp, 0x14
mov dword [ebp - 0x2d4], esi
test esi, esi
je 0x45d4f3
push 0x1000000
push 0
push esi
call fcn.0047d590
add esp, 0xc
push 0x1000000
call fcn.0048b49b
mov edi, eax
add esp, 4
mov dword [ebp - 0x2d8], edi
test edi, edi
je 0x45d4f3
push 0x1000000
push 0
push edi
call fcn.0047d590
add esp, 0xc
push 0x1000000
call fcn.0048b49b
add esp, 4
mov dword [ebp - 0x2c4], eax
test eax, eax
je 0x45d4f3
push 0x1000000
push 0
push eax
call fcn.0047d590
xorps xmm0, xmm0
mov dword [ebp - 0x33c], 0x10
add esp, 0xc
movlpd qword [ebp - 0x2b4], xmm0
mov edx, esi
movlpd qword [ebp - 0x2ac], xmm0
mov ecx, 0x4d7f3c
movlpd qword [ebp - 0x2a4], xmm0
movlpd qword [ebp - 0x29c], xmm0
movlpd qword [ebp - 0x334], xmm0
movlpd qword [ebp - 0x32c], xmm0
movlpd qword [ebp - 0x324], xmm0
movlpd qword [ebp - 0x344], xmm0
mov dword [ebp - 0x338], 0
movlpd qword [ebp - 0x31c], xmm0
movlpd qword [ebp - 0x314], xmm0
mov dword [ebp - 0x30c], 0xffffffff
mov dword [ebp - 0x308], 0xffffffff
call fcn.00458540
movups xmm0, xmmword [ebp - 0x344]
cdq
add dword [ebp - 0x2ac], eax
mov eax, dword [ebp - 0x29c]
adc dword [ebp - 0x2a8], edx
mov dword [ebp - 0x35c], 0xffffffff
mov dword [ebp - 0x358], 0xffffffff
movups xmmword [eax + edi], xmm0
movups xmm0, xmmword [ebp - 0x334]
movups xmmword [eax + edi + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x324]
movups xmmword [eax + edi + 0x20], xmm0
movups xmm0, xmmword [ebp - 0x314]
movups xmmword [eax + edi + 0x30], xmm0
mov esi, dword [ebp - 0x29c]
mov ecx, dword [ebp - 0x298]
xorps xmm0, xmm0
mov eax, dword [ebp + 8]
add esi, 0x40
cdq
adc ecx, 0
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x298], ecx
mov dword [ebp - 0x348], ecx
mov ecx, dword [ebp - 0x2c4]
movlpd qword [ebp - 0x364], xmm0
movups xmm0, xmmword [ebp - 0x364]
mov dword [ebp - 0x29c], esi
mov dword [ebp - 0x34c], esi
movups xmmword [eax + ecx], xmm0
mov dword [ebp - 0x350], edx
movups xmm0, xmmword [ebp - 0x354]
mov dword [ebp - 0x304], esi
movups xmmword [eax + ecx + 0x10], xmm0
add dword [ebp - 0x2a4], 0x20
mov ecx, dword [ebp + 8]
mov eax, ecx
adc dword [ebp - 0x2a0], 0
shl eax, 6
add dword [ebp - 0x29c], eax
adc dword [ebp - 0x298], 0
xor esi, esi
mov dword [ebp - 0x2f4], esi
test ecx, ecx
jle 0x45d1c5
mov dword [ebp - 0x2bc], esi
mov eax, dword [ebp - 0x2f0]
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x45d1ae
mov ecx, dword [ebp - 0x2f0]
mov ecx, dword [ecx + esi*4]
test al, 0x10
je 0x45cd18
mov edx, dword [ebp - 0x2d4]
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x2b4]
push dword [ebp - 0x2dc]
push ebx
push esi
push eax
lea eax, [ebp - 0x364]
push eax
push edi
push dword [ebp - 0x2c4]
call fcn.0045b110
mov eax, dword [ebp - 0x34c]
add esp, 0x24
mov dword [ebp - 0x304], eax
jmp 0x45d1ae
lea eax, [ebp - 0x294]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x2f8], eax
cmp eax, 0xffffffff
je 0x45d1ae
mov ecx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x28c]
mov edx, dword [ebp - 0x2ac]
mov edi, dword [ebp - 0x278]
mov dword [ebp - 0x340], ecx
xor ecx, ecx
add ecx, dword [ebp - 0x290]
mov dword [ebp - 0x334], ecx
mov ecx, dword [ebp - 0x284]
adc eax, 0
mov dword [ebp - 0x330], eax
xor eax, eax
add eax, dword [ebp - 0x288]
mov dword [ebp - 0x32c], eax
adc ecx, 0
mov dword [ebp - 0x344], edx
xor eax, eax
mov dword [ebp - 0x328], ecx
add eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x27c]
adc ecx, 0
mov dword [ebp - 0x324], eax
mov eax, dword [ebp - 0x294]
xor esi, esi
add esi, dword [ebp - 0x274]
mov dword [ebp - 0x320], ecx
mov ecx, dword [ebp - 0x2b0]
adc edi, 0
add edx, dword [ebp - 0x2d4]
mov dword [ebp - 0x33c], eax
mov eax, dword [ebp - 0x2b4]
mov dword [ebp - 0x318], ecx
lea ecx, [ebp - 0x268]
mov dword [ebp - 0x338], 0
mov dword [ebp - 0x31c], eax
mov dword [ebp - 0x2cc], esi
mov dword [ebp - 0x2b8], edi
mov dword [ebp - 0x314], esi
mov dword [ebp - 0x310], edi
mov dword [ebp - 0x30c], 0xffffffff
mov dword [ebp - 0x308], 0xffffffff
call fcn.00458540
cdq
add dword [ebp - 0x2ac], eax
mov eax, esi
adc dword [ebp - 0x2a8], edx
or eax, edi
je 0x45d15d
mov eax, dword [ebp - 0x2f4]
mov ecx, dword [ebp - 0x2f0]
push 0x4deb00
push dword [ecx + eax*4]
call fcn.0048c5b4
push 2
push 0
mov ebx, eax
push 0
push ebx
mov dword [ebp - 0x2d0], ebx
call fcn.0048b1a1
push ebx
call fcn.0048c3cb
add esp, 0x1c
mov dword [ebp - 0x2e0], edx
mov edi, eax
mov dword [ebp - 0x300], edi
push 0
push 0
push 0
push ebx
call fcn.0048b1a1
mov edx, dword [ebp - 0x2b8]
add esp, 0x10
cmp byte [ebp + 0xc], 1
jne 0x45d030
test edx, edx
ja 0x45d030
jb 0x45ceb0
cmp esi, 0xa00000
jae 0x45d030
lea ecx, [ebp - 0x268]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45cec0
sub ecx, edx
sar ecx, 1
cmp ecx, 4
jbe 0x45cf82
lea esi, [ebp - 0x26e]
mov edx, 0x4deb08
lea esi, [esi + ecx*2]
mov ecx, esi
call fcn.00452f20
test eax, eax
je 0x45d02a
mov edx, 0x4deb10
mov ecx, esi
call fcn.00452f20
test eax, eax
je 0x45d02a
mov edx, 0x4deb18
mov ecx, esi
call fcn.00452f20
test eax, eax
je 0x45d02a
mov edx, 0x4deb20
mov ecx, esi
call fcn.00452f20
test eax, eax
je 0x45d02a
mov edx, 0x4deb28
mov ecx, esi
call fcn.00452f20
test eax, eax
je 0x45d02a
mov edx, 0x4deb38
mov ecx, esi
call fcn.00452f20
test eax, eax
je 0x45d02a
mov edx, 0x4deb50
mov ecx, esi
call fcn.00452f20
test eax, eax
je 0x45d02a
lea ecx, [esi - 2]
mov edx, str.jpeg
call fcn.00452f20
test eax, eax
je 0x45d02a
lea eax, [edi + 0x20]
lea eax, [edi + eax*2]
push eax
call fcn.0048b49b
mov edx, dword [ebp - 0x2d0]
add esp, 4
mov ebx, eax
mov ecx, ebx
mov dword [ebp - 0x2e4], ebx
push dword [ebp - 0x2e0]
lea esi, [ebx + edi]
push edi
mov dword [ebp - 0x2e8], esi
call fcn.004531e0
push esi
mov edx, edi
mov ecx, ebx
call fcn.0045c1c0
mov edx, dword [ebp - 0x2e0]
mov esi, eax
mov ecx, esi
mov dword [ebp - 0x2c8], esi
shr ecx, 0x1f
add esp, 0xc
movd xmm0, esi
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ecx*8 + 0x4df010]
mov ecx, edi
movsd qword [ebp - 0x36c], xmm0
call fcn.004a2e80
movsd xmm1, qword [ebp - 0x36c]
divsd xmm1, xmm0
comisd xmm1, xmmword [0x4def88]
jbe 0x45d443
push 0
push 0
push 0
push dword [ebp - 0x2d0]
call fcn.0048b1a1
push ebx
call fcn.0048aa64
add esp, 0x14
mov edx, dword [ebp - 0x2b8]
mov eax, dword [ebp - 0x2e0]
xorps xmm0, xmm0
movlpd qword [ebp - 0x2ec], xmm0
test eax, eax
jb 0x45d4e2
ja 0x45d053
test edi, edi
je 0x45d4e2
mov ecx, dword [ebp - 0x2e8]
mov ebx, dword [ebp - 0x2ec]
mov dword [ebp - 0x2c8], ecx
mov esi, edi
mov edi, eax
sub esi, ebx
sbb edi, ecx
ja 0x45d077
cmp esi, 0x1000000
jbe 0x45d07e
mov esi, 0x1000000
xor edi, edi
add esi, 3
mov eax, ebx
adc edi, 0
and esi, 0xfffffffc
add eax, dword [ebp - 0x2cc]
mov dword [ebp - 0x2e8], eax
adc ecx, edx
and eax, ecx
mov dword [ebp - 0x2e4], ecx
cmp eax, 0xffffffff
jne 0x45d0be
push dword [ebp - 0x2d0]
call fcn.0048c3cb
add esp, 4
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], edx
mov edx, dword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x2dc]
push edi
push esi
call fcn.004531e0
push dword [ebp - 0x2e4]
mov ecx, dword [ebp - 0x2dc]
lea edx, [ebp - 0x14]
push dword [ebp - 0x2e8]
push edi
push esi
call fcn.0045b030
mov edx, dword [ebp - 0x2c0]
mov ecx, dword [ebp - 0x2dc]
push edi
push esi
call fcn.00453160
mov ecx, dword [ebp - 0x2c8]
add esp, 0x20
mov eax, dword [ebp - 0x2e0]
add ebx, esi
mov edx, dword [ebp - 0x2b8]
adc ecx, edi
mov edi, dword [ebp - 0x300]
mov dword [ebp - 0x2c8], ecx
cmp ecx, eax
jb 0x45d065
ja 0x45d137
cmp ebx, edi
jb 0x45d065
mov esi, dword [ebp - 0x2c8]
push dword [ebp - 0x2d0]
call fcn.00483fbe
add esp, 4
add dword [ebp - 0x2b4], ebx
mov ebx, dword [ebp - 0x2c0]
adc dword [ebp - 0x2b0], esi
mov eax, dword [ebp - 0x2bc]
add eax, dword [ebp - 0x304]
mov edi, dword [ebp - 0x2d8]
movups xmm0, xmmword [ebp - 0x344]
add eax, edi
push dword [ebp - 0x2f8]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x334]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x324]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0x314]
movups xmmword [eax + 0x30], xmm0
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [ebp - 0x2f4]
add dword [ebp - 0x2bc], 0x40
inc esi
mov dword [ebp - 0x2f4], esi
cmp esi, dword [ebp + 8]
jl 0x45ccb0
mov esi, dword [ebp - 0x2a8]
lea edx, [ebp - 0x14]
mov edi, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2d4]
push 0
push 0
push esi
push edi
call fcn.0045b030
mov ecx, dword [ebp - 0x2d4]
mov edx, ebx
push esi
push edi
call fcn.00453160
mov ecx, dword [ebp - 0x2d4]
lea edx, [ebp - 0x14]
push 0
push 0
push esi
push edi
call fcn.0045b030
mov eax, dword [ebp - 0x298]
add esp, 0x28
mov esi, dword [ebp - 0x2ac]
mov edi, dword [ebp - 0x2a8]
mov ebx, dword [ebp - 0x29c]
mov dword [ebp - 0x2bc], eax
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x45d244
push dword [ebp - 0x2c0]
call fcn.0048c3cb
add esp, 4
mov esi, eax
mov edi, edx
mov ecx, dword [ebp - 0x2d8]
lea edx, [ebp - 0x14]
push edi
push esi
push dword [ebp - 0x2bc]
push ebx
call fcn.0045b030
push dword [ebp - 0x2bc]
mov edx, dword [ebp - 0x2c0]
mov ecx, dword [ebp - 0x2d8]
push ebx
call fcn.00453160
mov ecx, dword [ebp - 0x2d8]
lea edx, [ebp - 0x14]
push edi
push esi
push dword [ebp - 0x2bc]
push ebx
call fcn.0045b030
mov esi, dword [ebp - 0x29c]
add esp, 0x28
add esi, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2a0]
mov edi, dword [ebp - 0x298]
adc edi, dword [ebp - 0x2a8]
mov ebx, dword [ebp - 0x2a4]
mov dword [ebp - 0x2bc], eax
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x45d2d2
push dword [ebp - 0x2c0]
call fcn.0048c3cb
add esp, 4
mov esi, eax
mov edi, edx
mov ecx, dword [ebp - 0x2c4]
lea edx, [ebp - 0x14]
push edi
push esi
push dword [ebp - 0x2bc]
push ebx
call fcn.0045b030
push dword [ebp - 0x2bc]
mov edx, dword [ebp - 0x2c0]
mov ecx, dword [ebp - 0x2c4]
push ebx
call fcn.00453160
mov ecx, dword [ebp - 0x2c4]
lea edx, [ebp - 0x14]
push edi
push esi
push dword [ebp - 0x2bc]
push ebx
call fcn.0045b030
mov edx, dword [ebp - 0x2ac]
mov esi, dword [ebp - 0x29c]
mov ecx, dword [ebp - 0x2b4]
mov ebx, dword [ebp - 0x2c0]
push 0
lea eax, [edx + esi]
mov dword [ebp - 0x44], 0x65844
add eax, dword [ebp - 0x2a4]
add ecx, 0x30
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x2b0]
adc eax, 0
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x2a8]
add esi, edx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x298]
push 0
adc eax, ecx
mov dword [ebp - 0x3c], 0x30
push 0
push ebx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0048b1a1
push 0
push 0
push 0
push 0x30
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.0045b030
xorps xmm0, xmm0
add esp, 0x48
movlpd qword [ebp - 0x2fc], xmm0
mov edi, dword [ebp - 0x2f8]
mov esi, dword [ebp - 0x2fc]
push ebx
push 0x30
lea eax, [ebp - 0x44]
add eax, esi
push 1
push eax
call fcn.00485546
add esp, 0x10
add esi, 0x30
adc edi, 0
test edi, edi
jl 0x45d3b8
jg 0x45d3dc
cmp esi, 0x30
jb 0x45d3b8
push 0
push 0
push 0
push 0x30
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0x44]
call fcn.0045b030
push ebx
call fcn.00483fbe
add esp, 0x14
push dword [ebp - 0x2d4]
call fcn.0048aa64
add esp, 4
push dword [ebp - 0x2d8]
call fcn.0048aa64
add esp, 4
push dword [ebp - 0x2c4]
call fcn.0048aa64
add esp, 4
push dword [ebp - 0x2dc]
call fcn.0048aa64
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0047b4e2
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x2cc]
lea ebx, [esi + 3]
mov ecx, dword [ebp - 0x2b8]
and ebx, 0xfffffffc
and eax, ecx
xor esi, esi
cmp eax, 0xffffffff
jne 0x45d47c
push dword [ebp - 0x2c0]
call fcn.0048c3cb
mov ecx, edx
mov dword [ebp - 0x2cc], eax
add esp, 4
mov dword [ebp - 0x2b8], ecx
jmp 0x45d482
mov eax, dword [ebp - 0x2cc]
mov edi, dword [ebp - 0x2e8]
lea edx, [ebp - 0x14]
push ecx
push eax
push esi
push ebx
mov ecx, edi
call fcn.0045b030
mov edx, dword [ebp - 0x2c0]
mov ecx, edi
push esi
push ebx
call fcn.00453160
push dword [ebp - 0x2b8]
lea edx, [ebp - 0x14]
mov ecx, edi
push dword [ebp - 0x2cc]
push esi
push ebx
call fcn.0045b030
push dword [ebp - 0x2e4]
call fcn.0048aa64
mov eax, dword [ebp - 0x2c8]
add esp, 0x2c
mov dword [ebp - 0x30c], eax
mov dword [ebp - 0x308], esi
jmp 0x45d13d
mov esi, dword [ebp - 0x2e8]
mov ebx, dword [ebp - 0x2ec]
jmp 0x45d13d
mov ecx, dword [ebp - 8]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047b4e2
mov esp, ebp
pop ebp
ret