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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x1360]
mov eax, 0x1460
call fcn.14008c340
sub rsp, rax
mov rax, qword [0x1409963c0]
xor rax, rsp
mov qword [rbp + 0x1350], rax
mov r15d, edx
mov rsi, rcx
mov qword [rbp - 0x78], rcx
and dword [rbp - 0x80], 0
mov dword [rsp + 0x30], 0x84849c9c
mov dword [rsp + 0x34], 0x8c8c8484
mov dword [rsp + 0x38], 0xa5bb8c8c
mov dword [rsp + 0x3c], 0xaba8afbd
mov dword [rsp + 0x40], 0x908ba8a5
mov dword [rsp + 0x44], 0x83919090
mov dword [rsp + 0x48], 0x85828e8e
mov dword [rsp + 0x4c], 0x94838587
mov dword [rsp + 0x50], 0x95888a94
mov dword [rsp + 0x54], 0xf2e8f082
mov dword [rsp + 0x58], 0xeee3e1e2
mov dword [rsp + 0x5c], 0xeeeeeaf1
mov dword [rsp + 0x60], 0x8b88f9eb
mov dword [rsp + 0x64], 0x8b898f8b
mov dword [rsp + 0x68], 0x8c929e89
mov qword [rsp + 0x6c], 0x2f9c8f92
xor eax, eax
mov word [rsp + 0x74], ax
lea r13d, [rax + 1]
or r14, 0xffffffffffffffff
mov dil, byte [rsp + 0x20]
call fcn.140068228
mov rbx, qword [rax]
call fcn.140068230
mov r10, qword [rax]
xor r9d, r9d
cmp r9, 0x46
jae 0x1400495fa
movzx r8d, byte [rsp + r9 + 0x30]
mov r11b, r8b
cmp rbx, r9
ja 0x1400495f1
lea rax, [r10 + 1]
cmp rbx, rax
jae 0x140048be6
movabs rcx, 0x639f30b17a48f98e
add rcx, r9
mov rax, rcx
and rax, r8
imul rdi, rax, 0xfffffffffffffffe
add rdi, rcx
add rdi, r8
add dil, 0x1e
jmp 0x140048c13
je 0x140049578
lea rax, [r10 + 3]
cmp rbx, rax
je 0x14004950b
lea rax, [r10 + 5]
cmp rbx, rax
je 0x1400494d5
lea rax, [r10 + 4]
cmp rbx, rax
je 0x1400494af
mov r11b, r8b
cmp r10, r9
ja 0x1400495e8
lea rax, [r10 + 0x5a]
cmp rbx, rax
jae 0x140048c3c
movabs rdx, 0x2c0efe8f07fc78a6
mov ecx, 0x3b
jmp 0x140048e42
lea rax, [r10 + 1]
cmp rbx, rax
je 0x140049466
lea rax, [r10 + 2]
cmp rbx, rax
je 0x140049443
lea rax, [r10 + 3]
cmp rbx, rax
je 0x140049420
lea rax, [r10 + 8]
cmp rbx, rax
je 0x1400493fd
lea rax, [r10 + rbx]
cmp rax, r9
jbe 0x140049155
lea rax, [r10 + 0x61]
cmp rbx, rax
je 0x140049138
lea rcx, [r10 + 6]
cmp rbx, rcx
je 0x14004911a
lea rax, [r10 + 8]
cmp rbx, rax
je 0x14004910c
lea rax, [r10 + 0x200]
cmp rbx, rax
je 0x1400490ef
lea rax, [r10 + 2]
cmp rbx, rax
je 0x1400490d5
lea rax, [r10 + 0x28]
cmp rbx, rax
je 0x1400490b7
lea rax, [r10 + 0x7a]
cmp rbx, rax
je 0x140049099
lea rax, [r10 + 0x41]
cmp rbx, rax
je 0x14004907f
lea rax, [r10 + 9]
cmp rbx, rax
je 0x140049065
lea rax, [r10 + 0x3e8]
cmp rbx, rax
je 0x140048c7d
mov rbx, rcx
lea r10, [rcx + 3]
lea rax, [r10 + 0x80]
cmp rcx, rax
jb 0x1400495c9
lea rcx, [r10 + 1]
cmp rbx, rcx
jb 0x1400495ad
lea rax, [r10 + 0x20]
cmp rbx, rax
jb 0x140048e81
lea rax, [r10 + 0x28]
cmp rbx, rax
jb 0x140048e5a
lea rax, [r10 + 0x7a]
cmp rbx, rax
jb 0x140048e33
lea rax, [r10 + 8]
cmp rbx, rax
jb 0x140049018
lea rax, [r10 + 0x200]
cmp rbx, rax
jb 0x140048fd2
lea rax, [r10 + 2]
cmp rbx, rax
jb 0x140048f97
lea rax, [r10 + 3]
cmp rbx, rax
jb 0x140048f74
lea rax, [r10 + 0x40]
cmp rbx, rax
jb 0x140048c7d
mov rbx, rcx
lea r10, [rcx + 0x41]
lea rax, [r10 + 0x20]
cmp rcx, rax
ja 0x140048f5a
lea rax, [r10 + 0x61]
cmp rcx, rax
ja 0x140048f3c
lea rax, [r10 + 6]
cmp rcx, rax
ja 0x140048f2e
lea rax, [r10 + 0x80]
cmp rcx, rax
ja 0x140048f14
lea rax, [r10 + 0x200]
cmp rcx, rax
ja 0x140048efa
lea rax, [r10 + 2]
cmp rcx, rax
ja 0x140048edd
lea rax, [r10 + 0x28]
cmp rcx, rax
ja 0x140048ecf
lea rax, [r10 + 0x7a]
cmp rcx, rax
ja 0x140048ec1
lea rax, [r10 + 0x41]
cmp rcx, rax
ja 0x140048ea7
lea rax, [r10 + 9]
cmp rcx, rax
ja 0x140048c7d
lea rbx, [r10 + 5]
lea r10, [rbx + 0x3e8]
jmp 0x140048c7d
movabs rdx, 0x176f705d659f801a
mov ecx, 0x25
add rdx, r9
mov al, r8b
and al, dl
sub cl, al
lea edi, [rcx + rcx]
add dil, r11b
add dil, dl
jmp 0x140048c70
movabs rdx, 0x50310efa710d8cfe
add rdx, r9
mov al, r8b
and al, dl
mov ecx, 7
sub cl, al
lea edi, [rcx + rcx]
add dil, r11b
add dil, dl
jmp 0x140048c16
movabs rdx, 0x88f2ad977c7b99e2
add rdx, r9
mov al, r8b
and al, dl
add al, al
mov dil, r11b
sub dil, al
sub dil, 0x2e
add dil, dl
jmp 0x140048bb1
lea ecx, [r9 + 0x30]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x50
jmp 0x140049489
lea edx, [r9 + 0x14]
mov ecx, 0x3a
jmp 0x140049123
lea edx, [r9 - 8]
mov ecx, 0x1c
jmp 0x140049207
lea ecx, [r9 - 0x24]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 4
mov r11b, r9b
jmp 0x1400493bc
lea ecx, [r9 - 0x40]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x40
jmp 0x1400494f6
lea ecx, [r9 - 0x5c]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x7c
jmp 0x1400494f9
lea edx, [r9 - 0x78]
mov ecx, 0x24
jmp 0x1400490a2
lea edx, [r9 + 0x6c]
mov ecx, 6
mov al, dl
and al, r8b
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x140049552
lea ecx, [r9 + 0x50]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x30
jmp 0x140049599
lea edx, [r9 - 0x76]
mov al, dl
and al, r8b
mov ecx, 0x1d
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
mov byte [rsp + r9 + 0x30], dil
jmp 0x1400495a5
lea ecx, [r9 + 0x6e]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 2
cmp r10, 0x64
jb 0x140048f8d
mov r11b, r9b
lea ecx, [r11 - 0x6c]
mov al, cl
and al, r8b
add al, al
sub cl, al
add cl, r8b
lea edi, [rcx*2 - 0x18]
jmp 0x14004948c
lea ecx, [r9 + 0x52]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x3e
cmp rbx, 0x1000
jae 0x1400493a2
lea rax, [r10 + 9]
cmp rbx, rax
jbe 0x140049301
lea ecx, [r9 + 0x7c]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x64
jmp 0x140048fac
lea ecx, [r9 + 0x36]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x7a
lea rax, [r10 + rbx]
cmp rax, 0x80
je 0x1400493e2
lea rax, [r10 + 0x40]
cmp rbx, rax
jbe 0x14004923f
lea edx, [r9 - 0x2a]
mov al, dl
and al, r8b
mov ecx, reloc.WS2_32.dll_send
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x140048fe7
lea ecx, [r9 - 0x1c]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x3c
jmp 0x140049599
lea ecx, [r9 - 0x38]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x78
jmp 0x140049552
lea edx, [r9 - 0x54]
mov ecx, 0x26
mov al, dl
and al, r8b
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x14004952e
lea edx, [r9 - 0x70]
mov al, dl
and al, r8b
mov ecx, 8
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x1400494f9
lea ecx, [r9 + 0x74]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x2c
jmp 0x1400494f6
mov r11b, r9b
lea ecx, [r11 + 0x58]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x68
jmp 0x1400493bc
lea edx, [r9 + 0x3c]
mov ecx, 0x2e
jmp 0x140049207
lea edx, [r9 + 0x20]
mov ecx, reloc.WS2_32.dll_recv
mov al, dl
and al, r8b
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x1400494aa
mov r11b, r9b
lea ecx, [r11 + 4]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x1c
jmp 0x14004948c
lea rcx, [r10 + 6]
cmp rbx, rcx
jae 0x140049185
movabs rdx, 0x639f30b17a48f98e
add rdx, r9
mov al, r8b
and al, dl
mov ecx, reloc.WS2_32.dll_ntohs
sub cl, al
lea edi, [rcx + rcx]
add dil, r11b
add dil, dl
jmp 0x14004902d
lea rax, [r10 + 1]
cmp rbx, rax
jne 0x1400491a8
lea ecx, [r9 + 0x4c]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x14
jmp 0x140049599
lea rax, [r10 + 3]
cmp rbx, rax
jne 0x1400491cb
lea ecx, [r9 - 0x60]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x60
jmp 0x1400494f9
lea rax, [r10 + 5]
cmp rbx, rax
jne 0x1400491f5
mov r11b, r9b
lea edx, [r11 - 0x28]
mov ecx, ntohs
mov al, dl
and al, r8b
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x1400493bc
lea rax, [r10 + 2]
cmp rbx, rax
jne 0x14004921c
lea edx, [r9 - 0xc]
mov ecx, 0x2a
mov al, dl
and al, r8b
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x1400494cd
cmp rbx, rcx
jne 0x14004902d
lea ecx, [r9 + 0x10]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x70
jmp 0x1400494aa
lea rax, [r10 + 1]
cmp rbx, rax
jne 0x140049269
mov r11b, r9b
lea edx, [r11 - 0xe]
mov al, dl
and al, r8b
mov ecx, 0x31
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x14004948c
lea rax, [r10 + 2]
cmp rbx, rax
jne 0x14004928c
lea ecx, [r9 + 0x2a]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x26
jmp 0x1400494cd
lea rax, [r10 + 5]
cmp rbx, rax
jne 0x1400492b3
lea edx, [r9 + 0x62]
mov al, dl
and al, r8b
mov ecx, 0x29
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x1400494f6
lea rax, [r10 + 3]
cmp rbx, rax
jne 0x1400492d6
lea ecx, [r9 - 0x66]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x36
jmp 0x14004952e
lea rax, [r10 + 8]
cmp rbx, rax
jne 0x140048fe7
lea edx, [r9 - 0x2e]
mov al, dl
and al, r8b
mov ecx, 0x21
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
add dil, r8b
jmp 0x140049599
lea rax, [r10 + 1]
cmp rbx, rax
jne 0x140049324
lea ecx, [r9 - 0x68]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x28
jmp 0x140049599
lea rax, [r10 + 2]
cmp rbx, rax
jne 0x14004933b
lea edx, [r9 - 0x4c]
mov ecx, 0xa
jmp 0x140048f45
lea rax, [r10 + 3]
cmp rbx, rax
jne 0x14004935e
lea ecx, [r9 - 0x14]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x74
jmp 0x1400494f9
lea rax, [r10 + 5]
cmp rbx, rax
jne 0x140049378
mov r11b, r9b
lea edx, [r11 + 0x24]
mov ecx, 2
jmp 0x1400491e0
lea rax, [r10 + 6]
cmp rbx, rax
jne 0x140048fac
mov r11b, r9b
lea ecx, [r11 + 0x78]
mov al, cl
and al, r8b
add al, al
sub cl, al
lea edi, [r8 + rcx]
sub dil, 0x48
jmp 0x14004948c
mov r11b, r9b
lea edx, [r11 - 0x50]
mov al, dl
and al, r8b
mov cl, r8b
sub cl, al
add cl, 0x18
lea edi, [rcx + rcx]
add dil, dl
add r11b, 0x3e
mov al, r11b
and al, r8b
mov ecx, 0x27
sub cl, al
add cl, cl
add cl, r11b
add cl, r8b
add cl, dil
mov byte [rsp + r9 + 0x30], cl
jmp 0x1400494f6
lea edx, [r9 - 0x34]
mov al, dl
and al, r8b
mov ecx, 0x36
sub cl, al
lea edi, [rcx + rcx]
add dil, dl
jmp 0x14004952e
movabs rax, 0x2d406b09a11e04a2
add rax, r9
and r8b, al
add r8b, r8b
sub r11b, r8b
lea edi, [rax + r11]
sub dil, 0x6e
jmp 0x140049599
movabs rcx, 0x9ec3a843b7fa1e6a
add rcx, r9
and r8b, cl
mov eax, ntohs
sub al, r8b
lea edi, [rax + rax]
add dil, r11b
jmp 0x140049528
movabs rcx, 0x81ca22b7e5b251fa
add rcx, r9
and r8b, cl
mov eax, reloc.WS2_32.dll_setsockopt
sub al, r8b
lea edi, [rax + rax]
add dil, r11b
add dil, cl
jmp 0x1400494cd
movabs rcx, 0xf34d5ff1fc8e6bc2
add rcx, r9
and r8b, cl
add r8b, r8b
mov dil, r11b
sub dil, r8b
sub dil, 0x4e
add dil, cl
mov r8b, r11b
mov r11b, r9b
add r11b, 0x22
mov al, r11b
and al, r8b
mov ecx, 9
sub cl, al
add cl, cl
add cl, r11b
add cl, r8b
mov byte [rsp + r9 + 0x30], cl
add r10, r13
jmp 0x1400494cd
movabs rax, 0xd653da662a469f52
add rax, r9
and r8b, al
add r8b, r8b
sub r11b, r8b
lea edi, [rax + r11]
sub dil, 0x3e
sub r9, r13
jmp 0x1400495a5
movabs rcx, 0x47d717a04122b91a
add rcx, r9
and r8b, cl
mov eax, 0x25
sub al, r8b
lea edi, [rax + rax]
add dil, r11b
add dil, cl
add rbx, r10
movzx eax, dil
mov rcx, r14
sub rcx, rax
add r9, rcx
jmp 0x1400495a5
movabs rcx, 0xb95a54da57fed2e2
add rcx, r9
and r8b, cl
add r8b, r8b
mov dil, r11b
sub dil, r8b
sub dil, 0x2e
mov r8b, r11b
add dil, cl
lea ecx, [r9 + 0x5a]
mov al, cl
and al, r8b
add al, al
sub cl, al
sub cl, 0x76
add cl, r8b
movzx eax, cl
mov byte [rsp + r9 + 0x30], al
add r10, r13
add rax, r10
sub r9, rax
lea ecx, [r9 - 0x18]
mov al, cl
and al, r8b
add al, al
sub cl, al
sub cl, 0x58
add cl, r8b
mov byte [rsp + r9 + 0x30], cl
add rbx, r13
mov rax, r14
sub rax, rbx
add r9, rax
jmp 0x140049599
movabs rcx, 0x2add92146edaecaa
add rcx, r9
and r8b, cl
mov eax, 0x2d
sub al, r8b
lea edi, [rax + rax]
add dil, r11b
add dil, cl
movzx eax, byte [rsp + r9 + 0x30]
add rax, r10
add r9, rax
add r9, r13
jmp 0x140048b9e
sub r9b, 0x3a
mov al, r9b
and al, r8b
add al, al
sub r9b, al
lea edi, [r8 + r9]
sub dil, 0x6a
jmp 0x140048b9b
sub r9b, 0x56
mov al, r9b
and al, r8b
mov ecx, 0x2d
sub cl, al
lea edi, [rcx + rcx]
add dil, r9b
add dil, r8b
jmp 0x140048b8b
lea rdx, [rbp + 0x147aa98]
jmp 0x1400495ff
lea rdx, [rbp + 0x150a426]
jmp 0x1400495ff
lea rdx, [rsp + 0x30]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
and qword [rbp - 0x60], 0
and qword [rbp - 0x58], 0
inc r14
cmp byte [rdx + r14], 0
jne 0x140049610
mov r8, r14
lea rcx, [rbp - 0x70]
call fcn.14002ed40
nop
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
or dword [rbp + 0x1344], 0xffffffff
mov dword [rbp - 0x3c], eax
mov rdx, r13
mov r8d, 0x270
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 - 0x3c], eax
add rdx, r13
cmp rdx, r8
jb 0x14004963f
mov dword [rbp - 0x40], r8d
mov edi, dword [rbp - 0x60]
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
and qword [rsi + 0x10], 0
and qword [rsi + 0x10], 0
mov r14d, reloc.WS2_32.dll_ntohs
mov qword [rsi + 0x18], r14
mov byte [rsi], 0
mov dword [rbp - 0x80], r13d
test r15d, r15d
jle 0x1400496ef
mov rbx, r15
lea r9d, [rdi - 1]
xor r8d, r8d
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x50]
call fcn.140033a68
lea rcx, [rbp - 0x70]
cmp qword [rbp - 0x58], r14
cmova rcx, qword [rbp - 0x70]
cdqe
mov r9b, byte [rax + rcx]
mov rcx, qword [rsi + 0x10]
cmp rcx, qword [rsi + 0x18]
jae 0x1400496da
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp qword [rsi + 0x18], r14
jbe 0x1400496cf
mov rax, qword [rsi]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x1400496ea
mov r8b, byte [rsp + 0x20]
mov rdx, r13
mov rcx, rsi
call fcn.140034864
sub rbx, r13
jne 0x14004968a
mov rdx, qword [rbp - 0x58]
cmp rdx, r14
jbe 0x14004972c
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140049727
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140049727
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14008c03c
mov rax, rsi
mov rcx, qword [rbp + 0x1350]
xor rcx, rsp
call fcn.14008bd80
lea r11, [rsp + 0x1460]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret