Function at 0x40c5a0
Capabilities:
Delete file
Move file
Persist via application shimming
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x41dfcc
mov eax, dword fs:[0]
push eax
sub esp, 0x1e8
mov eax, dword [0x431c48]
xor eax, esp
mov dword [esp + 0x1b0], eax
push ebx
push esi
push edi
mov eax, dword [0x431c48]
xor eax, esp
push eax
lea eax, [esp + 0x1f8]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esp + 0x1c]
call fcn.0040d440
xor ebx, ebx
lea ecx, [esp + 0x34]
mov dword [esp + 0x200], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
call sub.mfc90.dll_Ordinal_580
lea ecx, [esp + 0x4c]
mov byte [esp + 0x200], 1
call sub.mfc90.dll_Ordinal_580
push str.JobPrefs.hkp
lea ecx, [esp + 0x24]
mov byte [esp + 0x204], 2
call dword [sym.imp.mfc90.dll_Ordinal_310]
push 0x421ed4
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 3
call dword [sym.imp.mfc90.dll_Ordinal_310]
push str.HKP2JobPrefsDB.txt
lea ecx, [esp + 0x28]
mov byte [esp + 0x204], 4
call dword [sym.imp.mfc90.dll_Ordinal_310]
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90.dll_Ordinal_316]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_316]
push str.JobPrefsDB.jpf
lea ecx, [esp + 0x18]
mov byte [esp + 0x204], 7
call dword [sym.imp.mfc90.dll_Ordinal_310]
mov edi, 1
mov byte [esp + 0x200], 8
mov dword [esp + 0x60], ebx
mov dword [esi + 0xd8], ebx
mov dword [esi + 0xd0], edi
mov dword [esi + 0xb8], ebx
call fcn.00414e10
mov edx, dword [esi + 0x48]
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x38]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call dword [sym.imp.mfc90.dll_Ordinal_310]
call fcn.004177d0
add esp, 0xc
cmp eax, ebx
jne 0x40c78d
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], edi
mov dword [esp + 0x30], eax
xor edi, edi
cmp edi, dword [esp + 0x30]
jge 0x40c767
cmp edi, ebx
jl 0x40c946
cmp edi, dword [esp + 0x3c]
jge 0x40c946
mov ecx, dword [esp + 0x38]
lea ecx, [ecx + edi*4]
push 0x421efc
call dword [sym.imp.mfc90.dll_Ordinal_1607]
test eax, eax
jne 0x40c7b3
cmp edi, dword [esp + 0x54]
jge 0x40c946
mov edx, dword [esp + 0x50]
lea eax, [edx + edi*4]
push eax
call fcn.00417280
add esp, 4
mov dword [esi + 0xb8], eax
cmp eax, 2
jne 0x40c760
mov dword [esp + 0x48], ebx
inc edi
cmp dword [esp + 0x48], ebx
jne 0x40c709
mov edx, dword [esp + 0x20]
cmp dword [edx - 0xc], ebx
je 0x40c78d
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], ebx
je 0x40c78d
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], ebx
je 0x40c78d
cmp dword [esp + 0x48], 1
je 0x40c94b
mov edx, dword [esi + 0x50]
push edx
lea eax, [esp + 0x30]
push 1
push eax
call dword [sym.imp.mfc90.dll_Ordinal_2538]
mov ecx, dword [esp + 0x38]
add esp, 0xc
push ebx
push 0x10
push ecx
call sub.mfc90.dll_Ordinal_1183
jmp 0x40d247
cmp edi, dword [esp + 0x3c]
jge 0x40c946
mov eax, dword [esp + 0x38]
lea ecx, [eax + edi*4]
push str.ilaopw
call dword [sym.imp.mfc90.dll_Ordinal_1607]
test eax, eax
jne 0x40c7f4
cmp edi, dword [esp + 0x54]
jge 0x40c946
mov ecx, dword [esp + 0x50]
lea eax, [ecx + edi*4]
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90.dll_Ordinal_817]
jmp 0x40c760
cmp edi, dword [esp + 0x3c]
jge 0x40c946
mov edx, dword [esp + 0x38]
lea ecx, [edx + edi*4]
push 0x421f04
call dword [sym.imp.mfc90.dll_Ordinal_1607]
test eax, eax
jne 0x40c844
push 0x421f08
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90.dll_Ordinal_820]
cmp edi, dword [esp + 0x54]
jge 0x40c946
mov eax, dword [esp + 0x50]
lea eax, [eax + edi*4]
push eax
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90.dll_Ordinal_817]
jmp 0x40c760
cmp edi, dword [esp + 0x3c]
jge 0x40c946
mov ecx, dword [esp + 0x38]
lea ecx, [ecx + edi*4]
push 0x421f0c
call dword [sym.imp.mfc90.dll_Ordinal_1607]
test eax, eax
jne 0x40c885
cmp edi, dword [esp + 0x54]
jge 0x40c946
mov edx, dword [esp + 0x50]
lea eax, [edx + edi*4]
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_817]
jmp 0x40c760
cmp edi, dword [esp + 0x3c]
jge 0x40c946
mov eax, dword [esp + 0x38]
lea ecx, [eax + edi*4]
push 0x421f10
call dword [sym.imp.mfc90.dll_Ordinal_1607]
test eax, eax
jne 0x40c8f0
push edi
lea ecx, [esp + 0x50]
call fcn.00401000
push eax
lea ecx, [esp + 0x68]
call fcn.0040d470
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x204], 9
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x64]
mov byte [esp + 0x200], 8
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x1c]
call fcn.0040f7e0
jmp 0x40c760
push 0x421f14
push edi
lea ecx, [esp + 0x3c]
call fcn.00401000
mov ecx, eax
call dword [sym.imp.mfc90.dll_Ordinal_1607]
test eax, eax
jne 0x40c918
mov dword [esp + 0x60], 1
jmp 0x40c760
push 0x421f18
push edi
lea ecx, [esp + 0x3c]
call fcn.00401000
mov ecx, eax
call dword [sym.imp.mfc90.dll_Ordinal_1607]
test eax, eax
jne 0x40c75c
mov dword [esi + 0xd8], 1
jmp 0x40c760
call sub.mfc90.dll_Ordinal_1252
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
add esp, 8
mov dword [esi + 0xb4], eax
cmp eax, ebx
jne 0x40c980
mov ecx, dword [esp + 0x24]
push ecx
push str.Could_not_open_log_file__s._n
call dword [sym.imp.MSVCR90.dll_printf]
add esp, 8
jmp 0x40d247
mov edx, dword [esp + 0x1c]
push 0x50
push edx
push 2
push eax
call fcn.004152a0
mov eax, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0x421f44
push eax
call fcn.00414cd0
add esp, 0x24
cmp dword [esp + 0x60], ebx
jne 0x40c9f5
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x94]
push ecx
push edx
call sub.mfc90.dll_Ordinal_3718
test eax, eax
je 0x40c9f5
mov eax, dword [esp + 0x14]
push eax
push eax
push 0xdd
push 0x43240c
call dword [sym.imp.mfc90.dll_Ordinal_2538]
mov eax, dword [0x43240c]
mov ecx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push eax
push ecx
call fcn.00414cd0
add esp, 0x24
jmp 0x40d247
cmp dword [esi + 0xd4], ebx
je 0x40ca32
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0xb0]
push edx
push eax
call dword [sym.imp.MSVCR90.dll__stricmp]
add esp, 8
test eax, eax
je 0x40ca32
mov ecx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0xd7
push ecx
call fcn.00414d20
add esp, 0x14
jmp 0x40d247
push 0x5c
call sub.mfc90.dll_Ordinal_798
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x200], 0xa
cmp eax, ebx
je 0x40ca56
mov ecx, eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_void___thiscall_CJobPrefsDB::constructor_void_]
jmp 0x40ca58
xor eax, eax
mov ecx, eax
mov byte [esp + 0x200], 8
mov dword [esi + 0xa8], eax
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::Init_void_]
test eax, eax
je 0x40ca8e
mov edx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0xd7
push edx
call fcn.00414d20
add esp, 0x14
jmp 0x40d247
cmp dword [esi + 0xd4], ebx
je 0x40cc8e
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x94]
push eax
push ecx
call sub.mfc90.dll_Ordinal_3718
test eax, eax
je 0x40cc8e
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0xa8]
push ebx
push edx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::Load_char_const___int_]
test eax, eax
je 0x40cae6
mov eax, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0x13f
push eax
call fcn.00414d20
add esp, 0x14
jmp 0x40d247
lea ecx, [esi + 0xcc]
push ecx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::GetNumberOfPhysicalLayers_int__]
test eax, eax
je 0x40cb19
mov edx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0x140
push edx
call fcn.00414d20
add esp, 0x14
jmp 0x40d247
lea ecx, [esp + 0x78]
call dword [sym.imp.JobPrefsDBPI.dll_public:_void___thiscall_CJobPrefsDBLayer::constructor_void_]
lea ecx, [esp + 0x68]
mov byte [esp + 0x200], 0xb
call dword [sym.imp.JobPrefsDBPI.dll_public:_void___thiscall_CJobPrefsDBViaSpan::constructor_void_]
mov ecx, dword [esi + 0xa8]
mov edi, dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::GetNextConductiveLayer_class_CJobPrefsDBLayer___int_]
push 1
lea eax, [esp + 0x7c]
push eax
mov byte [esp + 0x208], 0xc
call edi
test eax, eax
jne 0x40cb85
mov ebx, dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDBLayer::DeleteAllConductiveProperties_void_]
lea esp, [esp]
lea ecx, [esp + 0x78]
call ebx
lea ecx, [esp + 0x78]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDBLayer::DeleteAllPlaneNets_void_]
push 0
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [esi + 0xa8]
call edi
test eax, eax
je 0x40cb60
xor ebx, ebx
mov ecx, dword [esi + 0xa8]
mov edi, dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::GetNextViaSpan_class_CJobPrefsDBViaSpan___int_]
push 1
lea edx, [esp + 0x6c]
push edx
call edi
cmp eax, ebx
jne 0x40cbc9
mov ebx, dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDBViaSpan::RemoveAllDisabledViaPadstacks_void_]
lea ecx, [esp + 0x68]
call ebx
lea ecx, [esp + 0x68]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDBViaSpan::RemoveAllViaClearances_void_]
mov ecx, dword [esi + 0xa8]
push 0
lea eax, [esp + 0x6c]
push eax
call edi
test eax, eax
je 0x40cba4
xor ebx, ebx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllActiveModels_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllAutoRoutePasses_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllDRCWindows_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllFilteredNets_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllJumpers_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllPads_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllParts_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllPassiveModels_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllTechnologies_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllTestPointLocations_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllTestPointNets_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllUserLayers_void_]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::DeleteAllViaSpans_void_]
lea ecx, [esp + 0x68]
mov byte [esp + 0x200], 0xb
call dword [sym.imp.JobPrefsDBPI.dll_public:_void___thiscall_CJobPrefsDBViaSpan::destructor_void_]
lea ecx, [esp + 0x78]
mov byte [esp + 0x200], 8
call dword [sym.imp.JobPrefsDBPI.dll_public:_void___thiscall_CJobPrefsDBLayer::destructor_void_]
jmp 0x40cfc0
mov ecx, dword [esi + 0xb8]
push ecx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetBaseUnitsValue_enum_eBaseUnits_]
test eax, eax
je 0x40ccc1
mov edx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0xd0
push edx
call fcn.00414d20
add esp, 0x14
jmp 0x40d247
mov ecx, dword [esi + 0xa8]
push 1
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetSaveDesignBeforeRoutingOption_int_]
mov ecx, dword [esi + 0xa8]
push 1
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDelayDAFUpdateOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetGridlessPadEntryOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetIgnoreSameNetClearanceForThroughPadsOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetIgnoreSameNetClearanceForViasOption_int_]
fld qword [0x422430]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultViaTieLegWidthInUnits_double__enum_eDesignUnits_]
fld qword [0x422430]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultViaTieLegClearanceInUnits_double__enum_eDesignUnits_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultViaTieLegNumberValue_enum_CJobPrefsDB::eTieLegNumber_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultViaTieLegRotationValue_enum_CJobPrefsDB::eTieLegRotation_]
fld qword [0x422430]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultThroughPadTieLegWidthInUnits_double__enum_eDesignUnits_]
fld qword [0x422430]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultThroughPadTieLegClearanceInUnits_double__enum_eDesignUnits_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultThroughPadTieLegNumberValue_enum_CJobPrefsDB::eTieLegNumber_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultThroughPadTieLegRotationValue_enum_CJobPrefsDB::eTieLegRotation_]
fld qword [0x422430]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultSMDPadTieLegWidthInUnits_double__enum_eDesignUnits_]
fld qword [0x422430]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultSMDPadTieLegClearanceInUnits_double__enum_eDesignUnits_]
mov ecx, dword [esi + 0xa8]
push 3
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultSMDPadTieLegNumberValue_enum_CJobPrefsDB::eTieLegNumber_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultSMDPadTieLegRotationValue_enum_CJobPrefsDB::eTieLegRotation_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetFillNonSquareHatchAreasOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetRestrictPlaneToOrthogonalPatternsOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetSnapToHatchGridOption_int_]
mov ecx, dword [esi + 0xa8]
push 2
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultHatchPatternValue_enum_eGlobalHatchPatternType_]
fld qword [0x422430]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultHatchWidthInUnits_double__enum_eDesignUnits_]
fld qword [0x422430]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultHatchDistanceInUnits_double__enum_eDesignUnits_]
fldz
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDefaultMinimumPlaneGapDistanceInUnits_double__enum_eDesignUnits_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetSemiFixNonStandardTracesOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetSemiFixCustomPadTracesOption_int_]
fld qword [0x422428]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetMaxSemiFixLengthInUnits_double__enum_eDesignUnits_]
fldz
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetInternalMaxLengthOnRestrictedLayersInUnits_double__enum_eDesignUnits_]
fld qword [0x422420]
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDiffPairMaxConvergenceToleranceInUnits_double__enum_eDesignUnits_]
fldz
mov ecx, dword [esi + 0xa8]
push 3
sub esp, 8
fstp qword [esp]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDiffPairMaxSeparationDistanceInUnits_double__enum_eDesignUnits_]
mov ecx, dword [esi + 0xa8]
push 1
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetEnableInteractiveDRCOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetAllowTracesToJumpPadsAndHolesOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetRemoveExcessiveMeandersOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetGlossAroundDeletedTracesOrViasOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetMoveViasToReduceTraceSegmentsOption_int_]
mov ecx, dword [esi + 0xa8]
push 1
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetAutoTrimThroughViasOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetResynthesizeEmbeddedPassivesValue_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDiffPairConditionalSplittingOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneReduceLengthIterationsValue_int_]
mov ecx, dword [esi + 0xa8]
push 1
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTuneAddLengthIterationsValue_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetTunePreventStairstepsOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetUseMntOppSidePadsForBBViasOption_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetMapICDBLayersMigrationFlag_int_]
mov ecx, dword [esi + 0xa8]
push ebx
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetDRCTeardropsClearanceValue_enum_CJobPrefsDB::eDRCTeardrops_]
mov ecx, dword [esi + 0xa8]
push 1
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetSyncLayerStackAndPlaneLayersOption_int_]
mov ecx, dword [esi + 0xa8]
push 0x7fffffff
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::SetMovePartMaxPinsToDisplayNetlines_int_]
mov eax, dword [esi + 0xb4]
mov ecx, dword [esp + 0x20]
push ebx
push ebx
push 0x42e008
push 0x42f290
push eax
push ecx
mov ecx, dword [esi + 0xa4]
call fcn.00411ab0
cmp eax, ebx
je 0x40d016
push eax
push 0xd8
push 0x43240c
call dword [sym.imp.mfc90.dll_Ordinal_2538]
mov edx, dword [0x43240c]
mov eax, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push edx
push eax
call fcn.00414cd0
add esp, 0x20
jmp 0x40d23b
mov ecx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0xd2
push ecx
call fcn.00414d20
add esp, 0x14
mov ecx, esi
call fcn.00401160
push ebx
push ebx
push ebx
test eax, eax
je 0x40d051
mov edx, dword [esi + 0xb4]
push 3
push edx
call fcn.00414d20
add esp, 0x14
jmp 0x40d23b
mov eax, dword [esi + 0xb4]
push 0xd1
push eax
call fcn.00414d20
mov ecx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0xe1
push ecx
call fcn.00414d20
add esp, 0x28
mov ecx, esi
call fcn.0040c540
test eax, eax
je 0x40d0b4
mov edx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0x421f48
push edx
call fcn.00414cd0
mov eax, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0xe2
push eax
call fcn.00414d20
add esp, 0x28
jmp 0x40d23b
cmp dword [esi + 0xc8], ebx
je 0x40d0d3
mov ecx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0x421f4c
push ecx
call fcn.00414cd0
add esp, 0x14
mov edx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push 0xe4
push edx
call fcn.00414d20
mov ecx, dword [esp + 0x28]
add esp, 0x14
lea eax, [esp + 0x94]
push eax
push ecx
call sub.mfc90.dll_Ordinal_3718
test eax, eax
jne 0x40d10c
mov edx, dword [esp + 0x14]
push edx
push 0x110
jmp 0x40d164
push 0x421f50
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.0040d300
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0xd
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x30]
mov byte [esp + 0x200], 8
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push 1
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
mov ecx, dword [esp + 0x14]
push ecx
push 0x10f
mov edi, dword [sym.imp.mfc90.dll_Ordinal_2538]
push 0x43240c
call edi
mov edx, dword [0x43240c]
mov eax, dword [esi + 0xb4]
add esp, 0xc
push ebx
push ebx
push ebx
push edx
push eax
call fcn.00414cd0
mov ecx, dword [esp + 0x28]
add esp, 0x14
push ecx
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_long_int___thiscall_CJobPrefsDB::Save_char_const__]
test eax, eax
je 0x40d200
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_void___thiscall_CJobPrefsDB::Close_void_]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x94]
push edx
push eax
call sub.mfc90.dll_Ordinal_3718
test eax, eax
je 0x40d1d4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov eax, dword [esp + 0x14]
push eax
push 0xd9
push 0x43240c
call edi
mov ecx, dword [0x43240c]
mov edx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push ecx
push edx
call fcn.00414cd0
add esp, 0x20
jmp 0x40d247
mov eax, dword [esp + 0x14]
push eax
push 0xda
push 0x43240c
call edi
mov ecx, dword [0x43240c]
mov edx, dword [esi + 0xb4]
push ebx
push ebx
push ebx
push ecx
push edx
call fcn.00414cd0
mov eax, dword [esp + 0x38]
add esp, 0x20
push eax
mov dword [esi + 0xd0], ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esi + 0xa8]
call dword [sym.imp.JobPrefsDBPI.dll_public:_void___thiscall_CJobPrefsDB::Close_void_]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x200], 1
call sub.mfc90.dll_Ordinal_781
lea ecx, [esp + 0x34]
mov byte [esp + 0x200], 0
call sub.mfc90.dll_Ordinal_781
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
xor eax, eax
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.004101fc
mov esp, ebp
pop ebp
ret