Function at 0x6077f0
Capabilities:
Check if file exists
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x540
mov esi, esp
mov dword [esi + 0x528], ebp
mov dword [esi + 0x52c], esp
mov dword [esi + 0x538], 0xffffffff
mov dword [esi + 0x534], 0x75f260
mov dword [esi + 0x7c], ecx
lea eax, [esi + 0x530]
mov dword [esi + 0x8c], edx
mov ecx, dword fs:[0]
mov dword [esi + 0x530], ecx
mov dword fs:[0], eax
mov edi, dword [edx + 0x10]
mov ebx, dword [edx + 0x14]
mov ecx, edi
mov edx, ebx
call fcn.0071a760
test eax, eax
mov dword [esi + 0x74], edi
mov dword [esi + 0x78], ebx
cmove edx, ebx
cmove eax, edi
test edx, edx
mov dword [esi + 4], edx
mov dword [esi + 0x88], eax
je 0x6079df
js 0x608036
mov edi, eax
movzx eax, byte [0x94bfc5]
mov edx, dword [esi + 4]
xor ecx, ecx
call fcn.0071ee80
test eax, eax
je 0x60803b
mov ebx, dword [esi + 4]
push ebx
push edi
mov dword [esi + 0x10], eax
push eax
call fcn.007bd9b0
add esp, 0xc
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, ebx
call fcn.0071ee80
test eax, eax
je 0x608048
mov ecx, edi
mov edi, eax
push ebx
push ecx
push eax
call fcn.007bd9b0
add esp, 0xc
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], edi
mov dword [esi + 0x98], ebx
mov byte [esi + 0x9c], 0
mov dword [esi + 0x538], 5
lea ecx, [esi + 0x90]
mov edx, 0x934dd4
push 1
call fcn.007197e0
add esp, 4
mov eax, dword [esi + 0x90]
mov edx, dword [esi + 0x94]
mov edi, dword [esi + 0x98]
mov byte [esi + 0xb], 1
mov dword [esi + 0x538], 1
lea ecx, [esi + 0x5c]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x40], edx
push edi
call fcn.00710ab0
add esp, 4
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x60]
mov edi, dword [esi + 0x64]
cmp eax, 0x80000000
je 0x60797d
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], ecx
lea ecx, [esi + 0x24]
lea edx, [esi + 0x90]
mov dword [esi + 0x98], edi
mov byte [esi + 0xb], 1
call fcn.00718fb0
mov ebx, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
cmp ebx, 0x80000000
jne 0x607e62
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x10]
mov ebx, ecx
mov al, 1
mov dword [esi + 0xc], 2
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], eax
shr ebx, 8
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x6079af
push dword [esi + 0x40]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esi + 0x10]
cmp byte [esi + 0x14], 0
mov eax, 0xffffffff
je 0x6079ce
push edx
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 0xffffffff
mov ecx, dword [esi + 0xc]
cmp ecx, 2
jne 0x607ad7
mov eax, dword [esi + 0x18]
jmp 0x6079e6
mov edi, 3
xor eax, eax
mov dword [esi + 0x84], edi
lea edi, [esi + 0x80]
shl ebx, 8
movzx eax, al
or eax, ebx
mov ecx, edi
mov dword [esi + 0x80], eax
call fcn.00475840
test al, al
je 0x607b7f
movzx eax, al
cmp eax, 1
jne 0x607c5a
mov eax, dword [0x94bccc]
mov bx, 0x193
cmp eax, 4
ja 0x607e0a
movzx eax, byte [0x94b3e0]
test al, al
je 0x607e0a
movzx eax, al
cmp eax, 1
je 0x607a63
cmp eax, 2
je 0x607ab0
mov ecx, 0x94b3d8
call fcn.007d3740
test al, al
je 0x607e0a
movzx eax, al
cmp eax, 2
je 0x607ab0
mov eax, dword [0x94b3d8]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x607e0a
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x607aa0
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 8]
dec ecx
and ecx, 0xfffffff8
lea edx, [ecx + edx + 8]
mov ecx, dword [esi + 4]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x607e0a
mov eax, dword [0x94b3d8]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x60807f
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esi + str.entry_file_permission_denied__path:__], 0x928e80
jmp 0x607c36
mov dword [esi + 4], edi
movzx edi, byte [esi + 0x18]
shl ebx, 8
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], eax
lea ecx, [esi + 0x2e0]
or edi, ebx
mov ebx, dword [esi + 0x7c]
lea eax, [ebx + 0xc]
push 0x248
push ecx
push eax
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x8c]
mov dword [ebx + 0x254], eax
mov eax, dword [esi + 0x14]
movzx edx, byte [ecx + 0x20]
mov dword [ebx + 0x258], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov dword [ebx + 4], edi
mov edi, dword [ecx + 4]
mov dword [ebx + 8], eax
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x25c], eax
mov eax, dword [ecx + 8]
mov dword [ebx + 0x260], eax
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0x264], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0x268], eax
mov eax, dword [ecx]
movzx ecx, byte [ecx + 0x21]
mov dword [ebx + 0x26c], eax
mov dword [ebx + 0x270], edi
mov byte [ebx + 0x274], cl
mov byte [ebx + 0x275], 0
mov byte [ebx + 0x276], dl
jmp 0x607f76
mov eax, dword [0x94bccc]
mov bx, 0x194
cmp eax, 1
ja 0x607e0a
movzx eax, byte [0x94b3d4]
test al, al
je 0x607e0a
movzx eax, al
cmp eax, 1
je 0x607bc7
cmp eax, 2
je 0x607c14
mov ecx, 0x94b3cc
call fcn.007d3740
test al, al
je 0x607e0a
movzx eax, al
cmp eax, 2
je 0x607c14
mov eax, dword [0x94b3cc]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x607e0a
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x607c04
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 8]
dec ecx
and ecx, 0xfffffff8
lea edx, [ecx + edx + 8]
mov ecx, dword [esi + 4]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x607e0a
mov eax, dword [0x94b3cc]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x608093
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esi + str.entry_file_not_found__path:], 0x928e3c
mov dword [esi + 0x5c], edx
mov dword [esi + 0x60], ecx
mov ecx, dword [esi + 0x74]
lea edx, [esi + 0x34]
mov dword [esi + 0x24], edx
mov dword [esi + 0x28], 0x71e750
mov dword [esi + 0x2c], edi
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x78]
jmp 0x607d33
mov eax, dword [0x94bccc]
mov bx, 0x1f4
cmp eax, 4
ja 0x607e0a
movzx eax, byte [0x94b3ec]
test al, al
je 0x607e0a
movzx eax, al
cmp eax, 1
je 0x607ca2
cmp eax, 2
je 0x607cef
mov ecx, 0x94b3e4
call fcn.007d3740
test al, al
je 0x607e0a
movzx eax, al
cmp eax, 2
je 0x607cef
mov eax, dword [0x94b3e4]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x607e0a
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x607cdf
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + 8]
dec ecx
and ecx, 0xfffffff8
lea edx, [ecx + edx + 8]
mov ecx, dword [esi + 0xc]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x607e0a
mov eax, dword [0x94b3e4]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x6080a7
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esi + str.unable_to_read_parent_directory__parent], 0x928ec8
mov dword [esi + 0x5c], edx
mov dword [esi + 0x60], ecx
mov ecx, dword [esi + 0x88]
lea edx, [esi + 0x34]
mov dword [esi + 0x24], edx
mov dword [esi + 0x28], 0x71e750
mov dword [esi + 0x2c], edi
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x38], ecx
lea edx, [esi + 0x5c]
lea edi, [esi + 0x2e0]
lea ecx, [esi + 0x24]
mov dword [esi + 0x2e4], 2
mov dword [esi + 0x2f0], 0
movlps qword [esi + 0x64], xmm0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x30], 0x7116b0
mov dword [esi + 0x44], edx
lea edx, [esi + 0x44]
mov dword [esi + 0x48], edi
lea edi, [eax + 0x1c]
mov dword [esi + 0x2e8], ecx
mov dword [esi + 0x2ec], 2
mov dword [esi + 0x4c], 0x8a682c
mov dword [esi + 0x50], edx
lea edx, [esi + 0x50]
mov dword [esi + 0x54], 1
mov dword [esi + 0x58], edi
mov dword [esi + 0xa0], edx
mov dword [esi + 0xa4], eax
mov dword [esi + 0x94], 0
mov dword [esi + 0x90], 1
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x607e0a
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov edi, dword [0x94bcc8]
je 0x607de5
mov eax, dword [edi + 8]
dec eax
and eax, 0xfffffff8
lea edx, [eax + edx + 8]
lea eax, [esi + 0x90]
mov dword [esi + 4], edx
push eax
push edx
call dword [edi + 0x28]
add esp, 8
test al, al
je 0x607e0a
lea eax, [esi + 0x90]
push eax
push dword [esi + 4]
call dword [edi + 0x2c]
add esp, 8
mov eax, dword [esi + 0x7c]
cmp byte [esi + 0x80], 3
mov dword [eax + 0xc], 0
mov dword [eax + 8], 3
mov word [eax + 0x10], bx
mov dword [eax], 2
jne 0x607f76
mov edi, dword [esi + 0x84]
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov dword [esi + 4], eax
push eax
call dword [ebx]
add esp, 4
cmp dword [ebx + 4], 0
je 0x607f67
cmp dword [ebx + 8], 9
jae 0x607f52
mov eax, dword [esi + 4]
jmp 0x607f58
push 0x250
push 0
lea eax, [esi + 0x90]
push eax
mov edi, ecx
call fcn.007bdf30
add esp, 0xc
lea eax, [esi + 0x90]
push eax
mov dword [esi + 0x3c], edi
push edi
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov edi, dword [esi + 4]
cmp eax, 0xffffffff
mov dword [esi + 0x14], eax
je 0x607f8a
mov dword [esi + 0x20], ebx
xor ecx, ecx
mov edx, 0x18
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x608064
mov ecx, eax
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 8], edi
mov eax, dword [esi + 0x10]
mov dword [esi + 0x70], ecx
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], edi
mov byte [ecx + 0x14], 0
lea eax, [esi + 0x98]
lea ecx, [esi + 0x2e0]
mov ebx, dword [esi + 0x90]
mov edi, dword [esi + 0x94]
mov dword [esi + 0x18], ebx
shrd ebx, edi, 8
push 0x248
push eax
push ecx
call fcn.007bd9b0
add esp, 0xc
mov dword [esi + 0xc], 1
cmp dword [esi + 0x20], 0
mov eax, dword [esi + 0x3c]
je 0x607f27
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x1c], 0
je 0x607f3e
push dword [esi + 0x40]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
cmp eax, 0xffffffff
jne 0x6079ce
jmp 0x6079ba
mov eax, dword [esi + 4]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
push edi
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x530]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call sub.kernel32.dll_GetLastError
cmp eax, 2
jne 0x60800f
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 0x18
mov dword [esi + 0xc], 0
call fcn.0071ee80
test eax, eax
je 0x6080bb
mov edx, dword [esi + 0x10]
test ebx, ebx
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 8], edi
mov dword [esi + 0x70], eax
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edi
mov byte [eax + 0x14], 0
je 0x607ff5
push dword [esi + 0x3c]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], 0
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], 0
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x60799b
jmp 0x6079af
mov ecx, eax
mov dword [esi + 0x20], ebx
mov dword [esi + 0xc], 2
mov dword [esi + 0x18], 0
mov edi, ecx
cmp dword [esi + 0x20], 0
mov eax, dword [esi + 0x3c]
jne 0x607f18
jmp 0x607f27
call fcn.00418cb0
mov edx, dword [esi + 4]
mov ecx, 1
call fcn.007c1490
mov ecx, 1
mov edx, ebx
mov byte [esi + 0xa], 1
mov dword [esi + 0x538], 0
call fcn.007c1490
jmp 0x6080d7
mov ecx, 4
mov edx, 0x18
mov dword [esi + 0x538], 4
call fcn.007c1490
jmp 0x6080d7
mov ecx, 0x8a6758
mov edx, 0x22
push 0x928e4c
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x928e10
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x928e90
call fcn.007c2000
mov ecx, 4
mov edx, 0x18
mov dword [esi + 0x20], ebx
mov dword [esi + 0x538], 3
call fcn.007c1490
ud2