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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d7e9b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc4
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x58]
call fcn.004ccd50
lea ecx, [esp + 0xa8]
mov dword [esp + 0xd8], 0
call fcn.004ccd50
push 0
mov ecx, esi
mov byte [esp + 0xdc], 1
call fcn.00520be0
fstp qword [esp + 0xc]
lea ebp, [esi + 0x28]
mov ecx, ebp
call fcn.004b0a70
mov ecx, ebp
mov edi, eax
call fcn.004ccd50
fld qword [edi + 8]
fsub qword [eax + 8]
sub esp, 8
sub esp, 8
fstp qword [esp + 8]
fld qword [edi]
fsub qword [eax]
fstp qword [esp]
call dword [sym.imp.msvcrt.dll__hypot]
fld qword [esp + 0x1c]
fcos
add esp, 8
lea ecx, [esp + 0x60]
sub esp, 8
sub esp, 8
sub esp, 8
fmul st(1)
fmul qword [0x5e7a50]
fstp qword [esp + 0x44]
fld qword [esp + 0x2c]
fsin
fmul st(1)
fmul qword [0x5e7a50]
fstp qword [esp + 0x4c]
fld qword [0x628ce0]
fadd qword [esp + 0x2c]
fld st(0)
fcos
fmul st(2)
fstp qword [esp + 0x54]
fsin
fmulp st(1)
fld st(0)
fadd qword [esi + 0xb8]
fstp qword [esp + 0x18]
fld qword [esp + 0x54]
fadd qword [esi + 0xb0]
fstp qword [esp + 0x10]
fld qword [esi + 0xb8]
fsub st(1)
fstp qword [esp + 8]
fstp st(0)
fld qword [esi + 0xb0]
fsub qword [esp + 0x54]
fstp qword [esp]
call fcn.004b8890
lea eax, [esp + 0x58]
lea ecx, [esp + 0xa8]
push eax
call fcn.004b8d80
mov edi, 0x64
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x44]
push ecx
push edx
push 0
push 0
push 0x3ff00000
lea eax, [esp + 0x6c]
push 0
push eax
mov ecx, esi
call fcn.00525a90
cmp eax, 1
je 0x5250ad
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x44]
push ecx
push edx
push 0
push 0
push 0x3ff00000
lea eax, [esp + 0xbc]
push 0
push eax
mov ecx, esi
call fcn.00525a90
cmp eax, 1
je 0x5250d5
fld qword [esp + 0x58]
fadd qword [esp + 0x24]
dec edi
test edi, edi
fstp qword [esp + 0x58]
fld qword [esp + 0x60]
fadd qword [esp + 0x2c]
fstp qword [esp + 0x60]
fld qword [esp + 0xa8]
fsub qword [esp + 0x24]
fstp qword [esp + 0xa8]
fld qword [esp + 0xb0]
fsub qword [esp + 0x2c]
fstp qword [esp + 0xb0]
jg 0x525017
jmp 0x52510d
fld qword [esp + 0x44]
fadd qword [esp + 0x4c]
fmul qword [0x5e2790]
fld qword [esp + 0x70]
fmul st(1)
fadd qword [esp + 0x58]
fstp qword [esp + 0x14]
fld qword [esp + 0x78]
fmul st(1)
fadd qword [esp + 0x60]
jmp 0x525107
fld qword [esp + 0x44]
fadd qword [esp + 0x4c]
fmul qword [0x5e2790]
fld qword [esp + 0xc0]
fmul st(1)
fadd qword [esp + 0xa8]
fstp qword [esp + 0x14]
fld qword [esp + 0xc8]
fmul st(1)
fadd qword [esp + 0xb0]
fstp qword [esp + 0x1c]
fstp st(0)
test edi, edi
jne 0x525303
mov edi, dword [esi + 0xbc]
mov edx, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov eax, dword [esi + 0xb0]
push edi
push edx
mov dword [esp + 0x20], ecx
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edi
call fcn.0056c9d0
cmp eax, 0xffffffff
je 0x525303
lea ecx, [esp + 0x80]
call fcn.004ccd50
lea ecx, [esp + 0x34]
mov byte [esp + 0xd8], 2
push ecx
mov ecx, ebp
call fcn.004b6ed0
fld qword [esi + 0x50]
fcomp qword [esi + 0x48]
fnstsw ax
test ah, 1
je 0x52523d
fld qword [esi + 0x48]
fmul qword [0x5f01d0]
mov eax, dword [esi + 0x54]
mov edx, dword [esi + 0x50]
mov ecx, dword [esp + 0x34]
sub esp, 8
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
fstp qword [esp + 0x14]
fld qword [esi + 0x50]
fadd qword [esi + 0x40]
mov dword [esp + 0x2c], edx
fstp qword [esp]
fld qword [esi + 0x30]
fsub qword [esp + 0x2c]
push eax
push ecx
sub esp, 8
fstp qword [esp]
push eax
push ecx
lea ecx, [esp + 0xa0]
call fcn.004b8890
lea ecx, [esp + 0x14]
lea edx, [esp + 0x80]
push ecx
push 0
push 0
push 0x3ff00000
push 0
push edx
mov ecx, esi
call fcn.00525e10
test eax, eax
jg 0x5252ef
fld qword [esp + 0x80]
fadd qword [esp + 0xc]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x80]
push eax
push 0
push 0
push 0x3ff00000
fstp qword [esp + 0x90]
fld qword [esp + 0x1c]
fmul qword [0x5e2790]
push 0
push ecx
mov ecx, esi
fstp qword [esp + 0x24]
call fcn.00525e10
test eax, eax
jle 0x5251f5
jmp 0x5252ef
fld qword [esi + 0x50]
fmul qword [0x5f01d0]
mov eax, dword [esi + 0x4c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esi + 0x48]
push eax
fstp qword [esp + 0x10]
fld qword [esi + 0x48]
fadd qword [esi + 0x38]
push ecx
mov dword [esp + 0x2c], edx
sub esp, 8
fstp qword [esp]
fld qword [ebp]
fsub qword [esp + 0x34]
push eax
push ecx
sub esp, 8
lea ecx, [esp + 0xa0]
fstp qword [esp]
call fcn.004b8890
lea ecx, [esp + 0x14]
lea edx, [esp + 0x80]
push ecx
push 0
push 0
push 0x3ff00000
push 0
push edx
mov ecx, esi
call fcn.00525e10
test eax, eax
jg 0x5252ef
fld qword [esp + 0x88]
fadd qword [esp + 0xc]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x80]
push eax
push 0
push 0
push 0x3ff00000
fstp qword [esp + 0x98]
fld qword [esp + 0x1c]
fmul qword [0x5e2790]
push 0
push ecx
mov ecx, esi
fstp qword [esp + 0x24]
call fcn.00525e10
test eax, eax
jle 0x5252ac
lea ecx, [esp + 0x80]
mov byte [esp + 0xd8], 1
call fcn.0042bd50
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add esi, 0xa0
mov byte [esp + 0xd8], 0
mov dword [esi], edx
mov edx, dword [esp + 0x20]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
lea ecx, [esp + 0xa8]
mov dword [esi + 0xc], edx
call fcn.0042bd50
lea ecx, [esp + 0x58]
mov dword [esp + 0xd8], 0xffffffff
call fcn.0042bd50
mov ecx, dword [esp + 0xd0]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
mov esp, ebp
pop ebp
ret