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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
push rdi
sub rsp, 0x80
mov rbx, qword [rcx + 0x48]
mov rsi, rdx
movss xmm0, dword [rsp + 0xb8]
mov rdi, rcx
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmm9, xmm2
movaps xmmword [rax - 0x58], xmm10
movss xmm10, dword [rsp + 0xb0]
movaps xmmword [rax - 0x68], xmm11
movaps xmm1, xmm10
mov rax, qword [rbx + 0xb0]
subss xmm1, xmm9
movaps xmm11, xmm3
subss xmm0, xmm11
movss xmm7, dword [rax + 0x90]
mulss xmm7, dword [0x1400848a8]
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movaps xmm6, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm8, xmm0
movaps xmm0, xmm6
mulss xmm8, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm6, xmm0
mulss xmm6, xmm7
test rsi, rsi
jne 0x14003b62e
lea r8, str.target
lea edx, [rsi + 5]
lea rcx, str.GPU_Line
call fcn.1400475a0
jmp 0x14003b9dd
cmp rdi, qword [rsi]
je 0x14003b650
lea r8, str.Mismatched_renderer
mov edx, 3
lea rcx, str.GPU_Line
call fcn.1400475a0
jmp 0x14003b9dd
cmp qword [rsi + 0xb0], 0
mov rax, rbx
je 0x14003b6bb
cmp rbx, rsi
je 0x14003b6bb
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 0x14003b6cc
lea r8, str.Failed_to_bind_framebuffer.
mov edx, 1
lea rcx, str.GPU_Line
call fcn.1400475a0
jmp 0x14003b9dd
test rax, rax
jne 0x14003b68f
lea r8, str.NULL_context
jmp 0x14003b63a
mov rdx, rsi
mov rcx, rdi
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 edx, word [rbx + 0x78]
movzx eax, word [rbx + 0x7a]
add edx, 4
cmp edx, eax
jb 0x14003b71e
mov rcx, rbx
call fcn.140035230
test al, al
jne 0x14003b71e
mov rax, qword [rdi + 0x58]
mov rcx, rdi
call qword [rax + 0x158]
mov edx, dword [rbx + 0x88]
add edx, 6
cmp edx, dword [rbx + 0x8c]
jb 0x14003b748
mov rcx, rbx
call fcn.140035350
test al, al
jne 0x14003b748
mov rax, qword [rdi + 0x58]
mov rcx, rdi
call qword [rax + 0x158]
movzx r11d, word [rbx + 0x78]
mov r9, qword [rbx + 0x70]
mov r10d, r11d
mov rdi, qword [rbx + 0x80]
shl r10d, 3
cmp byte [rsi + 0xaa], 0
je 0x14003b80e
movss xmm1, dword [0x140084974]
xorps xmm0, xmm0
movzx eax, byte [rsi + 0x38]
xorps xmm2, xmm2
xorps xmm3, xmm3
xorps xmm4, xmm4
xorps xmm5, xmm5
cvtsi2ss xmm2, eax
movzx eax, byte [rsp + 0xc0]
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x39]
cvtsi2ss xmm3, eax
movzx eax, byte [rsp + 0xc1]
divss xmm2, xmm1
divss xmm3, xmm1
mulss xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x3a]
cvtsi2ss xmm4, eax
movzx eax, byte [rsp + 0xc2]
mulss xmm3, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x3b]
cvtsi2ss xmm5, eax
movzx eax, byte [rsp + 0xc3]
divss xmm4, xmm1
divss xmm5, xmm1
mulss xmm4, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm2, xmm1
mulss xmm5, xmm0
divss xmm3, xmm1
divss xmm5, xmm1
divss xmm4, xmm1
jmp 0x14003b862
movss xmm0, dword [0x140084974]
movzx eax, byte [rsp + 0xc0]
movd xmm2, eax
movzx eax, byte [rsp + 0xc1]
cvtdq2ps xmm2, xmm2
movd xmm3, eax
movzx eax, byte [rsp + 0xc2]
cvtdq2ps xmm3, xmm3
movd xmm4, eax
movzx eax, byte [rsp + 0xc3]
cvtdq2ps xmm4, xmm4
movd xmm5, eax
cvtdq2ps xmm5, xmm5
divss xmm2, xmm0
divss xmm5, xmm0
divss xmm3, xmm0
divss xmm4, xmm0
movaps xmm0, xmm6
movaps xmm1, xmm11
addss xmm0, xmm9
subss xmm1, xmm8
subss xmm9, xmm6
movss dword [r9 + r10*4], xmm0
movaps xmm0, xmm8
movss dword [r9 + r10*4 + 4], xmm1
addss xmm0, xmm11
movss dword [r9 + r10*4 + 0x10], xmm2
movss dword [r9 + r10*4 + 0x14], xmm3
movss dword [r9 + r10*4 + 0x18], xmm4
movss dword [r9 + r10*4 + 0x1c], xmm5
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
movss xmm1, dword [rsp + 0xb8]
subss xmm1, xmm8
mov word [rdi + rcx*2], ax
inc dword [rbx + 0x88]
inc word [rbx + 0x78]
movss dword [r9 + r10*4 + 0x24], xmm0
movaps xmm0, xmm6
movss dword [r9 + r10*4 + 0x20], xmm9
addss xmm0, xmm10
movss dword [r9 + r10*4 + 0x30], xmm2
subss xmm10, xmm6
movss dword [r9 + r10*4 + 0x34], xmm3
movss dword [r9 + r10*4 + 0x38], xmm4
movss dword [r9 + r10*4 + 0x3c], xmm5
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
addss xmm8, dword [rsp + 0xb8]
mov word [rdi + rcx*2], ax
lea eax, [r10 + 0xc]
inc dword [rbx + 0x88]
inc word [rbx + 0x78]
movss dword [r9 + r10*4 + 0x40], xmm0
movss dword [r9 + r10*4 + 0x44], xmm1
movss dword [r9 + rax*4 + 0x2c], xmm5
movss dword [r9 + r10*4 + 0x50], xmm2
movss dword [r9 + r10*4 + 0x54], xmm3
movss dword [r9 + r10*4 + 0x58], xmm4
mov ecx, dword [rbx + 0x88]
mov edx, eax
movzx eax, word [rbx + 0x78]
mov word [rdi + rcx*2], ax
lea eax, [r11 + 1]
inc dword [rbx + 0x88]
add r11w, 2
mov ecx, dword [rbx + 0x88]
inc word [rbx + 0x78]
mov word [rdi + rcx*2], ax
inc dword [rbx + 0x88]
mov eax, dword [rbx + 0x88]
mov word [rdi + rax*2], r11w
inc dword [rbx + 0x88]
movss dword [r9 + r10*4 + 0x60], xmm10
movss dword [r9 + r10*4 + 0x64], xmm8
movss dword [r9 + rdx*4 + 0x40], xmm2
movss dword [r9 + rdx*4 + 0x44], xmm3
movss dword [r9 + rdx*4 + 0x48], xmm4
movss dword [r9 + rdx*4 + 0x4c], xmm5
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
mov word [rdi + rcx*2], ax
inc dword [rbx + 0x88]
inc word [rbx + 0x78]
movaps xmm6, xmmword [rsp + 0x70]
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm7, xmmword [rsp + 0x60]
mov rsp, r11
pop rdi
ret