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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
mov eax, dword [0x101631e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x220], edi
test edi, edi
je 0x100ce266
cmp dword [edi + 0x1c], 0
push esi
jne 0x100cdab2
mov ecx, dword [ebx + 0x28]
mov esi, dword [ecx]
push 0
call sym.rt3d.dll_public_virtual:_void____stdcall_e3_STREAM::GetHANDLE_void_
push eax
push edi
push dword [ebx + 0x28]
call dword [esi + 0x34c]
test byte [ebx + 0x50], 1
fld1
mov byte [ebx + 0xbc], 0
je 0x100cdb4d
mov eax, dword [ebx + 0x84]
test eax, eax
je 0x100ce263
cmp dword [eax + 0xc0], 0
je 0x100ce263
test byte [ebx + 0xb8], 1
lea esi, [ebx + 0x54]
lea edi, [ebp - 0x244]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jne 0x100cdb13
mov ecx, dword [ebp - 0x220]
fild dword [ecx + 0x74]
fmul dword [ebx + 0x54]
fstp dword [ebp - 0x244]
fild dword [ecx + 0x78]
fmul dword [ebx + 0x58]
fstp dword [ebp - 0x240]
fldz
fcom dword [ebp - 0x23c]
fnstsw ax
test ah, 0x41
jne 0x100cdb2f
fstp st(1)
fst dword [ebp - 0x23c]
jmp 0x100cdf84
fxch st(1)
fcom dword [ebp - 0x23c]
fnstsw ax
test ah, 5
jp 0x100cdf82
fstp dword [ebp - 0x23c]
jmp 0x100cdf84
mov eax, dword [ebx + 0x88]
fstp st(0)
test eax, eax
je 0x100cdd0a
mov edi, dword [eax + 0x24]
xor esi, esi
mov dword [ebp - 0x208], edi
mov byte [ebp - 0x20d], 0
test edi, edi
jle 0x100cdb99
mov eax, dword [ebx + 0x88]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x10]
test byte [eax + 0x18], 8
je 0x100cdb8d
mov byte [ebp - 0x20d], 1
push eax
push ebx
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
inc esi
cmp esi, edi
jl 0x100cdb73
and dword [ebp - 0x214], 0
test edi, edi
jle 0x100cdc0b
mov eax, dword [ebx + 0x88]
push dword [ebp - 0x214]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
mov ecx, dword [eax + 0x18]
test cl, 1
jne 0x100cdbfd
test cl, 2
je 0x100cdbfd
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x100cdbfd
fld dword [ecx]
lea esi, [ebp - 0x22c]
fadd dword [eax]
mov edi, eax
fstp dword [ebp - 0x22c]
fld dword [ecx + 4]
fadd dword [eax + 4]
fstp dword [ebp - 0x228]
fld dword [ecx + 8]
fadd dword [eax + 8]
fstp dword [ebp - 0x224]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x208]
inc dword [ebp - 0x214]
cmp dword [ebp - 0x214], edi
jl 0x100cdba4
cmp byte [ebp - 0x20d], 0
je 0x100cdc45
mov eax, dword [ebx + 0x8c]
xor esi, esi
cmp eax, esi
je 0x100cdc45
cmp dword [eax + 0x24], esi
jle 0x100cdc45
mov eax, dword [ebx + 0x8c]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x10]
push eax
push ebx
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
mov eax, dword [ebx + 0x8c]
inc esi
cmp esi, dword [eax + 0x24]
jl 0x100cdc25
fldz
xor esi, esi
fst dword [ebp - 0x224]
mov dword [ebp - 0x214], esi
fst dword [ebp - 0x228]
fstp dword [ebp - 0x22c]
cmp edi, esi
jle 0x100cdd0a
mov eax, dword [ebx + 0x88]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x10]
test byte [eax + 0x18], 4
je 0x100cdcae
fld dword [ebp - 0x22c]
inc dword [ebp - 0x214]
fadd dword [eax]
fstp dword [ebp - 0x22c]
fld dword [eax + 4]
fadd dword [ebp - 0x228]
fstp dword [ebp - 0x228]
fld dword [eax + 8]
fadd dword [ebp - 0x224]
fstp dword [ebp - 0x224]
inc esi
cmp esi, edi
jl 0x100cdc69
cmp dword [ebp - 0x214], 0
je 0x100cdd0a
fild dword [ebp - 0x214]
lea edi, [ebx + 0x54]
lea esi, [ebp - 0x21c]
fstp dword [ebp - 0x20c]
fld dword [ebp - 0x22c]
fdiv dword [ebp - 0x20c]
fstp dword [ebp - 0x21c]
fld dword [ebp - 0x228]
fdiv dword [ebp - 0x20c]
fstp dword [ebp - 0x218]
fld dword [ebp - 0x224]
fdiv dword [ebp - 0x20c]
fstp dword [ebp - 0x214]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x84]
xor esi, esi
cmp eax, esi
je 0x100ce265
cmp dword [eax + 0xc0], esi
je 0x100ce265
mov eax, dword [ebx + 0x90]
dec eax
dec eax
je 0x100cde55
dec eax
jne 0x100cdf06
mov eax, dword [ebx + 0x88]
cmp eax, esi
je 0x100cdf06
mov dword [ebp - 0x20c], esi
mov dword [ebp - 0x214], esi
cmp dword [eax + 0x24], esi
jle 0x100cddb6
lea eax, [ebp - 0x238]
mov dword [ebp - 0x208], eax
mov eax, dword [ebx + 0x88]
push dword [ebp - 0x214]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
test byte [eax + 0x18], 1
je 0x100cdd9f
mov edi, dword [ebp - 0x208]
inc dword [ebp - 0x20c]
add dword [ebp - 0x208], 0xc
cmp dword [ebp - 0x20c], 2
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x100cddb6
inc dword [ebp - 0x214]
mov eax, dword [ebx + 0x88]
mov ecx, dword [ebp - 0x214]
cmp ecx, dword [eax + 0x24]
jl 0x100cdd66
cmp dword [ebp - 0x20c], 2
fldz
fstp dword [ebp - 0x208]
jne 0x100cde0f
fld dword [ebp - 0x22c]
lea eax, [ebp - 0x250]
fsub dword [ebp - 0x238]
push eax
fstp dword [ebp - 0x250]
fld dword [ebp - 0x228]
fsub dword [ebp - 0x234]
fstp dword [ebp - 0x24c]
fld dword [ebp - 0x224]
fsub dword [ebp - 0x230]
fstp dword [ebp - 0x248]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
fstp dword [ebp - 0x208]
mov eax, dword [ebx + 0x28]
fld dword [eax + 0x294]
push ecx
fstp dword [esp]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
pop ecx
test eax, eax
jne 0x100cde2b
mov eax, 0x1013318c
fld dword [ebp - 0x208]
push eax
push ecx
push ecx
fstp qword [esp]
push str.Distance__g___s
lea eax, [ebp - 0x204]
push pe_nt_image_headers32
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
add esp, 0x18
jmp 0x100cdef6
fldz
mov eax, dword [ebx + 0x88]
fst dword [ebp - 0x224]
fst dword [ebp - 0x228]
fstp dword [ebp - 0x22c]
cmp dword [eax + 0x24], esi
jle 0x100cdea0
mov eax, dword [ebx + 0x88]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x10]
test byte [eax + 0x18], 1
jne 0x100cde95
mov eax, dword [ebx + 0x88]
inc esi
cmp esi, dword [eax + 0x24]
jl 0x100cde74
jmp 0x100cdea0
mov esi, eax
lea edi, [ebp - 0x22c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x28]
fld dword [eax + 0x294]
push ecx
fstp dword [esp]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
pop ecx
test eax, eax
jne 0x100cdebc
mov eax, 0x1013318c
fld dword [ebp - 0x224]
push eax
sub esp, 0x18
fstp qword [esp + 0x10]
lea eax, [ebp - 0x204]
fld dword [ebp - 0x228]
fstp qword [esp + 8]
fld dword [ebp - 0x22c]
fstp qword [esp]
push str.Coordinate__g__g__g__s
push pe_nt_image_headers32
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::_FromUpDir_struct_MATRIX3D___struct_POINT3D___struct_POINT3D___struct_POINT3D__
add esp, 0x28
mov eax, dword [ebx]
lea ecx, [ebp - 0x204]
push ecx
push ebx
call dword [eax + 0xe0]
lea esi, [ebx + 0x54]
lea edi, [ebp - 0x25c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x244]
push edx
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x220]
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
lea edx, [ebp - 0x25c]
push edx
push eax
call dword [ecx + 0x24]
cmp dword [esi + 0x1c], 0
je 0x100cdf53
mov esi, dword [esi + 0x1c]
mov eax, dword [esi]
push 1
lea ecx, [ebp - 0x244]
push ecx
push esi
call dword [eax + 0x18]
test eax, eax
je 0x100cdf53
test al, 0xc
jne 0x100ce265
mov eax, dword [ebp - 0x220]
cmp dword [eax + 0x1c], 0
lea esi, [ebp - 0x25c]
lea edi, [ebp - 0x244]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x100cdf7e
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
lea edx, [ebp - 0x244]
push edx
push eax
call dword [ecx + 0x3c]
fldz
jmp 0x100cdf84
fstp st(0)
mov ecx, dword [ebx + 0x28]
mov edx, dword [ecx + 0x158]
test dl, 0x20
je 0x100ce263
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x228], eax
fcom dword [ebp - 0x228]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x224], eax
mov eax, dword [ebx + 0x84]
mov esi, dword [eax + 0xc0]
fnstsw ax
test ah, 1
je 0x100cdfce
fcom dword [ebp - 0x224]
fnstsw ax
test ah, 1
jne 0x100cdfdc
fld1
fst dword [ebp - 0x224]
fstp dword [ebp - 0x228]
fld dword [ebx + 0x68]
mov eax, dword [ebp - 0x228]
fld st(1)
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x224]
fucompp
mov dword [ebp - 0x214], eax
fnstsw ax
test ah, 0x44
jnp 0x100ce034
fld dword [ebx + 0x6c]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100ce034
fld dword [ecx + 0x2d4]
fmul dword [ebx + 0x68]
fidiv dword [esi + 0x64]
fstp dword [ebp - 0x218]
fld dword [ecx + 0x2d4]
fmul dword [ebx + 0x6c]
fidiv dword [esi + 0x68]
fstp dword [ebp - 0x214]
fild dword [esi + 0x64]
fmul dword [ebp - 0x218]
fstp dword [ebp - 0x218]
fild dword [esi + 0x68]
fmul dword [ebp - 0x214]
fstp dword [ebp - 0x214]
test edx, 0x200000
je 0x100ce07c
fld dword [ebp - 0x218]
fld qword [0x10121c30]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0x218]
fmul dword [ebp - 0x214]
fstp dword [ebp - 0x214]
fld dword [ebp - 0x244]
lea esi, [ebx + 0xbd]
fld dword [ebx + 0x60]
lea edi, [ebx + 0xc9]
fmul dword [ecx + 0x2d4]
fmul dword [ebx + 0x68]
fsubp st(1)
fstp dword [ebx + 0xbd]
fld dword [ebp - 0x240]
fld dword [ebx + 0x64]
fmul dword [ecx + 0x2d4]
mov ecx, dword [ebp - 0x220]
fmul dword [ebx + 0x6c]
fsubp st(1)
fstp dword [ebx + 0xc1]
fld dword [ebp - 0x23c]
fstp dword [ebx + 0xc5]
movsd dword es:[edi], dword [esi]
fld dword [ebp - 0x218]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fadd dword [ebx + 0xc9]
lea esi, [ebx + 0xbd]
fstp dword [ebx + 0xc9]
lea edi, [ebx + 0xd5]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [ebx + 0xd5]
fadd dword [ebp - 0x218]
lea edi, [ebx + 0xe1]
lea esi, [ebx + 0xbd]
fstp dword [ebp - 0x208]
movsd dword es:[edi], dword [esi]
fld dword [ebp - 0x208]
fstp dword [ebx + 0xd5]
fld dword [ebx + 0xd9]
fadd dword [ebp - 0x214]
movsd dword es:[edi], dword [esi]
fstp dword [ebp - 0x20c]
fld dword [ebp - 0x20c]
movsd dword es:[edi], dword [esi]
fstp dword [ebx + 0xd9]
fld dword [ebp - 0x214]
fadd dword [ebx + 0xe5]
fstp dword [ebx + 0xe5]
fld dword [ebx + 0xbd]
fild dword [ecx + 0x74]
fcompp
fnstsw ax
test ah, 0x41
jnp 0x100ce263
fld dword [ebx + 0xc1]
fild dword [ecx + 0x78]
fcompp
fnstsw ax
test ah, 0x41
jnp 0x100ce263
fcom dword [ebp - 0x208]
fnstsw ax
test ah, 0x41
je 0x100ce263
fcomp dword [ebp - 0x20c]
fnstsw ax
test ah, 0x41
je 0x100ce265
mov eax, dword [ebp - 0x220]
push 0xc
lea edi, [ebx + 0x10d]
pop ecx
lea esi, [ebx + 0xbd]
rep movsd dword es:[edi], dword [esi]
cmp dword [eax + 0x1c], 0
je 0x100ce1e8
mov eax, dword [ebx + 0x28]
test dword [eax + 0x158], 0x100
je 0x100ce1e8
push 4
lea esi, [ebx + 0xbd]
pop edi
mov eax, dword [ebp - 0x220]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x34]
add esi, 0xc
dec edi
jne 0x100ce1d2
fld dword [ebx + 0x70]
mov byte [ebx + 0xbc], 1
fstp dword [ebx + 0xed]
fld dword [ebx + 0x74]
fstp dword [ebx + 0xf1]
fld dword [ebx + 0x70]
fadd dword [ebp - 0x228]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
fstp dword [ebx + 0xf5]
fld dword [ebx + 0x74]
fstp dword [ebx + 0xf9]
fld dword [ebp - 0x208]
fstp dword [ebx + 0xfd]
fld dword [ebx + 0x74]
fadd dword [ebp - 0x224]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
fstp dword [ebx + 0x101]
fld dword [ebx + 0x70]
fstp dword [ebx + 0x105]
fld dword [ebp - 0x208]
fstp dword [ebx + 0x109]
jmp 0x100ce265
fstp st(0)
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.10113450
leave
ret 8