Function at 0x4a27c0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4f8991
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x529748]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
push edi
mov eax, dword [0x529748]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], 0
cmp byte [ebx + 8], 0
jne 0x4a288a
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 8]
cmp eax, 4
cmove eax, eax
dec eax
je 0x4a282a
dec eax
je 0x4a2822
lea eax, [ecx + 4]
jmp 0x4a2830
mov eax, dword [ecx + 0x24]
add eax, 0x20
jmp 0x4a2830
mov eax, dword [ecx + 0x24]
add eax, 0x1c
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4a288a
mov edx, 0x513a44
lea ecx, [esp + 0x1c]
call fcn.004a4780
mov dword [esp + 0x58], 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
jne 0x4a2865
push str.invalid_vector_T__subscript
call fcn.004bc548
push 4
push ebx
push ecx
mov ecx, dword [ebx + 0x10]
call fcn.00493b30
mov dword [esp + 0x58], 0xffffffff
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a288a
push eax
call fcn.004191e0
add esp, 4
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a28a6
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x40], eax
push ecx
lea eax, [esp + 0x44]
mov dword [esp + 0x5c], 1
push eax
mov ecx, ebx
call fcn.004a1460
mov edi, dword [esp + 0x40]
or ecx, 0xffffffff
test al, al
jne 0x4a28db
xor bl, bl
jmp 0x4a2a6c
call fcn.00415c00
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a28f7
push 0x80004005
call fcn.004162a0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x44], eax
lea eax, [esp + 0x44]
mov byte [esp + 0x58], 2
push eax
push ebx
push 0x50cffc
mov ecx, ebx
call fcn.004a1980
mov esi, dword [esp + 0x44]
test al, al
jne 0x4a292b
xor bl, bl
jmp 0x4a2a4a
push esi
lea ecx, [esp + 0x44]
call fcn.00499570
test eax, eax
sete al
mov byte [esp + 0x17], al
test al, al
jne 0x4a29de
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x28], esp
push ebx
call fcn.0040ac00
push ecx
mov byte [esp + 0x6c], 3
lea ecx, [esi - 0x10]
mov dword [esp + 0x48], esp
mov ebx, esp
call fcn.0049ca30
add eax, 0x10
mov dword [ebx], eax
push ecx
mov byte [esp + 0x70], 4
lea ecx, [edi - 0x10]
mov dword [esp + 0x50], esp
mov ebx, esp
call fcn.0049ca30
add eax, 0x10
mov dword [ebx], eax
mov edx, str.NzMgNiM1IT01P3Y_NzQi
mov byte [esp + 0x70], 5
lea ecx, [esp + 0x34]
call fcn.004a4990
mov byte [esp + 0x70], 6
mov edx, dword [eax]
mov eax, dword [eax + 4]
sub eax, edx
sar eax, 1
jne 0x4a29b4
push str.invalid_vector_T__subscript
call fcn.004bc548
push ecx
mov ecx, esp
push edx
call fcn.0048e020
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
mov byte [esp + 0x74], 7
call fcn.004a0330
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a29de
push eax
call fcn.004191e0
add esp, 4
mov eax, dword [esp + 0x24]
xorps xmm0, xmm0
and eax, 0xffffff01
mov dword [esp + 0x28], 0
or eax, 1
movlpd qword [esp + 0x1c], xmm0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x58], 8
push eax
mov ecx, ebx
mov dword [esp + 0x1c], 1
call fcn.0040afd0
test al, al
jne 0x4a2a37
cmp byte [esp + 0x17], al
je 0x4a2a37
push ebx
push 0x50cffc
mov ecx, ebx
call fcn.004a2210
test al, al
je 0x4a2a37
mov bl, 1
jmp 0x4a2a39
xor bl, bl
lea ecx, [esp + 0x1c]
mov dword [esp + 0x58], 2
call fcn.0040ad50
add esi, 0xfffffff0
mov byte [esp + 0x58], 1
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a2a69
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
or ecx, 0xffffffff
add edi, 0xfffffff0
mov dword [esp + 0x58], 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a2a8b
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, bl
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.004bd963
mov esp, ebp
pop ebp
ret