Function at 0x403c80
Capabilities:
Link many functions at runtime
Query environment variable

Disassembly:
mov eax, 0x2828
call fcn.00416270
mov eax, dword [0x43b03c]
xor eax, esp
mov dword [esp + 0x2824], eax
push ebx
push esi
xor ebx, ebx
xor esi, esi
mov dword [0x43c5f4], 0x206
cmp dword [0x43c600], ebx
je 0x403ccf
pop esi
mov dword [0x43c5f4], ebx
or al, 0xff
pop ebx
mov ecx, dword [esp + 0x2824]
xor ecx, esp
call fcn.004152b4
add esp, 0x2828
ret
push ebp
push edi
call fcn.00403b50
push 0x800
lea eax, [esp + 0x438]
push ebx
push eax
call fcn.00415a70
mov ebp, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
add esp, 0xc
push 0x800
lea ecx, [esp + 0x438]
push ecx
push str.MGLS_DLL
call ebp
cmp byte [esp + 0x434], bl
je 0x403d5f
lea eax, [esp + 0x434]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x403d20
sub eax, edx
je 0x403d5f
push 0xffffffffffffffff
lea edx, [esp + 0x438]
push edx
lea eax, [esp + 0x143c]
push 0x800
push eax
call fcn.004159af
add esp, 0x10
lea ecx, [esp + 0x434]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
jmp 0x403f91
mov eax, dword [0x43c604]
cmp eax, ebx
je 0x403daf
push 0xffffffffffffffff
push eax
lea edx, [esp + 0x43c]
push 0x800
push edx
call fcn.004159af
mov eax, dword [0x43c604]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x144c]
push 0x800
push ecx
call fcn.004159af
add esp, 0x20
lea edx, [esp + 0x434]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
jmp 0x403f91
push 0x104
lea eax, [esp + 0x230]
push ebx
push eax
call fcn.00415a70
push 0x104
lea ecx, [esp + 0x38]
push ebx
push ecx
call fcn.00415a70
add esp, 0x18
push 0x104
lea edx, [esp + 0x230]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp byte [esp + 0x22c], bl
je 0x404013
lea eax, [esp + 0x22c]
push 0x5c
push eax
call fcn.004168f0
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x403e6a
push 0x104
lea ecx, [esp + 0x334]
push ebx
push ecx
call fcn.00415a70
lea edx, [esp + 0x238]
mov eax, edx
push 0xffffffffffffffff
sub esi, eax
push edx
inc esi
lea ecx, [esp + 0x344]
push esi
push ecx
call fcn.004159af
push str.mgls.dll
lea edx, [esp + 0x350]
push edx
push str._s_s
lea eax, [esp + 0x50]
push 0x104
push eax
call fcn.004161b2
add esp, 0x30
jmp 0x403e86
push str.mgls.dll
push str.._s
lea ecx, [esp + 0x30]
push 0x104
push ecx
call fcn.004161b2
add esp, 0x10
cmp byte [esp + 0x28], 0x22
lea esi, [esp + 0x28]
jne 0x403e95
lea esi, [esp + 0x29]
push 0xffffffffffffffff
push esi
lea edx, [esp + 0x143c]
push 0x800
push edx
call fcn.004159af
add esp, 0x10
push esi
call edi
mov esi, eax
cmp esi, ebx
jne 0x403f91
push 0x800
lea ecx, [esp + 0xc38]
push ebx
push ecx
call fcn.00415a70
add esp, 0xc
push 0x800
lea edx, [esp + 0xc38]
push edx
push str.MGC_HOME
call ebp
cmp byte [esp + 0xc34], bl
je 0x403f91
lea eax, [esp + 0xc34]
lea edx, [eax + 1]
jmp 0x403f00
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x403f00
sub eax, edx
je 0x403f91
push 0x104
lea eax, [esp + 0x2c]
push ebx
push eax
call fcn.00415a70
push str.mgls.dll
lea ecx, [esp + 0xc44]
push ecx
push str._slib_s
lea edx, [esp + 0x40]
push 0x104
push edx
call fcn.004161b2
push 0xffffffffffffffff
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xc5c]
push 0x800
push ecx
call fcn.004159af
add esp, 0x30
lea edx, [esp + 0xc34]
push edx
call edi
mov esi, eax
cmp esi, ebx
jne 0x403f91
lea eax, [esp + 0xc34]
push eax
lea ecx, [esp + 0x1438]
push ecx
push str._s__s
mov edx, ecx
push 0x800
push edx
call fcn.004161b2
add esp, 0x14
mov edi, dword [0x43c604]
call fcn.004038a0
cmp esi, ebx
jne 0x404034
lea eax, [esp + 0x1434]
push eax
push str.Could_not_load_mgls.dll_from_expected_location_____s__
lea ecx, [esp + 0x1c3c]
push 0x400
push ecx
call fcn.004161b2
push str.Failed_to_load_required_MGLS_dll.
call fcn.00404320
lea edx, [esp + 0x1c48]
push edx
call fcn.00404320
push str.MGLS_Error_n
push 1
call fcn.00404aa0
push str.__Failed_to_load_required_MGLS_dll._n
push 1
call fcn.00404aa0
lea eax, [esp + 0x1c5c]
push eax
push str.___s_n_n
push 1
call fcn.00404aa0
add esp, 0x34
call fcn.00404950
jmp 0x4042db
push 0xffffffffffffffff
push str.Unable_to_determine_application_location_n.
lea eax, [esp + 0x143c]
push 0x800
push eax
call fcn.004159af
add esp, 0x10
jmp 0x403eba
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 6
push esi
call edi
mov dword [0x43c698], eax
cmp eax, ebx
jne 0x404067
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Failed_to_load_required_MGLS_dll.
mov dword [0x43c600], ebx
call fcn.00404320
add esp, 4
jmp 0x4042e1
push 7
push esi
call edi
mov dword [0x43c69c], eax
cmp eax, ebx
je 0x404048
push str.dll_version_s
push esi
call edi
push 0x29a
push esi
mov dword [0x43c648], eax
call edi
mov dword [0x43c64c], eax
cmp dword [0x43c648], ebx
je 0x40424c
cmp eax, ebx
je 0x40424c
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], ebx
call eax
call dword [0x43c648]
mov edi, eax
call fcn.00403ac0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x30]
call fcn.00403300
add esp, 0x14
test eax, eax
jne 0x404131
call dword [0x43c648]
push eax
push str.9.8.4.3
push str.This_application_requires_version__s_or_higher_of_the_Mentor_Graphics_licensing_software._nThis_computer_has_version__s_installed._n_nPlease_install_a_compatible_version_of_licensing_and_restart_this_application._n
lea ecx, [esp + 0x138]
push 0x100
push ecx
call fcn.004161b2
add esp, 0x14
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea edx, [esp + 0x12c]
push edx
call fcn.00404320
add esp, 4
jmp 0x4042db
push 0x800
lea eax, [esp + 0x438]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jbe 0x4041b3
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x43c]
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.imagehlp.dll_MapFileAndCheckSumA]
cmp eax, ebx
je 0x40418a
push eax
push str.Application_check_failed:__lu_n
lea ecx, [esp + 0x134]
push 0x100
push ecx
call fcn.004161b2
add esp, 0x10
jmp 0x404115
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x10]
je 0x4041b3
push str.Application_check_failed._n
lea ecx, [esp + 0x130]
push 0x100
push ecx
call fcn.004161b2
add esp, 0xc
jmp 0x404115
call fcn.00402e50
push esi
test al, al
jne 0x4041ce
mov dword [0x43c600], ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4042e1
call fcn.004043d0
add esp, 4
test al, al
jne 0x4041ec
push esi
mov dword [0x43c600], ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x4042e1
push 0x800
lea eax, [esp + 0x2038]
push ebx
push eax
mov dword [0x43c600], 0xff
mov dword [0x43c5f4], ebx
call fcn.00415a70
add esp, 0xc
push 0x800
lea ecx, [esp + 0x2038]
push ecx
push str.MGLS_LICENSE_FILE
call ebp
cmp byte [esp + 0x2034], bl
je 0x404245
cmp eax, ebx
je 0x404245
lea edx, [esp + 0x2034]
push edx
push 8
call fcn.00403340
add esp, 8
or al, 0xff
jmp 0x4042e3
push str.dll_version
push esi
call edi
mov dword [0x43c644], eax
cmp eax, ebx
jne 0x404273
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.Unable_to_determine_dll_version___please_re_install_licensing.
call fcn.00404320
add esp, 4
jmp 0x4042db
call dword [0x43c644]
sub esp, 8
fstp qword [esp]
push str._.3f
lea eax, [esp + 0x138]
push 0x100
push eax
call fcn.004161b2
add esp, 0x14
lea edi, [esp + 0x12c]
call fcn.00403ac0
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, edi
push ecx
push str.9.8.4.3
push str.This_application_requires_version__s_or_higher_of_the_Mentor_Graphics_licensing_software._nThis_computer_has_version__s_installed._n_nPlease_install_a_compatible_version_of_licensing_and_restart_this_application._n
lea edx, [esp + 0x33c]
push 0x100
push edx
call fcn.004161b2
lea eax, [esp + 0x344]
push eax
call fcn.00404320
add esp, 0x18
mov dword [0x43c600], ebx
xor al, al
mov ecx, dword [esp + 0x2834]
pop edi
pop ebp
pop esi
pop ebx
xor ecx, esp
call fcn.004152b4
add esp, 0x2828
ret