Function at 0x140055f50
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x13f0
call fcn.14005c140
sub rsp, rax
mov rax, qword [0x1400ac010]
xor rax, rsp
mov qword [rsp + 0x13e0], rax
mov r15, rcx
mov qword [rsp + 0x28], rcx
xor r12d, r12d
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], r12
mov r14d, 0xf
mov qword [rsp + 0x48], r14
mov byte [rsp + 0x30], r12b
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rsp + 0x13d4], 0xffffffff
mov dword [rsp + 0x54], eax
lea ecx, [r12 + 1]
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x54], edx
inc rcx
cmp rcx, 0x270
jb 0x140055fd0
mov dword [rsp + 0x50], 0x270
mov rbx, qword [0x140389980]
sub rbx, qword [0x140389978]
sar rbx, 5
dec ebx
mov edi, r12d
nop
cmp ebx, 0xffffffff
jne 0x140056023
lea rcx, [rsp + 0x50]
call fcn.14005ad80
mov edx, eax
jmp 0x14005605b
lea esi, [rbx + 1]
mov r8d, r12d
mov eax, r12d
test ebx, ebx
je 0x140056042
lea rcx, [rsp + 0x50]
call fcn.14005ad80
mov r8d, eax
mov eax, 0xffffffff
xor edx, edx
div esi
mov r9d, edx
mov ecx, eax
xor edx, edx
mov eax, r8d
div esi
cmp eax, ecx
jb 0x14005605b
cmp r9d, ebx
jne 0x140056026
movsxd rdx, edx
shl rdx, 5
add rdx, qword [0x140389978]
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140056077
mov rdx, qword [rdx]
lea rcx, [rsp + 0x30]
call fcn.14005a640
cmp edi, 0xb
jae 0x14005609d
mov r8d, 1
lea rdx, [0x140099aa4]
lea rcx, [rsp + 0x30]
call fcn.14005a640
inc edi
cmp edi, 0xc
jl 0x140056010
mov rdi, qword [rsp + 0x40]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, rdi
cmp rax, 0x1b
jb 0x14005622c
lea rbp, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rbp, qword [rsp + 0x30]
xorps xmm0, xmm0
movups xmmword [r15], xmm0
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r12
lea rsi, [rdi + 0x1b]
mov rbx, r15
cmp rsi, 0xf
jbe 0x140056170
mov r14, rsi
or r14, 0xf
cmp r14, rcx
jbe 0x140056105
mov r14, rcx
jmp 0x140056111
mov eax, 0x16
cmp r14, rax
cmovb r14, rax
mov rcx, r14
add rcx, 1
mov rax, 0xffffffffffffffff
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x14005615b
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140056226
mov rcx, rax
call fcn.14005b6bc
test rax, rax
je 0x140056154
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14005616d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x14005616a
call fcn.14005b6bc
mov rbx, rax
jmp 0x14005616d
mov rbx, r12
mov qword [r15], rbx
mov qword [r15 + 0x10], rsi
mov qword [r15 + 0x18], r14
movups xmm0, xmmword [str.Balance:_0__Wallet_check:]
movups xmmword [rbx], xmm0
movsd xmm1, qword [0x14009e3e0]
movsd qword [rbx + 0x10], xmm1
movzx eax, word [0x14009e3e8]
mov word [rbx + 0x18], ax
movzx eax, byte [0x14009e3ea]
mov byte [rbx + 0x1a], al
lea rcx, [rbx + 0x1b]
mov r8, rdi
mov rdx, rbp
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbx + rsi], 0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x1400561f7
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400561f2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400561f2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14005b4c8
mov rax, r15
mov rcx, qword [rsp + 0x13e0]
xor rcx, rsp
call fcn.14005af20
lea r11, [rsp + 0x13f0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
call fcn.140055040
nop
call fcn.1400550e0
int3