Function at 0x43a220
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.004b5400
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 0x43a372
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x43a36c
cmp byte [0x4e9607], 0
jne 0x43a2b0
push esi
push str.Script_file_not_found.
push str._s_n_s
lea eax, [esp + 0x1c]
push 0x8018
push eax
call fcn.004814a0
add esp, 0x14
lea ecx, [esp + 0x10]
xorps xmm3, xmm3
mov edx, 0x10
push 0
push 0
call fcn.00486910
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 0x43a314
test al, al
je 0x43a318
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x43a2ef
cmp dword [0x4e95ac], 0
jne 0x43a2ef
cmp byte [0x4e8ec6], 0
jne 0x43a2ef
push 0
push ecx
jmp 0x43a34a
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 0x43a346
push dword [0x4e91b0]
movzx eax, word [0x4e91ac]
mov ecx, 0x4e8f30
push eax
push 0x4cdea8
push str.Script_file_not_found.
call fcn.0040c6f0
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.0040d3e0
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, 0x4d1b0c
mov dword [esp + 0x10], 0
cmovne eax, esi
mov ecx, 0x4e8f30
push 0
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0043a820
mov esi, dword [esp + 0xc]
mov edi, eax
cmp edi, 3
jne 0x43a3b8
push ebx
push esi
mov ecx, 0x4e8f30
call fcn.0043af70
mov edi, eax
test esi, esi
je 0x43a3c4
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
test edi, edi
je 0x43a360
push 0
mov byte [0x4e7e7b], 0
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
test eax, eax
jne 0x43a498
mov edx, dword [0x4e9574]
mov al, byte [0x4e9604]
test edx, edx
je 0x43a448
test al, al
je 0x43a448
mov eax, dword [0x4e37f8]
cmp dword [eax + 0x34], 0
jne 0x43a423
cmp dword [0x4e95ac], 0
jne 0x43a423
cmp byte [0x4e8ec6], 0
jne 0x43a423
push 0
push edx
push 0x4cdea8
push 0
push str.An_internal_function_call_failed.
jmp 0x43a356
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 0x43a483
test al, al
jne 0x43a483
push dword [0x4e91b0]
movzx eax, word [0x4e91ac]
mov ecx, 0x4e8f30
push eax
push 0x4cdea8
push str.An_internal_function_call_failed.
call fcn.0040c6f0
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 0x43a356
push dword [0x4e8f30]
mov ecx, 0x4e8f30
call fcn.00444670
test eax, eax
je 0x43a360
push 0x4e8f54
mov ecx, 0x4e8f30
call fcn.00444740
test eax, eax
je 0x43a360
push 0x4e8f40
mov ecx, 0x4e8f30
call fcn.00444740
test eax, eax
je 0x43a360
mov ecx, 0x4e8f30
call fcn.0044cac0
test eax, eax
je 0x43a360
xor esi, esi
cmp dword [0x4e8f58], esi
jle 0x43a51e
nop word [eax + eax]
mov eax, dword [0x4e8f54]
push dword [eax + esi*4]
call fcn.0044c820
test eax, eax
je 0x43a360
inc esi
cmp esi, dword [0x4e8f58]
jl 0x43a500
xor esi, esi
cmp dword [0x4e8f44], esi
jle 0x43a54e
nop dword [eax + eax]
mov eax, dword [0x4e8f40]
push dword [eax + esi*4]
call fcn.0044c820
test eax, eax
je 0x43a360
inc esi
cmp esi, dword [0x4e8f44]
jl 0x43a530
push dword [0x4e8f54]
call fcn.0049ebe2
mov edx, dword [0x4e91a0]
add esp, 4
test edx, edx
je 0x43a651
mov eax, dword [edx + 0x10]
cmp dword [eax + 4], 0
je 0x43a641
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0x18]
test ecx, ecx
je 0x43a641
lea eax, [esp + 0xc]
push eax
push str.Line
call fcn.00478df0
test eax, eax
je 0x43a5df
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x43a5ca
cmp ecx, 6
je 0x43a5b6
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x4e91ac], eax
mov dword [0x4e91b0], ecx
jmp 0x43a5e5
mov ecx, 0x4cdea8
xor eax, eax
mov dword [0x4e91ac], eax
mov dword [0x4e91b0], ecx
jmp 0x43a5e5
mov eax, dword [eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
mov dword [0x4e91ac], eax
mov dword [0x4e91b0], ecx
jmp 0x43a5e5
mov ecx, dword [0x4e91b0]
test esi, esi
mov dword [0x4e9574], 0
mov edx, 0x4cdea8
cmovne edx, esi
cmp byte [0x4e9607], 0
je 0x43a630
cmp byte [0x4e9604], 0
jne 0x43a630
movzx eax, word [0x4e91ac]
push ecx
push eax
push edx
push str.Unknown_class.
mov ecx, 0x4e8f30
call fcn.0040c6f0
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 0x43a356
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.0044da30
push 0
push 0
push 0
push 0
push 7
mov ecx, 0x4e8f30
call fcn.0043fe50
test eax, eax
je 0x43a360
push dword [0x4e8f30]
mov ecx, 0x4e8f30
call fcn.004447f0
test eax, eax
je 0x43a360
xor eax, eax
cmp byte [0x4e960c], al
pop edi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 4