Function at 0x140063d20
Capabilities:
Create thread

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x178
lea rbp, [rsp + 0x80]
and rsp, 0xffffffffffffffe0
mov rax, qword [0x1400c1548]
xor rax, rbp
mov qword [rsp + 0x170], rax
mov rcx, qword [0x1400c15a8]
call fcn.140066ea0
xor r14d, r14d
test al, al
je 0x140064453
movabs rax, 0x992d41ff05942453
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rax
movabs rax, 0x21847eb06e153478
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xc8], rax
movabs rax, 0x4d09ec6a1a647564
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xd0], rax
movabs rax, 0x6ec6700f41576dc6
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xd8], rax
movabs rax, 0x53a9175ff5ce15a0
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xe0], rax
movabs rax, 0x2c1143184f55fbe7
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xe8], rax
movabs rax, 0xb5990e864bb2b69b
mov qword [rsp + 0x88], rax
mov qword [rsp + 0xf0], rax
movabs rax, 0xa45d1c1b7f40dbdb
mov qword [rsp + 0x80], rax
mov qword [rsp + 0xf8], rax
movabs rax, 0xbb9bb4d5c76ea5d8
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x100], rax
movabs r15, 0x96f3692c5d62819e
mov qword [rsp + 0x108], r15
movabs rax, 0x9959418d05fb2415
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x120], rax
movabs rax, 0x21e17ec46e7c3416
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x128], rax
movabs rax, 0x4d6cec031a087527
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x130], rax
movabs rax, 0x6e91702241236da8
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x138], rax
movabs rax, 0x539d1769f5a015c9
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x140], rax
movabs rax, 0x2c7843704f06fbca
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x148], rax
movabs rax, 0xb5f70eef4bc2b6eb
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x150], rax
movabs r12, 0xa4251c7e7f6edbbc
mov qword [rsp + 0x158], r12
movabs r13, 0xbb9bb4d5c76ea5bd
mov qword [rsp + 0x160], r13
mov qword [rsp + 0x168], r15
lea rax, [rsp + 0x120]
vmovaps ymm0, ymmword [rsp + 0xc0]
vxorps ymm0, ymm0, ymmword [rax]
vmovaps ymmword [rsp + 0xc0], ymm0
vmovaps ymm0, ymmword [rsp + 0xe0]
vxorps ymm0, ymm0, ymmword [rax + 0x20]
vmovaps ymmword [rsp + 0xe0], ymm0
vmovaps xmm0, xmmword [rsp + 0x100]
vxorps xmm0, xmm0, xmmword [rax + 0x40]
vmovaps xmmword [rsp + 0x100], xmm0
vxorps xmm0, xmm0, xmm0
vmovaps ymmword [rsp + 0x120], ymm0
mov rdi, qword [0x1400c1600]
lea rbx, [rsp + 0xc0]
mov rcx, rbx
vzeroupper
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
lea rsi, [rsp + 0x120]
mov rcx, rsi
mov rdx, rbx
mov r8, rax
call fcn.1400046c0
mov rcx, rdi
mov rdx, rsi
call fcn.140065210
mov ebx, eax
mov rax, qword [rsp + 0x138]
cmp rax, 8
jb 0x140064012
mov rcx, qword [rsp + 0x120]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x14006400d
mov rdi, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rdi
cmp rcx, 0x20
jae 0x1400644a6
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, rdi
call fcn.140066ff0
test bl, bl
je 0x140064453
mov qword [rsp + 0xc0], 0
lea rsi, [rsp + 0xc8]
mov dword [rsp + 0xc8], 0
mov ecx, 0x20
call fcn.140066fac
movabs rcx, 0x200000001
mov qword [rax], rcx
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rax + 8], xmm0
mov dword [rax + 0x18], 0
mov qword [rsp + 0xd0], rax
mov ecx, 1
call fcn.140066fac
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 0
lea r8, [0x1400646b0]
xor ecx, ecx
xor edx, edx
mov r9, rax
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0xc0], rax
test rax, rax
je 0x14006447a
cmp dword [rsp + 0xc8], 0
je 0x14006448f
vmovups xmm0, xmmword [rsp + 0xc0]
vmovaps xmmword [rsp + 0x120], xmm0
lea rsi, [rsp + 0x120]
mov rcx, rsi
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x140064499
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0xc8], 0
lea rcx, [rsp + 0xc0]
call fcn.1400644b0
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x140064129
mov eax, 0xfffffffe
lock xadd dword [rcx + 4], eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x140064129
lock dec dword [rcx]
jne 0x140064129
call fcn.140066fe8
cmp dword [rsp + 0xc8], 0
jne 0x1400644a0
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x120], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x138], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x148], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], r12
mov qword [rsp + 0x160], r13
mov qword [rsp + 0x108], r15
mov qword [rsp + 0x168], r15
vmovaps ymm0, ymmword [rsp + 0xc0]
vxorps ymm0, ymm0, ymmword [rsi]
vmovaps ymmword [rsp + 0xc0], ymm0
vmovaps ymm0, ymmword [rsp + 0xe0]
vxorps ymm0, ymm0, ymmword [rsi + 0x20]
vmovaps ymmword [rsp + 0xe0], ymm0
vmovaps xmm0, xmmword [rsp + 0x100]
vxorps xmm0, xmm0, xmmword [rsi + 0x40]
mov rsi, qword [0x1400c1598]
vmovaps xmmword [rsp + 0x100], xmm0
vxorps xmm0, xmm0, xmm0
vmovaps ymmword [rsp + 0x120], ymm0
lea rdi, [rsp + 0xc0]
mov rcx, rdi
vzeroupper
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
lea rbx, [rsp + 0x120]
mov rcx, rbx
mov rdx, rdi
mov r8, rax
call fcn.1400046c0
mov rcx, rsi
mov rdx, rbx
call fcn.14005e640
mov ebx, eax
mov rax, qword [rsp + 0x138]
cmp rax, 8
jb 0x14006431b
mov rcx, qword [rsp + 0x120]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x140064316
mov rdi, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rdi
cmp rcx, 0x20
jae 0x1400644a6
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, rdi
call fcn.140066ff0
xor r14d, r14d
test bl, bl
je 0x140064453
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0xc8], 0
mov ecx, 0x20
call fcn.140066fac
movabs rcx, 0x200000001
mov qword [rax], rcx
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rax + 8], xmm0
mov dword [rax + 0x18], 0
mov qword [rsp + 0xd0], rax
mov ecx, 1
call fcn.140066fac
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0
lea r8, [0x1400646e0]
xor ecx, ecx
xor edx, edx
mov r9, rax
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0xc0], rax
test rax, rax
je 0x14006447a
cmp dword [rsp + 0xc8], 0
je 0x14006448f
vmovups xmm0, xmmword [rsp + 0xc0]
vmovaps xmmword [rsp + 0x120], xmm0
lea rcx, [rsp + 0x120]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x140064499
mov qword [rsp + 0xc0], 0
mov dword [rsp + 0xc8], 0
lea rcx, [rsp + 0xc0]
call fcn.1400644b0
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x140064432
mov eax, 0xfffffffe
lock xadd dword [rcx + 4], eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x140064432
lock dec dword [rcx]
jne 0x140064432
call fcn.140066fe8
cmp dword [rsp + 0xc8], 0
jne 0x1400644a0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_istream_char__struct_std::char_traits_char__::get_void____ptr64]
xor r14d, r14d
cmp eax, 0xffffffff
sete r14b
mov rcx, qword [rsp + 0x170]
xor rcx, rbp
call fcn.140067310
mov eax, r14d
lea rsp, [rbp + 0xf8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov dword [rsp + 0xc8], 0
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
mov ecx, 1
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
mov ecx, eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3