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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, edx
mov edi, ecx
xor ecx, ecx
mov dword [ebp - 4], eax
push eax
mov esi, eax
mov dword [ebp - 0x10], ecx
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x416f46
mov ecx, esi
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x11d
push edi
call fcn.00479a10
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
and eax, 0x10
mov dword [ebp - 0x18], eax
je 0x416f7a
mov ecx, esi
mov ebx, 1
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416f60
sub ecx, edx
sar ecx, 1
lea eax, [ecx + 1]
mov dword [ebp - 0x10], eax
lea esi, [esi + eax*2]
jmp 0x416f7c
xor eax, eax
cmp word [esi], 0
je 0x416fb4
lea edi, [eax + ebx]
xor ebx, ebx
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x416f90
sub ecx, edx
sar ecx, 1
lea esi, [esi + ecx*2]
lea eax, [ecx + 1]
add esi, 2
add eax, edi
add ebx, eax
cmp word [esi], 0
jne 0x416f87
jmp 0x416fb6
xor ebx, ebx
lea eax, [ebx*2 + 0x16]
push eax
push 0x2042
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x417146
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x417146
mov edx, dword [ebp - 4]
lea esi, [eax + 0x14]
lea ecx, [esi + 2]
mov dword [eax], 0x14
mov dword [eax + 0x10], 1
lea ecx, [ecx + ebx*2]
mov eax, dword [ebp - 0x18]
mov edi, edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], ecx
test eax, eax
je 0x41701c
mov ecx, dword [ebp - 0x10]
lea edi, [edx + ecx*2]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], edi
xor edx, edx
test eax, eax
mov eax, dword [ebp - 4]
cmove eax, edx
mov dword [ebp - 4], eax
cmp word [edi], dx
je 0x417137
test eax, eax
je 0x4170de
mov edx, esi
mov ebx, edi
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x417041
sub eax, esi
sar eax, 1
je 0x41706e
mov ecx, dword [ebp - 4]
lea ecx, [ecx + eax*2]
add ecx, 0xfffffffe
nop dword [eax + eax]
cmp word [ecx], 0x5c
jne 0x41706e
sub ecx, 2
sub eax, 1
jne 0x417060
cmp word [edi], 0x5c
jne 0x41707d
add ebx, 2
cmp word [ebx], 0x5c
je 0x417074
mov edi, ebx
lea esi, [edi + 2]
mov cx, word [edi]
add edi, 2
test cx, cx
jne 0x417082
sub edi, esi
sar edi, 1
test eax, eax
je 0x4170ac
lea esi, [eax + eax]
push esi
push dword [ebp - 4]
push dword [ebp - 8]
call fcn.0047e060
mov edx, dword [ebp - 8]
add esp, 0xc
add edx, esi
test edi, edi
je 0x4170d1
mov eax, 0x5c
lea esi, [edi + edi]
push esi
mov word [edx], ax
add edx, 2
push ebx
push edx
mov dword [ebp - 0x18], edx
call fcn.0047e060
mov edx, dword [ebp - 0x18]
add esp, 0xc
add edx, esi
mov esi, dword [ebp - 8]
xor eax, eax
mov edi, dword [ebp - 0xc]
mov word [edx], ax
jmp 0x4170ec
mov eax, ecx
sub eax, esi
push edi
sar eax, 1
push eax
push esi
call fcn.00403260
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4170f1
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov ecx, esi
add edi, 2
mov dword [ebp - 0xc], edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x417110
sub ecx, edx
sar ecx, 1
lea esi, [esi + ecx*2]
mov ecx, dword [ebp - 0x14]
add esi, 2
cmp word [edi], ax
mov eax, dword [ebp - 4]
mov dword [ebp - 8], esi
jne 0x417032
xor eax, eax
mov word [esi], ax
mov esi, dword [ebp - 0x1c]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret