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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x10034
call fcn.004b5610
mov ecx, dword [0x4e9600]
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
cmove esi, dword [0x4e95e4]
mov word [0x4e9604], 0
test ecx, ecx
jne 0x43a4ae
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x43a4a8
cmp byte [0x4e9607], 0
jne 0x43a3e0
push esi
push str.Script_file_not_found.
push str._s_n_s
lea eax, [esp + 0x1c]
push 0x8018
push eax
call fcn.004816a0
add esp, 0x14
lea ecx, [esp + 0x10]
xorps xmm3, xmm3
mov edx, 0x10
push 0
push 0
call fcn.00486b20
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4e9574]
mov al, byte [0x4e9604]
mov dword [0x4e8070], 0x4e95e4
test ecx, ecx
je 0x43a444
test al, al
je 0x43a448
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x43a41f
cmp dword [0x4e95ac], 0
jne 0x43a41f
cmp byte [0x4e8ec6], 0
jne 0x43a41f
push 0
push ecx
jmp 0x43a486
push 0
push 0
push ecx
push 0x4cdea8
push str.Script_file_not_found.
mov ecx, 0x4e8f30
call fcn.0040c250
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test al, al
jne 0x43a482
test ecx, ecx
je 0x43a455
movzx eax, word [ecx + 2]
mov ecx, dword [ecx + 4]
jmp 0x43a460
mov eax, dword [0x4e91ac]
mov ecx, dword [0x4e91b0]
push ecx
push eax
push 0x4cdea8
push str.Script_file_not_found.
mov ecx, 0x4e8f30
call fcn.0040c700
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x4cdea8
push 0
push str.Script_file_not_found.
mov ecx, 0x4e8f30
call fcn.0040d430
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4e9600]
mov ebx, dword [0x4e8074]
cmp ecx, 2
push 0
mov eax, 0x4d1a74
mov dword [esp + 0x10], 0
cmovne eax, esi
mov ecx, 0x4e8f30
push 0
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0043a960
mov esi, dword [esp + 0xc]
mov edi, eax
cmp edi, 3
jne 0x43a4f4
push ebx
push esi
mov ecx, 0x4e8f30
call fcn.0043b0d0
mov edi, eax
test esi, esi
je 0x43a500
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
test edi, edi
je 0x43a49c
push 0
mov byte [0x4e7e7b], 0
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
test eax, eax
jne 0x43a5e0
mov edx, dword [0x4e9574]
mov al, byte [0x4e9604]
test edx, edx
je 0x43a584
test al, al
je 0x43a584
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x43a55f
cmp dword [0x4e95ac], 0
jne 0x43a55f
cmp byte [0x4e8ec6], 0
jne 0x43a55f
push 0
push edx
push 0x4cdea8
push 0
push str.An_internal_function_call_failed.
jmp 0x43a492
push 0
push 0
push edx
push 0x4cdea8
push str.An_internal_function_call_failed.
mov ecx, 0x4e8f30
call fcn.0040c250
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4e9607], 0
je 0x43a5cb
test al, al
jne 0x43a5cb
test edx, edx
je 0x43a59e
movzx eax, word [edx + 2]
mov ecx, dword [edx + 4]
jmp 0x43a5a9
mov eax, dword [0x4e91ac]
mov ecx, dword [0x4e91b0]
push ecx
push eax
push 0x4cdea8
push str.An_internal_function_call_failed.
mov ecx, 0x4e8f30
call fcn.0040c700
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x4cdea8
push 0
push str.An_internal_function_call_failed.
jmp 0x43a492
push dword [0x4e8f30]
mov ecx, 0x4e8f30
call fcn.004448c0
test eax, eax
je 0x43a49c
push 0x4e8f54
mov ecx, 0x4e8f30
call fcn.00444990
test eax, eax
je 0x43a49c
push 0x4e8f40
mov ecx, 0x4e8f30
call fcn.00444990
test eax, eax
je 0x43a49c
mov ecx, 0x4e8f30
call fcn.0044cd90
test eax, eax
je 0x43a49c
xor esi, esi
cmp dword [0x4e8f58], esi
jle 0x43a660
mov eax, dword [0x4e8f54]
push dword [eax + esi*4]
call fcn.0044caf0
test eax, eax
je 0x43a49c
inc esi
cmp esi, dword [0x4e8f58]
jl 0x43a642
xor esi, esi
cmp dword [0x4e8f44], esi
jle 0x43a68e
nop word [eax + eax]
mov eax, dword [0x4e8f40]
push dword [eax + esi*4]
call fcn.0044caf0
test eax, eax
je 0x43a49c
inc esi
cmp esi, dword [0x4e8f44]
jl 0x43a670
push dword [0x4e8f54]
call fcn.0049ee02
mov edx, dword [0x4e91a0]
add esp, 4
test edx, edx
je 0x43a78f
mov eax, dword [edx + 0x10]
cmp dword [eax + 4], 0
je 0x43a77f
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0x18]
test ecx, ecx
je 0x43a77f
lea eax, [esp + 0xc]
push eax
push str.Line
call fcn.00478fc0
test eax, eax
je 0x43a71f
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x43a70a
cmp ecx, 6
je 0x43a6f6
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x4e91ac], eax
mov dword [0x4e91b0], ecx
jmp 0x43a72a
mov ecx, 0x4cdea8
xor eax, eax
mov dword [0x4e91ac], eax
mov dword [0x4e91b0], ecx
jmp 0x43a72a
mov eax, dword [eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
mov dword [0x4e91ac], eax
mov dword [0x4e91b0], ecx
jmp 0x43a72a
mov ecx, dword [0x4e91b0]
mov eax, dword [0x4e91ac]
test esi, esi
mov dword [0x4e9574], 0
mov edx, 0x4cdea8
cmovne edx, esi
cmp byte [0x4e9607], 0
je 0x43a76e
cmp byte [0x4e9604], 0
jne 0x43a76e
push ecx
push eax
push edx
push str.Unknown_class.
mov ecx, 0x4e8f30
call fcn.0040c700
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push edx
push 0
push str.Unknown_class.
jmp 0x43a492
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov dword [0x4e91a0], 0
push dword [0x4e95e8]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ecx
push dword [0x4e95e8]
mov ecx, 0x4e4e98
call fcn.0044dd00
push 0
push 0
push 0
push 0
push 7
mov ecx, 0x4e8f30
call fcn.00440020
test eax, eax
je 0x43a49c
push dword [0x4e8f30]
mov ecx, 0x4e8f30
call fcn.00444a40
test eax, eax
je 0x43a49c
xor eax, eax
cmp byte [0x4e960c], al
pop edi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 4