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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1318]
mov eax, 0x1418
call fcn.1400d6350
sub rsp, rax
mov ebx, listen
xor r15d, r15d
mov edi, 1
nop
mov qword [rsp + 0x20], r15
mov r9d, edi
xor r8d, r8d
xor edx, edx
mov ecx, 0x800
call qword [sym.imp.USER32.dll_mouse_event]
sub rbx, rdi
jne 0x140059640
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r15
lea ecx, [rbx + 0x28]
call fcn.1400d5ea0
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rsp + 0x30], rax
call fcn.140056f90
movabs rbx, 0x7ffffffffa0a1eff
mov esi, 0xff
movabs r12, 0x7fffffffffffffff
movabs r13, 0x7ffffffffd050f7f
test al, al
je 0x14005975c
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, Ordinal_79
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
mov rax, qword [rbp + 0x1360]
cmp rax, rbx
je 0x1400596f5
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x1400596f5
add rax, 0x5f5e100
mov qword [rbp + 0x1360], rax
jmp 0x1400596fc
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, Ordinal_79
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
mov rax, qword [rbp + 0x1360]
cmp rax, r13
je 0x140059749
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x140059749
add rax, 0x2faf080
mov qword [rbp + 0x1360], rax
jmp 0x140059750
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
call fcn.140057250
test al, al
je 0x1400597c9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x41
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
mov rax, qword [rbp + 0x1360]
cmp rax, rbx
je 0x1400597a5
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x1400597a5
add rax, 0x5f5e100
mov qword [rbp + 0x1360], rax
jmp 0x1400597ac
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0x41
call qword [sym.imp.USER32.dll_keybd_event]
cmp byte [0x140131aaf], 0
je 0x14005989e
call fcn.140057250
test al, al
jne 0x14005989e
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x52
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
movabs rdx, 0x7ffffffffe363c7f
mov rax, qword [rbp + 0x1360]
cmp rax, rdx
je 0x14005982d
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x14005982d
add rax, 0x1c9c380
mov qword [rbp + 0x1360], rax
jmp 0x140059834
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0x52
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
movabs rdx, 0x7fffffff88ca6bff
mov rax, qword [rbp + 0x1360]
cmp rax, rdx
je 0x14005988b
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x14005988b
add rax, 0x77359400
mov qword [rbp + 0x1360], rax
jmp 0x140059892
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
cmp byte [0x140131a5e], 0
je 0x140059b8e
nop dword [rax + rax]
cmp byte [0x140131b45], 0
je 0x140059b74
mov rdx, qword [0x140131a30]
test edx, edx
je 0x140059d00
cmp dword [0x140131a34], 0
je 0x140059d00
lea r8, [rsp + 0x30]
call fcn.140044230
mov rbx, rax
mov qword [rbp + 0x1360], rax
shr rax, 0x20
test ebx, ebx
jne 0x1400598fd
test eax, eax
je 0x140059bec
mov r14, qword [rsp + 0x30]
mov rax, qword [r14 + 8]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], r15d
mov rdx, r14
mov esi, dword [rbp + 0x1364]
cmp byte [rax + 0x19], 0
jne 0x14005994f
nop
mov qword [rsp + 0x40], rax
cmp dword [rax + 0x1c], ebx
jne 0x14005992d
cmp dword [rax + 0x20], esi
setl cl
test cl, cl
je 0x14005993f
mov dword [rsp + 0x48], r15d
mov rax, qword [rax + 0x10]
jmp 0x140059949
mov dword [rsp + 0x48], edi
mov rdx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x140059920
cmp byte [rdx + 0x19], 0
jne 0x140059964
cmp ebx, dword [rdx + 0x1c]
jne 0x14005995d
cmp esi, dword [rdx + 0x20]
setl al
test al, al
je 0x1400599c9
movabs rax, 0x666666666666666
cmp qword [rsp + 0x38], rax
je 0x14005a0e1
lea rax, [rsp + 0x30]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], r15
mov ecx, Ordinal_41
call fcn.1400d5ea0
nop
mov qword [rax + 0x1c], rbx
mov qword [rax], r14
mov qword [rax + 8], r14
mov qword [rax + 0x10], r14
mov word [rax + 0x18], 0
mov qword [rsp + 0x70], r15
movups xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x40], xmm0
mov r8, rax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x30]
call fcn.14003d380
mov dword [0x140131a38], ebx
mov dword [0x140131a20], esi
mov edx, esi
mov ecx, ebx
call fcn.14004d7a0
mov dword [0x140131ae8], eax
mov edx, dword [0x140131a20]
mov ecx, dword [0x140131a38]
call qword [sym.imp.USER32.dll_SetCursorPos]
lea rcx, [rbp + 0x1368]
call fcn.1400415e0
mov rax, qword [rbp + 0x1368]
mov esi, 0xff
cmp rax, r13
je 0x140059a2b
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x140059a2b
add rax, 0x2faf080
mov qword [rbp + 0x1360], rax
jmp 0x140059a32
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
call fcn.14004ccc0
test al, al
jne 0x140059d08
call fcn.140057250
test al, al
je 0x140059b09
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x41
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1370]
call fcn.1400415e0
mov rax, qword [rbp + 0x1370]
movabs rbx, 0x7ffffffffa0a1eff
cmp rax, rbx
je 0x140059aa2
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x140059aa2
add rax, 0x5f5e100
mov qword [rbp + 0x1360], rax
jmp 0x140059aa9
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0x41
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1378]
call fcn.1400415e0
mov rax, qword [rbp + 0x1378]
cmp rax, r13
je 0x140059af6
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x140059af6
add rax, 0x2faf080
mov qword [rbp + 0x1360], rax
jmp 0x140059afd
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
cmp byte [0x140131aaf], 0
je 0x140059b81
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x52
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rsp + 0x60]
call fcn.1400415e0
mov rax, qword [rsp + 0x60]
cmp rax, r13
je 0x140059b4e
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x140059b4e
add rax, 0x2faf080
mov qword [rbp + 0x1360], rax
jmp 0x140059b55
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0x52
call qword [sym.imp.USER32.dll_keybd_event]
jmp 0x140059b81
cmp byte [reloc.WS2_32.dll_accept], 0
jne 0x140059dad
cmp byte [0x140131a5e], 0
jne 0x1400598b0
mov rcx, qword [rsp + 0x30]
mov rbx, qword [rcx + 8]
cmp byte [rbx + 0x19], 0
jne 0x140059bce
nop dword [rax]
mov r8, qword [rbx + 0x10]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x30]
call fcn.140070200
mov rcx, rbx
mov rbx, qword [rbx]
mov edx, Ordinal_41
call fcn.1400d5b38
cmp byte [rbx + 0x19], 0
je 0x140059ba0
mov rcx, qword [rsp + 0x30]
mov edx, Ordinal_41
call fcn.1400d5b38
add rsp, 0x1418
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, Ordinal_41
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
movabs rbx, 0x7ffffffffff0bdbf
mov rax, qword [rbp + 0x1360]
cmp rax, rbx
je 0x140059c36
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x140059c36
add rax, 0xf4240
mov qword [rbp + 0x1360], rax
jmp 0x140059c3d
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, Ordinal_41
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
mov rax, qword [rbp + 0x1360]
cmp rax, rbx
je 0x140059c8a
mov ecx, edi
cmovl ecx, esi
test cl, cl
jns 0x140059c8a
add rax, 0xf4240
mov qword [rbp + 0x1360], rax
jmp 0x140059c91
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, 0x26
call qword [sym.imp.USER32.dll_keybd_event]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
mov rax, qword [rbp + 0x1360]
cmp rax, rbx
je 0x140059cdc
cmovl edi, esi
test dil, dil
jns 0x140059cdc
add rax, 0xf4240
mov qword [rbp + 0x1360], rax
jmp 0x140059ce3
mov qword [rbp + 0x1360], r12
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 2]
mov cl, 0x26
call qword [sym.imp.USER32.dll_keybd_event]
xor dil, dil
jmp 0x14005a08b
cmp byte [0x140131b47], 0
je 0x140059d20
lea rdx, [0x140112334]
mov r8d, 3
jmp 0x140059d2d
lea rdx, [0x140112338]
mov r8d, reloc.WS2_32.dll_recv
lea rcx, [0x140130860]
call fcn.14006c8d0
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.USER32.dll_mouse_event]
mov ecx, dword [0x140131ae8]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
mov ecx, reloc.WLDAP32.dll_Ordinal_200
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14005a088
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1304], 0xffffffff
mov dword [rbp - 0x7c], eax
mov rdx, rdi
nop dword [rax]
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 - 0x7c], eax
inc rdx
cmp rdx, 0x270
jb 0x140059dd0
mov dword [rbp - 0x80], 0x270
mov eax, dword [0x14013025c]
cdq
and edx, 7
lea r15d, [rdx + rax]
sar r15d, 3
mov eax, dword [0x14013025c]
cdq
and edx, 7
add eax, edx
sar eax, 3
neg eax
lea ecx, [rax - 0x80000000]
mov esi, 0x80000000
lea r13d, [rax + rsi]
cmp eax, esi
cmovae r13d, ecx
lea r14d, [r15 - 0x80000000]
mov eax, r15d
mov ecx, esi
add eax, ecx
mov dword [rbp + 0x1360], eax
lea eax, [r15 - 0x80000000]
lea ecx, [r15 + rsi]
cmp r15d, esi
cmovae ecx, eax
sub ecx, r13d
cmp ecx, 0xffffffff
jne 0x140059e68
lea rcx, [rbp - 0x80]
call fcn.140070ba0
mov ecx, eax
jmp 0x140059eac
lea ebx, [rcx + 1]
lea rcx, [rbp - 0x80]
call fcn.140070ba0
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x140059ea3
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140059ea3
nop
lea rcx, [rbp - 0x80]
call fcn.140070ba0
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x140059e90
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r13d
lea eax, [rcx + rsi]
lea r12d, [rcx - 0x80000000]
cmp ecx, esi
cmovae r12d, eax
cmp r15d, esi
cmovb r14d, dword [rbp + 0x1360]
sub r14d, r13d
lea rcx, [rbp - 0x80]
cmp r14d, 0xffffffff
jne 0x140059ee0
call fcn.140070ba0
mov ecx, eax
jmp 0x140059f1f
lea ebx, [r14 + 1]
call fcn.140070ba0
mov esi, ebx
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x140059f16
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140059f16
lea rcx, [rbp - 0x80]
call fcn.140070ba0
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x140059f03
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r13d
lea eax, [rcx + rsi]
lea ebx, [rcx - 0x80000000]
cmp ecx, esi
cmovae ebx, eax
mov edx, dword [0x140131a20]
mov ecx, dword [0x140131a38]
cmp byte [reloc.WS2_32.dll_accept], 0
je 0x140059f62
add edx, ebx
add ecx, r12d
call fcn.14004d7a0
mov edx, dword [0x140131a20]
add edx, ebx
mov ecx, dword [0x140131a38]
add ecx, r12d
jmp 0x140059f73
call fcn.14004d7a0
mov edx, dword [0x140131a20]
mov ecx, dword [0x140131a38]
mov dword [0x140131ae8], eax
call qword [sym.imp.USER32.dll_SetCursorPos]
lea rcx, [rbp + 0x1360]
call fcn.1400415e0
mov rax, qword [rbp + 0x1360]
movabs rcx, 0x7ffffffffd050f7f
cmp rax, rcx
je 0x140059fb6
mov ecx, 0xff
cmovl edi, ecx
test dil, dil
jns 0x140059fb6
add rax, 0x2faf080
jmp 0x140059fc0
movabs rax, 0x7fffffffffffffff
mov qword [rbp + 0x1360], rax
lea rcx, [rbp + 0x1360]
call fcn.14006fdc0
xor ebx, ebx
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rbx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
mov ecx, reloc.WLDAP32.dll_Ordinal_200
call qword [sym.imp.KERNEL32.dll_Sleep]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rbx + 2]
call qword [sym.imp.USER32.dll_mouse_event]
mov ecx, dword [0x140131ae8]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rbx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rbx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rbx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
cmp byte [0x140131b47], bl
je 0x14005a06f
lea rdx, [0x140112334]
lea r8d, [rbx + 3]
jmp 0x14005a07c
lea rdx, [0x140112338]
mov r8d, reloc.WS2_32.dll_recv
lea rcx, [0x140130860]
call fcn.14006c8d0
mov dil, 1
mov rcx, qword [rsp + 0x30]
mov rbx, qword [rcx + 8]
cmp byte [rbx + 0x19], 0
jne 0x14005a0ce
nop word [rax + rax]
mov r8, qword [rbx + 0x10]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x30]
call fcn.140070200
mov rcx, rbx
mov rbx, qword [rbx]
mov edx, Ordinal_41
call fcn.1400d5b38
cmp byte [rbx + 0x19], 0
je 0x14005a0a0
mov rcx, qword [rsp + 0x30]
mov edx, Ordinal_41
call fcn.1400d5b38
movzx eax, dil
jmp 0x140059bd8
call fcn.1400318e0
int3