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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10046822
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x10], esp
push str.E2_Library
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x14], esi
call dword [sym.imp.rlmfc.dll_public:_void___thiscall_R_MemoryScope::constructor_char_const__]
mov al, byte [sym.e2mfc.dll_bool_P_MaterialInfo::m_newMaterialInfosCreated]
mov edi, dword [sym.e2mfc.dll_class_P_Driver__P_Driver::m_initializedDriver]
xor ebx, ebx
test al, al
mov dword [ebp - 4], ebx
je 0x10018ffb
cmp dword [sym.e2mfc.dll_int_P_MaterialInfo::m_initializedCount], ebx
jg 0x10018f30
cmp dword [sym.e2mfc.dll_int_P_MaterialInfo::m_texturesNotSetCount], ebx
jg 0x10018f30
cmp dword [sym.e2mfc.dll_int_P_MaterialInfo::m_dataNotConvertedCount], ebx
jg 0x10018f30
cmp dword [sym.e2mfc.dll_int_P_MaterialInfo::m_deviceDependentNotBuiltCount], ebx
jle 0x10018ffb
push str.Scene::render___unvalidated_materials_found___n
call sym.e2mfc.dll_public:_static_class_P_Device____fastcall_P_Driver::getDevice_void_
push eax
call sym.e2mfc.dll_public:_void___cdecl_P_Device::materialVerbose_char_const__
mov eax, dword [sym.e2mfc.dll_int_P_MaterialInfo::m_materialInfoCount]
add esp, 8
push eax
push str.total_materialInfos:__d_n
call sym.e2mfc.dll_public:_static_class_P_Device____fastcall_P_Driver::getDevice_void_
push eax
call sym.e2mfc.dll_public:_void___cdecl_P_Device::materialVerbose_char_const__
mov ecx, dword [sym.e2mfc.dll_int_P_MaterialInfo::m_notInitializedCount]
add esp, 0xc
push ecx
push str.materialInfos_not_initialized:__d_n
call sym.e2mfc.dll_public:_static_class_P_Device____fastcall_P_Driver::getDevice_void_
push eax
call sym.e2mfc.dll_public:_void___cdecl_P_Device::materialVerbose_char_const__
mov edx, dword [sym.e2mfc.dll_int_P_MaterialInfo::m_initializedCount]
add esp, 0xc
push edx
push str.materialInfos_initialized:__d_n
call sym.e2mfc.dll_public:_static_class_P_Device____fastcall_P_Driver::getDevice_void_
push eax
call sym.e2mfc.dll_public:_void___cdecl_P_Device::materialVerbose_char_const__
mov eax, dword [sym.e2mfc.dll_int_P_MaterialInfo::m_texturesNotSetCount]
add esp, 0xc
push eax
push str.materialInfos_texturesNotSet:__d__some_or_all_of_these_might_be_materials_used_as_templates__which_is_ok__n
call sym.e2mfc.dll_public:_static_class_P_Device____fastcall_P_Driver::getDevice_void_
push eax
call sym.e2mfc.dll_public:_void___cdecl_P_Device::materialVerbose_char_const__
mov ecx, dword [sym.e2mfc.dll_int_P_MaterialInfo::m_dataNotConvertedCount]
add esp, 0xc
push ecx
push str.materialInfos_dataNotConverted:__d_n
call sym.e2mfc.dll_public:_static_class_P_Device____fastcall_P_Driver::getDevice_void_
push eax
call sym.e2mfc.dll_public:_void___cdecl_P_Device::materialVerbose_char_const__
mov edx, dword [sym.e2mfc.dll_int_P_MaterialInfo::m_deviceDependentNotBuiltCount]
add esp, 0xc
push edx
push str.materialInfos_deviceDependentNotBuilt:__d_n
call sym.e2mfc.dll_public:_static_class_P_Device____fastcall_P_Driver::getDevice_void_
push eax
call sym.e2mfc.dll_public:_void___cdecl_P_Device::materialVerbose_char_const__
mov eax, dword [sym.e2mfc.dll_int_P_MaterialInfo::m_usableCount]
add esp, 0xc
push eax
push str.materialInfos_usable:__d_n_n
call sym.e2mfc.dll_public:_static_class_P_Device____fastcall_P_Driver::getDevice_void_
push eax
call sym.e2mfc.dll_public:_void___cdecl_P_Device::materialVerbose_char_const__
add esp, 0xc
call sym.e2mfc.dll_public:_static_void___fastcall_P_Material::validateAllMaterials_void_
push ebx
push ebx
lea ecx, [ebp - 0x18]
call dword [sym.imp.rlmfc.dll_public:_void___thiscall_M_FPUControl::constructor_enum_M_FPUControl::Rounding__enum_M_FPUControl::Precision_]
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 2
mov dword [esi + 0x38], ecx
call sym.e2mfc.dll_public:_void___thiscall_P_Camera::prepare_void_
mov esi, dword [ebp - 0x14]
mov ecx, dword [esi + 0x38]
push ecx
mov ecx, edi
call sym.e2mfc.dll_public:_void___thiscall_P_Driver::setViewport_class_P_Camera__
mov esi, dword [esi + 0x38]
mov dl, byte [esi + 0xe0]
shr dl, 5
test dl, 1
jne 0x1001903b
mov ecx, esi
call sym.e2mfc.dll_protected:_void___thiscall_P_BaseObject::calculateObjectToWorldMatrix_void_
mov eax, dword [edi]
add esi, 0x8c
push esi
mov ecx, edi
call dword [eax + 0x80]
mov edi, dword [ebp - 0x14]
mov ecx, edi
mov dword [edi + 0x28], ebx
mov dword [edi + 0x2c], ebx
mov dword [edi + 0x30], ebx
mov dword [edi + 0x34], ebx
call sym.e2mfc.dll_public:_class_P_BaseObject____thiscall_P_ObjectContainer::getFirstChild_void_
cmp eax, ebx
je 0x10019074
mov ecx, edi
call sym.e2mfc.dll_public:_class_P_BaseObject____thiscall_P_ObjectContainer::getFirstChild_void_
mov ecx, eax
call sym.e2mfc.dll_protected:_void___thiscall_P_BaseObject::executeHierarchy_void_
mov dword [0x1006579c], ebx
mov esi, dword [edi + 0x28]
cmp esi, ebx
mov edi, dword [edi + 0x30]
mov dword [ebp - 0x28], edi
je 0x1001916b
cmp edi, ebx
je 0x1001916b
mov ecx, dword [0x10065654]
call sym.e2mfc.dll_public:_void___thiscall_P_CollisionBuffer::reset_void_
mov dword [ebp + 8], ebx
cmp esi, ebx
je 0x10019123
or eax, 0xffffffff
mov dword [esi + 0x100], eax
mov dword [esi + 0x104], eax
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], eax
xor edi, edi
mov eax, dword [esi + 0x11c]
cmp eax, ebx
jne 0x100190d0
xor edx, edx
jmp 0x100190e9
mov ecx, dword [esi + 0x120]
sub ecx, eax
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edi, edx
jge 0x10019115
push edi
mov ecx, esi
call sym.e2mfc.dll_public:_class_P_PrimitiveInstance____thiscall_P_VirtualObject::getPrimitiveInstance_int_const
mov ecx, dword [eax + 0xc]
cmp ecx, ebx
je 0x10019120
call sym.e2mfc.dll_public:_bool___thiscall_P_Material::isLightingEnabled_void_const
test al, al
je 0x10019120
mov ecx, dword [0x10065654]
push ebx
push esi
call sym.e2mfc.dll_public:_void___thiscall_P_CollisionBuffer::add_class_P_BaseObject___bool_
inc dword [ebp + 8]
mov esi, dword [esi + 0x13c]
mov edi, dword [ebp - 0x28]
jmp 0x100190a1
inc edi
jmp 0x100190c2
cmp dword [ebp + 8], ebx
jle 0x1001914e
cmp edi, ebx
je 0x10019142
mov ecx, dword [0x10065654]
push 1
push edi
call sym.e2mfc.dll_public:_void___thiscall_P_CollisionBuffer::add_class_P_BaseObject___bool_
mov edi, dword [edi + 0x114]
jmp 0x10019128
mov ecx, dword [0x10065654]
push ebx
call sym.e2mfc.dll_public:_void___thiscall_P_CollisionBuffer::execute_bool_
mov edx, dword [ebp - 0x14]
mov esi, dword [edx + 0x30]
xor edi, edi
cmp esi, ebx
je 0x10019186
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x5c]
mov esi, dword [esi + 0x114]
inc edi
jmp 0x10019156
or eax, 0xffffffff
cmp esi, ebx
je 0x1001914e
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], eax
mov esi, dword [esi + 0x13c]
jmp 0x1001916e
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + 0x7c]
test al, al
je 0x10019975
mov ebx, ecx
mov eax, dword [ebx + 0x78]
sub eax, 0
je 0x100191b0
dec eax
jne 0x100191bd
mov ecx, dword [sym.e2mfc.dll_class_P_Driver__P_Driver::m_initializedDriver]
mov edx, dword [ecx]
push 0
call dword [edx + 0x60]
jmp 0x100191bd
mov ecx, dword [sym.e2mfc.dll_class_P_Driver__P_Driver::m_initializedDriver]
mov eax, dword [ecx]
push 1
call dword [eax + 0x60]
mov ecx, dword [0x10065658]
mov dword [ebp + 8], 0
call fcn.1002cdd0
mov edi, dword [ebx + 0x28]
test edi, edi
je 0x100194d3
mov ecx, edi
call sym.e2mfc.dll_protected:_void___thiscall_P_VirtualObject::prepareProcess_void_
xor esi, esi
mov dword [ebp - 0x20], esi
mov eax, dword [edi + 0x11c]
test eax, eax
jne 0x100191f4
xor edx, edx
jmp 0x1001920d
mov ecx, dword [edi + 0x120]
sub ecx, eax
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp esi, edx
jge 0x100194c8
push esi
mov ecx, edi
call sym.e2mfc.dll_public:_class_P_PrimitiveInstance____thiscall_P_VirtualObject::getPrimitiveInstance_int_const
mov cl, byte [eax + 0x41]
test cl, cl
mov ebx, dword [eax + 0xc]
mov dword [ebp - 0x28], eax
je 0x100194b7
test ebx, ebx
je 0x100194b7
mov ecx, dword [sym.e2mfc.dll_int_P_Statistics::m_primitivesInViewVolume]
mov eax, dword [ebp + 8]
inc ecx
mov dword [sym.e2mfc.dll_int_P_Statistics::m_primitivesInViewVolume], ecx
mov esi, dword [edi + 0x110]
inc eax
mov ecx, ebx
mov dword [ebp + 8], eax
call sym.e2mfc.dll_public:_unsigned_int___thiscall_P_Material::getSortPriority_void_const
mov edx, dword [0x10065658]
shl esi, 4
or esi, eax
shl esi, 0x14
mov dword [edx + 8], esi
mov eax, dword [ebx + 4]
mov cl, byte [eax + 0x36]
test cl, cl
je 0x100192b6
mov ecx, dword [0x10065658]
mov dword [ecx], 0
mov edx, dword [0x10065658]
mov ecx, ebx
mov dword [edx + 4], 0
call sym.e2mfc.dll_public:_class_P_CPUDriver____thiscall_P_Primitive::getCPUDriver_void_const
mov eax, dword [eax + 0x40]
mov ecx, dword [ebx + 0xac]
and eax, 0xff
and ecx, 0xfffff
shl eax, 0xc
or eax, ecx
mov ecx, dword [ebp - 0x20]
push 0xffffffffffffffff
push ecx
jmp 0x100194aa
mov edx, dword [ebp - 0x28]
mov al, byte [edx + 0x40]
test al, al
je 0x100192f1
mov eax, dword [0x10065658]
mov dword [eax], 0xffffffff
mov ecx, dword [0x10065658]
mov dword [ecx + 4], 0xc
mov ecx, dword [edx + 4]
mov edx, dword [0x10065658]
mov eax, dword [ecx]
push edx
mov edx, dword [ebp - 0x20]
push edx
push edi
call dword [eax + 0x14]
jmp 0x100194b7
mov al, byte [0x1006564c]
test al, 1
jne 0x10019330
mov dl, al
or dl, 1
push 0x100199e0
mov byte [0x1006564c], dl
mov dword [0x10065640], 0
mov dword [0x10065644], 0
mov dword [0x10065648], 0
call fcn.100455b8
add esp, 4
mov eax, dword [ebp - 0x14]
mov esi, dword [eax + 0x38]
mov cl, byte [esi + 0xe0]
shr cl, 5
test cl, 1
jne 0x1001934b
mov ecx, esi
call sym.e2mfc.dll_protected:_void___thiscall_P_BaseObject::calculateObjectToWorldMatrix_void_
add esi, 0x80
mov edx, dword [esi]
mov dword [0x10065640], edx
mov eax, dword [esi + 4]
mov dword [0x10065644], eax
mov ecx, dword [esi + 8]
mov dword [0x10065648], ecx
mov dl, byte [edi + 0xe0]
shr dl, 5
test dl, 1
jne 0x1001937f
mov ecx, edi
call sym.e2mfc.dll_protected:_void___thiscall_P_BaseObject::calculateObjectToWorldMatrix_void_
lea eax, [edi + 0x80]
mov dword [ebp - 0x28], eax
mov eax, 0x10065640
mov edx, dword [ebp - 0x28]
fld dword [eax]
fsub dword [edx]
fld dword [eax + 4]
fsub dword [edx + 4]
fld dword [eax + 8]
fsub dword [edx + 8]
fxch st(2)
fstp dword [eax]
fstp dword [eax + 4]
fstp dword [eax + 8]
fld dword [0x10065648]
fmul dword [0x10065648]
fld dword [0x10065644]
fmul dword [0x10065644]
faddp st(1)
fld dword [0x10065640]
fmul dword [0x10065640]
faddp st(1)
fst dword [ebp - 0x28]
fcomp dword [0x100491f4]
fnstsw ax
test ah, 0x40
je 0x100193ea
fld dword [0x100491f4]
jmp 0x10019454
mov ecx, dword [ebp - 0x28]
mov edx, dword [sym.imp.rlmfc.dll_unsigned_char__M_LUTInverseSqrt]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x34], 0x3fc00000
mov dword [ebp - 0x30], 0x3f000000
mov dword [ebp - 0x2c], edx
fld dword [ebp - 0x34]
fld dword [ebp - 0x24]
fmul dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov ebx, 0xbe7fffff
shr ecx, 0x10
mov eax, dword [ebp - 0x24]
sub ebx, eax
and ecx, 0xff
shr ebx, 1
mov cl, byte [esi + ecx]
shl ecx, 0xf
and ebx, 0xff800000
or ebx, ecx
mov dword [ebp - 0x24], ebx
fmul dword [ebp - 0x24]
fxch st(1)
fmul dword [ebp - 0x24]
fxch st(1)
fmul dword [ebp - 0x24]
fmul dword [ebp - 0x24]
fsubp st(1)
fstp dword [ebp - 0x24]
fld dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x38]
fmul dword [ebp - 0x28]
fld dword [ecx + 0x1d8]
fadd st(0), st(0)
fdivp st(1)
fsubr dword [0x10049768]
fmul dword [0x10049e38]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x2c]
fistp dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, 0xfffff
jbe 0x1001948b
mov eax, 0xfffff
mov edx, dword [0x10065658]
mov dword [edx], 0
mov ecx, dword [0x10065658]
mov edx, dword [ebp - 0x20]
push 0xffffffffffffffff
mov dword [ecx + 4], 0
push edx
mov ecx, dword [0x10065658]
push edi
push eax
call sym.e2mfc.dll_public:_void___thiscall_P_SortBuffer::addEntry_unsigned_int__unsigned_int__unsigned_int__unsigned_int_
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x20], eax
mov esi, eax
jmp 0x100191e6
mov edi, dword [edi + 0x13c]
jmp 0x100191d2
mov eax, dword [0x10065658]
mov dword [eax], 0
mov ecx, dword [0x10065658]
mov dword [ecx + 4], 0
mov edx, dword [0x10065658]
mov dword [edx + 8], 0
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ecx + 0x11c]
test eax, eax
je 0x100195bb
mov edx, dword [ecx + 0x120]
sub edx, eax
mov eax, 0x3e0f83e1
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x100195bb
mov eax, dword [ecx + 0x11c]
test eax, eax
jne 0x10019536
xor edx, edx
jmp 0x1001954f
mov ecx, dword [ecx + 0x120]
sub ecx, eax
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add dword [sym.e2mfc.dll_int_P_Statistics::m_primitivesInViewVolume], edx
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ecx]
call dword [edx + 0x48]
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ecx]
push eax
call dword [edx + 0x30]
mov ecx, dword [ebx + 0x3c]
call sym.e2mfc.dll_protected:_void___thiscall_P_VirtualObject::prepareProcess_void_
xor edi, edi
mov esi, dword [ebx + 0x3c]
mov eax, dword [esi + 0x11c]
test eax, eax
jne 0x10019584
xor edx, edx
jmp 0x1001959d
mov ecx, dword [esi + 0x120]
sub ecx, eax
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edi, edx
jge 0x100195bb
mov ecx, dword [0x10065658]
push 0xffffffffffffffff
push edi
push esi
push 0xc0000000
call sym.e2mfc.dll_public:_void___thiscall_P_SortBuffer::addEntry_unsigned_int__unsigned_int__unsigned_int__unsigned_int_
inc dword [ebp + 8]
inc edi
jmp 0x10019573
mov ecx, dword [ebx + 0x40]
mov eax, dword [ecx + 0x11c]
test eax, eax
je 0x1001967e
mov edx, dword [ecx + 0x120]
sub edx, eax
mov eax, 0x3e0f83e1
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x1001967e
mov eax, dword [ecx + 0x11c]
test eax, eax
jne 0x100195f9
xor edx, edx
jmp 0x10019612
mov ecx, dword [ecx + 0x120]
sub ecx, eax
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add dword [sym.e2mfc.dll_int_P_Statistics::m_primitivesInViewVolume], edx
mov ecx, dword [ebx + 0x40]
mov edx, dword [ecx]
call dword [edx + 0x48]
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x40]
mov edx, dword [ecx]
push eax
call dword [edx + 0x30]
mov ecx, dword [ebx + 0x40]
call sym.e2mfc.dll_protected:_void___thiscall_P_VirtualObject::prepareProcess_void_
xor edi, edi
mov esi, dword [ebx + 0x40]
mov eax, dword [esi + 0x11c]
test eax, eax
jne 0x10019647
xor edx, edx
jmp 0x10019660
mov ecx, dword [esi + 0x120]
sub ecx, eax
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edi, edx
jge 0x1001967e
mov ecx, dword [0x10065658]
push 0xffffffffffffffff
push edi
push esi
push 0x80000000
call sym.e2mfc.dll_public:_void___thiscall_P_SortBuffer::addEntry_unsigned_int__unsigned_int__unsigned_int__unsigned_int_
inc dword [ebp + 8]
inc edi
jmp 0x10019636
mov ecx, dword [0x10065658]
mov eax, dword [ecx + 0x10]
mov esi, dword [ebp + 8]
mov edx, dword [sym.e2mfc.dll_int_P_Statistics::m_polygonsSorted]
sub eax, esi
add edx, eax
push 0x20
mov dword [sym.e2mfc.dll_int_P_Statistics::m_polygonsSorted], edx
call fcn.1002ce70
mov al, byte [0x1006564c]
xor edi, edi
xor ebx, ebx
test al, 2
mov dword [ebp + 8], 0xffffffff
jne 0x100196df
mov dl, al
or dl, 2
push 0x100199d0
mov byte [0x1006564c], dl
mov dword [0x10065634], edi
mov dword [0x10065638], edi
mov dword [0x1006563c], edi
call fcn.100455b8
add esp, 4
mov edx, dword [0x10065638]
mov ecx, dword [0x10065634]
mov esi, edx
mov eax, edx
cmp eax, esi
je 0x10019705
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [0x10065638]
add ecx, 4
add eax, 4
jmp 0x100196ef
mov eax, ecx
cmp eax, edx
je 0x10019710
add eax, 4
jmp 0x10019707
mov dword [0x10065638], ecx
mov dword [ebp - 0x24], edi
mov eax, dword [0x10065658]
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [eax + 0x10]
jge 0x1001983d
mov eax, dword [eax + 0x14]
mov edx, ecx
shl edx, 4
mov esi, dword [eax + edx + 4]
mov edi, dword [eax + edx + 8]
add eax, edx
mov eax, dword [eax + 0xc]
push edi
mov ecx, esi
mov dword [ebp - 0x20], eax
call sym.e2mfc.dll_public:_class_P_PrimitiveInstance____thiscall_P_VirtualObject::getPrimitiveInstance_int_const
cmp esi, ebx
mov dword [ebp - 0x28], eax
jne 0x1001977a
cmp edi, dword [ebp + 8]
jne 0x1001977a
cmp dword [ebp - 0x20], 0xffffffff
je 0x1001977a
mov edx, dword [0x10065638]
lea ecx, [ebp - 0x20]
push ecx
push 1
push edx
mov ecx, 0x10065630
call fcn.10019fb0
inc dword [ebp - 0x24]
xor edi, edi
jmp 0x10019719
test ebx, ebx
je 0x100197d2
mov eax, dword [ebp + 8]
push eax
mov ecx, ebx
call sym.e2mfc.dll_public:_class_P_PrimitiveInstance____thiscall_P_VirtualObject::getPrimitiveInstance_int_const
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 8]
mov edx, dword [ecx]
push 0x10065630
push eax
push ebx
call dword [edx + 0x18]
mov edx, dword [0x10065638]
mov ecx, dword [0x10065634]
mov ebx, edx
mov eax, edx
cmp eax, ebx
je 0x100197c1
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [0x10065638]
add ecx, 4
add eax, 4
jmp 0x100197ab
mov eax, ecx
cmp eax, edx
je 0x100197cc
add eax, 4
jmp 0x100197c3
mov dword [0x10065638], ecx
cmp dword [ebp - 0x20], 0xffffffff
je 0x10019802
mov ecx, dword [0x10065638]
lea eax, [ebp - 0x20]
push eax
push 1
push ecx
mov ecx, 0x10065630
call fcn.10019fb0
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp + 8], edi
mov ebx, esi
mov dword [ebp - 0x24], eax
xor edi, edi
jmp 0x10019719
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 4]
mov edx, dword [0x10065658]
mov eax, dword [ecx]
push edx
push edi
push esi
xor ebx, ebx
call dword [eax + 0x14]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
push ebx
push edi
push esi
call dword [edx + 0x18]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
push edi
push esi
call dword [edx + 0x1c]
inc dword [ebp - 0x24]
xor edi, edi
jmp 0x10019719
cmp ebx, edi
je 0x10019892
mov esi, dword [ebp + 8]
push esi
mov ecx, ebx
call sym.e2mfc.dll_public:_class_P_PrimitiveInstance____thiscall_P_VirtualObject::getPrimitiveInstance_int_const
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
push 0x10065630
push esi
push ebx
call dword [eax + 0x18]
mov edx, dword [0x10065638]
mov ecx, dword [0x10065634]
mov esi, edx
mov eax, edx
cmp eax, esi
je 0x10019881
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [0x10065638]
add ecx, 4
add eax, 4
jmp 0x1001986b
mov eax, ecx
cmp eax, edx
je 0x1001988c
add eax, 4
jmp 0x10019883
mov dword [0x10065638], ecx
mov edi, dword [ebp - 0x14]
mov esi, dword [edi + 0x28]
test esi, esi
je 0x100198e9
xor edi, edi
mov eax, dword [esi + 0x11c]
test eax, eax
jne 0x100198ac
xor edx, edx
jmp 0x100198c5
mov ecx, dword [esi + 0x120]
sub ecx, eax
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edi, edx
jge 0x100198de
push edi
mov ecx, esi
call sym.e2mfc.dll_public:_class_P_PrimitiveInstance____thiscall_P_VirtualObject::getPrimitiveInstance_int_const
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
push edi
push esi
call dword [edx + 0x1c]
inc edi
jmp 0x1001989e
mov esi, dword [esi + 0x13c]
mov edi, dword [ebp - 0x14]
jmp 0x10019898
xor esi, esi
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + 0x11c]
test eax, eax
jne 0x100198fc
xor edx, edx
jmp 0x10019915
mov edx, dword [ecx + 0x120]
sub edx, eax
mov eax, 0x3e0f83e1
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp esi, edx
jge 0x1001992f
push esi
call sym.e2mfc.dll_public:_class_P_PrimitiveInstance____thiscall_P_VirtualObject::getPrimitiveInstance_int_const
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x3c]
mov edx, dword [ecx]
push esi
push eax
call dword [edx + 0x1c]
inc esi
jmp 0x100198eb
xor esi, esi
mov ecx, dword [edi + 0x40]
mov eax, dword [ecx + 0x11c]
test eax, eax
jne 0x10019942
xor edx, edx
jmp 0x1001995b
mov edx, dword [ecx + 0x120]
sub edx, eax
mov eax, 0x3e0f83e1
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp esi, edx
jge 0x10019975
push esi
call sym.e2mfc.dll_public:_class_P_PrimitiveInstance____thiscall_P_VirtualObject::getPrimitiveInstance_int_const
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x40]
mov edx, dword [ecx]
push esi
push eax
call dword [edx + 0x1c]
inc esi
jmp 0x10019931
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0
call dword [sym.imp.rlmfc.dll_public:_void___thiscall_M_FPUControl::destructor_void_]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.rlmfc.dll_public:_void___thiscall_R_MemoryScope::destructor_void_]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4