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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x436ea3
mov eax, dword fs:[0]
push eax
sub esp, 0x80
push ebx
push esi
push edi
mov eax, dword [0x47700c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, edx
mov ebx, ecx
test ebx, ebx
jne 0x4064be
test esi, esi
je 0x406815
xor edi, edi
mov byte [ebp - 0x64], 0
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 4], edi
mov eax, dword [0x47701c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
call fcn.00401a20
push 0xffffffffffffffff
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [0x47701c], edi
call fcn.00401a20
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [ebp - 4], 1
test ebx, ebx
jne 0x406518
test esi, esi
je 0x406834
jmp 0x40651c
test esi, esi
je 0x40653c
cmp byte [esi], 0
je 0x40653c
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x406531
xor eax, eax
jmp 0x406534
and eax, 0x10
test eax, eax
jne 0x40687a
test ebx, ebx
je 0x406544
mov esi, ebx
jmp 0x406552
mov edx, 0x4579d0
mov ecx, esi
call fcn.00401f50
mov esi, eax
push 0
push 0
push 0
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__fseeki64]
add esp, 0x10
mov byte [ebp - 0x11], 0
lea eax, [ebp - 0x11]
lea ecx, [ebp - 0x74]
push eax
push 1
push 1
push 1
push 0x200
call fcn.00408990
mov ecx, dword [ebp - 0x60]
mov edx, 0x200
push esi
call fcn.00421250
add esp, 4
test ebx, ebx
jne 0x406599
mov ecx, esi
call fcn.004020a0
mov esi, dword [ebp - 0x60]
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
push 4
push str.OFF_n
push esi
call ebx
add esp, 0xc
test eax, eax
jne 0x4065c0
mov esi, dword [ebp - 0x18]
mov edi, 0x4579f4
jmp 0x4067c5
push 9
push str.INRIMAGE
push dword [ebp - 0x60]
call ebx
add esp, 0xc
test eax, eax
jne 0x4065e0
mov esi, dword [ebp - 0x18]
mov edi, 0x4585bc
jmp 0x4067c5
push 7
push str.PANDORE
push dword [ebp - 0x60]
call ebx
add esp, 0xc
test eax, eax
jne 0x406600
mov esi, dword [ebp - 0x18]
mov edi, 0x4585b0
jmp 0x4067c5
mov eax, dword [ebp - 0x60]
push 4
sub eax, 0xffffff80
push str.DICM
push eax
call ebx
add esp, 0xc
test eax, eax
jne 0x406624
mov esi, dword [ebp - 0x18]
mov edi, 0x4585c0
jmp 0x4067c5
mov cl, byte [esi]
cmp cl, 0xff
jne 0x406643
cmp byte [esi + 1], 0xd8
jne 0x406643
cmp byte [esi + 2], cl
jne 0x406643
mov esi, dword [ebp - 0x18]
mov edi, 0x4585ac
jmp 0x4067c5
mov eax, dword [ebp - 0x60]
mov dl, byte [eax]
cmp dl, 0x42
jne 0x406660
cmp byte [eax + 1], 0x4d
jne 0x406660
mov esi, dword [ebp - 0x18]
mov edi, 0x4585a4
jmp 0x4067c5
cmp dl, 0x47
jne 0x406695
cmp byte [eax + 1], 0x49
jne 0x406695
cmp byte [eax + 2], 0x46
jne 0x406695
cmp byte [eax + 3], 0x38
jne 0x406695
cmp byte [eax + 5], 0x61
jne 0x406695
mov al, byte [eax + 4]
cmp al, 0x37
je 0x406688
cmp al, 0x39
jne 0x406695
mov esi, dword [ebp - 0x18]
mov edi, 0x4585a8
jmp 0x4067c5
cmp cl, 0x89
jne 0x4066d1
cmp byte [esi + 1], 0x50
jne 0x4066db
cmp byte [esi + 2], 0x4e
jne 0x4066db
cmp byte [esi + 3], 0x47
jne 0x4066db
cmp byte [esi + 4], 0xd
jne 0x4066db
cmp byte [esi + 5], 0xa
jne 0x4066db
cmp byte [esi + 6], 0x1a
jne 0x4066db
cmp byte [esi + 7], 0xa
jne 0x4066db
mov esi, dword [ebp - 0x18]
mov edi, 0x4585b4
jmp 0x4067c5
cmp cl, 0x49
jne 0x40674e
cmp byte [esi + 1], cl
je 0x406758
push 1
push 1
push 1
push 1
lea ecx, [ebp - 0x8c]
call fcn.00408260
mov eax, dword [ebp - 0x78]
mov byte [eax], 0xa
sub esp, 8
mov byte [ebp - 4], 3
lea eax, [ebp - 0x8c]
lea ecx, [ebp - 0x74]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041f2d0
cmp byte [ebp - 0x7c], 0
jne 0x40671f
push dword [ebp - 0x78]
call fcn.0043575c
add esp, 4
mov esi, dword [ebp - 0x2c]
xor ecx, ecx
test esi, esi
jle 0x4067ac
mov ebx, dword [ebp - 0x24]
lea edx, [ebx + 0x14]
mov eax, dword [edx]
cmp byte [eax], 0x23
jne 0x406762
inc ecx
add edx, 0x18
cmp ecx, esi
jl 0x406732
lea ecx, [ebp - 0x2c]
call fcn.00407ac0
mov esi, dword [ebp - 0x18]
jmp 0x4067c5
cmp cl, 0x4d
jne 0x4066db
cmp byte [esi + 1], cl
jne 0x4066db
mov esi, dword [ebp - 0x18]
mov edi, 0x4585b8
jmp 0x4067c5
lea eax, [ecx + ecx*2]
cmp dword [ebx + eax*8 + 4], 2
jne 0x4067aa
mov eax, dword [ebx + eax*8 + 0x14]
cmp byte [eax], 0x50
jne 0x4067aa
mov al, byte [eax + 1]
cmp al, 0x66
je 0x406798
cmp al, 0x46
je 0x406798
sub al, 0x31
cmp al, 8
ja 0x4067aa
lea ecx, [ebp - 0x2c]
mov edi, 0x45859c
call fcn.00407ac0
mov esi, dword [ebp - 0x18]
jmp 0x4067c5
lea ecx, [ebp - 0x2c]
mov edi, 0x4585a0
call fcn.00407ac0
mov esi, dword [ebp - 0x18]
jmp 0x4067c5
xor edi, edi
lea ecx, [ebp - 0x2c]
call fcn.00407ac0
mov esi, dword [ebp - 0x18]
jmp 0x4067c5
call fcn.00401a20
push 0xffffffffffffffff
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, 4
cmp esi, eax
cmovb eax, esi
mov dword [0x47701c], eax
call fcn.00401a20
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp byte [ebp - 0x64], 0
jne 0x406801
push dword [ebp - 0x60]
call fcn.0043575c
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x3c]
push str.cimg::ftype__:_Specified_filename_is__null_.
push eax
call fcn.00401450
add esp, 8
lea eax, [ebp - 0x3c]
push 0x475714
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call fcn.00401930
cmp byte [ebp - 0x64], 0
mov ecx, str.non_
push eax
mov eax, 0x4393e2
cmove eax, ecx
push eax
push dword [ebp - 0x60]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push str._instance__u__u__u__u__p__sshared___CImg__s_::load_raw__:_Specified_filename_is__null_.
push eax
call fcn.00401450
add esp, 0x24
lea eax, [ebp - 0x4c]
push 0x475714
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push esi
call fcn.00401930
cmp byte [ebp - 0x64], 0
mov ecx, str.non_
push eax
mov eax, 0x4393e2
cmove eax, ecx
push eax
push dword [ebp - 0x60]
lea eax, [ebp - 0x5c]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push str._instance__u__u__u__u__p__sshared___CImg__s_::load_raw__:_Specified_filename__s_is_a_directory.
push eax
call fcn.00401450
add esp, 0x28
lea eax, [ebp - 0x5c]
push 0x475714
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3