Function at 0x4080b0
Capabilities:
Query environment variable

Disassembly:
push ebx
push esi
push edi
push 0
push 0
push str.MGC_DISABLE_ENHANCED_TUNING
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov ebx, eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x3c]
test edi, edi
je 0x4084d9
push ebp
mov ebp, dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneMaxHeightInUnits_double__enum_eDesignUnits_]
lea esp, [esp]
mov eax, dword [edi + 0x20]
cmp eax, 0x11f
jg case.0x408109.7
je 0x40848f
sub eax, 6
cmp eax, 0xf4
ja case.0x408109.7
movzx ecx, byte [eax + 0x408520]
jmp dword [ecx*4 + 0x4084e0]
mov edx, dword [edi + 0x30]
mov eax, dword [edx]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_static_int___cdecl_CJobPrefsDB::IsValidTuneAddLengthIterationValue_int_]
add esp, 4
test eax, eax
jne 0x408134
push 0x13b
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx]
mov ecx, dword [esi + 0xa8]
push edx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneAddLengthIterationsValue_int_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov eax, dword [edi + 0x30]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneAllowViasOption_int_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov edx, dword [edi + 0x30]
mov eax, dword [edx]
mov ecx, dword [esi + 0xa8]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetAutoTuneAutomaticUrgencyValue_enum_CJobPrefsDB::eAutomaticAutoTune_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
test ebx, ebx
jne case.0x408109.7
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx]
mov ecx, dword [esi + 0xa8]
push edx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetAutoTuneEffortValue_enum_CJobPrefsDB::eAutoTuneEffort_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov eax, dword [edi + 0x30]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetAutoTuneInteractiveUrgencyValue_enum_CJobPrefsDB::eInteractiveAutoTune_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov edx, dword [edi + 0x30]
mov eax, dword [edx]
mov ecx, dword [esi + 0xa8]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneIrregularPatternValue_enum_CJobPrefsDB::eTuneIrregularPattern_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
test ebx, ebx
jne case.0x408109.7
mov eax, dword [esi + 0xbc]
cmp eax, 4
jge 0x408267
mov ecx, dword [edi + 0x30]
fld qword [ecx]
mov ecx, dword [esi + 0xa8]
push eax
sub esp, 8
fstp qword [esp]
call ebp
jmp 0x40827e
mov edx, dword [edi + 0x30]
fld qword [edx]
call fcn.00410210
mov ecx, dword [esi + 0xa8]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneMaxHeight_int_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov eax, dword [esi + 0xbc]
cmp eax, 4
jge 0x4082bc
mov ecx, dword [esi + 0xa8]
push eax
mov eax, dword [edi + 0x30]
fld qword [eax]
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneMinHeightInUnits_double__enum_eDesignUnits_]
jmp 0x4082d3
mov ecx, dword [edi + 0x30]
fld qword [ecx]
call fcn.00410210
mov ecx, dword [esi + 0xa8]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneMinHeight_int_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
test ebx, ebx
je case.0x408109.7
mov eax, dword [esi + 0xbc]
cmp eax, 4
jge 0x408319
mov edx, dword [edi + 0x30]
fld qword [edx]
mov ecx, dword [esi + 0xa8]
push eax
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneMinLengthInUnits_double__enum_eDesignUnits_]
jmp 0x408330
mov eax, dword [edi + 0x30]
fld qword [eax]
call fcn.00410210
mov ecx, dword [esi + 0xa8]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneMinLength_int_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov eax, dword [esi + 0xbc]
cmp eax, 4
jge 0x40836e
mov ecx, dword [edi + 0x30]
fld qword [ecx]
mov ecx, dword [esi + 0xa8]
push eax
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneMinSpacingInUnits_double__enum_eDesignUnits_]
jmp 0x408385
mov edx, dword [edi + 0x30]
fld qword [edx]
call fcn.00410210
mov ecx, dword [esi + 0xa8]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneMinSpacing_int_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov eax, dword [edi + 0x30]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneNonSerpentinePatternValue_enum_CJobPrefsDB::eTuneNonSerpentinePattern_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov edx, dword [edi + 0x30]
mov eax, dword [edx]
mov ecx, dword [esi + 0xa8]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTunePreventStairstepsOption_int_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx]
push edx
call dword [sym.imp.JobPrefsDBPI.dll_public:_static_int___cdecl_CJobPrefsDB::IsValidTuneReduceLengthIterationValue_int_]
add esp, 4
test eax, eax
jne 0x408418
push 0x13c
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov eax, dword [edi + 0x30]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneReduceLengthIterationsValue_int_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
mov edx, dword [edi + 0x30]
mov eax, dword [edx]
mov ecx, dword [esi + 0xa8]
push eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneRegularPatternValue_enum_CJobPrefsDB::eTuneRegularPattern_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
test ebx, ebx
je case.0x408109.7
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx]
mov ecx, dword [esi + 0xa8]
push edx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneSemiRegularPatternValue_enum_CJobPrefsDB::eTuneSemiRegularPattern_]
test eax, eax
je case.0x408109.7
push 0xe5
mov ecx, esi
call fcn.00401470
jmp case.0x408109.7
test ebx, ebx
jne case.0x408109.7
mov eax, dword [edi + 0x30]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneTrombonePatternValue_enum_CJobPrefsDB::eTuneTrombonePattern_]
test eax, eax
je case.0x408109.7
mov edx, dword [esi + 0xc4]
mov eax, dword [esi + 0xb4]
push 1
push edx
push ebx
push 0xe5
push eax
call fcn.00414d20
add esp, 0x14
inc dword [esi + 0xc0]
mov edi, dword [edi + 0x38]
test edi, edi
jne 0x4080e0
pop ebp
pop edi
pop esi
pop ebx
ret 4