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

Disassembly:
mov rax, rsp
push rsi
push rdi
push r14
sub rsp, 0xa0
movaps xmmword [rax - 0x28], xmm6
xorps xmm0, xmm0
movaps xmmword [rax - 0x38], xmm7
mov rsi, rdx
movss xmm7, dword [rsp + 0xe0]
mov rdi, rcx
ucomiss xmm0, xmm7
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rsp + 0x30], xmm12
movaps xmm12, xmm3
movaps xmmword [rsp + 0x20], xmm13
movaps xmm13, xmm2
ja 0x14003d134
xorps xmm0, xmm0
sqrtss xmm0, xmm7
jmp 0x14003d13c
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm6, dword [0x1400848ac]
mov r14d, 1
divss xmm6, xmm0
movss xmm0, dword [0x140084988]
divss xmm0, xmm6
cvttss2si eax, xmm0
sub r14d, eax
cmp r14d, 0x10
jge 0x14003d175
movss xmm6, dword [0x1400848a4]
mov r14d, 0x10
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm10, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm11, xmm0
test rsi, rsi
jne 0x14003d1ad
lea r8, str.target
lea edx, [rsi + 5]
lea rcx, str.GPU_CircleFilled
call fcn.1400475a0
jmp 0x14003d696
cmp rdi, qword [rsi]
je 0x14003d1cf
lea r8, str.Mismatched_renderer
mov edx, 3
lea rcx, str.GPU_CircleFilled
call fcn.1400475a0
jmp 0x14003d696
cmp qword [rsi + 0xb0], 0
mov qword [rsp + 0xc0], rbx
je 0x14003d214
cmp qword [rdi + 0x48], rsi
je 0x14003d214
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
cmp qword [rdi + 0x48], 0
jne 0x14003d238
lea r8, str.NULL_context
mov edx, 3
lea rcx, str.GPU_CircleFilled
call fcn.1400475a0
jmp 0x14003d68e
mov rdx, rsi
mov rcx, rdi
call fcn.140035140
test al, al
jne 0x14003d264
lea r8, str.Failed_to_bind_framebuffer.
mov edx, 1
lea rcx, str.GPU_CircleFilled
call fcn.1400475a0
jmp 0x14003d68e
mov qword [rsp + 0xc8], rbp
mov rdx, rsi
mov qword [rsp + 0xd0], r15
mov rcx, rdi
movaps xmmword [rsp + 0x70], xmm8
movaps xmmword [rsp + 0x60], xmm9
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]
inc edx
add edx, r14d
cmp edx, eax
jl 0x14003d2d4
mov rcx, rbx
call fcn.140035230
test al, al
jne 0x14003d2d4
mov rax, qword [rdi + 0x58]
mov rcx, rdi
call qword [rax + 0x158]
lea edx, [r14 + r14*2]
add edx, dword [rbx + 0x88]
cmp edx, dword [rbx + 0x8c]
jb 0x14003d2ff
mov rcx, rbx
call fcn.140035350
test al, al
jne 0x14003d2ff
mov rax, qword [rdi + 0x58]
mov rcx, rdi
call qword [rax + 0x158]
cmp byte [rsi + 0xaa], 0
movzx r10d, word [rbx + 0x78]
mov r15, qword [rbx + 0x70]
mov r11, qword [rbx + 0x80]
lea ebp, [r10*8]
lea ecx, [rbp + 4]
je 0x14003d3d3
movss xmm1, dword [0x140084974]
xorps xmm0, xmm0
movzx eax, byte [rsi + 0x38]
xorps xmm5, xmm5
xorps xmm6, xmm6
xorps xmm8, xmm8
xorps xmm9, xmm9
cvtsi2ss xmm5, eax
movzx eax, byte [rsp + 0xe8]
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x39]
cvtsi2ss xmm6, eax
movzx eax, byte [rsp + 0xe9]
divss xmm5, xmm1
divss xmm6, xmm1
mulss xmm5, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x3a]
cvtsi2ss xmm8, eax
movzx eax, byte [rsp + 0xea]
mulss xmm6, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movzx eax, byte [rsi + 0x3b]
cvtsi2ss xmm9, eax
movzx eax, byte [rsp + 0xeb]
divss xmm8, xmm1
divss xmm9, xmm1
mulss xmm8, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm5, xmm1
mulss xmm9, xmm0
divss xmm6, xmm1
divss xmm9, xmm1
divss xmm8, xmm1
jmp 0x14003d42d
movss xmm0, dword [0x140084974]
movzx eax, byte [rsp + 0xe8]
movd xmm5, eax
movzx eax, byte [rsp + 0xe9]
cvtdq2ps xmm5, xmm5
movd xmm6, eax
movzx eax, byte [rsp + 0xea]
cvtdq2ps xmm6, xmm6
movd xmm8, eax
movzx eax, byte [rsp + 0xeb]
cvtdq2ps xmm8, xmm8
movd xmm9, eax
cvtdq2ps xmm9, xmm9
divss xmm5, xmm0
divss xmm9, xmm0
divss xmm6, xmm0
divss xmm8, xmm0
movss dword [r15 + rbp*4], xmm13
lea edx, [rbp + 0xc]
movss dword [r15 + rbp*4 + 4], xmm12
lea r8d, [rbp + 8]
movss dword [r15 + rcx*4], xmm5
xorps xmm2, xmm2
movss dword [r15 + rbp*4 + 0x14], xmm6
movaps xmm3, xmm10
movss dword [r15 + rbp*4 + 0x18], xmm8
movaps xmm0, xmm13
movss dword [r15 + rbp*4 + 0x1c], xmm9
addss xmm0, xmm7
movzx eax, word [rbx + 0x78]
movaps xmm4, xmm10
mov ecx, dword [rbx + 0x88]
movaps xmm1, xmm7
mulss xmm4, xmm2
mov r9d, 2
mulss xmm1, xmm2
mov word [r11 + rcx*2], ax
inc dword [rbx + 0x88]
addss xmm4, xmm11
inc word [rbx + 0x78]
movss dword [r15 + r8*4], xmm0
addss xmm1, xmm12
movaps xmm0, xmm11
mulss xmm0, xmm2
movss dword [r15 + rbp*4 + 0x24], xmm1
movss dword [r15 + rdx*4], xmm5
subss xmm3, xmm0
movss dword [r15 + rbp*4 + 0x34], xmm6
add edx, 8
movss dword [r15 + rbp*4 + 0x38], xmm8
movss dword [r15 + rbp*4 + 0x3c], xmm9
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
movaps xmm0, xmm3
mulss xmm0, xmm7
movaps xmm2, xmm3
mov word [r11 + rcx*2], ax
lea eax, [r8 + 8]
inc dword [rbx + 0x88]
inc word [rbx + 0x78]
addss xmm0, xmm13
movss dword [r15 + rax*4], xmm0
movaps xmm0, xmm4
mulss xmm0, xmm7
addss xmm0, xmm12
movss dword [r15 + rbp*4 + 0x44], xmm0
movss dword [r15 + rdx*4], xmm5
add edx, 8
movss dword [r15 + rbp*4 + 0x54], xmm6
movss dword [r15 + rbp*4 + 0x58], xmm8
movss dword [r15 + rbp*4 + 0x5c], xmm9
mov ecx, dword [rbx + 0x88]
movzx eax, word [rbx + 0x78]
mov word [r11 + rcx*2], ax
mov esi, dword [rbx + 0x88]
inc word [rbx + 0x78]
inc esi
mov dword [rbx + 0x88], esi
cmp r14d, r9d
jbe 0x14003d63b
lea edi, [rbp + 0x1c]
sub rdx, rdi
lea ecx, [rbp + 0x18]
add rdx, rcx
sub rdi, rcx
lea r8, [r15 + rdx*4]
nop word [rax + rax]
movaps xmm0, xmm4
mulss xmm3, xmm10
mov eax, esi
mulss xmm0, xmm11
mulss xmm2, xmm11
mov word [r11 + rax*2], r10w
lea eax, [r10 + r9]
inc dword [rbx + 0x88]
subss xmm3, xmm0
mov ecx, dword [rbx + 0x88]
movaps xmm0, xmm4
mulss xmm0, xmm10
movaps xmm4, xmm2
inc r9d
mov word [r11 + rcx*2], ax
movaps xmm2, xmm3
inc dword [rbx + 0x88]
addss xmm4, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm7
movaps xmm1, xmm4
mulss xmm1, xmm7
addss xmm0, xmm13
addss xmm1, xmm12
movss dword [r8], xmm0
movss dword [r8 + 4], xmm1
movss dword [r8 + rdi*4], xmm5
movss dword [r8 + rdi*4 + 4], xmm6
movss dword [r8 + rdi*4 + 8], xmm8
movss dword [r8 + rdi*4 + 0xc], xmm9
add r8, 0x20
movzx eax, word [rbx + 0x78]
mov ecx, dword [rbx + 0x88]
mov word [r11 + rcx*2], ax
mov eax, dword [rbx + 0x88]
inc word [rbx + 0x78]
inc eax
mov dword [rbx + 0x88], eax
mov esi, eax
cmp r9d, r14d
jl 0x14003d580
movaps xmm9, xmmword [rsp + 0x60]
add r9w, r10w
movaps xmm8, xmmword [rsp + 0x70]
mov r15, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc8]
mov eax, esi
mov word [r11 + rax*2], r10w
inc r10w
inc dword [rbx + 0x88]
mov eax, dword [rbx + 0x88]
mov word [r11 + rax*2], r9w
inc dword [rbx + 0x88]
mov eax, dword [rbx + 0x88]
mov word [r11 + rax*2], r10w
inc dword [rbx + 0x88]
mov rbx, qword [rsp + 0xc0]
lea r11, [rsp + 0xa0]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret