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

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
sub esp, 0xc
lea eax, [ecx - 0x5dc]
push esi
push edi
cmp eax, 0x25
ja 0x1009ead4
mov eax, dword [ebp + 8]
mov edx, dword [eax]
push ebx
add ecx, 0xfffffa24
push ecx
push eax
call dword [edx + 0x19c]
mov ebx, eax
push ebx
lea ecx, [ebp - 0xc]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
mov edi, dword [ebp + 0x10]
lea esi, [ebp - 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, ebx
movsd dword es:[edi], dword [esi]
pop ebx
jmp 0x1009f17f
mov eax, 0x417
cmp ecx, eax
jg 0x1009eeca
je 0x1009eeb6
add eax, 0xffffffe4
cmp ecx, eax
jg 0x1009ed29
je 0x1009ed10
mov eax, 0x3f3
cmp ecx, eax
jg 0x1009ec46
je 0x1009ec1a
add eax, 0xfffffff9
cmp ecx, eax
jg 0x1009ebad
je 0x1009eb82
mov eax, ecx
sub eax, 0x6a
je 0x1009eb5f
sub eax, 0x37e
je 0x1009eb51
dec eax
dec eax
je 0x1009eb42
dec eax
jne case.0x1009eeec.1076
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
add esi, 0x18c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x1009eb73
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x349]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1b8]
jmp 0x1009f17f
cmp dword [ebp + 0x14], 3
jne 0x1009eb7b
mov eax, dword [ebp + 8]
fld dword [eax + 0x334]
mov eax, dword [ebp + 0x10]
fstp dword [eax]
xor eax, eax
inc eax
jmp 0x1009f17f
xor eax, eax
jmp 0x1009f17f
cmp dword [ebp + 0x14], 5
mov eax, dword [ebp + 8]
jne 0x1009eb97
mov edi, dword [ebp + 0x10]
lea esi, [eax + 0x27c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x14], 2
jne 0x1009eb7b
lea ecx, [eax + 0x27c]
call fcn.100996d1
jmp 0x1009f17f
mov eax, ecx
sub eax, 0x3ee
je 0x1009ec09
dec eax
je 0x1009ebd6
sub eax, 3
jne case.0x1009eeec.1076
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x158]
shr eax, 0xe
and eax, 3
jmp 0x1009f17f
mov eax, dword [0x1079d9f0]
mov ecx, dword [eax]
push 1
push str.PluginsExportDialog
push 0
push eax
call dword [ecx + 0x118]
test eax, eax
je 0x1009eb7b
mov eax, dword [ebp + 8]
test dword [eax + 0x158], 0x2000
jne 0x1009eb7b
jmp 0x1009eb73
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x158]
shr eax, 0xb
jmp 0x1009ed52
mov ecx, dword [ebp + 8]
call fcn.1009990a
test eax, eax
je 0x1009eb7b
call fcn.1009990a
cmp dword [eax + 0x14], 0
je 0x1009eb7b
call fcn.1009990a
mov eax, dword [eax + 0x14]
jmp 0x1009f17f
mov eax, ecx
sub eax, 0x3f4
je 0x1009ecca
dec eax
je 0x1009ecb9
dec eax
je 0x1009eca8
dec eax
je 0x1009ec97
dec eax
je 0x1009eb7b
dec eax
je 0x1009ec86
dec eax
jne case.0x1009eeec.1076
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x24]
fmul qword [0x10121cf0]
fdiv qword [0x1012a8f0]
jmp 0x1009eb6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x5c]
jmp 0x1009eb6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x58]
jmp 0x1009eb6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x54]
jmp 0x1009eb6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x50]
jmp 0x1009eb6e
mov ecx, dword [ebp + 8]
call fcn.1009990a
test eax, eax
je 0x1009ecff
call fcn.1009990a
cmp dword [eax + 0x14], 0
je 0x1009ecff
push 0x104
push dword [ebp + 0x10]
call fcn.1009990a
mov eax, dword [eax + 0x14]
add eax, 0x40
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
jmp 0x1009f17f
push 0x104
push dword [ebp + 0x10]
add ecx, 0x1c4
push ecx
jmp 0x1009ecf5
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10c]
test eax, eax
je 0x1009eb7b
mov eax, dword [eax + 0x74]
jmp 0x1009f17f
lea eax, [ecx - 0x3fc]
cmp eax, 0x1a
ja case.0x1009eeec.1076
movzx eax, byte [eax + 0x1009f1ca]
jmp dword [eax*4 + 0x1009f186]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x158]
shr eax, 0x1a
and eax, 1
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x158]
shr eax, 0x14
jmp 0x1009ed52
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1009eb73
mov ecx, dword [ebp + 8]
fld dword [ecx + 0x2a0]
jmp 0x1009eb71
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x1009eb73
mov esi, dword [ebp + 8]
fld dword [edi]
fld dword [esi + 0x294]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1009eb73
fld dword [esi + 0x294]
push ecx
push 0x67
fstp dword [edi]
mov eax, dword [esi]
push esi
call dword [eax + 0x34]
jmp 0x1009eb73
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10c]
test eax, eax
je 0x1009eb7b
mov eax, dword [eax + 0x78]
jmp 0x1009f17f
cmp dword [ebp + 0x14], 5
mov eax, dword [ebp + 8]
jne 0x1009ede8
mov edi, dword [ebp + 0x10]
lea esi, [eax + 0x288]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp + 0x14], 2
jne 0x1009eb7b
lea ecx, [eax + 0x288]
jmp 0x1009eba3
mov eax, dword [ebp + 8]
push 0x104
push dword [ebp + 0x10]
add eax, 0x174
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
jmp 0x1009f17f
mov eax, dword [ebp + 8]
push 0x104
push dword [ebp + 0x10]
add eax, 0x174
jmp 0x1009ecf4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
jmp 0x1009ec3e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x1c]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
jmp 0x1009ec12
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x20]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
movzx eax, byte [eax + 0x2e]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 3
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x24]
jmp 0x1009eb6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 4
jmp 0x1009ed52
mov eax, 0x7d5
cmp ecx, eax
jg 0x1009f0c6
je 0x1009f0b0
lea eax, [ecx - 0x418]
cmp eax, 0x1d
ja case.0x1009eeec.1076
jmp dword [eax*4 + 0x1009f1e6]
mov eax, dword [ebp + 8]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x19c]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x348]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
movzx eax, byte [eax + 0x60]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 6
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 5
not eax
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 0xa
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 1
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
movzx eax, word [eax + 0x2a]
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 2
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 7
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 0xc
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x18]
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 8
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 0xe
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 0xf
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 0x13
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 0x12
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x3c]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 9
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x9c]
jmp 0x1009eb6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x90]
jmp 0x1009eb6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + 0x94]
jmp 0x1009eb6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
fld dword [eax + ecx*4 - 0x101c]
jmp 0x1009eb6e
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
push 6
add esi, 0x118
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x1009eb73
mov eax, 0x7db
cmp ecx, eax
jg 0x1009f12c
je 0x1009f121
mov eax, ecx
sub eax, 0x7d7
je 0x1009f113
dec eax
je 0x1009f105
dec eax
je 0x1009f0f7
dec eax
jne case.0x1009eeec.1076
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x15c]
and al, 0x10
xor ecx, ecx
cmp al, 0x10
jmp 0x1009f17a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x38]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x34]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x30]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x130]
jmp 0x1009f17f
mov eax, ecx
sub eax, 0x8007
je 0x1009f16b
dec eax
je 0x1009f160
dec eax
je 0x1009f14c
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ecx
push dword [ebp + 8]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x164]
mov eax, dword [eax + 0x28]
shr eax, 0x15
jmp 0x1009ed52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x338]
jmp 0x1009f17f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x15c]
and al, 0x20
xor ecx, ecx
cmp al, 0x20
sete cl
mov eax, ecx
pop edi
pop esi
leave
ret 0x10