Function at 0x43bb20
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.004badd0
mov ecx, dword [0x4f0718]
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
cmove esi, dword [0x4f06fc]
mov word [0x4f071c], 0
test ecx, ecx
jne 0x43bc72
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x43bc6c
cmp byte [0x4f071f], 0
jne 0x43bbb0
push esi
push str.Script_file_not_found.
push str._s_n_s
lea eax, [esp + 0x1c]
push 0x8018
push eax
call fcn.004868c0
add esp, 0x14
lea ecx, [esp + 0x10]
xorps xmm3, xmm3
mov edx, 0x10
push 0
push 0
call fcn.0048be80
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4f068c]
mov al, byte [0x4f071c]
mov dword [0x4ef190], 0x4f06fc
test ecx, ecx
je 0x43bc14
test al, al
je 0x43bc18
mov eax, dword [0x4ea828]
cmp dword [eax + 0x34], 0
jne 0x43bbef
cmp dword [0x4f06c4], 0
jne 0x43bbef
cmp byte [0x4effe6], 0
jne 0x43bbef
push 0
push ecx
jmp 0x43bc4a
push 0
push 0
push ecx
push 0x4d3ee8
push str.Script_file_not_found.
mov ecx, 0x4f0050
call fcn.0040c540
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test al, al
jne 0x43bc46
push dword [0x4f02c8]
movzx eax, word [0x4f02c4]
mov ecx, 0x4f0050
push eax
push 0x4d3ee8
push str.Script_file_not_found.
call fcn.0040cb20
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x4d3ee8
push 0
push str.Script_file_not_found.
mov ecx, 0x4f0050
call fcn.0040d820
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4f0718]
mov ebx, dword [0x4ef194]
cmp ecx, 2
push 0
mov eax, 0x4d7c6c
mov dword [esp + 0x10], 0
cmovne eax, esi
mov ecx, 0x4f0050
push 0
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0043c150
mov esi, dword [esp + 0xc]
mov edi, eax
cmp edi, 3
jne 0x43bcb8
push ebx
push esi
mov ecx, 0x4f0050
call fcn.0043c8a0
mov edi, eax
test esi, esi
je 0x43bcc4
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
test edi, edi
je 0x43bc60
push 0
mov byte [0x4ef005], 0
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
test eax, eax
jne 0x43bd98
mov edx, dword [0x4f068c]
mov al, byte [0x4f071c]
test edx, edx
je 0x43bd48
test al, al
je 0x43bd48
mov eax, dword [0x4ea828]
cmp dword [eax + 0x34], 0
jne 0x43bd23
cmp dword [0x4f06c4], 0
jne 0x43bd23
cmp byte [0x4effe6], 0
jne 0x43bd23
push 0
push edx
push 0x4d3ee8
push 0
push str.An_internal_function_call_failed.
jmp 0x43bc56
push 0
push 0
push edx
push 0x4d3ee8
push str.An_internal_function_call_failed.
mov ecx, 0x4f0050
call fcn.0040c540
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [0x4f071f], 0
je 0x43bd83
test al, al
jne 0x43bd83
push dword [0x4f02c8]
movzx eax, word [0x4f02c4]
mov ecx, 0x4f0050
push eax
push 0x4d3ee8
push str.An_internal_function_call_failed.
call fcn.0040cb20
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x4d3ee8
push 0
push str.An_internal_function_call_failed.
jmp 0x43bc56
push dword [0x4f0050]
mov ecx, 0x4f0050
call fcn.00447890
test eax, eax
je 0x43bc60
xor edi, edi
cmp dword [0x4f0064], edi
jle 0x43be4a
nop
mov eax, dword [0x4f0060]
mov esi, dword [eax + edi*4]
mov eax, dword [esi + 0x44]
test eax, eax
je 0x43bddf
test byte [eax + 0x7e], 1
je 0x43bddf
cmp byte [esi + 0x7e], 0x42
jne 0x43bddf
mov byte [esi + 0x7e], 1
mov eax, dword [0x4ea828]
mov ecx, 0x4f0050
mov dword [eax + 0x18], esi
push dword [esi + 0x30]
call fcn.00447890
test eax, eax
je 0x43bc60
cmp dword [0x4f0088], 0
je 0x43be3d
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x20]
cmp edx, ecx
jge 0x43be3d
dec ecx
cmp ecx, edx
jl 0x43be3d
mov ebx, dword [esi + 0x34]
mov eax, ecx
shl eax, 4
add eax, 6
add eax, ebx
cmp word [eax], 5
je 0x43be31
dec ecx
sub eax, 0x10
cmp ecx, edx
jge 0x43be21
jmp 0x43be3d
add ecx, ecx
mov eax, dword [ebx + ecx*8 + 8]
mov eax, dword [eax + 0x14]
mov dword [esi + 0x30], eax
inc edi
cmp edi, dword [0x4f0064]
jl 0x43bdc0
mov eax, dword [0x4ea828]
mov ecx, 0x4f0050
mov dword [eax + 0x18], 0
call fcn.0044ff80
test eax, eax
je 0x43bc60
xor esi, esi
cmp dword [0x4f0064], esi
jle 0x43be90
mov eax, dword [0x4f0060]
push dword [eax + esi*4]
call fcn.0044fc90
test eax, eax
je 0x43bc60
inc esi
cmp esi, dword [0x4f0064]
jl 0x43be72
mov edx, dword [0x4f02b8]
test edx, edx
je 0x43bf8a
mov eax, dword [edx + 0x10]
cmp dword [eax + 4], 0
je 0x43bf7a
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0x18]
test ecx, ecx
je 0x43bf7a
lea eax, [esp + 0xc]
push eax
push str.Line
call fcn.0047dec0
test eax, eax
je 0x43bf18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x43bf03
cmp ecx, 6
je 0x43beef
cmp ecx, 0x4c
je 0x43beef
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x4f02c4], eax
mov dword [0x4f02c8], ecx
jmp 0x43bf1e
mov ecx, 0x4d3ee8
xor eax, eax
mov dword [0x4f02c4], eax
mov dword [0x4f02c8], ecx
jmp 0x43bf1e
mov eax, dword [eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
mov dword [0x4f02c4], eax
mov dword [0x4f02c8], ecx
jmp 0x43bf1e
mov ecx, dword [0x4f02c8]
test esi, esi
mov dword [0x4f068c], 0
mov edx, 0x4d3ee8
cmovne edx, esi
cmp byte [0x4f071f], 0
je 0x43bf69
cmp byte [0x4f071c], 0
jne 0x43bf69
movzx eax, word [0x4f02c4]
push ecx
push eax
push edx
push str.Unknown_class.
mov ecx, 0x4f0050
call fcn.0040cb20
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 0x43bc56
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov dword [0x4f02b8], 0
push dword [0x4f0700]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ecx
push dword [0x4f0700]
mov ecx, 0x4ebf20
call fcn.00450f00
push 0
push 0
push 0
push 6
mov ecx, 0x4f0050
call fcn.00442930
test eax, eax
je 0x43bc60
push dword [0x4f0050]
mov ecx, 0x4f0050
call fcn.00447960
test eax, eax
je 0x43bc60
xor eax, eax
cmp byte [0x4f0724], al
pop edi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret 4