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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push r14
sub rsp, 0xb0
movss xmm0, dword [rsp + 0xe0]
mov rsi, rdx
mov rbx, qword [rcx + 0x48]
mov rdi, rcx
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x48], xmm9
movaps xmm9, xmm0
movaps xmmword [rax - 0x68], xmm11
movaps xmm11, xmm3
movaps xmmword [rax - 0x78], xmm12
movaps xmm12, xmm2
mov rax, qword [rbx + 0xb0]
movaps xmmword [rsp + 0x30], xmm13
movaps xmmword [rsp + 0x20], xmm14
movss xmm6, dword [rax + 0x90]
mulss xmm6, dword [0x1400848a8]
subss xmm9, xmm6
addss xmm6, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm6
ja 0x14003cb2b
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x14003cb33
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm7, dword [0x1400848ac]
mov r14d, 1
divss xmm7, xmm0
movss xmm0, dword [0x140084988]
divss xmm0, xmm7
cvttss2si eax, xmm0
sub r14d, eax
cmp r14d, 0x10
jge 0x14003cb6c
movss xmm7, dword [0x1400848a4]
mov r14d, 0x10
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm13, xmm0
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm14, xmm0
test rsi, rsi
jne 0x14003cba4
lea r8, str.target
lea edx, [rsi + 5]
lea rcx, str.GPU_Circle
call fcn.1400475a0
jmp 0x14003d096
cmp rdi, qword [rsi]
je 0x14003cbc6
lea r8, str.Mismatched_renderer
mov edx, 3
lea rcx, str.GPU_Circle
call fcn.1400475a0
jmp 0x14003d096
cmp qword [rsi + 0xb0], 0
mov rax, rbx
je 0x14003cc31
cmp rbx, rsi
je 0x14003cc31
mov rax, qword [rdi + 0x58]
mov rcx, rdi
call qword [rax + 0x158]
mov rbx, qword [rsi + 0xb0]
mov ecx, dword [rbx + 0x40]
call qword [sym.imp.SDL2.dll_SDL_GetWindowFromID]
mov rdx, qword [rbx]
mov rcx, rax
call qword [sym.imp.SDL2.dll_SDL_GL_MakeCurrent]
mov qword [rdi + 0x48], rsi
mov rdx, rsi
mov rcx, rdi
call fcn.140035140
test al, al
jne 0x14003cc42
lea r8, str.Failed_to_bind_framebuffer.
mov edx, 1
lea rcx, str.GPU_Circle
call fcn.1400475a0
jmp 0x14003d096
test rax, rax
jne 0x14003cc05
lea r8, str.NULL_context
jmp 0x14003cbb0
movaps xmmword [rsp + 0x80], xmm8
mov rdx, rsi
mov rcx, rdi
movaps xmmword [rsp + 0x60], xmm10
call fcn.140005970
mov edx, 4
mov rcx, rdi
call fcn.140019550
mov rax, qword [rdi + 0x48]
mov rcx, qword [rax + 0xb0]
mov rbx, qword [rcx + 0x98]
movzx eax, word [rbx + 0x78]
lea edx, [rax + r14*2]
movzx eax, word [rbx + 0x7a]
cmp edx, eax
jl 0x14003cca4
mov rcx, rbx
call fcn.140035230
test al, al
jne 0x14003cca4
mov rax, qword [rdi + 0x58]
mov rcx, rdi
call qword [rax + 0x158]
mov eax, dword [rbx + 0x88]
lea ecx, [r14 + r14*2]
lea edx, [rax + rcx*2]
cmp edx, dword [rbx + 0x8c]
jb 0x14003ccd2
mov rcx, rbx
call fcn.140035350
test al, al
jne 0x14003ccd2
mov rax, qword [rdi + 0x58]
mov rcx, rdi
call qword [rax + 0x158]
cmp byte [rsi + 0xaa], 0
movzx edi, word [rbx + 0x78]
mov r11, qword [rbx + 0x70]
mov r10, qword [rbx + 0x80]
lea edx, [rdi*8]
lea r8d, [rdx + 4]
je 0x14003cd9b
movss xmm1, dword [0x140084974]
xorps xmm0, xmm0
movzx eax, byte [rsi + 0x38]
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
xorps xmm7, xmm7
cvtsi2ss xmm3, eax
movzx eax, byte [rsp + 0xe8]
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x39]
cvtsi2ss xmm4, eax
movzx eax, byte [rsp + 0xe9]
divss xmm3, xmm1
divss xmm4, xmm1
mulss xmm3, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x3a]
cvtsi2ss xmm5, eax
movzx eax, byte [rsp + 0xea]
mulss xmm4, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x3b]
cvtsi2ss xmm7, eax
movzx eax, byte [rsp + 0xeb]
divss xmm5, xmm1
divss xmm7, xmm1
mulss xmm5, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm3, xmm1
mulss xmm7, xmm0
divss xmm4, xmm1
divss xmm7, xmm1
divss xmm5, xmm1
jmp 0x14003cdef
movss xmm0, dword [0x140084974]
movzx eax, byte [rsp + 0xe8]
movd xmm3, eax
movzx eax, byte [rsp + 0xe9]
cvtdq2ps xmm3, xmm3
movd xmm4, eax
movzx eax, byte [rsp + 0xea]
cvtdq2ps xmm4, xmm4
movd xmm5, eax
movzx eax, byte [rsp + 0xeb]
cvtdq2ps xmm5, xmm5
movd xmm7, eax
cvtdq2ps xmm7, xmm7
divss xmm3, xmm0
divss xmm7, xmm0
divss xmm4, xmm0
divss xmm5, xmm0
mov r9d, edx
xorps xmm10, xmm10
maxss xmm10, xmm9
xorps xmm8, xmm8
movss xmm9, dword [0x1400848b0]
movaps xmm1, xmm10
movaps xmm0, xmm10
mulss xmm1, xmm8
addss xmm0, xmm12
addss xmm1, xmm11
movss dword [r11 + rdx*4], xmm0
movaps xmm0, xmm6
addss xmm0, xmm12
movss dword [r11 + rdx*4 + 4], xmm1
movaps xmm1, xmm6
movss dword [r11 + rdx*4 + 0x14], xmm4
movss dword [r11 + rdx*4 + 0x18], xmm5
movss dword [r11 + rdx*4 + 0x1c], xmm7
add edx, 8
movss dword [r11 + r8*4], xmm3
add r8d, 8
movzx eax, word [rbx + 0x78]
mov ecx, dword [rbx + 0x88]
mulss xmm1, xmm8
mov word [r10 + rcx*2], ax
inc dword [rbx + 0x88]
addss xmm1, xmm11
inc word [rbx + 0x78]
movss dword [r11 + rdx*4], xmm0
add edx, 8
movss dword [r11 + r9*4 + 0x24], xmm1
movss dword [r11 + r8*4], xmm3
movss dword [r11 + r9*4 + 0x34], xmm4
movss dword [r11 + r9*4 + 0x38], xmm5
movss dword [r11 + r9*4 + 0x3c], xmm7
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
mov word [r10 + rcx*2], ax
lea ecx, [r8 + 8]
inc dword [rbx + 0x88]
inc word [rbx + 0x78]
mov eax, dword [rbx + 0x88]
cmp r14d, 1
jbe 0x14003d03f
mov r8d, edx
lea r9d, [r14 - 1]
lea rdx, [r11 + 4]
mov eax, ecx
lea rdx, [rdx + rcx*4]
sub r8, rax
nop dword [rax + rax]
movaps xmm2, xmm9
movaps xmm0, xmm8
mulss xmm0, xmm14
mulss xmm2, xmm13
mulss xmm9, xmm14
subss xmm2, xmm0
movaps xmm0, xmm8
mulss xmm0, xmm13
movaps xmm8, xmm9
addss xmm8, xmm0
movaps xmm9, xmm2
movaps xmm0, xmm2
mulss xmm2, xmm6
mulss xmm0, xmm10
movaps xmm1, xmm8
addss xmm2, xmm12
mulss xmm1, xmm10
addss xmm0, xmm12
addss xmm1, xmm11
movss dword [rdx + r8*4 - 4], xmm0
movaps xmm0, xmm8
mulss xmm0, xmm6
movss dword [rdx + r8*4], xmm1
movss dword [rdx - 4], xmm3
movss dword [rdx], xmm4
addss xmm0, xmm11
movss dword [rdx + 4], xmm5
movss dword [rdx + 8], xmm7
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
mov word [r10 + rcx*2], ax
inc dword [rbx + 0x88]
inc word [rbx + 0x78]
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
sub ax, 2
mov word [r10 + rcx*2], ax
inc dword [rbx + 0x88]
movss dword [rdx + r8*4 + 0x1c], xmm2
movss dword [rdx + r8*4 + 0x20], xmm0
movss dword [rdx + 0x1c], xmm3
movss dword [rdx + 0x20], xmm4
movss dword [rdx + 0x24], xmm5
movss dword [rdx + 0x28], xmm7
add rdx, 0x40
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
mov word [r10 + rcx*2], ax
inc dword [rbx + 0x88]
inc word [rbx + 0x78]
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
sub ax, 2
mov word [r10 + rcx*2], ax
inc dword [rbx + 0x88]
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
sub ax, 2
mov word [r10 + rcx*2], ax
inc dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
mov ecx, dword [rbx + 0x88]
dec ax
mov word [r10 + rcx*2], ax
mov eax, dword [rbx + 0x88]
inc eax
mov dword [rbx + 0x88], eax
sub r9, 1
jne 0x14003cef0
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x80]
mov word [r10 + rax*2], di
inc dword [rbx + 0x88]
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
dec ax
mov word [r10 + rcx*2], ax
lea eax, [rdi + 1]
inc dword [rbx + 0x88]
mov ecx, dword [rbx + 0x88]
mov word [r10 + rcx*2], ax
inc dword [rbx + 0x88]
mov eax, dword [rbx + 0x88]
mov word [r10 + rax*2], di
inc dword [rbx + 0x88]
movaps xmm14, xmmword [rsp + 0x20]
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r14
ret