Function at 0x40139b
Capabilities:
Create thread
Resume thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
and ebp, 0xfffffff0
pushal
xor eax, eax
mov edi, dword [0x47a00c]
movzx ebx, word [0x47a01e]
movzx ecx, word [0x47a01c]
imul ecx, ebx
call fcn.00401798
mov eax, 0x476a6000
mov edi, dword [0x47a018]
movzx ebx, word [0x47a01e]
movzx ecx, word [0x47a01c]
imul ecx, ebx
call fcn.00401798
fninit
fild dword [0x403050]
fmul dword [0x403082]
fld st(0)
fsincos
fst dword [0x47a030]
fchs
fstp dword [0x47a038]
fst dword [0x47a034]
fchs
fstp dword [0x47a03c]
fld1
fld1
faddp st(1)
fmulp st(1)
fsincos
fst dword [0x47a040]
fchs
fstp dword [0x47a048]
fst dword [0x47a044]
fchs
fstp dword [0x47a04c]
mov esi, 0x452dec
mov edi, 0x4e4480
movzx ecx, word [0x403210]
call fcn.004017d9
mov esi, 0x4e4a20
mov edi, 0x4e4c00
movzx ecx, word [0x403210]
call fcn.004017d9
mov esi, 0x452e4c
mov edi, 0x4673ac
movzx ecx, word [0x403214]
add ecx, 2
call fcn.004017d9
cmp word [0x40306c], 0x390
jne 0x401491
mov byte [0x40306b], 1
jmp 0x4014a2
cmp word [0x40306c], 0
jne 0x4014a2
mov byte [0x40306b], 0
movss xmm0, dword [0x403076]
cmp byte [0x40306b], 0
jne 0x4014c5
mulss xmm0, dword [0x40306e]
add word [0x40306c], 1
jmp 0x4014d5
mulss xmm0, dword [0x403072]
sub word [0x40306c], 1
movss dword [0x403076], xmm0
mov esi, 0x4e4480
movzx ecx, word [0x403210]
movq xmm0, qword [0x40307a]
movss xmm3, dword [0x403076]
call fcn.004016e2
mov esi, 0x4673ac
movzx ecx, word [0x403214]
add ecx, 2
movq xmm0, qword [0x40307a]
movss xmm3, dword [0x403076]
call fcn.004016e2
mov esi, 0x403250
movzx ecx, word [0x403212]
push dword [0x4e4df8]
push 0x20
push 0
push 0x401c61
push 0
push 0
call dword [sym.imp.KERNEL32_CreateThread]
mov dword [0x4e4e08], eax
push 0xf
push 0x4e4e08
call dword [sym.imp.KERNEL32_SetThreadPriority]
push dword [0x4e4dfc]
push 0x20
push 0
push 0x401c85
push 0
push 0
call dword [sym.imp.KERNEL32_CreateThread]
mov dword [0x4e4e0c], eax
push 0xf
push 0x4e4e0c
call dword [sym.imp.KERNEL32_SetThreadPriority]
push 1
push dword [0x4e4e08]
call dword [sym.imp.KERNEL32_SetThreadAffinityMask]
push 2
push dword [0x4e4e0c]
call dword [sym.imp.KERNEL32_SetThreadAffinityMask]
push dword [0x4e4e08]
call dword [sym.imp.KERNEL32_ResumeThread]
push dword [0x4e4e0c]
call dword [sym.imp.KERNEL32_ResumeThread]
push 0
push 0xffffffffffffffff
push 1
push 0x4e4e08
push 2
call dword [sym.imp.KERNEL32_WaitForMultipleObjectsEx]
push 0x4e4e08
call dword [sym.imp.KERNEL32_CloseHandle]
push 0x4e4e0c
call dword [sym.imp.KERNEL32_CloseHandle]
emms
mov edi, 0x465aac
mov ecx, 0
push edi
mov esi, ecx
push ecx
movzx eax, word [edi]
movzx ebx, word [edi + 2]
imul eax, dword [0x403062]
imul ebx, dword [0x403062]
add eax, 0x4673ac
add ebx, 0x4673ac
movd mm4, dword [0x40304a]
movups xmm0, xmmword [eax]
movups xmm1, xmmword [ebx]
movhlps xmm3, xmm0
movhlps xmm2, xmm1
cvtps2dq xmm0, xmm0
cvtps2dq xmm1, xmm1
movd eax, xmm0
movd ecx, xmm1
psrldq xmm0, 4
movd ebx, xmm0
psrldq xmm1, 4
movd edx, xmm1
push eax
movzx edi, word [0x47a01c]
movd mm2, edi
movd mm0, dword [0x47a018]
movd mm1, dword [0x47a00c]
movd xmm7, esi
pshufd xmm7, xmm7, 0
movdqa xmm6, xmm7
pcmpgtd xmm6, xmmword [0x403090]
pcmpgtd xmm7, xmmword [0x4030a0]
pxor xmm7, xmm6
movmskps eax, xmm7
and eax, 3
or eax, eax
je 0x401693
movaps xmm0, xmmword [0x403120]
jmp 0x40169a
movaps xmm0, xmmword [0x403140]
movaps xmm1, xmmword [0x403130]
pop eax
call fcn.00401e43
pop ecx
pop edi
add edi, 4
add ecx, 1
cmp cx, 0x640
jne 0x4015ed
popal
add esp, 0x40
pop ebp
ret