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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x54
mov eax, dword [0x5d32a4]
mov ebx, dword [ebp + 8]
mov edi, 0x1126
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
call fcn.00410c10
add esp, 4
test al, al
jne 0x4110b5
lea esi, [ebp - 0x28]
mov ecx, ebx
mov edx, esi
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], 0
call fcn.004110c9
mov ecx, esi
mov bh, al
call fcn.0041119c
mov ecx, esi
mov edx, esi
mov bl, al
call fcn.004111cc
test bh, bh
jne 0x410ea5
test bl, bl
jne 0x410ea5
mov edi, 0x7b
test al, al
je 0x4110ad
mov al, 1
test bl, bl
mov dword [ebp - 0x5c], eax
jne 0x410f65
lea edi, [ebp - 0x58]
mov eax, 7
mov dword [edi + 0x14], eax
xor eax, eax
mov ecx, edi
mov dword [edi + 0x10], eax
mov word [edi], ax
push 4
push 0x56e2c4
call fcn.00405380
mov ecx, 7
mov eax, dword [ebp - 0x18]
mov edx, esi
cmp dword [ebp - 0x14], ecx
jbe 0x410ee5
mov edx, dword [ebp - 0x28]
mov ecx, edi
push eax
push edx
call fcn.004054d2
movsd xmm0, qword [eax + 0x10]
lea ebx, [ebp - 0x40]
xor edi, edi
mov ecx, 7
movsd qword [ebx + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ecx
mov ecx, esi
mov word [eax], di
call fcn.004030b4
movsd xmm0, qword [ebx + 0x10]
movsd xmm2, qword [ebx]
movsd xmm1, qword [ebx + 8]
mov ecx, ebx
mov eax, 7
mov dword [ebx + 0x10], edi
mov dword [ebp - 0x5c], 0
mov dword [ebx + 0x14], eax
mov word [ebx], di
movsd qword [ebp - 0x18], xmm0
movsd qword [ebp - 0x20], xmm1
movsd qword [ebp - 0x28], xmm2
call fcn.004030b4
lea ecx, [ebp - 0x58]
call fcn.004030b4
xor eax, eax
xor ecx, ecx
dec eax
mov dword [ebp - 0x60], ecx
xor ebx, ebx
mov ecx, 7
lea esi, [ebp - 0x40]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], ebx
mov word [ebp - 0x40], bx
mov ecx, esi
push eax
push ebx
lea edi, [ebp - 0x28]
push edi
call fcn.00411f32
mov ecx, edi
call fcn.004030b4
movsd xmm0, qword [ebp - 0x30]
movsd xmm2, qword [ebp - 0x40]
movsd xmm1, qword [ebp - 0x38]
lea ecx, [ebp - 0x40]
mov esi, 7
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], esi
mov word [ebp - 0x40], bx
movsd qword [ebp - 0x18], xmm0
movsd qword [ebp - 0x20], xmm1
movsd qword [ebp - 0x28], xmm2
call fcn.004030b4
cmp dword [ebp - 0x14], esi
jbe 0x410fd2
mov edi, dword [ebp - 0x28]
push edi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x410fe6
bt eax, 0xa
jae 0x410ff9
jmp 0x411052
call dword [sym.imp.kernel32.dll_GetLastError]
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x410ff9
cmp eax, 0x7b
jne 0x411056
mov edx, dword [ebp - 0x18]
cmp dword [ebp - 0x14], 7
lea ecx, [ebp - 0x28]
jbe 0x411008
mov ecx, dword [ebp - 0x28]
mov ebx, edx
mov eax, 0xffffffff
sub ebx, 1
jb 0x411040
lea eax, [ecx + ebx*2]
cmp word [eax], 0x5c
je 0x411037
add edx, edx
mov ebx, 2
sub ebx, edx
test ebx, ebx
je 0x41103d
add ebx, 2
cmp word [eax - 2], 0x5c
lea eax, [eax - 2]
jne 0x411026
sub eax, ecx
sar eax, 1
jmp 0x411040
xor eax, eax
dec eax
mov cl, 1
cmp eax, 2
ja 0x410f6a
mov edi, 0x1126
jmp 0x4110ad
xor edi, edi
jmp 0x4110ad
cmp byte [ebp - 0x60], 0
mov edx, dword [ebp - 0x5c]
sete cl
or dl, cl
jne 0x4110ab
mov esi, dword [ebp - 0x18]
cmp dword [ebp - 0x14], 7
jbe 0x411072
mov ecx, dword [ebp - 0x28]
jmp 0x411075
lea ecx, [ebp - 0x28]
mov edx, esi
sub edx, 1
jb 0x4110ab
lea edx, [ecx + edx*2]
cmp word [edx], 0x5c
je 0x41109f
add esi, esi
mov edi, 2
sub edi, esi
test edi, edi
je 0x4110ab
add edi, 2
cmp word [edx - 2], 0x5c
lea edx, [edx - 2]
jne 0x41108e
sub edx, ecx
mov edi, 0x1126
cmp edx, 6
je 0x4110ad
mov edi, eax
lea ecx, [ebp - 0x28]
call fcn.004030b4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e85d0
mov eax, edi
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret