Function at 0x4eed23
Capabilities:
Check if file exists

Disassembly:
push 0x48
mov eax, 0x526491
call fcn.005097a0
mov esi, ecx
mov edi, dword [ebp + 8]
push edi
call fcn.004ef32e
mov ebx, eax
pop ecx
test ebx, ebx
js 0x4eef35
lea eax, [edi + ebx*2]
cmp word [eax + 2], 0
je 0x4eef35
push eax
lea ecx, [ebp - 0x2c]
call fcn.004b1120
and dword [ebp - 4], 0
push edi
lea ecx, [ebp - 0x20]
call fcn.004b1120
mov byte [ebp - 4], 1
cmp ebx, dword [ebp - 0x1c]
jae 0x4eed7e
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov dword [ebp - 0x1c], ebx
mov word [ecx + ebx*2], ax
mov eax, dword [ebp - 0x28]
cmp eax, 6
jbe 0x4eed9e
mov ecx, dword [ebp - 0x2c]
lea eax, [ecx + eax*2 - 0xc]
push 0x5327e4
push eax
call fcn.004b0afa
pop ecx
pop ecx
test al, al
jne 0x4eedab
push str.:_DATA
lea ecx, [ebp - 0x2c]
call fcn.004b1274
push dword [ebp - 0x20]
call fcn.004ef2c2
test al, al
mov eax, dword [ebp - 0x20]
pop ecx
je 0x4eedf1
cmp ebx, 2
je 0x4eedcc
cmp ebx, 3
jne 0x4eedf1
cmp word [eax + 4], 0x5c
jne 0x4eedf1
mov ecx, esi
call fcn.004eecd4
lea ecx, [esi + 0x28]
and dword [ecx + 4], 0
mov eax, dword [ecx]
xor edx, edx
mov word [eax], dx
cmp ebx, 2
jne 0x4eee01
lea eax, [ebp - 0x20]
push eax
call fcn.004b11ed
jmp 0x4eee01
push eax
mov ecx, esi
call fcn.004eed23
test al, al
je 0x4eef23
and dword [esi + 0x20], 0xfffffbef
and dword [esi], 0
and dword [esi + 4], 0
or dword [ebp - 0x3c], 0xffffffff
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 2
call fcn.004b1159
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 3
call fcn.004b10fc
jmp 0x4eee61
cmp byte [ebp + 0xb], 0
je 0x4eeeaf
push dword [ebp - 0x2c]
push dword [ebp - 0x54]
call fcn.004b09fc
pop ecx
pop ecx
test al, al
jne 0x4eeee9
push dword [ebp - 0x54]
mov byte [ebp - 4], 3
call fcn.00506929
pop ecx
lea ecx, [ebp - 0x54]
call fcn.004b10fc
lea eax, [ebp + 0xb]
push eax
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 4
call fcn.004eec96
test al, al
jne 0x4eee31
push dword [ebp - 0x54]
call fcn.00506929
push dword [ebp - 0x38]
call fcn.00506929
pop ecx
pop ecx
lea ecx, [ebp - 0x3c]
call fcn.004eea5e
push dword [ebp - 0x20]
call fcn.00506929
push dword [ebp - 0x2c]
call fcn.00506929
pop ecx
pop ecx
xor al, al
call fcn.00509878
ret 4
push 2
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor bl, bl
push dword [ebp - 0x54]
call fcn.00506929
push dword [ebp - 0x38]
call fcn.00506929
pop ecx
pop ecx
lea ecx, [ebp - 0x3c]
call fcn.004eea5e
push dword [ebp - 0x20]
call fcn.00506929
push dword [ebp - 0x2c]
call fcn.00506929
pop ecx
pop ecx
mov al, bl
jmp 0x4eeea7
mov ecx, dword [ebp - 0x50]
cmp ecx, 7
jbe 0x4eef04
lea eax, [ecx - 6]
cmp eax, ecx
jae 0x4eef04
mov edx, dword [ebp - 0x54]
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov word [edx + eax*2], cx
lea eax, [ebp - 0x54]
lea ecx, [esi + 0x28]
push eax
call fcn.004b12b7
mov eax, dword [ebp - 0x44]
mov dword [esi], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 4], eax
mov byte [esi + 0x24], 1
mov bl, 1
jmp 0x4eeeb9
push dword [ebp - 0x20]
call fcn.00506929
push dword [ebp - 0x2c]
call fcn.00506929
pop ecx
pop ecx
or dword [ebp + 8], 0xffffffff
push esi
push edi
lea ecx, [ebp + 8]
mov dword [ebp - 4], 5
call fcn.004eea7e
test al, al
je 0x4eef5d
lea ecx, [ebp + 8]
call fcn.004eea5e
mov al, 1
jmp 0x4eeea7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14], eax
cmp eax, 2
je 0x4eef85
cmp eax, 0x35
je 0x4eef85
cmp eax, 0x43
je 0x4eef85
cmp eax, 0x7b
je 0x4eef85
cmp eax, 0xa1
jne 0x4ef0ff
push edi
xor ebx, ebx
call fcn.004ef2ef
pop ecx
test al, al
je 0x4eef95
push 4
pop ebx
movzx eax, word [edi]
cmp eax, 0x5c
je 0x4eefa2
cmp eax, 0x2f
jne 0x4eefdf
cmp word [edi + 2], 0
jne 0x4eefdf
push edi
call fcn.004eecf5
mov edx, eax
pop ecx
cmp edx, 0xffffffff
je 0x4ef0ff
test dl, 0x10
je 0x4ef0ff
mov ecx, esi
call fcn.004eecd4
and dword [esi + 0x2c], 0
mov eax, dword [esi + 0x28]
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 0x20], edx
jmp 0x4eef4e
lea eax, [edi + ebx*2]
push eax
mov dword [ebp - 0x10], eax
call fcn.004ef1ab
pop ecx
test al, al
je 0x4ef045
cmp word [edi + ebx*2 + 6], 0
jne 0x4ef045
push edi
call fcn.004eecf5
mov edx, eax
pop ecx
cmp edx, 0xffffffff
je 0x4ef0ff
test dl, 0x10
je 0x4ef0ff
mov ecx, esi
call fcn.004eecd4
push dword [ebp - 0x10]
lea ecx, [esi + 0x28]
mov dword [esi + 0x20], edx
call fcn.004b1187
push 2
pop eax
cmp dword [esi + 0x2c], eax
jbe 0x4eef4e
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x28]
xor ecx, ecx
mov word [eax + 4], cx
jmp 0x4eef4e
push edi
call fcn.004ef260
pop ecx
test eax, eax
je 0x4ef0ff
lea eax, [edi + eax*2]
cmp word [eax], 0
mov dword [ebp - 0x10], eax
je 0x4ef0ff
push eax
call fcn.004ef17c
pop ecx
test eax, eax
jns 0x4ef0ff
push edi
lea ecx, [ebp - 0x38]
call fcn.004b1120
push 0x5c
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 6
call fcn.004ad961
push 0x2a
lea ecx, [ebp - 0x38]
call fcn.004ad961
push esi
push dword [ebp - 0x38]
lea ecx, [ebp + 8]
xor bl, bl
call fcn.004eea7e
test al, al
je 0x4ef0d6
lea ebx, [esi + 0x28]
mov eax, dword [ebx]
push 0x537b68
push eax
call fcn.0050b9bb
pop ecx
pop ecx
test eax, eax
jne 0x4ef0d4
push dword [ebp - 0x10]
mov ecx, ebx
call fcn.004b1187
push dword [ebp - 0x38]
call fcn.00506929
pop ecx
jmp 0x4eef4e
mov bl, 1
push edi
call fcn.004eecf5
pop ecx
mov edx, eax
test bl, bl
jne 0x4ef103
cmp edx, 0xffffffff
je 0x4ef0ed
test dl, 0x10
jne 0x4ef103
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp - 0x38]
call fcn.00506929
pop ecx
xor bl, bl
jmp 0x4ef131
mov ecx, esi
call fcn.004eecd4
cmp edx, 0xffffffff
je 0x4ef114
mov dword [esi + 0x20], edx
jmp 0x4ef11b
mov dword [esi + 0x20], 0x10
push dword [ebp - 0x10]
lea ecx, [esi + 0x28]
call fcn.004b1187
push dword [ebp - 0x38]
call fcn.00506929
pop ecx
mov bl, 1
lea ecx, [ebp + 8]
call fcn.004eea5e
jmp 0x4eeee5