Function at 0x41c1b0
Capabilities:
Check if file exists
Get file attributes
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x10074
call fcn.004b8900
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 8]
mov word [esi + 0x6cc], 0
lea ebx, [esi + 0x6ac]
test edi, edi
jne 0x41c1dd
mov edi, dword [ebx]
cmp dword [esi + 0x6c8], 0
jne 0x41c264
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x41c264
cmp byte [0x4eb7df], 0
jne 0x41c241
push edi
push str.Script_file_not_found.
push str._s_n_s
lea eax, [esp + 0x5c]
push 0x8018
push eax
call fcn.00482070
add esp, 0xc
lea ecx, [esp + 0x58]
xorps xmm0, xmm0
mov edx, 0x10
movsd qword [esp], xmm0
push 0
push 0
call fcn.00487690
add esp, 0x10
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x4d1e48
push str.Script_file_not_found.
mov ecx, esi
mov dword [0x4ea250], ebx
call fcn.00430790
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x6c8], 2
mov eax, 0x4d846c
mov ecx, dword [0x4ea24c]
push 0
cmovne eax, edi
mov dword [esp + 0x50], ecx
push 0
push eax
lea eax, [esp + 0x54]
mov dword [esp + 0x54], 0
push eax
mov ecx, esi
call fcn.0041c560
mov edi, dword [esp + 0x48]
mov ebx, eax
cmp ebx, 3
jne 0x41c2af
push dword [esp + 0x4c]
mov ecx, esi
push edi
call fcn.0041cb20
mov ebx, eax
test edi, edi
je 0x41c2bb
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
test ebx, ebx
je 0x41c258
push 0
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
mov ecx, esi
test eax, eax
jne 0x41c2e8
push 0x4d1e48
push str.An_internal_function_call_failed.
call fcn.00430790
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esi]
call fcn.00426360
test eax, eax
je 0x41c258
lea ebx, [esi + 0x24]
mov ecx, esi
push ebx
call fcn.00426430
test eax, eax
je 0x41c258
lea eax, [esi + 0x10]
mov ecx, esi
push eax
call fcn.00426430
test eax, eax
je 0x41c258
mov ecx, esi
call fcn.00431d40
test eax, eax
je 0x41c258
xor edi, edi
cmp dword [ebx + 4], edi
jle 0x41c34b
mov eax, dword [ebx]
push dword [eax + edi*4]
call fcn.00431a50
test eax, eax
je 0x41c258
inc edi
cmp edi, dword [ebx + 4]
jl 0x41c333
xor edi, edi
lea eax, [esi + 0x10]
cmp dword [eax + 4], edi
jle 0x41c370
mov eax, dword [eax]
push dword [eax + edi*4]
call fcn.00431a50
test eax, eax
je 0x41c258
inc edi
lea eax, [esi + 0x10]
cmp edi, dword [eax + 4]
jl 0x41c355
push dword [ebx]
call fcn.0049f86f
mov eax, dword [esi + 0x26c]
add esp, 4
test eax, eax
je 0x41c415
mov eax, dword [eax + 0x10]
cmp dword [eax + 4], 0
je 0x41c3ff
mov ecx, dword [eax + 8]
mov edi, dword [eax + 0x18]
test ecx, ecx
je 0x41c3ff
lea eax, [esp + 0x4c]
push eax
push str.Line
call fcn.0047aac0
test eax, eax
je 0x41c3e0
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x41c3cc
cmp ecx, 3
je 0x41c3cc
cmp ecx, 6
je 0x41c3c3
mov ecx, dword [eax]
jmp 0x41c3d1
mov ecx, 0x4d1e48
xor eax, eax
jmp 0x41c3d4
mov eax, dword [eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0x278], eax
mov dword [esi + 0x27c], ecx
push edi
push str.Unknown_class.
mov ecx, esi
mov dword [esi + 0x640], 0
call fcn.00430790
test eax, eax
je 0x41c258
mov eax, dword [esi + 0x26c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [esi + 0x26c], 0
cmp byte [esi + 0x6d4], 0
je 0x41c429
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esi + 0x6b0]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0
push 0
push 0
push 0
push 7
mov ecx, esi
call fcn.00421c00
test eax, eax
je 0x41c258
push dword [esi]
mov ecx, esi
call fcn.00426490
test eax, eax
je 0x41c258
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 4