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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x50
mov ebx, dword [ebp + 8]
mov eax, dword [0x5c3648]
xor eax, ebp
mov dword [esp + 0x48], eax
mov edi, 0x1126
push ebx
call fcn.0041c7b0
add esp, 4
test al, al
jne 0x41ccfc
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x30]
movdqa xmmword [esi], xmm0
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], 0
mov ecx, ebx
mov edx, esi
call fcn.0041cd11
mov bh, al
mov ecx, esi
call fcn.0041cdd7
mov bl, al
mov ecx, esi
mov edx, esi
call fcn.0041ce0c
test bh, bh
jne 0x41cac5
test bl, bl
jne 0x41cac5
mov edi, 0x7b
test al, al
je 0x41cce1
mov byte [esp + 7], bl
test bl, bl
jne 0x41cb8e
lea edi, [esp + 8]
mov eax, 7
mov dword [edi + 0x14], eax
xor eax, eax
mov dword [edi + 0x10], eax
mov word [edi], ax
mov ecx, edi
push 4
push 0x564100
call fcn.0040c1de
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x44], 7
jbe 0x41cb02
mov esi, dword [esp + 0x30]
mov ecx, edi
push eax
push esi
call fcn.0040c254
mov esi, dword [eax]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
movsd xmm0, qword [eax + 4]
movsd qword [esp + 0x20], xmm0
mov edi, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
xor ecx, ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [esp + 0x34]
mov eax, dword [eax + 0x10]
cmp eax, 8
jb 0x41cb52
add eax, eax
add eax, 2
push eax
push dword [esp + 0x34]
call fcn.004dfcf2
add esp, 8
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x34]
mov dword [ecx + 8], eax
movq xmm0, qword [esp + 0x20]
movq qword [ecx], xmm0
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x1c]
cmp eax, 8
jb 0x41cb8e
add eax, eax
add eax, 2
push eax
push dword [esp + 0xc]
call fcn.004dfcf2
add esp, 8
mov bl, 1
xor edx, edx
dec edx
lea esi, [esp + 0x30]
xor edi, edi
mov dword [esp + 0x18], edi
mov eax, 7
mov dword [esp + 0x1c], eax
mov word [esp + 8], 0
lea ecx, [esp + 8]
push edx
push edi
push esi
call fcn.00414dd6
mov eax, dword [esp + 0x44]
cmp eax, 8
jb 0x41cbd4
add eax, eax
add eax, 2
push eax
push dword [esp + 0x34]
call fcn.004dfcf2
add esp, 8
movsd xmm0, qword [esp + 0x18]
movsd qword [esp + 0x40], xmm0
movdqu xmm0, xmmword [esp + 8]
movdqa xmmword [esp + 0x30], xmm0
cmp dword [esp + 0x44], 7
mov eax, esi
jbe 0x41cbf9
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41cc0d
bt eax, 0xa
jae 0x41cc20
jmp 0x41cc7f
call dword [sym.imp.kernel32.dll_GetLastError]
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x41cc20
cmp eax, 0x7b
jne 0x41cc83
cmp dword [esp + 0x44], 7
mov eax, esi
jbe 0x41cc2d
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x40]
xor edx, edx
dec edx
test edi, edi
je 0x41cc6d
lea ecx, [eax + edi*2]
add ecx, 0xfffffffe
cmp word [ecx], 0x5c
jne 0x41cc48
mov edx, ecx
jmp 0x41cc64
add edi, edi
mov ebx, 2
sub ebx, edi
test ebx, ebx
je 0x41cc6a
lea edx, [ecx - 2]
add ebx, 2
cmp word [ecx - 2], 0x5c
mov ecx, edx
jne 0x41cc51
sub edx, eax
sar edx, 1
jmp 0x41cc6d
xor edx, edx
dec edx
xor ebx, ebx
cmp edx, 2
ja 0x41cb97
mov edi, 0x1126
jmp 0x41cce1
xor edi, edi
jmp 0x41cce1
mov cl, byte [esp + 7]
or cl, bl
test cl, 1
jne 0x41ccdf
mov esi, dword [esp + 0x40]
cmp dword [esp + 0x44], 7
jbe 0x41cc9f
mov ecx, dword [esp + 0x30]
jmp 0x41cca3
lea ecx, [esp + 0x30]
test esi, esi
je 0x41ccdf
lea edx, [ecx + esi*2]
add edx, 0xfffffffe
cmp word [edx], 0x5c
jne 0x41ccb7
mov esi, edx
jmp 0x41ccd3
add esi, esi
mov edi, 2
sub edi, esi
test edi, edi
je 0x41ccdf
lea esi, [edx - 2]
add edi, 2
cmp word [edx - 2], 0x5c
mov edx, esi
jne 0x41ccc0
sub esi, ecx
mov edi, 0x1126
cmp esi, 6
je 0x41cce1
mov edi, eax
mov eax, dword [esp + 0x44]
cmp eax, 8
jb 0x41ccfc
add eax, eax
add eax, 2
push eax
push dword [esp + 0x34]
call fcn.004dfcf2
add esp, 8
mov ecx, dword [esp + 0x48]
xor ecx, ebp
call fcn.004f2990
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret