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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, ecx
sub esp, 0x51c
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.004bf1c0
test eax, eax
js 0x4bbf23
mov edx, dword [ebp + 8]
mov ebx, eax
lea eax, [eax + 1]
lea edi, [eax + eax]
cmp word [edx + eax*2], 0
jne 0x4bc155
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4c8], 0xffffffff
mov dword [esp], eax
call fcn.004befd0
test al, al
jne 0x4bc033
mov edi, dword [ebp + 8]
mov dword [ebp - 0x50c], 6
mov dword [esp], edi
call fcn.004be930
test al, al
mov ebx, eax
je 0x4bbf6f
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x50c]
cmp word [eax + edx], 0
je 0x4bc620
mov eax, dword [ebp + 8]
movzx eax, word [eax]
cmp ax, 0x5c
sete bl
cmp ax, 0x2f
sete al
or bl, al
je 0x4bc082
mov eax, dword [ebp + 8]
cmp word [eax + 2], 0
mov dword [esp], eax
jne 0x4bc340
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x4bc082
test al, 0x10
je 0x4bc082
mov edx, dword [esi + 0x28]
xor ecx, ecx
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov byte [esi + 0x24], 0
mov byte [esi + 0x25], 0
mov dword [esi + 0x2c], 0
mov word [edx], cx
mov dword [esi + 0x20], eax
mov esi, esi
lea edi, [edi]
mov eax, dword [ebp - 0x4c8]
cmp eax, 0xffffffff
je 0x4bc027
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
sub esp, 4
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x50c], 0xe
lea edi, [eax + 8]
jmp 0x4bbf4d
mov eax, dword [ebp + 8]
mov dword [esp], eax
lea eax, [ebp - 0x4c8]
mov dword [ebp - 0x50c], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x4bc070
test al, 0x10
jne 0x4bc46f
mov eax, dword [ebp - 0x270]
test eax, eax
je 0x4bc082
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x4c8]
cmp eax, 0xffffffff
je 0x4bc0ab
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
sub esp, 4
test eax, eax
je 0x4bc613
mov dword [ebp - 0x4c8], 0xffffffff
lea eax, [ebp - 0x270]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
sub esp, 8
xor ebx, ebx
cmp eax, 0xffffffff
mov dword [ebp - 0x4c8], eax
je 0x4bc027
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x268]
xor ebx, ebx
mov ecx, dword [ebp - 0x254]
mov byte [esi + 0x24], 0
mov byte [esi + 0x25], 0
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x26c]
mov dword [esi + 0xc], edx
mov edx, dword [ebp - 0x260]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x264]
mov dword [esi + 0x14], edx
mov edx, dword [ebp - 0x258]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x25c]
mov dword [esi + 0x1c], edx
mov edx, ecx
mov ecx, dword [ebp - 0x250]
mov dword [esi + 0x18], eax
xor eax, eax
add eax, ecx
lea ecx, [esi + 0x28]
mov dword [esi], eax
lea eax, [ebp - 0x244]
adc edx, ebx
mov dword [esi + 4], edx
mov dword [esp], eax
call fcn.004741d0
sub esp, 4
mov ebx, 1
jmp 0x4bc010
lea eax, [edx + edi - 2]
lea ecx, [ebp - 0x508]
mov dword [esp], eax
call fcn.00473fd0
mov eax, dword [ebp + 8]
sub esp, 4
lea ecx, [ebp - 0x4fc]
mov dword [esp], eax
call fcn.00473fd0
sub esp, 4
cmp ebx, dword [ebp - 0x4f8]
jae 0x4bc199
mov eax, dword [ebp - 0x4fc]
xor edx, edx
mov dword [ebp - 0x4f8], ebx
mov word [eax + edi - 2], dx
mov eax, dword [ebp - 0x504]
cmp eax, 6
ja 0x4bc4f0
lea ecx, [ebp - 0x508]
mov dword [esp], str.:_DATA
call fcn.00474870
sub esp, 4
mov eax, dword [ebp - 0x4fc]
mov dword [esp], eax
call fcn.004befb0
test al, al
je 0x4bc6b0
cmp ebx, 2
je 0x4bc6f5
cmp ebx, 3
mov eax, dword [ebp - 0x4fc]
jne 0x4bc6b6
cmp word [eax + 4], 0x5c
jne 0x4bc6b6
mov eax, dword [esi + 0x28]
xor edx, edx
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov byte [esi + 0x24], 0
mov byte [esi + 0x25], 0
mov dword [esi + 0x2c], 0
mov word [eax], dx
xor eax, eax
mov dword [esi + 0x20], eax
lea eax, [ebp - 0x4fc]
lea ecx, [ebp - 0x4ec]
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x4f0], 0xffffffff
call fcn.00474110
sub esp, 4
lea esi, [esi]
lea ecx, [ebp - 0x4e0]
call fcn.00473f00
mov eax, dword [ebp - 0x4f0]
cmp eax, 0xffffffff
je 0x4bc520
mov edx, dword [0x86bb54]
test edx, edx
je 0x4bc6e0
lea ecx, [ebp - 0x4c8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call edx
sub esp, 8
test eax, eax
jne 0x4bc5e5
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
cmp eax, 0x26
jne 0x4bc2cf
mov dword [esp], 2
call dword [sym.imp.KERNEL32.dll_SetLastError]
sub esp, 4
xor ebx, ebx
mov eax, dword [ebp - 0x4e0]
test eax, eax
je 0x4bc2e3
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x4ec]
test eax, eax
je 0x4bc2f5
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x4f0]
cmp eax, 0xffffffff
je 0x4bc30c
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
sub esp, 4
mov eax, dword [ebp - 0x4fc]
test eax, eax
je 0x4bc31e
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x508]
test eax, eax
je 0x4bc027
mov dword [esp], eax
call fcn.006febd0
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 4
call fcn.004beca0
test eax, eax
je 0x4bc082
mov edi, dword [ebp + 8]
lea edi, [edi + eax*2]
cmp word [edi], 0
je 0x4bc082
mov dword [esp], edi
call fcn.004be890
test eax, eax
jns 0x4bc082
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x270]
mov dword [esp], eax
call fcn.00473fd0
mov eax, dword [ebp - 0x268]
mov edx, dword [ebp - 0x26c]
sub esp, 4
cmp eax, edx
mov dword [ebp - 0x50c], eax
je 0x4bc846
mov eax, dword [ebp - 0x270]
lea ecx, [edx + 1]
mov word [eax + edx*2], 0x5c
mov dword [ebp - 0x510], eax
lea edx, [eax + edx*2 + 2]
xor eax, eax
cmp dword [ebp - 0x50c], ecx
mov word [edx], ax
mov dword [ebp - 0x26c], ecx
je 0x4bc813
mov eax, ecx
mov ecx, 0x2a
mov word [edx], cx
mov edx, dword [ebp - 0x510]
add eax, 1
xor ecx, ecx
mov word [edx + eax*2], cx
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x4c8]
cmp eax, 0xffffffff
je 0x4bc413
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
sub esp, 4
test eax, eax
je 0x4bc048
mov dword [ebp - 0x4c8], 0xffffffff
mov eax, dword [ebp - 0x510]
lea ecx, [ebp - 0x4c8]
mov dword [esp + 4], esi
mov dword [ebp - 0x50c], ecx
mov dword [esp], eax
call fcn.004bba20
sub esp, 8
test al, al
je 0x4bc8cf
mov dword [esp + 4], 0x747f00
mov eax, dword [esi + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_wcscmp
test eax, eax
je 0x4bc8bf
mov eax, dword [ebp + 8]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x4bc874
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov byte [esi + 0x24], 0
mov byte [esi + 0x25], 0
mov dword [esi + 0x20], eax
lea eax, [ebp - 0x4c8]
lea ecx, [esi + 0x28]
mov dword [esp], edi
mov dword [ebp - 0x50c], eax
call fcn.004741d0
mov eax, dword [ebp - 0x270]
sub esp, 4
test eax, eax
je 0x4bc010
mov dword [esp], eax
call fcn.006febd0
jmp 0x4bc010
mov edx, dword [ebp - 0x508]
mov dword [esp + 4], str.:_DATA
lea eax, [edx + eax*2 - 0xc]
mov dword [esp], eax
call fcn.00471cf0
test al, al
je 0x4bc1a8
jmp 0x4bc1bd
mov edi, dword [0x86bb58]
test edi, edi
je 0x4bc6e0
mov ebx, dword [ebp - 0x4ec]
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x270]
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], ebx
call dword [0x86bb58]
sub esp, 0x10
cmp eax, 0xffffffff
mov dword [ebp - 0x4f0], eax
je 0x4bc7f0
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
lea ecx, [ebp - 0x4e0]
mov dword [ebp - 0x4d0], eax
lea eax, [ebp - 0x268]
mov dword [ebp - 0x4cc], edx
mov dword [esp], eax
call fcn.004741d0
mov eax, dword [ebp - 0x508]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4e0]
mov dword [esp], eax
call fcn.00471a10
test al, al
mov ebx, eax
jne 0x4bc7a0
mov eax, dword [ebp - 0x4e0]
test eax, eax
je 0x4bc270
mov dword [esp], eax
call fcn.006febd0
jmp 0x4bc270
mov eax, dword [ebp - 0x4c8]
mov edx, dword [ebp - 0x4c4]
lea ecx, [ebp - 0x4e0]
mov dword [ebp - 0x4d0], eax
lea eax, [ebp - 0x4c0]
mov dword [ebp - 0x4cc], edx
mov dword [esp], eax
call fcn.004741d0
jmp 0x4bc5a5
xor ebx, ebx
jmp 0x4bc010
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x4bc082
test al, 0x10
je 0x4bc082
lea ecx, [esi + 0x28]
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov byte [esi + 0x24], 0
mov byte [esi + 0x25], 0
mov dword [esi + 0x20], eax
mov dword [esp], edi
call fcn.004741d0
sub esp, 4
cmp dword [esi + 0x2c], 2
jbe 0x4bc010
mov eax, dword [esi + 0x28]
mov dword [esi + 0x2c], 2
xor esi, esi
mov word [eax + 4], si
jmp 0x4bc010
mov eax, dword [ebp - 0x4fc]
mov dword [esp], eax
mov ecx, esi
call fcn.004bbef0
sub esp, 4
test al, al
je 0x4bc770
mov eax, dword [esi + 0x20]
and eax, 0xfffffbef
jmp 0x4bc239
mov dword [esp], 0x78
call dword [sym.imp.KERNEL32.dll_SetLastError]
sub esp, 4
jmp 0x4bc2b2
mov eax, dword [esi + 0x28]
xor ecx, ecx
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x20], 0
mov byte [esi + 0x24], 0
mov byte [esi + 0x25], 0
mov dword [esi + 0x2c], 0
mov word [eax], cx
lea eax, [ebp - 0x4fc]
lea ecx, [esi + 0x28]
mov dword [esp], eax
call fcn.00474280
mov eax, dword [esi + 0x20]
sub esp, 4
and eax, 0xfffffbef
jmp 0x4bc239
mov eax, dword [ebp - 0x4fc]
test eax, eax
je 0x4bc782
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [ebp - 0x508]
test eax, eax
je 0x4bbf23
mov dword [esp], eax
call fcn.006febd0
jmp 0x4bbf23
mov eax, dword [ebp - 0x4dc]
cmp eax, 7
jbe 0x4bc7c2
add eax, 0xfffffffa
jae 0x4bc7c2
mov edx, dword [ebp - 0x4e0]
mov dword [ebp - 0x4dc], eax
mov word [edx + eax*2], 0
lea eax, [ebp - 0x4e0]
lea ecx, [esi + 0x28]
mov dword [esp], eax
call fcn.004747a0
mov eax, dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x4cc]
sub esp, 4
mov byte [esi + 0x24], 1
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4bc2d1
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
cmp eax, 0x26
je 0x4bc2b8
cmp dword [ebp - 0x4f0], 0xffffffff
je 0x4bc2b8
jmp 0x4bc579
lea eax, [ebp - 0x4c8]
lea ecx, [ebp - 0x270]
mov dword [ebp - 0x50c], eax
call fcn.004739d0
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x270]
mov ecx, edx
mov dword [ebp - 0x510], eax
lea edx, [eax + edx*2]
jmp 0x4bc3cb
lea eax, [ebp - 0x4c8]
lea ecx, [ebp - 0x270]
mov dword [ebp - 0x50c], eax
call fcn.004739d0
mov eax, dword [ebp - 0x268]
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0x50c], eax
jmp 0x4bc39b
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov byte [esi + 0x24], 0
mov byte [esi + 0x25], 0
mov dword [esi + 0x20], 0x10
jmp 0x4bc4b1
lea ecx, [esi + 0x28]
mov dword [esp], edi
call fcn.004741d0
jmp 0x4bc4c8
mov eax, dword [ebp + 8]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x4bc060