Function at 0x180064fd0
Capabilities:
Encode data using xor
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 - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x1800e8400]
xor rax, rsp
mov qword [rbp + 0xb0], rax
mov r13, rcx
xor edi, edi
mov dword [rsp + 0x40], edi
mov edx, dword [0x1800ea1d0]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rbx, qword [rax + rdx*8]
add rbx, rcx
lea r12, [0x1800ea580]
mov eax, dword [rbx]
cmp dword [0x1800ea560], eax
jle 0x1800650a7
lea rcx, [0x1800ea560]
call fcn.1800a4278
cmp dword [0x1800ea560], 0xffffffff
jne 0x1800650a7
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [0x1800eb904], 0xffffffff
mov dword [0x1800ea584], eax
mov r8d, 1
nop
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, r8d
mov dword [r12 + r8*4 + 4], eax
inc r8
cmp r8, 0x270
jb 0x180065070
mov dword [0x1800ea580], 0x270
lea rcx, [0x1800ea560]
call fcn.1800a420c
mov eax, dword [rbx]
cmp dword [0x1800ea564], eax
jle 0x1800650e2
lea rcx, [0x1800ea564]
call fcn.1800a4278
cmp dword [0x1800ea564], 0xffffffff
jne 0x1800650e2
mov dword [0x1800ea570], edi
mov dword [0x1800ea574], 0xf
lea rcx, [0x1800ea564]
call fcn.1800a420c
mov r14d, 8
mov eax, dword [rbx]
cmp dword [0x1800ea578], eax
jle 0x180065124
lea rcx, [0x1800ea578]
call fcn.1800a4278
cmp dword [0x1800ea578], 0xffffffff
jne 0x180065124
mov dword [0x1800ea568], r14d
mov dword [0x1800ea56c], 0xb
lea rcx, [0x1800ea578]
call fcn.1800a420c
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll_memset
lea rax, [0x1800d00b0]
mov qword [rbp - 0x50], rax
lea rax, [0x1800adc10]
mov qword [rbp - 0x40], rax
lea rcx, [rbp + 0x48]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov r15d, 4
mov dword [rsp + 0x40], r15d
xor r8d, r8d
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x50]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64____ptr64]
nop
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x54], edx
lea rcx, [rbp - 0x38]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp - 0x38], rax
mov qword [rbp + 0x30], rdi
mov dword [rbp + 0x38], edi
lea rdx, [0x180064e20]
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
nop word [rax + rax]
mov esi, dword [0x1800ea570]
btc esi, 0x1f
mov eax, dword [0x1800ea574]
btc eax, 0x1f
sub eax, esi
mov rcx, r12
cmp eax, 0xffffffff
jne 0x1800651f7
call fcn.180064e40
mov ecx, eax
jmp 0x180065236
lea ebx, [rax + 1]
call fcn.180064e40
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x180065232
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180065232
nop dword [rax]
mov rcx, r12
call fcn.180064e40
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x180065220
shr rcx, 0x20
lea edx, [rcx + rsi]
xor edx, 0x80000000
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
sub r14, 1
jne 0x1800651d0
lea rdx, [0x1800d1938]
lea rcx, [rbp - 0x40]
call fcn.180004960
nop
mov esi, dword [0x1800ea570]
btc esi, 0x1f
mov eax, dword [0x1800ea574]
btc eax, 0x1f
sub eax, esi
mov rcx, r12
cmp eax, 0xffffffff
jne 0x180065287
call fcn.180064e40
mov ecx, eax
jmp 0x1800652c6
lea ebx, [rax + 1]
call fcn.180064e40
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1800652c2
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1800652c2
nop dword [rax]
mov rcx, r12
call fcn.180064e40
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1800652b0
shr rcx, 0x20
lea edx, [rcx + rsi]
xor edx, 0x80000000
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
sub r15, 1
jne 0x180065260
lea rdx, [0x1800d2110]
lea rcx, [rbp - 0x40]
call fcn.180004960
mov r15d, 3
mov r14d, r15d
nop dword [rax + rax]
mov esi, dword [0x1800ea570]
btc esi, 0x1f
mov eax, dword [0x1800ea574]
btc eax, 0x1f
sub eax, esi
mov rcx, r12
cmp eax, 0xffffffff
jne 0x180065327
call fcn.180064e40
mov ecx, eax
jmp 0x180065366
lea ebx, [rax + 1]
call fcn.180064e40
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x180065362
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180065362
nop dword [rax]
mov rcx, r12
call fcn.180064e40
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x180065350
shr rcx, 0x20
lea edx, [rcx + rsi]
xor edx, 0x80000000
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
sub r14, 1
jne 0x180065300
lea rdx, [0x1800d1938]
lea rcx, [rbp - 0x40]
call fcn.180004960
mov esi, dword [0x1800ea568]
btc esi, 0x1f
mov eax, dword [0x1800ea56c]
btc eax, 0x1f
sub eax, esi
mov rcx, r12
cmp eax, 0xffffffff
jne 0x1800653b6
call fcn.180064e40
mov ecx, eax
jmp 0x1800653ee
lea ebx, [rax + 1]
call fcn.180064e40
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1800653ea
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1800653ea
mov rcx, r12
call fcn.180064e40
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1800653d8
shr rcx, 0x20
lea edx, [rcx + rsi]
xor edx, 0x80000000
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
nop dword [rax]
nop word [rax + rax]
mov esi, dword [0x1800ea570]
btc esi, 0x1f
mov eax, dword [0x1800ea574]
btc eax, 0x1f
sub eax, esi
mov rcx, r12
cmp eax, 0xffffffff
jne 0x180065437
call fcn.180064e40
mov ecx, eax
jmp 0x180065476
lea ebx, [rax + 1]
call fcn.180064e40
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x180065472
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180065472
nop dword [rax]
mov rcx, r12
call fcn.180064e40
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x180065460
shr rcx, 0x20
lea edx, [rcx + rsi]
xor edx, 0x80000000
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
sub r15, 1
jne 0x180065410
lea rdx, [0x1800d1938]
lea rcx, [rbp - 0x40]
call fcn.180004960
mov r14d, 0xc
nop word [rax + rax]
mov esi, dword [0x1800ea570]
btc esi, 0x1f
mov eax, dword [0x1800ea574]
btc eax, 0x1f
sub eax, esi
mov rcx, r12
cmp eax, 0xffffffff
jne 0x1800654d7
call fcn.180064e40
mov ecx, eax
jmp 0x180065516
lea ebx, [rax + 1]
call fcn.180064e40
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x180065512
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180065512
nop dword [rax]
mov rcx, r12
call fcn.180064e40
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x180065500
shr rcx, 0x20
lea edx, [rcx + rsi]
xor edx, 0x80000000
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
sub r14, 1
jne 0x1800654b0
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x38]
call fcn.180004cf0
nop
mov rcx, qword [rsp + 0x78]
dec rcx
mov qword [rsp + 0x78], rcx
lea rax, [rsp + 0x68]
cmp qword [rbp - 0x80], 0xf
cmova rax, qword [rsp + 0x68]
mov byte [rax + rcx], r14b
mov rcx, qword [rsp + 0x78]
dec rcx
mov qword [rsp + 0x78], rcx
lea rax, [rsp + 0x68]
cmp qword [rbp - 0x80], 0xf
cmova rax, qword [rsp + 0x68]
mov byte [rax + rcx], r14b
mov r8d, 2
lea rdx, [0x1800d2114]
lea rcx, [rsp + 0x68]
call fcn.18001e730
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x78]
call fcn.18001edf0
nop
lea rdi, [rbp - 0x78]
mov rcx, qword [rbp - 0x78]
mov r8, qword [rbp - 0x60]
cmp r8, 0xf
cmova rdi, rcx
lea rbx, [rbp - 0x78]
cmova rbx, rcx
lea rsi, [rbp - 0x78]
cmova rsi, rcx
mov r9, qword [rbp - 0x68]
add rsi, r9
cmp rbx, rsi
je 0x180065601
sub rdi, rbx
nop dword [rax]
movsx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
nop
mov byte [rdi + rbx], al
inc rbx
cmp rbx, rsi
jne 0x1800655e0
mov r8, qword [rbp - 0x60]
mov r9, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x78]
lea rbx, [r13 + 0x90]
lea rax, [rbp - 0x78]
cmp rbx, rax
je 0x180065628
lea rdx, [rbp - 0x78]
cmp r8, 0xf
cmova rdx, rcx
mov r8, r9
mov rcx, rbx
call fcn.18000fe50
mov edx, 1
lea rcx, str.Successfully_Queued_spoof_device_id_
call fcn.1800211e0
mov rcx, qword [rbx + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0x25
jb 0x18006572d
cmp qword [rbx + 0x18], 0xf
jbe 0x18006565e
mov rbx, qword [rbx]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x25
lea r9, str.Successfully_Queued_spoof_device_id:
lea rcx, [rsp + 0x48]
call fcn.18001e1c0
nop
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rdx, qword [rsp + 0x48]
call fcn.18009d010
nop
lea rcx, [rsp + 0x48]
call fcn.18001f4d0
nop
lea rcx, [rbp - 0x78]
call fcn.18001f4d0
nop
lea rcx, [rsp + 0x68]
call fcn.18001f4d0
nop
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x54], edx
lea rcx, [rbp - 0x38]
call fcn.180004840
lea rcx, [rbp - 0x30]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x48]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
mov rcx, qword [rbp + 0xb0]
xor rcx, rsp
call fcn.1800a3dc0
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.18001f240
nop
int3