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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1438]
mov eax, 0x1538
call fcn.140189c90
sub rsp, rax
mov rbx, r8
mov r12, rdx
mov dword [rsp + 0x20], 0
mov rcx, rdx
call fcn.140147fe0
mov r13d, 1
mov dword [rsp + 0x20], r13d
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
xor r14d, r14d
mov qword [rsp + 0x58], r14
mov rax, qword [rbx + 8]
mov qword [rbp + 0x1490], rax
mov rsi, qword [rbx]
mov rdi, qword [rsp + 0x50]
cmp rsi, rax
je 0x1400e497a
nop word [rax + rax]
mov r15, qword [rsi + 0x48]
mov rbx, qword [rsi + 0x40]
cmp rbx, r15
je 0x1400e4971
nop dword [rax]
mov rax, qword [rbx]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], rax
cmp rdi, r14
je 0x1400e4945
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rdi], xmm0
add rdi, 0x10
mov qword [rsp + 0x50], rdi
jmp 0x1400e4961
lea r8, [rsp + 0x28]
mov rdx, rdi
lea rcx, [rsp + 0x48]
call fcn.1400c0050
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
add rbx, 8
cmp rbx, r15
jne 0x1400e4920
mov rax, qword [rbp + 0x1490]
add rsi, 0x58
cmp rsi, rax
jne 0x1400e4910
lea rcx, [0x14023e010]
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x1400e5001
lea rdx, [rbp + 0x1490]
lea ecx, [rax + 4]
call fcn.14014dfa0
mov ebx, dword [rbp + 0x1490]
lea rcx, [0x14023e010]
call sub.MSVCP140.dll__Mtx_unlock
mov edx, 0xffffffff
mov dword [rbp + 0x1424], edx
mov dword [rbp + 0xa4], ebx
mov rcx, r13
nop dword [rax]
nop word [rax + rax]
mov eax, ebx
shr eax, 0x1e
xor eax, ebx
imul ebx, eax, 0x6c078965
add ebx, ecx
mov dword [rbp + rcx*4 + 0xa4], ebx
inc rcx
cmp rcx, 0x270
jb 0x1400e49d0
mov dword [rbp + 0xa0], 0x270
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x28], rax
mov ecx, 0x40
mov rax, 0xffffffffffffffff
dec rcx
shr rax, 1
cmp rax, rdx
ja 0x1400e4a14
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rcx
mov r15, qword [rsp + 0x48]
cmp r15, rdi
je 0x1400e4a8a
lea rbx, [r15 + 0x10]
cmp rbx, rdi
je 0x1400e4a8a
nop dword [rax]
lea rdx, [r13 + 1]
lea rcx, [rsp + 0x28]
call fcn.1400cec10
mov r8, rax
cmp rax, r13
je 0x1400e4a7e
shl r8, 4
add r8, r15
cmp rbx, r8
je 0x1400e4a7e
mov rdx, qword [rbx]
mov rcx, qword [r8]
mov qword [rbx], rcx
mov qword [r8], rdx
mov rcx, qword [rbx + 8]
mov rax, qword [r8 + 8]
mov qword [rbx + 8], rax
mov qword [r8 + 8], rcx
inc r13
add rbx, 0x10
cmp rbx, rdi
jne 0x1400e4a40
mov r8, rdi
sub r8, r15
sar r8, 4
movzx r9d, byte [rbp + 0x1490]
mov rdx, rdi
mov rcx, r15
call fcn.1400c34d0
mov rbx, r15
cmp r15, rdi
je 0x1400e4ace
nop
mov rcx, qword [r12]
add rcx, 8
mov rax, qword [rcx]
mov r8, qword [rbx]
mov rdx, qword [rbx + 8]
call qword [rax + 0x58]
add rbx, 0x10
cmp rbx, rdi
jne 0x1400e4ab0
mov rcx, qword [r12]
add rcx, 8
mov rax, qword [rcx]
mov rdx, qword [rbp + 0x14a8]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rsi, qword [rbp + 0x1498]
mov rdi, qword [rsi + 8]
mov rbx, qword [rsi]
mov r13, qword [rbp + 0x1480]
cmp rbx, rdi
je 0x1400e4b7c
nop dword [rax]
mov rcx, qword [r12]
add rcx, 8
mov rax, qword [rcx]
mov r10, qword [rax + 0x28]
mov rax, qword [rbx + 0x50]
movups xmm0, xmmword [rax]
movups xmmword [rbp], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x10], xmm1
movups xmm0, xmmword [r13 + 0x6c8]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [r13 + 0x6d8]
movups xmmword [rbp + 0x30], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rbp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rbp + 0x50], xmm1
movups xmm0, xmmword [r13 + 0x6e8]
movups xmmword [rbp + 0x60], xmm0
movups xmm1, xmmword [r13 + 0x6f8]
movups xmmword [rbp + 0x70], xmm1
lea r9, [rbx + 0x58]
mov r8, rbx
lea rdx, [rbp]
call r10
add rbx, 0x98
cmp rbx, rdi
jne 0x1400e4b00
mov rdi, qword [r12]
mov rax, qword [rdi + 8]
mov rbx, qword [rax + 0x20]
mov rdx, qword [rbp + 0x14a0]
lea rcx, [rsp + 0x28]
call fcn.14017edb0
nop
mov rdx, rax
lea rcx, [rdi + 8]
call rbx
nop
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x1400e4be3
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400e4bde
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400e4bde
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401896b8
xor edi, edi
mov rsi, qword [rsi + 8]
mov r9, qword [rbp + 0x1498]
mov rbx, qword [r9]
cmp rbx, rsi
je 0x1400e4c27
nop dword [rax + rax]
mov rcx, qword [r12]
add rcx, 8
mov rax, qword [rcx]
mov rdx, rdi
inc rdi
lea r9, [rbx + 0x58]
mov r8, rbx
call qword [rax + 0x68]
add rbx, 0x98
cmp rbx, rsi
jne 0x1400e4c00
mov rcx, qword [r12]
mov rax, qword [rcx]
lea rdx, [rbp - 0x20]
call qword [rax + 0x20]
mov rax, qword [rbp + 0x14b0]
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbp - 0x10]
movups xmmword [rax + 0x10], xmm1
lea rcx, [r13 + 0x40]
lea r9, [0x140230860]
mov r8d, 4
lea rdx, [rbp + 0xa0]
call fcn.140173ea0
nop
lea r13, [rax + 0x68]
lea rdx, str.Transaction_created__hash
mov rcx, r13
call fcn.140006860
mov rcx, qword [r12]
mov rax, qword [rcx]
lea rdx, [rbp + 0x80]
call qword [rax + reloc.WS2_32.dll_htonl]
mov r8d, 0x20
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.14017f3c0
mov dword [rsp + 0x20], 3
lea rdx, [rsp + 0x28]
cmp qword [rsp + 0x40], 0x10
cmovae rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x38]
mov rcx, r13
call fcn.140006d90
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 0x10
jb 0x1400e4d07
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400e4d02
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400e4d02
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401896b8
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], socket
mov byte [rsp + 0x28], 0
lea rdx, str.__inputs
mov rcx, r13
call fcn.140006860
mov rsi, qword [rbp + 0x1480]
mov rbx, qword [rsi + 0x30]
mov rcx, qword [r12]
mov rax, qword [rcx]
call qword [rax + 0x50]
mov r8, rax
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140142610
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400e4d60
mov rax, qword [rax]
mov rdx, rax
mov rcx, r13
call fcn.140006d90
lea rdx, str.__outputs
mov rcx, r13
call fcn.140006860
mov rbx, qword [rsi + 0x30]
mov rcx, qword [r12]
mov rax, qword [rcx]
call qword [rax + 0x78]
mov r8, rax
lea rdx, [rbp - 0x60]
mov rcx, rbx
call fcn.140142610
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400e4da6
mov rax, qword [rax]
mov rdx, rax
mov rcx, r13
call fcn.140006d90
lea rdx, str.__fee
mov rcx, r13
call fcn.140006860
mov rsi, qword [rsi + 0x30]
mov rbx, qword [r12]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x50]
mov rdi, rax
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x78]
sub rdi, rax
mov r8, rdi
lea rdx, [rbp - 0x80]
mov rcx, rsi
call fcn.140142610
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400e4dfe
mov rax, qword [rax]
mov rdx, rax
mov rcx, r13
call fcn.140006d90
lea rdx, str.__key
mov rcx, r13
call fcn.140006860
mov r8d, 0x20
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x60]
call fcn.14017f3c0
mov dword [rsp + 0x20], 7
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x70]
mov rcx, r13
call fcn.140006d90
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x1400e4e93
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400e4e8e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400e4e8e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401896b8
xor ebx, ebx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], socket
mov byte [rsp + 0x60], bl
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x1400e4ee5
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400e4ee0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400e4ee0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401896b8
mov qword [rbp - 0x70], rbx
mov qword [rbp - 0x68], setsockopt
mov byte [rbp - 0x80], 0
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1400e4f33
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400e4f2e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400e4f2e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401896b8
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], setsockopt
mov byte [rbp - 0x60], 0
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x1400e4f81
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400e4f7c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400e4f7c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401896b8
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], setsockopt
mov byte [rbp - 0x40], 0
lea rcx, [rbp + 0xa0]
call fcn.1401735a0
lea rcx, [rbp + 0x178]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
test r15, r15
je 0x1400e4fea
sub r14, r15
and r14, 0xfffffffffffffff0
mov rax, r15
cmp r14, 0x1000
jb 0x1400e4fdf
add r14, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400e4fdf
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdx, r14
mov rcx, r15
call fcn.1401896b8
mov rax, r12
add rsp, 0x1538
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
int3