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

Disassembly:
push 0xffffffffffffffff
push 0x420a30
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push ebx
push ebp
push esi
push edi
mov eax, dword [0x43845c]
xor eax, esp
push eax
lea eax, [esp + 0x6c]
mov dword fs:[0], eax
mov ebp, ecx
mov ebx, dword [esp + 0x7c]
mov ecx, dword [ebx + 0x3c]
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov eax, dword [sym.imp.CELLDBPI.dll_const_CCellDBAssemblyOutline::vftable]
xor edi, edi
push ecx
mov ecx, ebp
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], eax
call fcn.00409360
cmp eax, edi
je 0x40dc3b
cmp eax, 1
jg 0x40dc3b
lea edx, [esp + 0x2c]
lea ecx, [ebp + 0xb0]
push edx
mov dword [esp + 0x20], ecx
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBCell::NewAssemblyOutline_class_CCellDBAssemblyOutline__]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
cmp ecx, edi
je 0x40d819
mov eax, dword [esp + 0x34]
push eax
call fcn.00409280
mov edi, dword [ebx + 0x3c]
xor ecx, ecx
mov dword [esp + 0x7c], 0xf7
test edi, edi
je 0x40d889
test ecx, ecx
jne 0x40d889
mov eax, dword [edi + 0x20]
cmp eax, 0xd
je 0x40d859
cmp eax, 0xe
je 0x40d859
cmp eax, 0x7e
je 0x40d859
cmp eax, 0x7f
je 0x40d859
cmp eax, 0x78
je 0x40d859
cmp eax, 0x79
je 0x40d859
cmp eax, 0x76
je 0x40d859
cmp eax, 0x77
jne 0x40d882
push edi
mov ecx, ebp
call fcn.00410110
mov esi, eax
test esi, esi
je 0x40d8c8
push esi
lea ecx, [esp + 0x30]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBAssemblyOutline::SetGeometry_class_CVbVrtxGeom__]
mov edx, dword [esi]
mov eax, dword [edx + 0x34]
push 1
mov ecx, esi
call eax
mov ecx, 1
mov edi, dword [edi + 0x38]
test edi, edi
jne 0x40d82a
mov esi, dword [ebx + 0x3c]
mov ebx, dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBAssemblyOutline::SetSide_int__enum_CCellDB::eLayerType_]
test esi, esi
je 0x40dbea
mov eax, dword [esi + 0x20]
cmp eax, 0x2e
jne 0x40d994
mov ecx, dword [esi + 0x30]
fld qword [ecx]
sub esp, 8
mov ecx, ebp
fstp qword [esp]
call fcn.004100e0
push eax
lea ecx, [esp + 0x30]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBAssemblyOutline::SetDisplayWidth_int_]
jmp 0x40dbdf
lea ecx, [esp + 0x80]
call dword [sym.imp.mfc90.dll_Ordinal_316]
push str.ASSEMBLY_OUTLINE
lea ecx, [esp + 0x84]
push 0xe4
push ecx
mov dword [esp + 0x80], 0
call dword [sym.imp.mfc90.dll_Ordinal_2538]
add esp, 0xc
lea esi, [ebp + 0x1c4]
call fcn.004172f0
push eax
mov ecx, esi
call dword [sym.imp.mfc90.dll_Ordinal_820]
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x80]
push esi
push eax
call fcn.00403940
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x78], 1
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x7c]
mov byte [esp + 0x74], 0
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [ebp + 0x1cc]
mov edx, dword [ecx + 8]
push 1
push edx
push 1
push esi
mov ecx, ebp
call fcn.00410490
mov ecx, esi
call dword [sym.imp.mfc90.dll_Ordinal_2327]
push 0
push 0
push 1
push esi
mov ecx, ebp
call fcn.00410490
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBCell::DeleteAssemblyOutline_class_CCellDBAssemblyOutline__]
lea ecx, [esp + 0x80]
call dword [sym.imp.mfc90.dll_Ordinal_601]
xor eax, eax
jmp 0x40dc66
cmp eax, 0x2d
jne 0x40d9f0
mov edx, dword [esi + 0x30]
mov eax, dword [edx]
sub eax, 0
lea ecx, [esp + 0x2c]
je 0x40d9db
sub eax, 1
je 0x40d9c6
sub eax, 1
jne 0x40d9db
push 2
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBAssemblyOutline::SetDisplayCond_int_]
mov dword [esp + 0x24], 1
jmp 0x40dbdf
push 1
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBAssemblyOutline::SetDisplayCond_int_]
mov dword [esp + 0x24], 1
jmp 0x40dbdf
push 0
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBAssemblyOutline::SetDisplayCond_int_]
mov dword [esp + 0x24], 1
jmp 0x40dbdf
cmp eax, 0x8d
jne 0x40daf8
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
add eax, 0xffffff0a
cmp eax, 5
ja case.default.0x40da0e
jmp dword [eax*4 + 0x40dc7c]
push 4
push 0xf7
lea ecx, [esp + 0x34]
call ebx
cmp dword [esp + 0x80], 0
je case.default.0x40da0e
mov dword [esp + 0x7c], 0xf7
mov dword [esp + 0x20], 1
jmp 0x40dbdf
push 4
push 0x80
lea ecx, [esp + 0x34]
call ebx
cmp dword [esp + 0x80], 0
je case.default.0x40da0e
mov dword [esp + 0x7c], 0x80
mov dword [esp + 0x20], 1
jmp 0x40dbdf
push 3
push 0x7d
lea ecx, [esp + 0x34]
call ebx
cmp dword [esp + 0x80], 0
je case.default.0x40da0e
mov dword [esp + 0x7c], 0x7d
mov dword [esp + 0x20], 1
jmp 0x40dbdf
push 3
push 0x7e
lea ecx, [esp + 0x34]
call ebx
cmp dword [esp + 0x80], 0
je case.default.0x40da0e
mov dword [esp + 0x7c], 0x7e
mov dword [esp + 0x20], 1
jmp 0x40dbdf
push 5
push 0x7f
lea ecx, [esp + 0x34]
call ebx
mov dword [esp + 0x20], 1
jmp 0x40dbdf
push 5
push 0x81
lea ecx, [esp + 0x34]
call ebx
mov dword [esp + 0x20], 1
jmp 0x40dbdf
cmp eax, 0x99
jne 0x40db7c
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
push esi
mov ecx, ebp
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
call fcn.0040f580
xor edi, edi
cmp eax, edi
jne 0x40dc66
mov ecx, dword [sym.imp.CELLDBPI.dll_const_CCellDBText::vftable]
or eax, 0xffffffff
lea edx, [esp + 0x54]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x14]
push edx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
call dword [sym.imp.CELLDBPI.dll_public_virtual:_int___thiscall_CCellDBAssemblyOutline::SetPropertyPair_char_const___char_const___class_CCellDBText__]
lea edx, [esp + 0x54]
push edx
push esi
mov ecx, ebp
call fcn.0040f720
cmp eax, edi
jne 0x40dc66
jmp 0x40dbdf
cmp eax, 0x1f
jne 0x40dbdf
lea eax, [esp + 0x28]
push eax
push esi
mov ecx, ebp
call fcn.00407f60
test eax, eax
jne 0x40dc66
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0xb4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], edx
mov edx, dword [sym.imp.CELLDBPI.dll_const_CCellDBDimensionedObject::vftable]
mov dword [esp + 0x4c], ecx
push 0
lea ecx, [esp + 0x44]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x44], edx
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBDimensionedObject::SetObjectGfxType_int_]
mov eax, dword [esp + 0x34]
push eax
lea ecx, [esp + 0x44]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBDimensionedObject::SetObjectGfxIndex_int_]
mov esi, dword [esi + 0x38]
test esi, esi
jne 0x40d89a
cmp dword [esp + 0x80], 0
je 0x40dc10
mov eax, dword [esp + 0x7c]
cmp eax, 0x7d
je 0x40dc0a
cmp eax, 0xf7
je 0x40dc0a
push 3
push 0x7e
jmp 0x40dc1e
push 3
push 0x7d
jmp 0x40dc1e
cmp dword [esp + 0x20], 0
jne 0x40dc24
push 4
push 0xf7
lea ecx, [esp + 0x34]
call ebx
cmp dword [esp + 0x24], 0
jne 0x40dc37
push 0
lea ecx, [esp + 0x30]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBAssemblyOutline::SetDisplayCond_int_]
xor eax, eax
jmp 0x40dc66
push 0x4285b4
lea esi, [ebp + 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, ebp
call fcn.004104f0
mov eax, 1
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8