Function at 0x43a480
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.004b5e80
mov ecx, dword [0x4ea588]
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
cmove esi, dword [0x4ea56c]
mov word [0x4ea58c], 0
test ecx, ecx
jne 0x43a5d2
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x43a5cc
cmp byte [0x4ea58f], 0
jne 0x43a510
push esi
push str.Script_file_not_found.
push str._s_n_s
lea eax, [esp + 0x1c]
push 0x8018
push eax
call fcn.00481690
add esp, 0x14
lea ecx, [esp + 0x10]
xorps xmm3, xmm3
mov edx, 0x10
push 0
push 0
call fcn.004871d0
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4ea500]
mov al, byte [0x4ea58c]
mov dword [0x4e8fe8], 0x4ea56c
test ecx, ecx
je 0x43a574
test al, al
je 0x43a578
mov eax, dword [0x4e4788]
cmp dword [eax + 0x34], 0
jne 0x43a54f
cmp dword [0x4ea534], 0
jne 0x43a54f
cmp byte [0x4e9e3e], 0
jne 0x43a54f
push 0
push ecx
jmp 0x43a5aa
push 0
push 0
push ecx
push 0x4cee30
push str.Script_file_not_found.
mov ecx, 0x4e9ec0
call fcn.0040c4b0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test al, al
jne 0x43a5a6
push dword [0x4ea13c]
movzx eax, word [0x4ea138]
mov ecx, 0x4e9ec0
push eax
push 0x4cee30
push str.Script_file_not_found.
call fcn.0040c940
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x4cee30
push 0
push str.Script_file_not_found.
mov ecx, 0x4e9ec0
call fcn.0040d630
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4ea588]
mov ebx, dword [0x4e8fec]
cmp ecx, 2
push 0
mov eax, 0x4d2a68
mov dword [esp + 0x10], 0
cmovne eax, esi
mov ecx, 0x4e9ec0
push 0
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0043aa80
mov esi, dword [esp + 0xc]
mov edi, eax
cmp edi, 3
jne 0x43a618
push ebx
push esi
mov ecx, 0x4e9ec0
call fcn.0043b1c0
mov edi, eax
test esi, esi
je 0x43a624
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
test edi, edi
je 0x43a5c0
push 0
mov byte [0x4e8df3], 0
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
test eax, eax
jne 0x43a6f8
mov edx, dword [0x4ea500]
mov al, byte [0x4ea58c]
test edx, edx
je 0x43a6a8
test al, al
je 0x43a6a8
mov eax, dword [0x4e4788]
cmp dword [eax + 0x34], 0
jne 0x43a683
cmp dword [0x4ea534], 0
jne 0x43a683
cmp byte [0x4e9e3e], 0
jne 0x43a683
push 0
push edx
push 0x4cee30
push 0
push str.An_internal_function_call_failed.
jmp 0x43a5b6
push 0
push 0
push edx
push 0x4cee30
push str.An_internal_function_call_failed.
mov ecx, 0x4e9ec0
call fcn.0040c4b0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4ea58f], 0
je 0x43a6e3
test al, al
jne 0x43a6e3
push dword [0x4ea13c]
movzx eax, word [0x4ea138]
mov ecx, 0x4e9ec0
push eax
push 0x4cee30
push str.An_internal_function_call_failed.
call fcn.0040c940
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x4cee30
push 0
push str.An_internal_function_call_failed.
jmp 0x43a5b6
push dword [0x4e9ec0]
mov ecx, 0x4e9ec0
call fcn.00444c10
test eax, eax
je 0x43a5c0
push 0x4e9ee4
mov ecx, 0x4e9ec0
call fcn.00444ce0
test eax, eax
je 0x43a5c0
push 0x4e9ed0
mov ecx, 0x4e9ec0
call fcn.00444ce0
test eax, eax
je 0x43a5c0
mov ecx, 0x4e9ec0
call fcn.0044d000
test eax, eax
je 0x43a5c0
xor esi, esi
cmp dword [0x4e9ee8], esi
jle 0x43a77e
nop word [eax + eax]
mov eax, dword [0x4e9ee4]
push dword [eax + esi*4]
call fcn.0044cd10
test eax, eax
je 0x43a5c0
inc esi
cmp esi, dword [0x4e9ee8]
jl 0x43a760
xor esi, esi
cmp dword [0x4e9ed4], esi
jle 0x43a7ae
nop dword [eax + eax]
mov eax, dword [0x4e9ed0]
push dword [eax + esi*4]
call fcn.0044cd10
test eax, eax
je 0x43a5c0
inc esi
cmp esi, dword [0x4e9ed4]
jl 0x43a790
push dword [0x4e9ee4]
call fcn.0049f942
mov edx, dword [0x4ea12c]
add esp, 4
test edx, edx
je 0x43a8b1
mov eax, dword [edx + 0x10]
cmp dword [eax + 4], 0
je 0x43a8a1
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0x18]
test ecx, ecx
je 0x43a8a1
lea eax, [esp + 0xc]
push eax
push str.Line
call fcn.004791a0
test eax, eax
je 0x43a83f
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x43a82a
cmp ecx, 6
je 0x43a816
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x4ea138], eax
mov dword [0x4ea13c], ecx
jmp 0x43a845
mov ecx, 0x4cee30
xor eax, eax
mov dword [0x4ea138], eax
mov dword [0x4ea13c], ecx
jmp 0x43a845
mov eax, dword [eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
mov dword [0x4ea138], eax
mov dword [0x4ea13c], ecx
jmp 0x43a845
mov ecx, dword [0x4ea13c]
test esi, esi
mov dword [0x4ea500], 0
mov edx, 0x4cee30
cmovne edx, esi
cmp byte [0x4ea58f], 0
je 0x43a890
cmp byte [0x4ea58c], 0
jne 0x43a890
movzx eax, word [0x4ea138]
push ecx
push eax
push edx
push str.Unknown_class.
mov ecx, 0x4e9ec0
call fcn.0040c940
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 0x43a5b6
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov dword [0x4ea12c], 0
push dword [0x4ea570]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ecx
push dword [0x4ea570]
mov ecx, 0x4e5e18
call fcn.0044df90
push 0
push 0
push 0
push 0
push 7
mov ecx, 0x4e9ec0
call fcn.00440300
test eax, eax
je 0x43a5c0
push dword [0x4e9ec0]
mov ecx, 0x4e9ec0
call fcn.00444d40
test eax, eax
je 0x43a5c0
xor eax, eax
cmp byte [0x4ea594], al
pop edi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 4