Function at 0x409830
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x42076f
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x43845c]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov ebx, ecx
mov esi, dword [esp + 0x74]
mov ecx, dword [esi + 0x3c]
or eax, 0xffffffff
xor edi, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [sym.imp.CELLDBPI.dll_const_CCellDBConductiveArea::vftable]
push ecx
mov ecx, ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
call fcn.00409360
cmp eax, edi
je 0x409ed3
cmp eax, 1
jg 0x409ed3
lea edx, [esp + 0x38]
lea ecx, [ebx + 0xb0]
push edx
mov dword [esp + 0x30], ecx
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBCell::NewConductiveArea_class_CCellDBConductiveArea__]
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x34], edi
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetConductiveShapeFlag_int_]
push edi
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetFixedFlag_int_]
push edi
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetLockedFlag_int_]
push edi
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetObstructFlag_int_]
mov ebp, dword [esi + 0x3c]
cmp ebp, edi
je 0x409d96
jmp 0x409900
mov eax, dword [ebp + 0x20]
mov esi, dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetRouteLayer_int__enum_CCellDB::eLayerType_]
mov ecx, 8
cmp eax, 0x85
jne 0x40995e
mov eax, dword [ebp + 0x30]
mov eax, dword [eax]
lea ecx, [eax - 0xf6]
cmp ecx, 5
ja case.0x409925.249
jmp dword [ecx*4 + 0x409f14]
push edi
push 0x79
lea ecx, [esp + 0x40]
call esi
jmp 0x409d85
push edi
push 0x7b
lea ecx, [esp + 0x40]
call esi
jmp 0x409d85
push 1
push eax
mov ecx, ebx
call fcn.00404f60
push eax
lea ecx, [esp + 0x40]
call esi
jmp 0x409d85
cmp eax, 0x2d
jne 0x4099b8
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx]
sub eax, edi
lea ecx, [esp + 0x38]
je 0x4099a4
sub eax, 1
je 0x40998f
sub eax, 1
jne 0x4099a4
push 2
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetDisplayCond_int_]
mov dword [esp + 0x30], 1
jmp 0x409d85
push 1
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetDisplayCond_int_]
mov dword [esp + 0x30], 1
jmp 0x409d85
push edi
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetDisplayCond_int_]
mov dword [esp + 0x30], 1
jmp 0x409d85
cmp eax, 0x99
jne 0x409a35
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
push ebp
mov ecx, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edi
call fcn.0040f580
cmp eax, edi
jne 0x409efe
mov ecx, dword [sym.imp.CELLDBPI.dll_const_CCellDBText::vftable]
or eax, 0xffffffff
lea edx, [esp + 0x4c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
push edx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
call dword [sym.imp.CELLDBPI.dll_public_virtual:_int___thiscall_CCellDBConductiveArea::SetPropertyPair_char_const___char_const___class_CCellDBText__]
lea edx, [esp + 0x4c]
push edx
push ebp
mov ecx, ebx
call fcn.0040f720
cmp eax, edi
jne 0x409efe
jmp 0x409d85
cmp eax, 0x63
jne 0x409a77
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax]
push 0x4285fc
push ecx
call dword [sym.imp.MSVCR90.dll__stricmp]
add esp, 8
lea ecx, [esp + 0x38]
test eax, eax
jne 0x409a66
push 0x428604
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetNetName_char__]
jmp 0x409d85
mov edx, dword [ebp + 0x30]
mov eax, dword [edx]
push eax
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetNetName_char__]
jmp 0x409d85
cmp eax, 0x3d
jne 0x409b33
cmp dword [ebx + 0x158], ecx
jne 0x409dbd
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx]
xor eax, eax
cmp ecx, 6
ja case.default.0x409a9c
jmp dword [ecx*4 + 0x409f2c]
xor eax, eax
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchPattern_enum_eGlobalHatchPatternType_]
jmp 0x409d85
mov eax, 2
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchPattern_enum_eGlobalHatchPatternType_]
jmp 0x409d85
mov eax, 1
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchPattern_enum_eGlobalHatchPatternType_]
jmp 0x409d85
mov eax, 3
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchPattern_enum_eGlobalHatchPatternType_]
jmp 0x409d85
mov eax, 4
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchPattern_enum_eGlobalHatchPatternType_]
jmp 0x409d85
mov eax, 5
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchPattern_enum_eGlobalHatchPatternType_]
jmp 0x409d85
mov eax, 6
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchPattern_enum_eGlobalHatchPatternType_]
jmp 0x409d85
cmp eax, 0x3e
jne 0x409b66
cmp dword [ebx + 0x158], ecx
mov ecx, ebx
jne 0x409dd2
mov edx, dword [ebp + 0x30]
fld qword [edx]
sub esp, 8
fstp qword [esp]
call fcn.004100e0
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchSpacing_int_]
jmp 0x409d85
cmp eax, 0x3f
jne 0x409b99
cmp dword [ebx + 0x158], ecx
mov ecx, ebx
jne 0x409de5
mov eax, dword [ebp + 0x30]
fld qword [eax]
sub esp, 8
fstp qword [esp]
call fcn.004100e0
push eax
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetHatchWidth_int_]
jmp 0x409d85
cmp eax, 0x12
jne 0x409c7e
mov eax, dword [ebp + 0x2c]
xor esi, esi
cmp eax, edi
jle 0x409c3e
nop
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + esi*4]
cmp ecx, 0x10
ja case.0x409bc2.1
movzx edx, byte [ecx + 0x409f68]
jmp dword [edx*4 + 0x409f48]
push 1
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetConductiveShapeFlag_int_]
mov dword [esp + 0x1c], 1
jmp case.0x409bc2.1
mov dword [esp + 0x28], 1
jmp case.0x409bc2.1
push 1
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetTeardropFlag_int_]
mov dword [esp + 0x18], 1
jmp case.0x409bc2.1
push 1
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetFixedFlag_int_]
jmp case.0x409bc2.1
push 1
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetLockedFlag_int_]
jmp case.0x409bc2.1
push 1
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetObstructFlag_int_]
jmp case.0x409bc2.1
cmp eax, 1
jg 0x409df8
mov eax, dword [ebp + 0x2c]
inc esi
cmp esi, eax
jl 0x409bb0
cmp dword [esp + 0x28], edi
je 0x409c69
cmp dword [esp + 0x1c], edi
jne 0x409c54
cmp dword [esp + 0x18], edi
je 0x409d85
push edi
push edi
push 1
push 0xf9
mov ecx, ebx
call fcn.00410520
jmp 0x409ef9
cmp dword [esp + 0x18], edi
je 0x409d85
cmp dword [esp + 0x1c], edi
jne 0x409c54
jmp 0x409d85
cmp eax, 0x1f
jne 0x409ce6
lea eax, [esp + 0x34]
push eax
push ebp
mov ecx, ebx
call fcn.00407f60
cmp eax, edi
jne 0x409efe
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov ecx, dword [ebx + 0xb4]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x50], edx
mov edx, dword [sym.imp.CELLDBPI.dll_const_CCellDBDimensionedObject::vftable]
mov dword [esp + 0x58], ecx
push 4
lea ecx, [esp + 0x50]
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x50], edx
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBDimensionedObject::SetObjectGfxType_int_]
mov eax, dword [esp + 0x40]
push eax
lea ecx, [esp + 0x50]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBDimensionedObject::SetObjectGfxIndex_int_]
jmp 0x409d85
cmp eax, 0x86
jne 0x409d4b
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx]
cmp eax, edi
jne 0x409d0f
mov dword [esp + 0x14], 1
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetPlaneShapeRouteObstructType_int_]
jmp 0x409d85
cmp eax, 1
jne 0x409d2d
mov dword [esp + 0x14], 2
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetPlaneShapeRouteObstructType_int_]
jmp 0x409d85
cmp eax, 2
jne 0x409d3a
mov dword [esp + 0x14], 3
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetPlaneShapeRouteObstructType_int_]
jmp 0x409d85
push ebp
mov ecx, ebx
call fcn.00410110
mov edi, eax
test edi, edi
je 0x409e0d
push edi
mov ecx, ebx
call fcn.00409430
test eax, eax
je 0x409e0d
push edi
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetGeometry_class_CVbVrtxGeom__]
mov eax, dword [edi]
mov edx, dword [eax + 0x34]
push 1
mov ecx, edi
call edx
xor edi, edi
mov ebp, dword [ebp + 0x38]
cmp ebp, edi
jne 0x409900
cmp dword [esp + 0x30], edi
jne 0x409da1
push edi
lea ecx, [esp + 0x3c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBConductiveArea::SetDisplayCond_int_]
xor eax, eax
jmp 0x409efe
push edi
push edi
push 1
push 0xfc
mov ecx, ebx
call fcn.00410520
jmp 0x409ef9
push edi
push edi
push 1
push 0x106
mov ecx, ebx
call fcn.00410520
jmp 0x409ef9
push edi
push edi
push 1
push 0x107
call fcn.00410520
jmp 0x409ef9
push edi
push edi
push 1
push 0x108
call fcn.00410520
jmp 0x409ef9
push edi
push edi
push 1
push 0xe7
mov ecx, ebx
call fcn.00410520
jmp 0x409ef9
lea ecx, [esp + 0x74]
call dword [sym.imp.mfc90.dll_Ordinal_316]
push str.CONDUCTIVE_AREA
lea eax, [esp + 0x78]
push 0xe4
push eax
mov dword [esp + 0x78], 0
call dword [sym.imp.mfc90.dll_Ordinal_2538]
add esp, 0xc
lea esi, [ebx + 0x1c4]
call fcn.004172f0
push eax
mov ecx, esi
call dword [sym.imp.mfc90.dll_Ordinal_820]
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x2c]
push esi
push edx
call fcn.00403940
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x70], 1
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x28]
mov byte [esp + 0x6c], 0
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, dword [ebx + 0x1cc]
mov ecx, dword [eax + 8]
push 1
push ecx
push 1
push esi
mov ecx, ebx
call fcn.00410490
mov ecx, esi
call dword [sym.imp.mfc90.dll_Ordinal_2327]
push 0
push 0
push 1
push esi
mov ecx, ebx
call fcn.00410490
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x38]
push edx
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBCell::DeleteConductiveArea_class_CCellDBConductiveArea__]
test edi, edi
je 0x409ec5
mov eax, dword [edi]
mov edx, dword [eax + 0x34]
push 1
mov ecx, edi
call edx
lea ecx, [esp + 0x74]
call dword [sym.imp.mfc90.dll_Ordinal_601]
xor eax, eax
jmp 0x409efe
push 0x4285ec
lea esi, [ebx + 0x1c4]
push 0xda
push esi
call dword [sym.imp.mfc90.dll_Ordinal_2538]
add esp, 0xc
push edi
push edi
push 1
push esi
mov ecx, ebx
call fcn.004104f0
mov eax, 1
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 4