Function at 0x43a320
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.004b57d0
mov ecx, dword [0x4ea600]
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
cmove esi, dword [0x4ea5e4]
mov word [0x4ea604], 0
test ecx, ecx
jne 0x43a47f
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x43a479
cmp byte [0x4ea607], 0
jne 0x43a3b0
push esi
push str.Script_file_not_found.
push str._s_n_s
lea eax, [esp + 0x1c]
push 0x8018
push eax
call fcn.00481810
add esp, 0x14
lea ecx, [esp + 0x10]
xorps xmm3, xmm3
mov edx, 0x10
push 0
push 0
call fcn.00486ce0
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4ea574]
mov al, byte [0x4ea604]
mov dword [0x4e9070], 0x4ea5e4
test ecx, ecx
je 0x43a421
test al, al
je 0x43a425
cmp byte [0x4e9f15], 0
jne 0x43a46d
mov eax, dword [0x4e47f8]
cmp dword [eax + 0x34], 0
jne 0x43a3fc
cmp dword [0x4ea5ac], 0
jne 0x43a3fc
cmp byte [0x4e9ec6], 0
jne 0x43a3fc
push 0
push ecx
jmp 0x43a457
push 0
push 0
push ecx
push 0x4ceea8
push str.Script_file_not_found.
mov ecx, 0x4e9f30
call fcn.0040c290
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test al, al
jne 0x43a453
push dword [0x4ea1b0]
movzx eax, word [0x4ea1ac]
mov ecx, 0x4e9f30
push eax
push 0x4ceea8
push str.Script_file_not_found.
call fcn.0040c740
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x4ceea8
push 0
push str.Script_file_not_found.
mov ecx, 0x4e9f30
call fcn.0040d480
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4ea600]
mov ebx, dword [0x4e9074]
cmp ecx, 2
push 0
mov eax, 0x4d2a74
mov dword [esp + 0x10], 0
cmovne eax, esi
mov ecx, 0x4e9f30
push 0
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0043a940
mov esi, dword [esp + 0xc]
mov edi, eax
cmp edi, 3
jne 0x43a4c5
push ebx
push esi
mov ecx, 0x4e9f30
call fcn.0043b0b0
mov edi, eax
test esi, esi
je 0x43a4d1
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
test edi, edi
je 0x43a46d
push 0
mov byte [0x4e8e7b], 0
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
test eax, eax
jne 0x43a5b2
mov edx, dword [0x4ea574]
mov al, byte [0x4ea604]
test edx, edx
je 0x43a562
test al, al
je 0x43a562
cmp byte [0x4e9f15], 0
jne 0x43a46d
mov eax, dword [0x4e47f8]
cmp dword [eax + 0x34], 0
jne 0x43a53d
cmp dword [0x4ea5ac], 0
jne 0x43a53d
cmp byte [0x4e9ec6], 0
jne 0x43a53d
push 0
push edx
push 0x4ceea8
push 0
push str.An_internal_function_call_failed.
jmp 0x43a463
push 0
push 0
push edx
push 0x4ceea8
push str.An_internal_function_call_failed.
mov ecx, 0x4e9f30
call fcn.0040c290
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4ea607], 0
je 0x43a59d
test al, al
jne 0x43a59d
push dword [0x4ea1b0]
movzx eax, word [0x4ea1ac]
mov ecx, 0x4e9f30
push eax
push 0x4ceea8
push str.An_internal_function_call_failed.
call fcn.0040c740
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x4ceea8
push 0
push str.An_internal_function_call_failed.
jmp 0x43a463
push dword [0x4e9f30]
mov ecx, 0x4e9f30
call fcn.00444850
test eax, eax
je 0x43a46d
push 0x4e9f54
mov ecx, 0x4e9f30
call fcn.00444920
test eax, eax
je 0x43a46d
push 0x4e9f40
mov ecx, 0x4e9f30
call fcn.00444920
test eax, eax
je 0x43a46d
mov ecx, 0x4e9f30
call fcn.0044cd30
test eax, eax
je 0x43a46d
xor esi, esi
cmp dword [0x4e9f58], esi
jle 0x43a63e
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [0x4e9f54]
push dword [eax + esi*4]
call fcn.0044ca90
test eax, eax
je 0x43a46d
inc esi
cmp esi, dword [0x4e9f58]
jl 0x43a620
xor esi, esi
cmp dword [0x4e9f44], esi
jle 0x43a66e
nop dword [eax + eax]
mov eax, dword [0x4e9f40]
push dword [eax + esi*4]
call fcn.0044ca90
test eax, eax
je 0x43a46d
inc esi
cmp esi, dword [0x4e9f44]
jl 0x43a650
push dword [0x4e9f54]
call fcn.0049efc2
mov edx, dword [0x4ea1a0]
add esp, 4
test edx, edx
je 0x43a771
mov eax, dword [edx + 0x10]
cmp dword [eax + 4], 0
je 0x43a761
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0x18]
test ecx, ecx
je 0x43a761
lea eax, [esp + 0xc]
push eax
push str.Line
call fcn.00479130
test eax, eax
je 0x43a6ff
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x43a6ea
cmp ecx, 6
je 0x43a6d6
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x4ea1ac], eax
mov dword [0x4ea1b0], ecx
jmp 0x43a705
mov ecx, 0x4ceea8
xor eax, eax
mov dword [0x4ea1ac], eax
mov dword [0x4ea1b0], ecx
jmp 0x43a705
mov eax, dword [eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
mov dword [0x4ea1ac], eax
mov dword [0x4ea1b0], ecx
jmp 0x43a705
mov ecx, dword [0x4ea1b0]
test esi, esi
mov dword [0x4ea574], 0
mov edx, 0x4ceea8
cmovne edx, esi
cmp byte [0x4ea607], 0
je 0x43a750
cmp byte [0x4ea604], 0
jne 0x43a750
movzx eax, word [0x4ea1ac]
push ecx
push eax
push edx
push str.Unknown_class.
mov ecx, 0x4e9f30
call fcn.0040c740
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 0x43a463
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov dword [0x4ea1a0], 0
push dword [0x4ea5e8]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ecx
push dword [0x4ea5e8]
mov ecx, 0x4e5e98
call fcn.0044dca0
push 0
push 0
push 0
push 0
push 7
mov ecx, 0x4e9f30
call fcn.00440000
test eax, eax
je 0x43a46d
push dword [0x4e9f30]
mov ecx, 0x4e9f30
call fcn.004449d0
test eax, eax
je 0x43a46d
xor eax, eax
cmp byte [0x4ea60c], al
pop edi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 4