Function at 0x1002e6b0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x100d5448]
sub esp, 0x10
mov ecx, dword [eax + 0x138]
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov ebx, dword [eax + ecx]
mov eax, dword [0x100d5440]
push ebx
mov ecx, dword [eax + 0x2a8]
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x1002e8fd
cmp dword [eax + 0xf4], 0
je 0x1002e8fd
mov eax, dword [0x1012e7e4]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x1002e719
push str.RandomSeed
push str.vstdlib.dll
call edi
push eax
call esi
mov dword [0x1012e7e4], eax
movzx ecx, byte [ebp + 0x10]
inc ecx
push ecx
call eax
add esp, 4
cmp dword [0x1012e7dc], 0
jne 0x1002e741
push str.RandomFloat
push str.vstdlib.dll
call edi
push eax
call esi
mov dword [0x1012e7dc], eax
sub esp, 8
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call dword [0x1012e7dc]
add esp, 8
cmp dword [0x1012e7dc], 0
fstp dword [ebp + 0xc]
jne 0x1002e77c
push str.RandomFloat
push str.vstdlib.dll
call edi
push eax
call esi
mov dword [0x1012e7dc], eax
sub esp, 8
mov dword [esp + 4], 0x40c90fdb
mov dword [esp], 0
call dword [0x1012e7dc]
add esp, 8
cmp dword [0x1012e7dc], 0
fstp dword [ebp - 8]
jne 0x1002e7b7
push str.RandomFloat
push str.vstdlib.dll
call edi
push eax
call esi
mov dword [0x1012e7dc], eax
sub esp, 8
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call dword [0x1012e7dc]
add esp, 8
cmp dword [0x1012e7dc], 0
fstp dword [ebp - 4]
jne 0x1002e7f2
push str.RandomFloat
push str.vstdlib.dll
call edi
push eax
call esi
mov dword [0x1012e7dc], eax
sub esp, 8
mov dword [esp + 4], 0x40490fdb
mov dword [esp], 0
call dword [0x1012e7dc]
add esp, 8
fstp dword [ebp - 0xc]
pop edi
cmp ebx, 0x40
jne 0x1002e843
cmp byte [ebp + 0x1c], 0
je 0x1002e843
movss xmm0, dword [ebp + 0xc]
movss xmm1, dword [0x10055f88]
mulss xmm0, xmm0
movaps xmm2, xmm1
subss xmm2, xmm0
movss xmm0, dword [ebp - 4]
mulss xmm0, xmm0
subss xmm1, xmm0
jmp 0x1002e84d
movss xmm2, dword [ebp + 0xc]
movss xmm1, dword [ebp - 4]
movss xmm0, dword [ebp - 8]
mulss xmm1, dword [ebp + 0x18]
push ecx
mulss xmm2, dword [ebp + 0x14]
mov dword [esp], 0
cvtps2pd xmm0, xmm0
movss dword [ebp - 4], xmm1
movss dword [ebp + 0xc], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp + 0xc]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [ebp - 0xc]
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
movss xmm2, dword [ebp - 0x10]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
push ecx
movss xmm0, dword [ebp - 8]
mulss xmm1, dword [ebp - 4]
cvtps2pd xmm0, xmm0
addss xmm2, xmm1
movss dword [esp], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp + 0xc]
movss dword [ebp + 0xc], xmm0
movss xmm0, dword [ebp - 0xc]
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movss xmm1, dword [ebp + 0xc]
cvtsd2ss xmm0, xmm0
push ecx
mov ecx, dword [ebp + 8]
mulss xmm0, dword [ebp - 4]
addss xmm1, xmm0
movss dword [esp], xmm1
call fcn.10051c90
mov eax, dword [ebp + 8]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
call fcn.10051cc0
mov eax, dword [ebp + 8]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret