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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
push ebx
push esi
push edi
mov edi, ecx
lea eax, [esp + 0x74]
lea ecx, [esp + 0x70]
push eax
lea edx, [esp + 0x70]
push ecx
push edx
push 0x3f000000
push 0
push 0
mov ecx, edi
call fcn.00406b70
fld dword [esp + 0x6c]
fmul dword [0x441358]
fld dword [esp + 0x70]
fmul dword [0x441358]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
fstp dword [esp + 0x88]
fld dword [esp + 0x74]
fmul dword [0x441358]
fstp dword [esp + 0x8c]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x40]
fld dword [esp + 0x88]
fdiv dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x60]
push ecx
mov ecx, edi
fstp dword [esp + 0x48]
fld dword [esp + 0x90]
fdiv dword [esp + 0x14]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x74], edx
lea edx, [esp + 0x60]
push edx
fstp dword [esp + 0x50]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x60]
push eax
push 0x3f000000
push 0
push 0x3f800000
call fcn.00406b70
fld dword [esp + 0x58]
fmul dword [0x441358]
fld dword [esp + 0x5c]
fmul dword [0x441358]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x10], ecx
fstp dword [esp + 0x88]
fld dword [esp + 0x60]
fmul dword [0x441358]
fstp dword [esp + 0x8c]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x40]
fld dword [esp + 0x88]
fdiv dword [esp + 0x10]
mov edx, dword [esp + 0x40]
fstp dword [esp + 0x44]
fld dword [esp + 0x8c]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x54]
mov dword [esp + 0x60], ecx
lea eax, [esp + 0x50]
push edx
lea ecx, [esp + 0x50]
push eax
push ecx
push 0x3f000000
push 0x3f800000
push 0
mov ecx, edi
call fcn.00406b70
fld dword [esp + 0x4c]
fmul dword [0x441358]
fld dword [esp + 0x50]
fmul dword [0x441358]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], edx
fstp dword [esp + 0x88]
fld dword [esp + 0x54]
fmul dword [0x441358]
fstp dword [esp + 0x8c]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x40]
fld dword [esp + 0x88]
fdiv dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x80]
push eax
fstp dword [esp + 0x48]
fld dword [esp + 0x90]
fdiv dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x80]
push ecx
mov ecx, edi
fstp dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x80]
push edx
push 0x3f000000
push 0x3f800000
push 0x3f800000
call fcn.00406b70
fld dword [esp + 0x78]
fmul dword [0x441358]
fld dword [esp + 0x80]
fmul dword [0x441358]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
fstp dword [esp + 0x8c]
fdiv dword [esp + 0x1c]
fld dword [esp + 0x8c]
fdiv dword [esp + 0x1c]
fstp dword [esp + 0x8c]
fld qword [edi + 8]
fsin
fadd qword [0x4412c0]
fmul qword [0x4412e8]
fstp dword [esp + 0x28]
fld qword [edi + 8]
fmul qword [0x441350]
fcos
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1c], 0
lea esi, [ecx + 4]
fadd qword [0x4412c0]
fmul qword [0x4412e8]
fstp dword [esp + 0x2c]
fld qword [edi + 8]
fmul qword [0x441348]
fcos
fadd qword [0x4412c0]
fmul qword [0x4412e8]
fstp dword [esp + 0x24]
fld qword [edi + 8]
fmul qword [0x441340]
fcos
fadd qword [0x4412c0]
fmul qword [0x4412e8]
fstp dword [esp + 0x3c]
fsub dword [esp + 0x6c]
fstp dword [esp + 0x34]
fld dword [esp + 0x8c]
fsub dword [esp + 0x74]
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebx
fild qword [esp + 0x40]
fmul dword [0x441338]
fld dword [esp + 0x30]
fmul st(1)
fadd dword [esp + 0x74]
fstp dword [esp + 0x38]
fsub dword [esp + 0x2c]
fst dword [esp + 0x18]
fld qword [0x441288]
call fcn.00434ef0
fstp qword [esp + 0x58]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], 0
fild qword [esp + 0x4c]
mov eax, dword [esp + 0x38]
mov dword [esi + 4], eax
fmul dword [0x441338]
fld dword [esp + 0x34]
fmul st(1)
fadd dword [esp + 0x6c]
fstp dword [esi - 4]
fsub dword [esp + 0x28]
fst dword [esp + 0x14]
fld qword [0x441288]
call fcn.00434ef0
fadd qword [esp + 0x58]
fsqrt
fst dword [esp + 0x20]
fld qword [0x441288]
call fcn.00434ef0
fsubr qword [0x4412c0]
fst dword [esp + 0x10]
fcomp dword [0x441280]
fnstsw ax
test ah, 1
je 0x404bfd
mov dword [esp + 0x10], 0
fld dword [esp + 0x10]
fmul dword [esp + 0x24]
fmul qword [0x441330]
fsubr qword [0x441328]
fcom qword [0x441320]
fnstsw ax
test ah, 1
je 0x404c26
fstp st(0)
fld dword [0x44131c]
fstp dword [esi]
fld dword [0x441298]
fsub dword [esp + 0x20]
fld qword [0x441288]
call fcn.00434ef0
fmul dword [esp + 0x10]
fmul dword [esp + 0x3c]
fmul dword [esp + 0x24]
fcom dword [0x441280]
fnstsw ax
test ah, 1
je 0x404c60
fstp st(0)
fld dword [0x441280]
jmp 0x404c75
fcom dword [0x441298]
fnstsw ax
test ah, 0x41
jne 0x404c75
fstp st(0)
fld dword [0x441298]
fld qword [edi + 8]
fsin
inc ebx
add esi, 0x20
cmp ebx, 0x21
fmulp st(1)
fmul dword [0x441318]
fld st(0)
fcos
fstp dword [esp + 0x20]
fsin
fld dword [esp + 0x20]
fmul dword [esp + 0x14]
fadd dword [esp + 0x28]
fld st(1)
fmul dword [esp + 0x18]
fsubp st(1)
fstp dword [esi - 0x18]
fmul dword [esp + 0x14]
fld dword [esp + 0x20]
fmul dword [esp + 0x18]
faddp st(1)
fadd dword [esp + 0x2c]
fstp dword [esi - 0x14]
jb 0x404b8c
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 0x21
mov dword [esp + 0x1c], eax
jb 0x404b4f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4