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

Disassembly:
push 0xffffffffffffffff
push 0x4207f6
mov eax, dword fs:[0]
push eax
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov eax, dword [0x43845c]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov ebp, ecx
mov ebx, dword [esp + 0x78]
mov ecx, dword [ebx + 0x3c]
or eax, 0xffffffff
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [sym.imp.CELLDBPI.dll_const_CCellDBInsertionOutline::vftable]
xor edi, edi
push ecx
mov ecx, ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], eax
call fcn.00409360
cmp eax, edi
je 0x40ab84
cmp eax, 1
jg 0x40ab84
lea edx, [esp + 0x28]
lea ecx, [ebp + 0xb0]
push edx
mov dword [esp + 0x1c], ecx
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBCell::NewInsertionOutline_class_CCellDBInsertionOutline__]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov edi, dword [ebx + 0x3c]
xor ecx, ecx
test edi, edi
je 0x40a945
test ecx, ecx
jne 0x40a945
mov eax, dword [edi + 0x20]
cmp eax, 0xd
je 0x40a7f8
cmp eax, 0xe
je 0x40a7f8
cmp eax, 0x7e
je 0x40a7f8
cmp eax, 0x7f
je 0x40a7f8
cmp eax, 0x78
je 0x40a7f8
cmp eax, 0x79
je 0x40a7f8
cmp eax, 0x76
je 0x40a7f8
cmp eax, 0x77
jne 0x40a93a
push edi
mov ecx, ebp
call fcn.00410110
mov esi, eax
test esi, esi
je 0x40a835
mov eax, dword [esi]
mov edx, dword [eax]
mov ecx, esi
call edx
test eax, eax
jne 0x40a91f
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov eax, ecx
and eax, 0x1f
cmp eax, 5
jne 0x40a8fe
test ecx, 0x100
jne 0x40a91f
lea ecx, [esp + 0x78]
call dword [sym.imp.mfc90.dll_Ordinal_316]
push str.INSERTION_OUTLINE
lea ecx, [esp + 0x7c]
push 0xe4
push ecx
mov dword [esp + 0x7c], 0
call dword [sym.imp.mfc90.dll_Ordinal_2538]
add esp, 0xc
lea edi, [ebp + 0x1c4]
call fcn.004172f0
push eax
mov ecx, edi
call dword [sym.imp.mfc90.dll_Ordinal_820]
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x24]
push edi
push eax
call fcn.00403940
add esp, 0xc
push eax
mov ecx, edi
mov byte [esp + 0x74], 1
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x20]
mov byte [esp + 0x70], 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 edi
mov ecx, ebp
call fcn.00410490
mov ecx, edi
call dword [sym.imp.mfc90.dll_Ordinal_2327]
push 0
push 0
push 1
push edi
mov ecx, ebp
call fcn.00410490
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBCell::DeleteInsertionOutline_class_CCellDBInsertionOutline__]
test esi, esi
je 0x40a8ed
mov edx, dword [esi]
mov eax, dword [edx + 0x34]
push 1
mov ecx, esi
call eax
lea ecx, [esp + 0x78]
call dword [sym.imp.mfc90.dll_Ordinal_601]
xor eax, eax
jmp 0x40abaf
cmp eax, 7
jne 0x40a911
test ecx, 0x100
je 0x40a835
jmp 0x40a91f
cmp eax, 3
je 0x40a91f
cmp eax, 1
jne 0x40a835
push esi
lea ecx, [esp + 0x2c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBInsertionOutline::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 0x40a7c1
mov esi, dword [ebx + 0x3c]
mov ebx, dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBInsertionOutline::SetSide_int__enum_CCellDB::eLayerType_]
test esi, esi
je 0x40ab60
mov eax, dword [esi + 0x20]
cmp eax, 0x2e
jne 0x40a980
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 + 0x2c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBInsertionOutline::SetDisplayWidth_int_]
jmp 0x40ab4f
cmp eax, 0x8d
jne 0x40aa05
mov edx, dword [esi + 0x30]
mov eax, dword [edx]
add eax, 0xffffff0a
cmp eax, 4
ja case.0x40a996.248
jmp dword [eax*4 + 0x40abc8]
push 4
push 0xc1
lea ecx, [esp + 0x30]
call ebx
mov dword [esp + 0x1c], 1
jmp 0x40ab4f
push 4
push 0xc2
lea ecx, [esp + 0x30]
call ebx
mov dword [esp + 0x1c], 1
jmp 0x40ab4f
push 3
push 0xbf
lea ecx, [esp + 0x30]
call ebx
mov dword [esp + 0x1c], 1
jmp 0x40ab4f
push 3
push 0xc0
lea ecx, [esp + 0x30]
call ebx
mov dword [esp + 0x1c], 1
jmp 0x40ab4f
cmp eax, 0x2d
jne 0x40aa61
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
sub eax, 0
lea ecx, [esp + 0x28]
je 0x40aa4c
sub eax, 1
je 0x40aa37
sub eax, 1
jne 0x40aa4c
push 2
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBInsertionOutline::SetDisplayCond_int_]
mov dword [esp + 0x20], 1
jmp 0x40ab4f
push 1
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBInsertionOutline::SetDisplayCond_int_]
mov dword [esp + 0x20], 1
jmp 0x40ab4f
push 0
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBInsertionOutline::SetDisplayCond_int_]
mov dword [esp + 0x20], 1
jmp 0x40ab4f
cmp eax, 0x99
jne 0x40aaec
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x18]
push edx
push esi
mov ecx, ebp
mov dword [esp + 0x20], 0
mov dword [esp + 0x84], 0
call fcn.0040f580
xor edi, edi
cmp eax, edi
jne 0x40abaf
mov ecx, dword [sym.imp.CELLDBPI.dll_const_CCellDBText::vftable]
or eax, 0xffffffff
lea edx, [esp + 0x50]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x78]
push edx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
call dword [sym.imp.CELLDBPI.dll_public_virtual:_int___thiscall_CCellDBInsertionOutline::SetPropertyPair_char_const___char_const___class_CCellDBText__]
lea edx, [esp + 0x50]
push edx
push esi
mov ecx, ebp
call fcn.0040f720
cmp eax, edi
jne 0x40abaf
jmp 0x40ab4f
cmp eax, 0x1f
jne 0x40ab4f
lea eax, [esp + 0x24]
push eax
push esi
mov ecx, ebp
call fcn.00407f60
test eax, eax
jne 0x40abaf
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0xb4]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], edx
mov edx, dword [sym.imp.CELLDBPI.dll_const_CCellDBDimensionedObject::vftable]
mov dword [esp + 0x48], ecx
push 8
lea ecx, [esp + 0x40]
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x40], edx
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBDimensionedObject::SetObjectGfxType_int_]
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x40]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBDimensionedObject::SetObjectGfxIndex_int_]
mov esi, dword [esi + 0x38]
test esi, esi
jne 0x40a956
cmp dword [esp + 0x1c], esi
jne 0x40ab6d
push 4
push 0xc1
lea ecx, [esp + 0x30]
call ebx
cmp dword [esp + 0x20], 0
jne 0x40ab80
push 0
lea ecx, [esp + 0x2c]
call dword [sym.imp.CELLDBPI.dll_public:_int___thiscall_CCellDBInsertionOutline::SetDisplayCond_int_]
xor eax, eax
jmp 0x40abaf
push 0x428664
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 + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 4