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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x7c]
lea ecx, [eax + eax*2]
add ecx, ecx
add ecx, ecx
mov esi, dword [esp + 0x74]
mov eax, dword [esi + 0x58]
mov edx, dword [eax + ecx]
mov dword [esp + 0x28], edx
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + ecx + 8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x2c], edx
lea edx, [ecx + ecx*2]
mov ecx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], ecx
fld dword [esp + 0x34]
fsub dword [esp + 0x28]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
fstp dword [esp + 0x1c]
lea ecx, [esp + 0x1c]
fld dword [esp + 0x38]
push ecx
fsub dword [esp + 0x30]
fstp dword [esp + 0x24]
fld dword [esp + 0x40]
fsub dword [esp + 0x34]
fstp dword [esp + 0x28]
call sym.rt3d.dll_public:_void___stdcall_POINT3D::Normalize_void_
xor ebp, ebp
cmp dword [esi + 0x118], ebp
mov dword [esp + 0x18], ebp
jle 0x10044988
mov dword [esp + 0x74], ebp
mov dword [esp + 0x10], ebp
mov edi, edi
mov edx, dword [esi + 0xf8]
or ebx, 0xffffffff
or edi, 0xffffffff
test edx, edx
jne 0x100445c4
xor eax, eax
jmp 0x100445f7
lea eax, [edx + ebp]
test eax, eax
je 0x100445f7
mov eax, dword [eax]
mov ecx, dword [esi + 0x94]
lea ecx, [ecx + eax*4]
mov eax, dword [esi + 0x100]
test eax, eax
je 0x100445f3
mov ebp, dword [esp + 0x74]
movzx eax, word [eax + ebp]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov ebp, dword [esp + 0x10]
jmp 0x100445f7
mov eax, dword [ecx]
mov eax, dword [eax]
cmp dword [esp + 0x7c], eax
jne 0x10044677
test edx, edx
jne 0x10044605
xor ebx, ebx
jmp 0x1004463a
lea eax, [edx + ebp]
test eax, eax
jne 0x10044610
xor ebx, ebx
jmp 0x1004463a
mov ecx, dword [eax]
mov eax, dword [esi + 0x94]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x100]
test eax, eax
je 0x10044635
mov edi, dword [esp + 0x74]
movzx eax, word [edi + eax + 2]
mov ecx, dword [ecx]
mov ebx, dword [ecx + eax*4]
jmp 0x1004463a
mov eax, dword [ecx]
mov ebx, dword [eax + 4]
test edx, edx
jne 0x10044642
xor edi, edi
jmp 0x10044677
lea eax, [edx + ebp]
test eax, eax
jne 0x1004464d
xor edi, edi
jmp 0x10044677
mov ecx, dword [eax]
mov eax, dword [esi + 0x94]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x100]
test eax, eax
je 0x10044672
mov edi, dword [esp + 0x74]
movzx eax, word [edi + eax + 4]
mov ecx, dword [ecx]
mov edi, dword [ecx + eax*4]
jmp 0x10044677
mov eax, dword [ecx]
mov edi, dword [eax + 8]
test edx, edx
jne 0x1004467f
xor eax, eax
jmp 0x100446b4
lea eax, [edx + ebp]
test eax, eax
je 0x100446b4
mov ecx, dword [eax]
mov eax, dword [esi + 0x94]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x100]
test eax, eax
je 0x100446af
mov ebp, dword [esp + 0x74]
movzx eax, word [eax + ebp + 2]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov ebp, dword [esp + 0x10]
jmp 0x100446b4
mov eax, dword [ecx]
mov eax, dword [eax + 4]
cmp dword [esp + 0x7c], eax
jne 0x10044732
test edx, edx
jne 0x100446c2
xor ebx, ebx
jmp 0x100446f5
lea eax, [edx + ebp]
test eax, eax
jne 0x100446cd
xor ebx, ebx
jmp 0x100446f5
mov ecx, dword [eax]
mov eax, dword [esi + 0x94]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x100]
test eax, eax
je 0x100446f1
mov edi, dword [esp + 0x74]
movzx eax, word [edi + eax]
mov ecx, dword [ecx]
mov ebx, dword [ecx + eax*4]
jmp 0x100446f5
mov eax, dword [ecx]
mov ebx, dword [eax]
test edx, edx
jne 0x100446fd
xor edi, edi
jmp 0x10044732
lea eax, [edx + ebp]
test eax, eax
jne 0x10044708
xor edi, edi
jmp 0x10044732
mov ecx, dword [eax]
mov eax, dword [esi + 0x94]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x100]
test eax, eax
je 0x1004472d
mov edi, dword [esp + 0x74]
movzx eax, word [edi + eax + 4]
mov ecx, dword [ecx]
mov edi, dword [ecx + eax*4]
jmp 0x10044732
mov eax, dword [ecx]
mov edi, dword [eax + 8]
test edx, edx
jne 0x1004473a
xor eax, eax
jmp 0x1004476f
lea eax, [edx + ebp]
test eax, eax
je 0x1004476f
mov ecx, dword [eax]
mov eax, dword [esi + 0x94]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x100]
test eax, eax
je 0x1004476a
mov ebp, dword [esp + 0x74]
movzx eax, word [eax + ebp + 4]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov ebp, dword [esp + 0x10]
jmp 0x1004476f
mov eax, dword [ecx]
mov eax, dword [eax + 8]
cmp dword [esp + 0x7c], eax
jne 0x100447ed
test edx, edx
jne 0x1004477d
xor ebx, ebx
jmp 0x100447b0
lea eax, [edx + ebp]
test eax, eax
jne 0x10044788
xor ebx, ebx
jmp 0x100447b0
mov ecx, dword [eax]
mov eax, dword [esi + 0x94]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0x100]
test eax, eax
je 0x100447ac
mov edi, dword [esp + 0x74]
movzx eax, word [edi + eax]
mov ecx, dword [ecx]
mov ebx, dword [ecx + eax*4]
jmp 0x100447b0
mov eax, dword [ecx]
mov ebx, dword [eax]
test edx, edx
jne 0x100447b8
xor edi, edi
jmp 0x100447ed
lea eax, [edx + ebp]
test eax, eax
jne 0x100447c3
xor edi, edi
jmp 0x100447ed
mov ecx, dword [eax]
mov eax, dword [esi + 0x100]
test eax, eax
mov edx, dword [esi + 0x94]
lea ecx, [edx + ecx*4]
je 0x100447e8
mov edx, dword [esp + 0x74]
movzx eax, word [edx + eax + 2]
mov ecx, dword [ecx]
mov edi, dword [ecx + eax*4]
jmp 0x100447ed
mov edx, dword [ecx]
mov edi, dword [edx + 4]
test ebx, ebx
jle 0x10044965
cmp ebx, dword [esp + 0x80]
je 0x100448af
cmp ebx, dword [esp + 0x78]
je 0x100448af
mov eax, dword [esi + 0x58]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + ecx + 4]
mov ecx, dword [eax + ecx + 8]
mov dword [esp + 0x50], edx
lea edx, [ebx + ebx*2]
lea eax, [eax + edx*4]
mov edx, dword [eax + 4]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x40], ecx
fld dword [esp + 0x40]
fsub dword [esp + 0x4c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
lea ecx, [esp + 0x28]
fstp dword [esp + 0x28]
push ecx
fld dword [esp + 0x48]
fsub dword [esp + 0x54]
fstp dword [esp + 0x30]
fld dword [esp + 0x4c]
fsub dword [esp + 0x58]
fstp dword [esp + 0x34]
call sym.rt3d.dll_public:_void___stdcall_POINT3D::Normalize_void_
fld dword [esp + 0x2c]
fmul dword [esp + 0x20]
fld dword [esp + 0x28]
fmul dword [esp + 0x1c]
faddp st(1)
fld dword [esp + 0x30]
fmul dword [esp + 0x24]
faddp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd qword [0x1014e7b0]
fabs
fcomp qword [0x10155220]
fnstsw ax
test ah, 5
jnp 0x10044993
cmp edi, dword [esp + 0x80]
je 0x10044965
cmp edi, dword [esp + 0x78]
je 0x10044965
mov eax, dword [esi + 0x58]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx]
mov dword [esp + 0x64], edx
mov edx, dword [eax + ecx + 4]
mov ecx, dword [eax + ecx + 8]
mov dword [esp + 0x68], edx
lea edx, [edi + edi*2]
lea eax, [eax + edx*4]
mov edx, dword [eax + 4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x58], ecx
fld dword [esp + 0x58]
fsub dword [esp + 0x64]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
lea ecx, [esp + 0x34]
fstp dword [esp + 0x34]
push ecx
fld dword [esp + 0x60]
fsub dword [esp + 0x6c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x64]
fsub dword [esp + 0x70]
fstp dword [esp + 0x40]
call sym.rt3d.dll_public:_void___stdcall_POINT3D::Normalize_void_
fld dword [esp + 0x38]
fmul dword [esp + 0x20]
fld dword [esp + 0x34]
fmul dword [esp + 0x1c]
faddp st(1)
fld dword [esp + 0x3c]
fmul dword [esp + 0x24]
faddp st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd qword [0x1014e7b0]
fabs
fcomp qword [0x10155220]
fnstsw ax
test ah, 5
jnp 0x1004499d
mov eax, dword [esp + 0x18]
add dword [esp + 0x74], 6
add eax, 1
add ebp, 0x11
cmp eax, dword [esi + 0x118]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebp
jl 0x100445b0
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x60
ret
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x60
ret
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret