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

Disassembly:
push 0x758
push 0x77ce80a0
call fcn.77cacc5f
mov eax, dword [ebp + 8]
mov dword [ebp - 0x63c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x678], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x65c], eax
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x644], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x654], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x67c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x670], eax
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x694], eax
xor ebx, ebx
mov dword [ebp - 0x674], ebx
mov dword [ebp - 0x698], ebx
mov dword [ebp - 0x638], ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x680], ebx
mov dword [ebp - 0x684], ebx
mov dword [ebp - 0x690], ebx
mov dword [ebp - 0x648], ebx
mov dword [ebp - 0x64c], ebx
push 0xb0
push ebx
lea eax, [ebp - 0x748]
push eax
call sub.ntdll.dll_memset
push 8
pop ecx
xor eax, eax
lea edi, [ebp - 0x768]
rep stosd dword es:[edi], eax
push 0x414
push ebx
lea eax, [ebp - 0x634]
push eax
call sub.ntdll.dll_memset
push 0x202
push ebx
lea eax, [ebp - 0x220]
push eax
call sub.ntdll.dll_memset
add esp, 0x24
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x63c]
cdq
mov dword [ebp - 0x6a0], eax
mov dword [ebp - 0x69c], edx
cmp esi, ebx
je 0x77ce770b
cmp word [esi], bx
je 0x77ce770b
push esi
push 0x101
lea eax, [ebp - 0x220]
push eax
call fcn.77c8f3b0
cmp eax, ebx
jge 0x77ce7697
mov dword [ebp - 0x638], eax
jmp 0x77ce7fca
lea eax, [ebp - 0x220]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x77ce76a0
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [ebp - 0x650], ecx
lea edx, [ecx + ecx]
and edx, 7
je 0x77ce76c7
push 8
pop eax
sub eax, edx
shr eax, 1
add eax, ecx
mov esi, eax
mov dword [ebp - 0x650], esi
push 2
lea eax, [esi + esi]
push eax
lea eax, [ebp - 0x220]
push eax
call sym.ADVAPI32.dll_SystemFunction040
cmp eax, ebx
jge 0x77ce76ee
push eax
call dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
jmp 0x77ce768c
mov word [ebp - 0x738], si
inc esi
mov word [ebp - 0x736], si
lea eax, [ebp - 0x220]
mov dword [ebp - 0x734], eax
jmp 0x77ce7761
mov eax, 0x77caf3e0
mov dword [ebp - 0x734], eax
xor ecx, ecx
cmp ecx, eax
je 0x77ce7753
lea ecx, [ebp - 0x63c]
push ecx
push 0xfffe
push eax
call fcn.77cfb97b
mov dword [ebp - 0x638], eax
cmp eax, ebx
jl 0x77ce7fca
mov eax, dword [ebp - 0x63c]
mov word [ebp - 0x738], ax
inc eax
mov word [ebp - 0x736], ax
jmp 0x77ce7761
mov word [ebp - 0x736], bx
mov word [ebp - 0x738], bx
test dword [ebp + 0x24], 0x8000b
jne 0x77ce7fc0
test dword [ebp + 0x18], 0xfffffffc
jne 0x77ce7fc0
or dword [ebp + 0x24], 0x4000210
test word [ebp + 0x24], 0x1e0
jne 0x77ce779f
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_GetPriorityClass]
cmp eax, 0x40
jne 0x77ce779f
or dword [ebp + 0x24], eax
push 0x208
push ebx
push dword [ebp - 0x640]
mov esi, dword [sym.imp.KERNEL32.dll_HeapAlloc]
call esi
mov dword [ebp - 0x648], eax
push dword [ebp - 0x654]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
add edi, 0x106
mov dword [ebp - 0x63c], edi
lea eax, [edi + edi]
push eax
push ebx
push dword [ebp - 0x640]
call esi
mov dword [ebp - 0x64c], eax
cmp dword [ebp - 0x648], ebx
je 0x77ce7fc0
cmp eax, ebx
je 0x77ce7fc0
cmp dword [ebp - 0x644], ebx
jne 0x77ce7b9e
cmp dword [ebp - 0x654], ebx
je 0x77ce7fc0
mov dword [ebp - 0x668], ebx
mov dword [ebp - 0x660], ebx
mov dword [ebp - 0x664], ebx
mov dword [ebp - 0x658], ebx
mov dword [ebp - 0x68c], 1
push dword [ebp - 0x654]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
inc edi
lea eax, [edi + edi]
push eax
push ebx
push dword [ebp - 0x640]
call esi
mov dword [ebp - 0x644], eax
push 0x20a
push ebx
push dword [ebp - 0x640]
call esi
mov dword [ebp - 0x650], eax
cmp dword [ebp - 0x644], ebx
je 0x77ce7b8f
cmp eax, ebx
je 0x77ce7b8f
push dword [ebp - 0x654]
push edi
push dword [ebp - 0x644]
call fcn.77c8f3b0
cmp eax, ebx
jl 0x77ce768c
mov esi, dword [ebp - 0x644]
mov dword [ebp - 0x658], esi
push 0x22
pop ecx
cmp word [esi], cx
jne 0x77ce78da
mov dword [ebp - 0x68c], ebx
add esi, 2
mov dword [ebp - 0x660], esi
mov dword [ebp - 0x658], esi
movzx eax, word [esi]
cmp ax, bx
je 0x77ce792e
cmp ax, cx
jne 0x77ce78d6
mov dword [ebp - 0x668], ecx
jmp 0x77ce7925
inc esi
inc esi
jmp 0x77ce78bb
movzx eax, word [esi]
cmp ax, bx
je 0x77ce78f8
cmp ax, 0x20
je 0x77ce78ee
cmp ax, 9
jne 0x77ce78f8
inc esi
inc esi
mov dword [ebp - 0x658], esi
jmp 0x77ce78da
mov dword [ebp - 0x660], esi
movzx eax, word [esi]
cmp ax, bx
je 0x77ce792e
cmp ax, 0x20
je 0x77ce791c
cmp ax, 9
je 0x77ce791c
inc esi
inc esi
mov dword [ebp - 0x658], esi
jmp 0x77ce78fe
movzx eax, word [esi]
mov dword [ebp - 0x668], eax
mov dword [ebp - 0x664], esi
mov word [esi], bx
mov edi, 0x104
push ebx
push dword [ebp - 0x650]
push edi
push 0x77ce8090
push dword [ebp - 0x660]
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathW]
cmp eax, ebx
je 0x77ce7a6c
cmp eax, edi
ja 0x77ce7a6c
push dword [ebp - 0x650]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x77ce7976
test al, 0x10
jne 0x77ce7a8e
push dword [ebp - 0x650]
mov eax, edi
push eax
push dword [ebp - 0x648]
call fcn.77c8f3b0
cmp eax, ebx
jl 0x77ce768c
mov esi, dword [ebp - 0x654]
cmp word [esi], 0x22
je 0x77ce7a29
push 0x20
push dword [ebp - 0x660]
call dword [sym.imp.ntdll.dll_wcschr]
pop ecx
pop ecx
test eax, eax
je 0x77ce7a29
mov esi, 0x77ce808c
push esi
push dword [ebp - 0x63c]
mov edi, dword [ebp - 0x64c]
push edi
call fcn.77c8f3b0
cmp eax, ebx
jl 0x77ce768c
push dword [ebp - 0x660]
push dword [ebp - 0x63c]
push edi
call fcn.77ca0f32
cmp eax, ebx
jl 0x77ce768c
push esi
push dword [ebp - 0x63c]
push edi
call fcn.77ca0f32
cmp eax, ebx
jl 0x77ce768c
push dword [ebp - 0x660]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp - 0x654]
lea eax, [ecx + eax*2]
push eax
push dword [ebp - 0x63c]
push edi
call fcn.77ca0f32
jmp 0x77ce7a3b
push esi
push dword [ebp - 0x63c]
push dword [ebp - 0x64c]
call fcn.77c8f3b0
cmp eax, ebx
jl 0x77ce768c
push dword [ebp - 0x644]
push ebx
push dword [ebp - 0x640]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
call esi
push dword [ebp - 0x650]
push ebx
push dword [ebp - 0x640]
call esi
jmp 0x77ce7c2e
cmp dword [ebp - 0x638], ebx
je 0x77ce7a82
push dword [ebp - 0x638]
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x77ce7a8e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x638], eax
mov eax, dword [ebp - 0x664]
cmp eax, ebx
je 0x77ce7ab0
mov cx, word [ebp - 0x668]
mov word [eax], cx
mov dword [ebp - 0x664], ebx
inc esi
inc esi
mov dword [ebp - 0x658], esi
cmp word [esi], bx
je 0x77ce7b14
cmp dword [ebp - 0x68c], ebx
je 0x77ce7b14
movzx eax, word [esi]
cmp ax, bx
je 0x77ce7adb
cmp ax, 0x20
je 0x77ce7ad1
cmp ax, 9
jne 0x77ce7adb
inc esi
inc esi
mov dword [ebp - 0x658], esi
jmp 0x77ce7abd
movzx eax, word [esi]
cmp ax, bx
je 0x77ce7933
cmp ax, 0x20
je 0x77ce7afd
cmp ax, 9
je 0x77ce7afd
inc esi
inc esi
mov dword [ebp - 0x658], esi
jmp 0x77ce7adb
movzx eax, word [esi]
mov dword [ebp - 0x668], eax
mov word [esi], bx
mov dword [ebp - 0x664], esi
jmp 0x77ce7933
cmp dword [ebp - 0x650], ebx
je 0x77ce7b2f
push dword [ebp - 0x650]
push ebx
push dword [ebp - 0x640]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp - 0x644], ebx
je 0x77ce7b4a
push dword [ebp - 0x644]
push ebx
push dword [ebp - 0x640]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp - 0x648], ebx
je 0x77ce7b6b
push dword [ebp - 0x648]
push ebx
push dword [ebp - 0x640]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 0x648], ebx
push dword [ebp - 0x654]
push dword [ebp - 0x63c]
push dword [ebp - 0x64c]
call fcn.77c8f3b0
cmp eax, ebx
jl 0x77ce768c
jmp 0x77ce7c2e
mov dword [ebp - 0x638], 8
jmp 0x77ce7fca
lea eax, [ebp - 0x63c]
push eax
push dword [ebp - 0x648]
mov esi, 0x104
push esi
push dword [ebp - 0x644]
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
cmp eax, ebx
je 0x77ce7bde
push ebx
push ebx
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x644]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x77ce7bfa
push dword [ebp - 0x644]
push esi
push dword [ebp - 0x648]
call fcn.77c8f3b0
cmp eax, ebx
jl 0x77ce768c
jmp 0x77ce7c01
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x654], ebx
je 0x77ce7c15
push dword [ebp - 0x654]
push edi
jmp 0x77ce7b77
push dword [ebp - 0x64c]
push ebx
push dword [ebp - 0x640]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 0x64c], ebx
mov dword [ebp - 0x6c4], ebx
mov dword [ebp - 0x6c8], ebx
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x6c0], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x6cc], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x6bc], eax
mov dword [ebp - 0x6b0], ebx
mov dword [ebp - 0x6ac], ebx
mov dword [ebp - 0x6a8], ebx
mov dword [ebp - 0x6a4], ebx
mov eax, dword [ebp - 0x678]
mov dword [ebp - 0x744], eax
cmp eax, ebx
je 0x77ce7cb7
lea ecx, [ebp - 0x678]
push ecx
push 0xfffe
push eax
call fcn.77cfb97b
mov dword [ebp - 0x638], eax
cmp eax, ebx
jl 0x77ce7fca
mov eax, dword [ebp - 0x678]
mov word [ebp - 0x748], ax
inc eax
mov word [ebp - 0x746], ax
jmp 0x77ce7cc5
mov word [ebp - 0x746], bx
mov word [ebp - 0x748], bx
mov eax, dword [ebp - 0x65c]
mov dword [ebp - 0x73c], eax
cmp eax, ebx
je 0x77ce7d0c
lea ecx, [ebp - 0x65c]
push ecx
push 0xfffe
push eax
call fcn.77cfb97b
mov dword [ebp - 0x638], eax
cmp eax, ebx
jl 0x77ce7fca
mov eax, dword [ebp - 0x65c]
mov word [ebp - 0x740], ax
inc eax
mov word [ebp - 0x73e], ax
jmp 0x77ce7d1a
mov word [ebp - 0x73e], bx
mov word [ebp - 0x740], bx
mov eax, dword [ebp - 0x648]
mov dword [ebp - 0x72c], eax
cmp eax, ebx
je 0x77ce7d61
lea ecx, [ebp - 0x65c]
push ecx
push 0xfffe
push eax
call fcn.77cfb97b
mov dword [ebp - 0x638], eax
cmp eax, ebx
jl 0x77ce7fca
mov eax, dword [ebp - 0x65c]
mov word [ebp - 0x730], ax
inc eax
mov word [ebp - 0x72e], ax
jmp 0x77ce7d6f
mov word [ebp - 0x72e], bx
mov word [ebp - 0x730], bx
mov eax, dword [ebp - 0x64c]
mov dword [ebp - 0x724], eax
cmp eax, ebx
je 0x77ce7db6
lea ecx, [ebp - 0x65c]
push ecx
push 0xfffe
push eax
call fcn.77cfb97b
mov dword [ebp - 0x638], eax
cmp eax, ebx
jl 0x77ce7fca
mov eax, dword [ebp - 0x65c]
mov word [ebp - 0x728], ax
inc eax
mov word [ebp - 0x726], ax
jmp 0x77ce7dc4
mov word [ebp - 0x726], bx
mov word [ebp - 0x728], bx
mov eax, dword [ebp - 0x66c]
mov dword [ebp - 0x71c], eax
cmp eax, ebx
je 0x77ce7e0b
lea ecx, [ebp - 0x66c]
push ecx
push 0xfffe
push eax
call fcn.77cfb97b
mov dword [ebp - 0x638], eax
cmp eax, ebx
jl 0x77ce7fca
mov eax, dword [ebp - 0x66c]
mov word [ebp - 0x720], ax
inc eax
mov word [ebp - 0x71e], ax
jmp 0x77ce7e19
mov word [ebp - 0x71e], bx
mov word [ebp - 0x720], bx
lea eax, [ebp - 0x6d4]
push eax
push dword [ebp - 0x67c]
test word [ebp + 0x24], 0x400
je 0x77ce7e35
call fcn.77ce743d
jmp 0x77ce7e3a
call fcn.77ce74d4
mov dword [ebp - 0x638], eax
cmp eax, ebx
jne 0x77ce7fca
lea eax, [ebp - 0x718]
push eax
push dword [ebp - 0x670]
call fcn.77ce6fd6
mov dword [ebp - 0x638], eax
cmp eax, ebx
jne 0x77ce7fca
mov eax, dword [ebp - 0x710]
cmp eax, ebx
je 0x77ce7ecc
cmp word [eax], bx
je 0x77ce7ecc
or dword [ebp - 0x6b8], 1
lea eax, [ebp - 0x768]
push eax
lea eax, [ebp - 0x748]
push eax
call fcn.77ce7276
mov dword [ebp - 0x638], eax
cmp eax, ebx
jne 0x77ce7fca
xor ecx, ecx
mov eax, dword [ebp - 0x750]
cmp eax, ebx
sete cl
mov dword [ebp - 0x674], ecx
cmp ecx, ebx
jne 0x77ce7f8f
mov dword [ebp - 0x638], eax
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x77ce7fca
call dword [sym.imp.USER32.dll_GetProcessWindowStation]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_GetThreadDesktop]
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x688], ebx
mov eax, 0x77caf3e0
mov dword [ebp - 0x710], eax
lea eax, [ebp - 0x63c]
push eax
mov edi, 0x208
push edi
lea eax, [ebp - 0x634]
push eax
push 2
push esi
mov esi, dword [sym.imp.USER32.dll_GetUserObjectInformationW]
call esi
mov dword [ebp - 0x688], eax
cmp eax, ebx
je 0x77ce7f84
lea eax, [ebp - 0x634]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x77ce7f2a
sub eax, edx
sar eax, 1
mov dword [ebp - 0x63c], eax
mov word [ebp + eax*2 - 0x634], 0x5c
inc eax
mov dword [ebp - 0x63c], eax
lea ecx, [ebp - 0x63c]
push ecx
push edi
lea eax, [ebp + eax*2 - 0x634]
push eax
push 2
push dword [ebp - 0x670]
call esi
mov dword [ebp - 0x688], eax
cmp eax, ebx
je 0x77ce7f84
lea ecx, [ebp - 0x634]
mov dword [ebp - 0x710], ecx
jmp 0x77ce7e7e
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x77ce768c
mov ecx, dword [ebp - 0x768]
mov eax, dword [ebp - 0x694]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x760]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x758]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x754]
mov dword [eax + 0xc], ecx
mov dword [ebp - 0x638], ebx
jmp 0x77ce7fca
mov dword [ebp - 0x638], 0x57
mov dword [ebp - 4], 0xfffffffe
call fcn.77ce7ff0
mov eax, dword [ebp - 0x674]
call fcn.77cacca7
ret 0x30