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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rsp - 0x1460]
mov eax, 0x1560
call fcn.140191300
sub rsp, rax
mov rax, qword [0x140221880]
xor rax, rsp
mov qword [rbp + 0x1450], rax
xor r12d, r12d
cmp qword [0x140328dc0], r12
jne 0x140040e2c
mov ecx, 0x26b0
call fcn.1401ab860
test rax, rax
je 0x140040e2c
mov qword [rax], r12
mov qword [rax + 8], 0x19c
mov qword [0x140328dc0], rax
call fcn.1401921e4
mov dword [rbp + 0xc4], eax
mov edx, 1
mov r9d, 0x270
mov dword [rbp + 0x1444], 0xffffffff
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0xc4], eax
inc rdx
cmp rdx, r9
jb 0x140040e50
mov dword [rbp + 0xc0], r9d
lea r8, [rbp + 0xc8]
nop dword [rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x140040e80
mov ecx, dword [rbp + 0xc0]
mov edx, dword [rbp + rcx*4 + 0xc4]
mov eax, edx
shr eax, 0xb
inc ecx
and eax, dword [rbp + 0x1444]
xor edx, eax
mov dword [rbp + 0xc0], ecx
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
movzx eax, ax
imul ecx, eax, 0x58dccff0
mov dword [0x140328b80], ecx
lea rcx, [rbp + 0xc0]
call fcn.1400b7000
shr eax, 0x10
lea rcx, [rsp + 0x60]
imul eax, eax, 0xa75cdfdf
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov edx, reloc.WS2_32.dll_recv
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x60], r12b
mov dword [0x140328b84], eax
call fcn.1400fe470
movzx ebx, byte [rsp + 0x30]
lea rsi, [0x140328b80]
movzx edi, byte [rsp + 0x30]
lea r15, str.0123456789abcdef
mov rcx, r12
mov r14d, r12d
mov qword [rsp + 0x70], rcx
movzx eax, byte [rsi]
mov rdx, qword [rsp + 0x78]
shr rax, 4
movzx r9d, byte [rax + r15]
cmp rcx, rdx
jae 0x140040faa
lea rax, [rcx + 1]
cmp rdx, 0xf
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
cmova rax, qword [rsp + 0x60]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], r12b
jmp 0x140040fbd
movzx r8d, bl
lea rcx, [rsp + 0x60]
mov edx, 1
call fcn.1400fe5c0
movzx eax, byte [rsi]
mov rcx, qword [rsp + 0x70]
and eax, 0xf
mov rdx, qword [rsp + 0x78]
movzx r9d, byte [rax + r15]
cmp rcx, rdx
jae 0x140040ffa
lea rax, [rcx + 1]
cmp rdx, 0xf
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
cmova rax, qword [rsp + 0x60]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], r12b
jmp 0x14004100d
movzx r8d, dil
lea rcx, [rsp + 0x60]
mov edx, 1
call fcn.1400fe5c0
inc r14d
inc rsi
cmp r14d, 8
jae 0x140041023
mov rcx, qword [rsp + 0x70]
jmp 0x140040f71
xor edx, edx
lea rcx, [rbp - 0x60]
mov r8d, 0x118
call fcn.1401d1c40
mov r8d, Ordinal_35
lea rdx, str.C:UsersPublicLoader.log
lea rcx, [rbp - 0x60]
call fcn.1400b5610
cmp qword [rsp + 0x78], 0xf
lea rdx, [rsp + 0x60]
mov r8, qword [rsp + 0x70]
lea rcx, [rbp - 0x50]
cmova rdx, qword [rsp + 0x60]
call fcn.1401043d0
lea rcx, [rbp - 0x48]
call fcn.1400baff0
test rax, rax
jne 0x1400410a7
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov eax, 4
cmp qword [rbp + rcx - 0x18], r12
mov edx, dword [rbp + rcx - 0x4c]
cmovne eax, r12d
or eax, dword [rbp + rcx - 0x50]
and eax, 0x15
or eax, 2
mov dword [rbp + rcx - 0x50], eax
and edx, eax
jne 0x140041214
mov r14, qword [0x140328dc0]
mov edi, r12d
mov rax, qword [r14 + 8]
mov rsi, qword [r14]
lea rcx, [rax + rax*2]
lea r15, [rcx*8 + 0x10]
test rsi, rsi
jle 0x14004117e
lea rbx, [r14 + 0x10]
movups xmm1, xmmword [rbx]
movsd xmm0, qword [rbx + 0x10]
movq rax, xmm1
movsd qword [rbp - 0x70], xmm0
test rax, rax
je 0x14004116c
psrldq xmm1, 8
movq r8, xmm1
test r8, r8
je 0x14004116c
movzx ecx, byte [rbp - 0x70]
test cl, cl
jne 0x14004110f
xor edx, edx
mov rcx, rax
call fcn.1401d1c40
jmp 0x14004116c
cmp cl, 1
jne 0x14004116c
mov rdx, rax
lea rcx, [rbp - 0x80]
call fcn.140040c90
cmp qword [rbp - 0x68], 0xf
lea rax, [rbp - 0x80]
cmova rax, qword [rbp - 0x80]
mov byte [rax], r12b
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x14004116c
mov rcx, qword [rbp - 0x80]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140041167
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004120e
call fcn.140190a2c
inc edi
add rbx, 0x18
movsxd rax, edi
cmp rax, rsi
jl 0x1400410d1
mov r8, r15
xor edx, edx
mov rcx, r14
call fcn.1401d1c40
mov rcx, r14
call fcn.1401a6090
lea rcx, [rbp - 0x60]
mov qword [0x140328dc0], r12
call fcn.140041270
mov rdx, qword [rsp + 0x78]
cmp rdx, 0xf
jbe 0x1400411dc
mov rcx, qword [rsp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400411d7
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004120e
call fcn.140190a2c
mov al, 1
mov rcx, qword [rbp + 0x1450]
xor rcx, rsp
call fcn.140190770
lea r11, [rsp + 0x1560]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.1401ac538
int3
test dl, 4
je 0x140041222
lea rbx, str.ios_base::badbit_set
jmp 0x140041237
test dl, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp - 0x80]
call fcn.14003ba70
mov r8, rax
lea rcx, [rsp + 0x38]
mov rdx, rbx
call fcn.14003c0e0
lea rdx, [0x14021e110]
lea rcx, [rsp + 0x38]
call fcn.140192fb4
int3