Function at 0x140002570
Capabilities:
Create thread

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rsp + 0x70], xmm15
mov rax, qword [0x140033040]
xor rax, rsp
mov qword [rsp + 0x60], rax
call fcn.140001f90
call qword [sym.imp.KERNEL32.dll_FreeConsole]
xor ecx, ecx
call fcn.14000bb0c
mov ecx, eax
call fcn.14000baf4
xor ebx, ebx
lea r8, [0x1400021f0]
mov qword [rsp + 0x28], rbx
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], ebx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
movsd xmm14, qword [0x14002d630]
mov r13d, ebx
movsd xmm12, qword [0x14002d400]
xorps xmm10, xmm10
movsd xmm13, qword [0x14002d420]
xorps xmm9, xmm9
movsd xmm11, qword [0x14002d418]
movsd xmm15, qword [0x14002d408]
nop dword [rax + rax]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
xor ecx, ecx
mov r14, rax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 1
mov r15d, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov r12d, eax
call fcn.14000bac8
test al, 1
jne 0x140002683
movaps xmm0, xmm12
jmp 0x140002687
movaps xmm0, xmm13
addsd xmm9, xmm0
comisd xmm9, xmm11
jb 0x140002699
movaps xmm9, xmm10
jmp 0x1400026a4
comisd xmm10, xmm9
jbe 0x1400026a4
movaps xmm9, xmm11
mov edx, 2
mov rcx, r14
call qword [sym.imp.GDI32.dll_SetGraphicsMode]
movaps xmm6, xmm9
mulsd xmm6, xmm15
divsd xmm6, qword [0x14002d410]
movaps xmm0, xmm6
call fcn.14001fa70
xorps xmm8, xmm8
cvtsd2ss xmm8, xmm0
movaps xmm0, xmm6
movss dword [rsp + 0x48], xmm8
call fcn.14001fff0
xorps xmm7, xmm7
cvtsd2ss xmm7, xmm0
movaps xmm0, xmm6
movss dword [rsp + 0x4c], xmm7
call fcn.14001fff0
xorps xmm0, xmm14
movss dword [rsp + 0x54], xmm8
mov eax, r15d
xorps xmm5, xmm5
cdq
mov rcx, r14
cvtsd2ss xmm5, xmm0
sub eax, edx
sar eax, 1
movaps xmm0, xmm8
movd xmm4, eax
mov eax, r12d
cdq
movss dword [rsp + 0x50], xmm5
cvtdq2ps xmm4, xmm4
sub eax, edx
lea rdx, [rsp + 0x48]
sar eax, 1
mulss xmm0, xmm4
movaps xmm2, xmm4
movd xmm3, eax
cvtdq2ps xmm3, xmm3
subss xmm2, xmm0
mulss xmm7, xmm4
movaps xmm0, xmm3
mulss xmm8, xmm3
movaps xmm1, xmm3
subss xmm0, xmm7
mulss xmm1, xmm5
subss xmm0, xmm8
subss xmm2, xmm1
movss dword [rsp + 0x5c], xmm0
movss dword [rsp + 0x58], xmm2
call qword [sym.imp.GDI32.dll_SetWorldTransform]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov esi, dword [rsp + 0x44]
mov ecx, 0xff
mov ebx, dword [rsp + 0x40]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rdx, rax
mov rcx, r14
mov rdi, rax
call qword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [rsi + 0xa]
mov dword [rsp + 0x20], ecx
lea r9d, [rbx + 0xa]
mov rcx, r14
lea r8d, [rsi - 0xa]
lea edx, [rbx - 0xa]
call qword [sym.imp.GDI32.dll_Rectangle]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteObject]
call fcn.14000bac8
mov ebp, eax
mov eax, 0x51eb851f
imul ebp
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x64
sub ebp, ecx
add ebp, 0x50
call fcn.14000bac8
mov esi, eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x64
sub esi, ecx
call fcn.14000bac8
mov ecx, r15d
cdq
sub ecx, ebp
idiv ecx
xor ecx, ecx
mov ebx, edx
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rdx, rax
mov rcx, r14
mov rdi, rax
call qword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [rsi + 0x50]
mov r8d, r13d
add ecx, r13d
lea r9d, [rbx + rbp]
mov dword [rsp + 0x20], ecx
mov edx, ebx
mov rcx, r14
call qword [sym.imp.GDI32.dll_Rectangle]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [r13 + 5]
xor ecx, ecx
cmp eax, r12d
cmovle ecx, eax
mov dword [rsp + 0x38], ecx
call fcn.14000bac8
mov ebp, eax
mov eax, 0x55555556
imul ebp
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*2]
sub ebp, ecx
call fcn.14000bac8
mov esi, eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
sub esi, eax
add esi, 0x32
call fcn.14000bac8
mov ecx, r15d
cdq
sub ecx, esi
idiv ecx
mov ebx, edx
call fcn.14000bac8
mov ecx, r12d
cdq
sub ecx, esi
idiv ecx
xor ecx, ecx
mov edi, edx
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rdx, rax
mov rcx, r14
mov r13, rax
call qword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [rdi + rsi]
lea r8d, [rbx + rsi]
test ebp, ebp
jne 0x1400028f1
mov dword [rsp + 0x20], ecx
mov r9d, r8d
mov r8d, edi
mov rcx, r14
mov edx, ebx
call qword [sym.imp.GDI32.dll_Rectangle]
jmp 0x140002943
cmp ebp, 1
jne 0x14000290d
mov dword [rsp + 0x20], ecx
mov r9d, r8d
mov r8d, edi
mov rcx, r14
mov edx, ebx
call qword [sym.imp.GDI32.dll_Ellipse]
jmp 0x140002943
mov eax, esi
mov dword [rsp + 0x4c], ecx
cdq
mov dword [rsp + 0x58], r8d
sub eax, edx
mov dword [rsp + 0x5c], ecx
sar eax, 1
lea rdx, [rsp + 0x48]
add eax, ebx
mov dword [rsp + 0x48], ebx
mov r8d, 3
mov dword [rsp + 0x50], eax
mov rcx, r14
mov dword [rsp + 0x54], edi
call qword [sym.imp.GDI32.dll_Polygon]
mov rcx, r13
call qword [sym.imp.GDI32.dll_DeleteObject]
mov esi, 0xa
call fcn.14000bac8
cdq
idiv r15d
mov ebp, edx
call fcn.14000bac8
cdq
idiv r12d
mov r13d, edx
call fcn.14000bac8
cdq
idiv r15d
mov dword [rsp + 0x34], edx
call fcn.14000bac8
cdq
idiv r12d
mov dword [rsp + 0x30], edx
call fcn.14000bac8
and eax, 0x800000ff
jge 0x140002997
dec eax
or eax, 0xffffff00
inc eax
movzx edi, al
shl edi, 8
call fcn.14000bac8
and eax, 0x800000ff
jge 0x1400029b2
dec eax
or eax, 0xffffff00
inc eax
movzx ebx, al
shl ebx, 0x10
or ebx, edi
call fcn.14000bac8
and eax, 0x800000ff
jge 0x1400029cf
dec eax
or eax, 0xffffff00
inc eax
movzx r8d, al
mov edx, 1
or r8d, ebx
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreatePen]
mov rdx, rax
mov rcx, r14
mov rbx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
xor r9d, r9d
mov r8d, r13d
mov edx, ebp
mov rcx, r14
call qword [sym.imp.GDI32.dll_MoveToEx]
mov r8d, dword [rsp + 0x30]
mov rcx, r14
mov edx, dword [rsp + 0x34]
call qword [sym.imp.GDI32.dll_LineTo]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
sub rsi, 1
jne 0x140002951
call fcn.14000bac8
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f4
mov edx, 0x64
sub ecx, eax
add ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rdx, r14
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov r13d, dword [rsp + 0x38]
jmp 0x140002650