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

Disassembly:
sub esp, 0x44
fld qword [esp + 0x64]
push ebp
fsin
mov ebp, dword [esp + 0x60]
push esi
mov esi, dword [esp + 0x68]
push edi
mov edi, dword [esp + 0x54]
fild dword [esp + 0x68]
fld qword [esp + 0x70]
fcos
fild dword [esp + 0x6c]
fld st(0)
fmul st(2)
fld st(3)
fmul st(5)
faddp st(1)
fmul qword [esp + 0x78]
call fcn.004c2ba0
fld st(1)
mov edx, dword [esp + 0x5c]
fmul st(3)
fxch st(1)
sub esi, eax
fmul st(4)
add edx, esi
mov dword [esp + 0x5c], edx
fsubp st(1)
fmul qword [esp + 0x78]
call fcn.004c2ba0
fmul qword [esp + 0x78]
fstp dword [esp + 0x18]
sub ebp, eax
mov eax, dword [esp + 0x60]
fstp st(0)
add eax, ebp
fmul qword [esp + 0x78]
mov dword [esp + 0x60], eax
mov eax, dword [edi]
fstp dword [esp + 0x14]
mov ecx, edi
call dword [eax + 0x1c]
mov edx, dword [edi]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
mov ecx, edi
fstp dword [esp + 0x34]
call dword [edx + 0x1c]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
mov eax, dword [edi]
mov ecx, edi
fstp dword [esp + 0x38]
call dword [eax + 0x24]
mov edx, dword [edi]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
mov ecx, edi
fstp dword [esp + 0x48]
call dword [edx + 0x24]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
mov dword [esp + 0x68], 0x4f000000
fld dword [esp + 0x14]
mov dword [esp + 0xc], 0xcf000000
fmul dword [0x52cadc]
mov dword [esp + 0x6c], 0x4f000000
mov dword [esp + 0x10], 0xcf000000
fstp dword [esp + 0x20]
fld dword [esp + 0x18]
fmul dword [0x52cadc]
fstp dword [esp + 0x28]
fild dword [esp + 0x5c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x28]
fadd dword [esp + 0x20]
fadd dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
fild dword [esp + 0x60]
mov dword [esp + 0x2c], eax
fstp dword [esp + 0x24]
fld dword [esp + 0x2c]
fsub dword [esp + 0x20]
fadd dword [esp + 0x24]
fstp dword [esp + 0x40]
fcom dword [0x52cb44]
fnstsw ax
test ah, 5
jp 0x4494af
fst dword [esp + 0x68]
fcom dword [0x52cb40]
fnstsw ax
test ah, 0x41
jne 0x4494c2
fstp dword [esp + 0xc]
jmp 0x4494c4
fstp st(0)
fld dword [esp + 0x40]
fcomp dword [0x52cb44]
fnstsw ax
test ah, 5
jp 0x4494dd
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x6c], ecx
fld dword [esp + 0x40]
fcomp dword [0x52cb40]
fnstsw ax
test ah, 0x41
jne 0x4494f6
mov edx, dword [esp + 0x40]
mov dword [esp + 0x10], edx
fld dword [esp + 0x34]
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x20]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x34]
fmul dword [esp + 0x14]
fsubr dword [esp + 0x2c]
fadd dword [esp + 0x24]
fld dword [esp + 0x34]
fcomp dword [esp + 0x68]
fnstsw ax
test ah, 5
jp 0x44952f
mov eax, dword [esp + 0x34]
mov dword [esp + 0x68], eax
fld dword [esp + 0x34]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x449546
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xc], ecx
fcom dword [esp + 0x6c]
fnstsw ax
test ah, 5
jp 0x449555
fst dword [esp + 0x6c]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x449566
fstp dword [esp + 0x10]
jmp 0x449568
fstp st(0)
fld dword [esp + 0x38]
fld dword [esp + 0x48]
fld dword [esp + 0x14]
fmul st(1)
fld st(2)
fmul dword [esp + 0x18]
faddp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x38]
fmul dword [esp + 0x18]
fxch st(1)
fmul dword [esp + 0x14]
fsubp st(1)
fadd dword [esp + 0x24]
fld dword [esp + 0x38]
fcomp dword [esp + 0x68]
fnstsw ax
test ah, 5
jp 0x4495ad
mov edx, dword [esp + 0x38]
mov dword [esp + 0x68], edx
fld dword [esp + 0x38]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x4495c4
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
fcom dword [esp + 0x6c]
fnstsw ax
test ah, 5
jp 0x4495d3
fst dword [esp + 0x6c]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x4495e4
fstp dword [esp + 0x10]
jmp 0x4495e6
fstp st(0)
fld dword [esp + 0x14]
fmul st(1)
fadd dword [esp + 0x28]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x3c]
fmul dword [esp + 0x18]
fsub dword [esp + 0x20]
fadd dword [esp + 0x24]
fld dword [esp + 0x3c]
fcomp dword [esp + 0x68]
fnstsw ax
test ah, 5
jp 0x44961b
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x68], ecx
fld dword [esp + 0x3c]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x449632
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
fcom dword [esp + 0x6c]
fnstsw ax
test ah, 5
jp 0x449641
fst dword [esp + 0x6c]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x449652
fstp dword [esp + 0x10]
jmp 0x449654
fstp st(0)
fld qword [0x52caf8]
mov eax, dword [edi]
fdiv qword [esp + 0x78]
mov ecx, edi
fstp qword [esp + 0x78]
call dword [eax + 0x24]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x1c]
fld dword [esp + 0x68]
call fcn.004c2ba0
fld dword [esp + 0x6c]
mov ebp, eax
call fcn.004c2ba0
fld dword [esp + 0xc]
fsub dword [esp + 0x68]
mov dword [esp + 0x34], eax
call fcn.004c2ba0
fld dword [esp + 0x10]
fsub dword [esp + 0x6c]
mov dword [esp + 0x38], eax
call fcn.004c2ba0
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
cmp ebp, eax
jle 0x4496bc
mov esi, ebp
mov dword [esp + 0x6c], esi
jmp 0x4496c2
mov dword [esp + 0x6c], eax
mov esi, eax
mov edx, dword [ecx + 4]
cmp dword [esp + 0x34], edx
mov dword [esp + 0x68], edx
jle 0x4496d9
mov edx, dword [esp + 0x34]
mov dword [esp + 0x28], edx
jmp 0x4496dd
mov dword [esp + 0x28], edx
mov ecx, dword [ecx + 8]
add eax, ecx
mov ecx, dword [esp + 0x38]
add ecx, ebp
cmp ecx, eax
jl 0x4496ee
mov ecx, eax
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0xc]
mov ebp, dword [esp + 0x68]
add eax, ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3c]
add eax, ebp
mov ebp, dword [esp + 0x68]
cmp eax, ebp
jl 0x449713
mov eax, ebp
sub ecx, esi
sub eax, edx
push edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov eax, dword [ebx]
push esi
mov ecx, ebx
call dword [eax + 0x34]
mov edx, dword [ebx]
mov esi, eax
mov ecx, ebx
mov dword [esp + 0x58], esi
call dword [edx + 0x2c]
mov ebp, eax
mov eax, dword [esp + 0x48]
shr ebp, 1
sub ebp, eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov edx, dword [ebx]
mov ecx, ebx
sub ebp, eax
call dword [edx + 0x1c]
fld qword [esp + 0x70]
fchs
add ebp, eax
fld st(0)
mov dword [esp + 0x10], ebp
fsin
fmul qword [esp + 0x78]
fmul qword [0x52cb48]
call fcn.004c2ba0
fcos
mov dword [esp + 0x68], eax
fmul qword [esp + 0x78]
fmul qword [0x52cb48]
call fcn.004c2ba0
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x28]
sub edx, ebp
mov ebp, dword [esp + 0x60]
sub ebp, ecx
mov ecx, edx
imul edx, dword [esp + 0x68]
imul ecx, eax
mov dword [esp + 0x78], eax
mov eax, ebp
imul ebp, dword [esp + 0x78]
imul eax, dword [esp + 0x68]
add ecx, eax
neg ecx
sub edx, ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x40]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x40]
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x48]
mov ebp, eax
mov eax, dword [edi]
mov ecx, edi
mov dword [esp + 0x14], ebp
call dword [eax + 0x48]
mov edx, dword [edi]
mov ecx, edi
mov dword [esp + 0x1c], eax
call dword [edx + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x24]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
and edx, 0xff
test eax, eax
mov dword [esp + 0x64], edx
jle 0x449956
mov dword [esp + 0x28], eax
lea esp, [esp]
mov eax, dword [esp + 0x48]
test eax, eax
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ecx
jle 0x449921
mov dword [esp + 0x2c], eax
mov eax, edx
sar eax, 0x14
sar ecx, 0x14
test eax, eax
jl 0x4498f1
mov edx, dword [esp + 0x24]
cmp eax, edx
jge 0x4498f1
test ecx, ecx
jl 0x4498f1
cmp ecx, dword [esp + 0x20]
jge 0x4498f1
imul ecx, edx
mov edx, dword [esp + 0x1c]
add ecx, eax
mov ax, word [edx + ecx*2]
movzx ecx, word [ebp + esi*2]
mov edx, ecx
mov esi, ecx
and ecx, 0x1f
mov edi, ecx
movzx ecx, ax
and esi, 0x7e0
mov eax, ecx
and eax, 0x7e0
sub eax, esi
mov ebp, eax
mov eax, dword [esp + 0x64]
imul ebp, eax
sar ebp, 8
add ebp, esi
mov esi, ecx
and esi, 0xf800
and edx, 0xf800
sub esi, edx
imul esi, eax
and ecx, 0x1f
sub ecx, edi
imul ecx, eax
sar esi, 8
add esi, edx
and ebp, 0x7e0
and esi, 0xf800
sar ecx, 8
or ebp, esi
mov esi, dword [esp + 0x58]
add ecx, edi
mov edi, dword [esp + 0x54]
or ebp, ecx
mov eax, ebp
mov ebp, dword [esp + 0x14]
mov word [ebp + esi*2], ax
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x68]
add edx, ecx
mov ecx, dword [esp + 0x70]
sub ecx, eax
mov eax, dword [esp + 0x2c]
inc esi
dec eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2c], eax
jne 0x449840
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x28]
add esi, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x78]
add edx, ecx
dec eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x28], eax
jne 0x449820
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x44]
mov eax, dword [ebx]
mov ecx, ebx
pop edi
pop esi
pop ebp
add esp, 0x44
jmp dword [eax + 0x44]