Function at 0x4ba4e0
Capabilities:
Check if file exists
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa4
mov eax, dword [0x541f38]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0x9c]
sub eax, dword [ebp + 0x98]
xor ebx, ebx
sar eax, 2
push esi
push edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], ebx
test eax, eax
jbe 0x4b9935
mov esi, dword [ebp + 0x98]
cmp esi, dword [ebp + 0x9c]
jbe 0x4b952e
call fcn.004d8cf3
mov edi, dword [ebp + 0x8c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov esi, dword [ebp + 0x9c]
cmp dword [ebp + 0x98], esi
jbe 0x4b9553
call fcn.004d8cf3
mov eax, dword [ebp + 0x8c]
cmp edi, ebx
je 0x4b9561
cmp edi, eax
je 0x4b9566
call fcn.004d8cf3
cmp dword [esp + 0x1c], esi
je 0x4b9935
mov edx, dword [0x54ffc8]
mov eax, dword [edx + 0xc]
mov ecx, 0x54ffc8
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
cmp edi, ebx
jne 0x4b9821
call fcn.004d8cf3
xor eax, eax
mov esi, dword [esp + 0x1c]
cmp esi, dword [eax + 0x10]
jb 0x4b9614
call fcn.004d8cf3
mov eax, dword [esi]
mov edx, dword [eax + 4]
cmp edx, ebx
jne 0x4b9622
mov edx, 0x527f5c
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4b9627
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.0043a260
mov eax, 0x30
mov dword [esp + 0x50], eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x4b9664
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x54], ebx
mov esi, dword [esp + 0x10]
cmp esi, ebx
je 0x4b9677
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 0x54], eax
cmp edi, ebx
jne 0x4b9828
call fcn.004d8cf3
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x10]
jb 0x4b9694
call fcn.004d8cf3
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x7c], eax
cmp eax, ebx
jne 0x4b9902
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4b9902
xor eax, eax
lea ecx, [esp + 0x2c]
push ecx
push ebx
push esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
mov eax, dword [esp + 0x48]
cmp eax, ebx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x28], ebx
jl 0x4b9902
jg 0x4b970d
cmp ecx, 0x6400000
jbe 0x4b9902
mov esi, dword [ebp + 0x80]
cmp esi, dword [ebp + 0x84]
jbe 0x4b9720
call fcn.004d8cf3
mov edi, dword [ebp + 0x74]
mov ebp, esi
jmp 0x4b9730
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x84]
cmp dword [eax + 0x80], esi
jbe 0x4b974b
call fcn.004d8cf3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x74]
cmp edi, ebx
je 0x4b9756
cmp edi, eax
je 0x4b975b
call fcn.004d8cf3
cmp ebp, esi
je 0x4b98f6
mov edx, dword [0x54ffc8]
mov eax, dword [edx + 0xc]
mov ecx, 0x54ffc8
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
cmp edi, ebx
jne 0x4b982f
call fcn.004d8cf3
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4b9793
call fcn.004d8cf3
mov eax, dword [ebp]
mov eax, dword [eax + 4]
mov edx, eax
cmp eax, ebx
jne 0x4b97a4
mov edx, 0x527f5c
mov eax, edx
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4b97b0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x2c]
call fcn.0043a260
mov esi, dword [esp + 0x24]
cmp esi, ebx
je 0x4b992b
mov ecx, dword [esp + 0x10]
push esi
push ecx
call fcn.004d7575
add esp, 8
test eax, eax
lea eax, [esi - 0x10]
je 0x4b983a
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4b9804
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
jne 0x4b9836
call fcn.004d8cf3
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4b9819
call fcn.004d8cf3
add ebp, 4
jmp 0x4b9730
mov eax, dword [edi]
jmp 0x4b9606
mov eax, dword [edi]
jmp 0x4b9686
mov eax, dword [edi]
jmp 0x4b9789
mov eax, dword [edi]
jmp 0x4b980f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b9853
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x84]
cmp eax, ebx
je 0x4b9878
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x84], ebx
mov eax, dword [esp + 0xa8]
cmp eax, ebx
je 0x4b9891
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0xa8], ebx
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x4b98a4
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x78]
cmp eax, ebx
je 0x4b98b7
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x78], ebx
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b98d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, ebx
jne 0x4b9927
call fcn.004d8cf3
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x10]
jb 0x4b98ec
call fcn.004d8cf3
add dword [esp + 0x1c], 4
jmp 0x4b9540
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x54]
push edx
mov ecx, ebp
call fcn.004d0020
test eax, eax
je 0x4b985f
inc dword [esp + 0x20]
jmp 0x4b985f
mov eax, dword [edi]
jmp 0x4b98de
push 0x80004005
call fcn.00438530
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004d7eb0
add esp, 0xa4
ret
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebx, dword [edi + 0x84]
cmp dword [edi + 0x80], ebx
lea esi, [edi + 0x74]
jbe 0x4ba4ff
call fcn.004d8cf3
mov ebp, dword [esi + 0xc]
mov eax, dword [esi]
mov dword [esp + 0x10], eax
cmp ebp, dword [esi + 0x10]
jbe 0x4ba512
call fcn.004d8cf3
mov ecx, dword [esp + 0x10]
mov eax, dword [esi]
push ebx
push ecx
push ebp
push eax
lea edx, [esp + 0x20]
push edx
mov ecx, esi
call fcn.004b8fe0
push esi
mov ecx, edi
call fcn.004d3780
push 0x208
lea esi, [edi + 0xa8]
push 0
push esi
call fcn.004d86e0
mov eax, dword [edi + 0xa4]
push eax
push 0x104
push esi
call fcn.004db80a
add esp, 0x18
mov ecx, edi
call fcn.004ba2a0
test eax, eax
je 0x4ba571
mov ecx, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
jmp 0x4b94e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret