Function at 0x140029510
Capabilities:
Accept command line arguments
Create thread

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4e0
movaps xmmword [r11 - 0x38], xmm6
movaps xmmword [r11 - 0x48], xmm7
movaps xmmword [r11 - 0x58], xmm8
movaps xmmword [r11 - 0x68], xmm9
movaps xmmword [r11 - 0x78], xmm10
movaps xmmword [r11 - 0x88], xmm11
movaps xmmword [r11 - 0x98], xmm12
movaps xmmword [r11 - 0xa8], xmm13
movaps xmmword [r11 - 0xb8], xmm14
movaps xmmword [r11 - 0xc8], xmm15
mov rax, qword [0x14009e010]
xor rax, rsp
mov qword [rsp + 0x430], rax
mov r15d, r9d
mov rbx, rcx
mov dword [rsp + 0x68], r9d
xor esi, esi
movups xmm0, xmmword [str.MainWindow]
movups xmmword [rsp + 0x208], xmm0
mov eax, dword [0x140080c98]
mov dword [rsp + 0x218], eax
movzx eax, word [0x140080c9c]
mov word [rsp + 0x21c], ax
mov qword [r11 - 0x3e8], rsi
mov qword [r11 - 0x3d8], rsi
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x140], xmm0
xorps xmm1, xmm1
movdqa xmmword [rsp + 0x150], xmm1
lea rax, [0x14002aaa0]
mov qword [r11 - 0x3e0], rax
mov qword [r11 - 0x3d0], rcx
lea rax, [r11 - 0x300]
mov qword [r11 - 0x3a8], rax
lea rcx, [r11 - 0x3e8]
call qword [sym.imp.USER32.dll_RegisterClassW]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x38], 0x80000000
mov dword [rsp + 0x30], 0x80000000
mov dword [rsp + 0x28], 0x80000000
mov dword [rsp + 0x20], 0x80000000
mov r9d, 0xcf0000
lea r8, [0x140080ca0]
lea rdx, [rsp + 0x208]
xor ecx, ecx
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov r12, rax
mov qword [rsp + 0xc0], rax
test rax, rax
je 0x1400296d1
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x1a0], xmm1
mov qword [rsp + 0x1b0], rsi
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
lea rdx, [rsp + 0x198]
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov r14, rax
test rax, rax
jne 0x1400296d8
lea rdx, str.Expected_a_known_image_or_.json_geometry_file...
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140030770
lea rdx, [0x1400310c0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
lea rcx, [rsp + 0x1a0]
call fcn.14002bb20
xor eax, eax
jmp 0x14002aa1d
mov r13d, 1
mov ebx, r13d
cmp dword [rsp + 0x198], r13d
jle 0x1400297ef
lea rdi, [rax + 8]
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rdi]
xorps xmm0, xmm0
movups xmmword [rsp + 0x170], xmm0
mov qword [rsp + 0x180], rsi
mov qword [rsp + 0x188], rsi
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], 0
jne 0x140029725
lea rcx, [rsp + 0x170]
call fcn.140033130
nop
mov rdx, qword [rsp + 0x1a8]
cmp rdx, qword [rsp + 0x1b0]
je 0x14002977f
movups xmm0, xmmword [rsp + 0x170]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rsp + 0x180]
movups xmmword [rdx + 0x10], xmm1
mov edx, 7
mov word [rsp + 0x170], si
add qword [rsp + 0x1a8], 0x20
jmp 0x14002979c
lea r8, [rsp + 0x170]
lea rcx, [rsp + 0x1a0]
call fcn.140036a70
mov rdx, qword [rsp + 0x188]
cmp rdx, 8
jb 0x1400297dc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x170]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400297d7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400298c8
call fcn.140078850
inc ebx
add rdi, 8
cmp ebx, dword [rsp + 0x198]
jl 0x140029700
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop
mov r8d, 0x104
lea rdx, [rsp + 0x220]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xorps xmm0, xmm0
movups xmmword [rsp + 0x1b8], xmm0
mov qword [rsp + 0x1c8], rsi
mov qword [rsp + 0x1d0], rsi
lea rax, [rsp + 0x220]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140029840
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x1b8]
call fcn.140033130
nop
lea rdx, [rsp + 0x1b8]
mov r10, qword [rsp + 0x1b8]
mov r11, qword [rsp + 0x1d0]
cmp r11, 8
cmovae rdx, r10
mov r9, qword [rsp + 0x1c8]
test r9, r9
je 0x1400298cf
lea rcx, [r9 - 1]
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea r8, [rdx + rax*2]
cmp word [r8], 0x5c
je 0x1400298c0
nop dword [rax + rax]
cmp r8, rdx
je 0x1400298cf
sub r8, 2
cmp word [r8], 0x5c
jne 0x1400298b0
sub r8, rdx
sar r8, 1
jmp 0x1400298d6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov r8, 0xffffffffffffffff
xorps xmm0, xmm0
movups xmmword [rsp + 0x170], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x180], xmm1
cmp r9, r8
cmovb r8, r9
lea rdx, [rsp + 0x1b8]
cmp r11, 8
cmovae rdx, r10
lea rcx, [rsp + 0x170]
call fcn.140033130
mov rdx, qword [rsp + 0x1d0]
cmp rdx, 8
jb 0x14002995c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x1b8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029957
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140029957
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140078850
movups xmm0, xmmword [rsp + 0x170]
movups xmmword [rsp + 0x1b8], xmm0
movups xmm1, xmmword [rsp + 0x180]
movups xmmword [rsp + 0x1c8], xmm1
lea rdx, [rsp + 0x1b8]
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 8
cmovae rdx, rcx
movq r8, xmm1
xorps xmm0, xmm0
movups xmmword [rsp + 0x170], xmm0
mov qword [rsp + 0x180], rsi
mov qword [rsp + 0x188], rsi
lea rcx, [rsp + 0x170]
call fcn.140033130
nop
lea rcx, [rsp + 0x170]
cmp qword [rsp + 0x188], 8
cmovae rcx, qword [rsp + 0x170]
call fcn.1400784c0
test eax, eax
jne 0x14002aa82
mov rdx, qword [rsp + 0x188]
cmp rdx, 8
jb 0x140029a40
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x170]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029a3a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140029a3a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140078850
nop
mov rdx, qword [rsp + 0x1d0]
cmp rdx, 8
jb 0x140029a8c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x1b8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029a86
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140029a86
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140078850
nop
jmp 0x140029aa1
mov rcx, r12
call qword [sym.imp.USER32.dll_GetDC]
mov rbx, rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x170], xmm0
movups xmmword [rsp + 0x180], xmm0
mov qword [rsp + 0x190], rax
mov dword [rsp + 0x170], 0x10028
mov dword [rsp + 0x174], 0x25
mov word [rsp + 0x178], 0x2000
lea rdx, [rsp + 0x170]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_ChoosePixelFormat]
test eax, eax
je 0x14002a9d3
lea r8, [rsp + 0x170]
mov edx, eax
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SetPixelFormat]
test eax, eax
je 0x14002a9d3
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rcx, r12
call qword [sym.imp.USER32.dll_GetDC]
mov qword [0x1400a4628], rax
mov rdx, qword [0x1400a45f8]
test rdx, rdx
jne 0x140029b60
mov rcx, rax
call qword [sym.imp.OPENGL32.dll_wglCreateContext]
mov rdx, rax
mov qword [0x1400a45f8], rax
mov rax, qword [0x1400a4628]
mov rcx, rax
call qword [sym.imp.OPENGL32.dll_wglMakeCurrent]
mov edx, 0xa
mov rcx, r12
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, r12
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rbx, qword [0x1400a4298]
test rbx, rbx
je 0x140029b92
inc dword [rbx + 0xf0]
mov ecx, 0x5e78
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rax
test rax, rax
je 0x140029bc8
xor edx, edx
mov rcx, rax
call fcn.140046b90
jmp 0x140029bcb
mov rax, rsi
mov qword [0x1400a4298], rax
call fcn.14004a7a0
mov rax, qword [0x1400a4298]
test rbx, rbx
cmovne rax, rbx
mov qword [0x1400a4298], rax
xor ecx, ecx
call fcn.140067290
mov rcx, r12
call fcn.140070f10
call fcn.14006fc60
xorps xmm0, xmm0
movdqu xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0x100], rsi
mov rdx, qword [rsp + 0x1a8]
sub rdx, qword [rsp + 0x1a0]
sar rdx, 5
test rdx, rdx
je 0x140029cc6
lea rcx, [rsp + 0xf0]
call fcn.140034280
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x70], rax
mov r14, qword [rsp + 0x1a8]
xorps xmm0, xmm0
movups xmmword [rsp + 0x170], xmm0
mov rbx, qword [rsp + 0xf0]
mov qword [rsp + 0x170], rbx
mov qword [rsp + 0x178], rbx
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x180], rax
mov rdi, qword [rsp + 0x1a0]
cmp rdi, r14
je 0x140029cb3
mov rdx, rdi
mov rcx, rbx
call fcn.14002e020
add rbx, 0x20
mov qword [rsp + 0x178], rbx
add rdi, 0x20
cmp rdi, r14
jne 0x140029c93
mov rdx, rbx
mov rcx, rbx
call fcn.1400336a0
mov qword [rsp + 0xf8], rbx
mov rcx, r12
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], r12
mov dword [rsp + 0x118], r15d
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0xf0]
lea r8, [0x140023300]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xorps xmm0, xmm0
movups xmmword [rsp + 0x1d8], xmm0
movups xmmword [rsp + 0x1e8], xmm0
movups xmmword [rsp + 0x1f8], xmm0
xor r15b, r15b
mov dword [rsp + 0x68], r15d
lea r12, [0x1400a44b0]
xorps xmm8, xmm8
movss xmm9, dword [0x1400894ec]
movss xmm10, dword [0x1400893b0]
movss xmm11, dword [0x1400893e8]
movss xmm12, dword [0x140089528]
movss xmm13, dword [0x140089518]
movss xmm14, dword [0x1400893dc]
movss xmm15, dword [0x1400894dc]
lea rbx, [0x1400a4570]
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x1d8]
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x140029df0
nop dword [rax]
movzx r15d, r15b
cmp dword [rsp + 0x1e0], 0x12
cmove r15d, r13d
lea rcx, [rsp + 0x1d8]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x1d8]
call qword [sym.imp.USER32.dll_DispatchMessageW]
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x1d8]
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x140029da0
mov dword [rsp + 0x68], r15d
cmp byte [0x1400a4268], 0
jne 0x140029eda
movss xmm0, dword [0x1400a426c]
ucomiss xmm0, xmm8
jp 0x140029e21
jne 0x140029e21
movss xmm0, dword [0x1400a427c]
ucomiss xmm0, xmm8
jp 0x140029e21
je 0x140029eda
mov rcx, r12
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x14002a7cb
mov edx, dword [0x1400a4260]
test edx, edx
jne 0x140029e52
lea rdx, [0x1400a4260]
mov ecx, r13d
call qword [sym.imp.OPENGL32.dll_glGenTextures]
mov edx, dword [0x1400a4260]
mov ecx, 0xde1
call qword [sym.imp.OPENGL32.dll_glBindTexture]
mov edx, 0x2801
mov ecx, 0xde1
mov r8d, 0x2601
call qword [sym.imp.OPENGL32.dll_glTexParameteri]
mov edx, 0x2800
mov ecx, 0xde1
mov r8d, 0x2601
call qword [sym.imp.OPENGL32.dll_glTexParameteri]
mov rax, qword [0x1400a4270]
mov rcx, qword [rax + 8]
mov edx, dword [rax + 4]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], 0x1401
mov dword [rsp + 0x30], 0x80e1
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], edx
mov r9d, dword [rax]
xor edx, edx
mov ecx, 0xde1
mov r8d, 0x1908
call qword [sym.imp.OPENGL32.dll_glTexImage2D]
mov byte [0x1400a4268], 1
mov rcx, r12
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
mov rax, qword [0x1400a4298]
test rax, rax
je 0x140029eef
mov rcx, qword [rax + 0x98]
jmp 0x140029ef2
mov rcx, rsi
cmp dword [rcx + 0x30], 0
jne 0x140029efd
call fcn.140070a50
call fcn.140071880
call fcn.14004ca40
mov rax, qword [0x1400a4298]
mov qword [rax + 0x47c8], 0
mov qword [rax + 0x47d0], 0
mov dword [rax + 0x47bc], r13d
movss xmm0, dword [rax + 0x14]
or dword [rax + 0x47b8], 3
mov dword [rax + 0x47d8], 0x43c80000
movss dword [rax + 0x47dc], xmm0
mov dword [rax + 0x47c0], r13d
xor edx, edx
lea r8d, [rdx + 2]
lea rcx, str.forza_painter_by_the_adawg
call fcn.140051940
movaps xmm0, xmm9
call fcn.140054330
mov qword [rsp + 0xc8], rbx
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x14002a9ca
mov rdi, qword [0x1400a44a0]
mov r14, qword [0x1400a44a8]
add r14, rdi
cmp rdi, r14
je 0x14002a023
nop
mov rbx, qword [0x1400a4498]
dec rbx
and rbx, rdi
mov rax, qword [0x1400a4490]
mov rbx, qword [rax + rbx*8]
mov edx, dword [rbx]
call fcn.140048d70
lea rdx, [rbx + 8]
cmp qword [rdx + 0x18], 0x10
jb 0x140029fcd
mov rdx, qword [rdx]
lea rcx, [0x14007f850]
call fcn.140074710
mov r8, qword [0x1400a4298]
movsxd rax, dword [r8 + 0x4828]
cmp eax, 1
jl 0x14002a014
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4830]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [r8 + rax*8 + 0x38a4], xmm0
dec dword [r8 + 0x4828]
inc rdi
cmp rdi, r14
jne 0x140029fa0
lea rbx, [0x1400a4570]
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
mov qword [rsp + 0xc8], r12
mov rcx, r12
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x14002a9c1
cmp byte [0x1400a4268], al
je 0x14002a196
cmp dword [0x1400a4260], eax
je 0x14002a196
mov rax, qword [0x1400a4298]
movss xmm1, dword [rax + 0x14]
movss xmm0, dword [rax + 0x10]
subss xmm0, xmm9
movss xmm2, dword [0x1400a426c]
divss xmm2, dword [0x1400a427c]
movaps xmm6, xmm2
mulss xmm6, xmm1
movaps xmm7, xmm1
comiss xmm6, xmm0
jbe 0x14002a09c
movaps xmm7, xmm0
divss xmm7, xmm2
movaps xmm6, xmm0
subss xmm0, xmm6
mulss xmm0, xmm10
subss xmm1, xmm7
mulss xmm1, xmm10
addss xmm0, xmm9
movss dword [rax + 0x47c8], xmm0
movss dword [rax + 0x47cc], xmm1
mov qword [rax + 0x47d0], 0
mov dword [rax + 0x47bc], r13d
or dword [rax + 0x47b8], 3
movss dword [rax + 0x47d8], xmm6
movss dword [rax + 0x47dc], xmm7
mov dword [rax + 0x47c0], r13d
xor edx, edx
lea r8d, [rdx + 0x2b]
lea rcx, str.Preview
call fcn.140051940
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
movaps xmm1, xmmword [0x1400899a0]
movups xmmword [rsp + 0xd0], xmm1
mov dword [rsp + 0x90], 0x3f800000
mov dword [rsp + 0x94], 0x3f800000
mov qword [rsp + 0x98], 0
movss dword [rsp + 0xa0], xmm6
movss dword [rsp + 0xa4], xmm7
mov ecx, dword [0x1400a4260]
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x90]
lea r8, [rsp + 0x98]
lea rdx, [rsp + 0xa0]
call fcn.140075e50
call fcn.140053c20
nop
mov rcx, r12
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
lea rcx, [0x1400a4500]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x14002a9b8
cmp dword [0x14009e064], eax
sete bl
lea rcx, [0x1400a4500]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
test bl, bl
je 0x14002a3a2
movsxd rax, dword [0x14009e060]
cmp eax, 1
jl 0x14002a1fa
mov rcx, qword [0x1400a4640]
sub rcx, qword [0x1400a4638]
sar rcx, 5
cmp rax, rcx
mov byte [rsp + 0x60], 1
jbe 0x14002a1ff
mov byte [rsp + 0x60], 0
lea rcx, [0x14009e068]
cmp qword [0x14009e080], 0x10
cmovae rcx, qword [0x14009e068]
call fcn.140074710
mov eax, dword [0x14009e060]
dec eax
movsxd rdx, eax
shl rdx, 5
add rdx, qword [0x1400a4638]
cmp qword [rdx + 0x18], 0x10
jb 0x14002a23b
mov rdx, qword [rdx]
lea rcx, [0x14009e100]
cmp qword [0x14009e118], 0x10
cmovae rcx, qword [0x14009e100]
call fcn.1400762d0
test al, al
je 0x14002a366
mov rax, qword [0x1400a4640]
mov rdx, qword [0x1400a4638]
sub rax, rdx
sar rax, 5
test rax, rax
je 0x14002a30f
mov qword [rsp + 0xa8], 0
mov ebx, r13d
mov r14, rsi
mov edi, dword [0x14009e060]
nop word [rax + rax]
movsxd r12, ebx
cmp edi, ebx
sete r15b
lea rcx, [rdx + r14]
cmp qword [rcx + 0x18], 0x10
jb 0x14002a2b7
mov rcx, qword [rcx]
lea r9, [rsp + 0xa8]
movzx edx, r15b
call fcn.140076e80
mov edi, dword [0x14009e060]
test al, al
cmovne edi, ebx
mov dword [0x14009e060], edi
test r15b, r15b
je 0x14002a2e3
call fcn.140054640
inc ebx
add r14, 0x20
mov rcx, qword [0x1400a4640]
mov rdx, qword [0x1400a4638]
sub rcx, rdx
sar rcx, 5
cmp r12, rcx
jb 0x14002a2a0
mov r15d, dword [rsp + 0x68]
lea r12, [0x1400a44b0]
mov rbx, qword [0x1400a4298]
mov rcx, qword [rbx + 0x3ed8]
cmp qword [rbx + 0x48d0], rcx
jne 0x14002a34a
cmp byte [rbx + 0x4949], 0
je 0x14002a34a
cmp dword [rbx + 0x4908], 0
jne 0x14002a34a
mov eax, dword [rbx + 0x494c]
and eax, 0xfffffff2
or eax, 2
mov dword [rbx + 0x494c], eax
test dword [rcx + 0x14], 0x1000000
je 0x14002a35a
mov byte [rbx + 0x3e3e], 1
call fcn.140053c20
mov byte [rbx + 0x3e3e], 0
mov qword [rsp + 0xb0], 0
lea rdx, [rsp + 0xb0]
lea rcx, str.Confirm
call fcn.140075030
test al, al
je 0x14002a3a2
mov eax, dword [0x14009e064]
cmp byte [rsp + 0x60], 0
cmovne eax, dword [0x14009e060]
mov dword [0x14009e064], eax
mov r9, qword [0x1400a4298]
mov rax, qword [r9 + 0x3ed8]
mov byte [rax + 0xb8], 1
mov r8, qword [r9 + 0x3ed8]
movsxd rdx, dword [r8 + 0x1d8]
mov rax, qword [r8 + 0x1e0]
mov ecx, dword [rax + rdx*4 - 4]
mov dword [r8 + 0x1c0], ecx
lea eax, [rdx - 1]
mov dword [r8 + 0x1d8], eax
cmp byte [0x1400a4269], 0
je 0x14002a6b3
mov qword [r9 + 0x47c8], 0x43c80000
mov qword [r9 + 0x47d0], 0
mov dword [r9 + 0x47bc], r13d
movss xmm1, dword [r9 + 0x14]
movss xmm0, dword [r9 + 0x10]
subss xmm0, xmm9
or dword [r9 + 0x47b8], 3
movss dword [r9 + 0x47d8], xmm0
movss dword [r9 + 0x47dc], xmm1
mov dword [r9 + 0x47c0], r13d
xor edx, edx
lea r8d, [rdx + 0x2b]
lea rcx, str.ProcessingSplashScreen
call fcn.140051940
mov qword [rsp + 0x80], 0x43c80000
mov rbx, qword [0x1400a4298]
movss xmm1, dword [rbx + 0x14]
movss xmm0, dword [rbx + 0x10]
movss dword [rsp + 0xb8], xmm0
movss dword [rsp + 0xbc], xmm1
movsd xmm0, qword [rbx + 0x3e28]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, xmm10
addss xmm0, xmm10
movss xmm1, dword [0x140089390]
movss dword [rsp + 0x20], xmm1
movaps xmm3, xmm11
movaps xmm2, xmm11
movaps xmm1, xmm0
lea rcx, [rsp + 0x170]
call fcn.1400014c0
mov rcx, rax
call fcn.140048a30
mov rcx, qword [rbx + 0x3ed8]
mov byte [rcx + 0xb8], 1
mov rcx, qword [rbx + 0x3ed8]
mov dword [rsp + 0x28], esi
movss dword [rsp + 0x20], xmm8
mov r9d, eax
lea r8, [rsp + 0xb8]
lea rdx, [rsp + 0x80]
mov rcx, qword [rcx + 0x298]
call fcn.14006ab30
mov rbx, qword [0x1400a4298]
mov rax, qword [rbx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rcx, qword [rbx + 0x3ed8]
mov dword [rcx + 0x290], 0x40000000
mov rax, qword [rcx]
movss xmm2, dword [rax + 0x3c14]
addss xmm2, xmm2
mov rax, qword [rcx + 0x368]
test rax, rax
je 0x14002a554
mulss xmm2, dword [rax + 0x290]
movss dword [rbx + 0x3c28], xmm2
movss dword [rbx + 0x3c10], xmm2
mov qword [rsp + 0x30], rsi
lea rdi, str.Nothing_to_see_here..._Just_enjoy_the_pretty_colors_
mov qword [rsp + 0x28], rdi
movss dword [rsp + 0x20], xmm12
movaps xmm3, xmm13
lea rdx, [rsp + 0x78]
mov rcx, qword [rbx + 0x3c08]
call fcn.14006e940
movss xmm0, dword [rsp + 0x78]
addss xmm0, xmm14
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x78], xmm1
movss xmm2, dword [rbx + 0x14]
subss xmm2, dword [rsp + 0x7c]
mulss xmm2, xmm10
movss xmm0, dword [rbx + 0x10]
subss xmm0, xmm1
mulss xmm0, xmm10
addss xmm0, xmm15
movss dword [rsp + 0x88], xmm0
movss dword [rsp + 0x8c], xmm2
mov rax, qword [rbx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rax, qword [rbx + 0x3ed8]
mov rdx, qword [rax + 0x298]
mov rax, qword [rdx + 0x38]
movups xmm0, xmmword [rdx + 0x88]
movups xmmword [rsp + 0xd0], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm8
lea rcx, [0x140080d94]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0xffffffff
lea r9, [rsp + 0x88]
movss xmm2, dword [rax + 0x10]
mov rcx, qword [rax + 8]
call fcn.14006eb60
mov rdx, qword [0x1400a4298]
mov rax, qword [rdx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov rcx, qword [rdx + 0x3ed8]
mov dword [rcx + 0x290], 0x3f800000
mov rax, qword [rcx]
movss xmm0, dword [rax + 0x3c14]
mov rax, qword [rcx + 0x368]
test rax, rax
je 0x14002a69e
mulss xmm0, dword [rax + 0x290]
movss dword [rdx + 0x3c28], xmm0
movss dword [rdx + 0x3c10], xmm0
call fcn.140053c20
mov qword [rsp + 0x70], 0
lea rcx, [0x1400a4500]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x14002a9af
movzx ebx, byte [0x1400a426a]
lea rcx, [0x1400a4500]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
lea rcx, str.Pause
test bl, bl
lea rax, str.Resume
cmovne rcx, rax
lea rdx, [rsp + 0x70]
call fcn.140075030
test al, al
je 0x14002a736
lea rcx, [0x1400a4500]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x14002a7d4
cmp byte [0x1400a426a], al
sete byte [0x1400a426a]
lea rcx, [0x1400a4500]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
call fcn.140053c20
call fcn.14004eb10
mov r9d, dword [0x1400a4604]
mov r8d, dword [0x1400a4600]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.OPENGL32.dll_glViewport]
movaps xmm3, xmm11
movaps xmm2, xmm8
movaps xmm1, xmm8
movaps xmm0, xmm8
call qword [sym.imp.OPENGL32.dll_glClearColor]
mov ecx, 0x4000
call qword [sym.imp.OPENGL32.dll_glClear]
mov rax, qword [0x1400a4298]
mov rax, qword [rax + 0x48c8]
mov rcx, qword [rax]
add rcx, 0x48
mov rax, rsi
cmp byte [rcx], 0
cmovne rax, rcx
mov rcx, rax
call fcn.140070280
mov rcx, qword [0x1400a4628]
call qword [sym.imp.GDI32.dll_SwapBuffers]
test r15b, r15b
je 0x140029d76
mov rbx, qword [0x1400a4298]
test rbx, rbx
je 0x14002a7dd
mov r15, qword [rbx + 0x98]
jmp 0x14002a7e0
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov r15, rsi
lea r14, [rbx + 8]
test rbx, rbx
je 0x14002a7f2
mov rdi, qword [rbx + 0x98]
jmp 0x14002a7f5
mov rdi, rsi
cmp dword [rdi + 0x48], 0
je 0x14002a812
lea rdx, [rdi + 0x48]
mov ecx, r13d
call qword [0x1400a4330]
mov dword [rdi + 0x48], esi
mov rbx, qword [0x1400a4298]
cmp dword [rdi + 0x4c], 0
je 0x14002a82f
lea rdx, [rdi + 0x4c]
mov ecx, r13d
call qword [0x1400a4330]
mov dword [rdi + 0x4c], esi
mov rbx, qword [0x1400a4298]
mov ecx, dword [rdi + 0x30]
test ecx, ecx
je 0x14002a846
call qword [0x1400a4338]
mov dword [rdi + 0x30], esi
mov rbx, qword [0x1400a4298]
test rbx, rbx
je 0x14002a854
mov rdi, qword [rbx + 0x98]
jmp 0x14002a857
mov rdi, rsi
cmp dword [rdi + 0x2c], 0
je 0x14002a87c
lea rdx, [rdi + 0x2c]
mov ecx, r13d
call qword [0x1400a4348]
mov rax, qword [rbx + 0x38]
mov qword [rax + 8], rsi
mov dword [rdi + 0x2c], esi
mov rbx, qword [0x1400a4298]
mov qword [r14 + 0x80], rsi
mov qword [r14 + 0x90], rsi
and dword [r14 + 4], 0xfffffff7
test r15, r15
je 0x14002a8af
test rbx, rbx
je 0x14002a89f
dec dword [rbx + 0xf0]
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [0x1400a4298]
test rbx, rbx
je 0x14002a8bd
mov r14, qword [rbx + 0x90]
jmp 0x14002a8c0
mov r14, rsi
lea rdi, [rbx + 8]
mov rcx, qword [r14 + 0x30]
test rcx, rcx
je 0x14002a8da
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rbx, qword [0x1400a4298]
mov qword [rdi + 0x78], rsi
mov qword [rdi + 0x88], rsi
and dword [rdi + 4], 0xfffffff8
test rbx, rbx
je 0x14002a8f4
dec dword [rbx + 0xf0]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [0x1400a4298]
mov qword [0x1400a4298], rbx
call fcn.14004abe0
mov qword [0x1400a4298], rsi
test rbx, rbx
je 0x14002a93f
mov rcx, rbx
call fcn.14005fb50
mov rax, qword [0x1400a4298]
test rax, rax
je 0x14002a936
dec dword [rax + 0xf0]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.OPENGL32.dll_wglMakeCurrent]
mov rdx, qword [0x1400a4628]
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rcx, qword [0x1400a45f8]
call qword [sym.imp.OPENGL32.dll_wglDeleteContext]
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x160]
call qword [sym.imp.USER32.dll_UnregisterClassW]
nop
lea rcx, [rsp + 0xf0]
call fcn.14002bb20
nop
lea rcx, [rsp + 0x1a0]
call fcn.14002bb20
xor eax, eax
jmp 0x14002aa1d
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
nop
xor edx, edx
xor ecx, ecx
call qword [sym.imp.OPENGL32.dll_wglMakeCurrent]
mov rdx, qword [0x1400a4628]
mov rcx, r12
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rcx, r12
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x160]
call qword [sym.imp.USER32.dll_UnregisterClassW]
nop
lea rcx, [rsp + 0x1a0]
call fcn.14002bb20
mov eax, r13d
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.140078830
lea r11, [rsp + 0x4e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea r8, [rsp + 0x170]
mov edx, eax
lea rcx, str.current_path_const_path_
call fcn.1400033d0
int3