Function at 0x401200
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x510
mov eax, dword [0x418004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x510], edx
mov esi, ecx
call fcn.004014c0
push eax
mov edx, esi
call fcn.00401070
mov edi, eax
push edi
mov dword [ebp - 0x50c], edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, eax
mov dword [0x4191c4], ecx
test ecx, ecx
jne 0x4012e9
push 0x103
lea eax, [ebp - 0x108]
xor ebx, ebx
push eax
push dword [0x4191c8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401270
sub ecx, edx
lea edi, [ebp - 0x108]
mov edx, dword [ebp - 0x50c]
add edi, ecx
mov ecx, dword [0x4191c4]
mov esi, edi
sub esi, edx
inc esi
lea eax, [ebp - 0x108]
cmp edi, eax
jbe 0x4012e3
mov al, byte [edi]
cmp al, 0x2f
je 0x4012aa
cmp al, 0x3a
je 0x4012aa
cmp al, 0x5c
jne 0x4012dd
mov eax, edx
lea esp, [esp]
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [esi + eax - 1], cl
test cl, cl
jne 0x4012b0
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edx, dword [ebp - 0x50c]
mov ecx, eax
mov dword [0x4191c4], ecx
mov ebx, 1
dec edi
dec esi
test ebx, ebx
je 0x401292
mov edi, dword [ebp - 0x50c]
cmp ecx, 0x20
jb 0x4013d3
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.Dyalog_LoadWorkspace
push ecx
call esi
xor ebx, ebx
mov dword [0x41930c], eax
push str.Dyalog_RunLX
push dword [0x4191c4]
test eax, eax
setne bl
call esi
xor ecx, ecx
mov dword [0x419300], eax
test eax, eax
push str.Dyalog_Initialize
push dword [0x4191c4]
setne cl
and ebx, ecx
call esi
xor ecx, ecx
mov dword [0x4192fc], eax
test eax, eax
push str.Dyalog_Load
push dword [0x4191c4]
setne cl
and ebx, ecx
call esi
xor ecx, ecx
mov dword [0x419310], eax
test eax, eax
push str.Dyalog_RegisterActiveXControls
push dword [0x4191c4]
setne cl
and ebx, ecx
call esi
xor ecx, ecx
mov dword [0x4192f8], eax
test eax, eax
push str.Dyalog_DllCanUnloadNow
push dword [0x4191c4]
setne cl
and ebx, ecx
call esi
xor ecx, ecx
mov dword [0x419304], eax
test eax, eax
push str.Dyalog_DllGetClassObject
push dword [0x4191c4]
setne cl
and ebx, ecx
call esi
mov edx, dword [ebp - 0x510]
xor ecx, ecx
test eax, eax
mov dword [0x419308], eax
setne cl
and ebx, ecx
call fcn.00401100
and ebx, eax
jne 0x4013cf
push dword [0x4191c4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x4191c4], ebx
test ebx, ebx
jne 0x40143f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7e
jne 0x4013fa
push edi
push str.APL_Runtime_Engine
lea eax, [ebp - 0x508]
push str.The__s___s__could_not_be_found.
push eax
call fcn.00401040
add esp, 0x10
jmp 0x401415
push eax
push edi
push str.APL_Runtime_Engine
lea eax, [ebp - 0x508]
push str.Could_not_load_the__s.___s:_Error__i__n_r
push eax
call fcn.00401040
add esp, 0x14
test byte [0x4191c0], 2
lea eax, [ebp - 0x508]
je 0x40142f
push eax
call fcn.00401010
add esp, 4
jmp 0x40143f
push 0
push str.Error
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [0x4191c4], 0x20
mov ecx, dword [ebp - 4]
pop edi
sbb eax, eax
xor ecx, ebp
pop esi
inc eax
pop ebx
call fcn.00401671
mov esp, ebp
pop ebp
ret