Function at 0x140086ea2
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, rdx
imul eax, dword [0x1402ae368], 0x7b7f2cf
mov rsi, rcx
imul ecx, dword [0x1402ae36c], 0x61736501
add eax, ecx
add eax, 0x939f86e0
shl rax, 4
call fcn.1400fe1d0
sub rsp, rax
mov rbx, rsp
mov qword [rbp - 8], rbx
mov eax, dword [0x1402ae370]
mov ecx, dword [str._30J]
shrd ecx, eax, 0x12
xor ecx, 0xae908cc8
mov eax, ecx
shl rax, 4
lea rax, [rax + rax*8]
call fcn.1400fe1d0
sub rsp, rax
mov r14, rsp
imul eax, dword [0x1402ae378], 0x6c48de90
imul ecx, dword [0x1402ae37c], 0x6f28f9af
add eax, ecx
add eax, 0xad153440
shl rax, 4
lea rax, [rax + rax*8]
call fcn.1400fe1d0
sub rsp, rax
mov r15, rsp
sub rsp, 0x20
mov rcx, rsi
mov rdx, rbx
call fcn.1400869ec
add rsp, 0x20
nop
sub rsp, 0x20
mov rcx, rbx
call fcn.140040813
add rsp, 0x20
nop
mov rcx, rax
mov rax, qword [rax]
movzx edx, byte [0x1402ae380]
movzx r8d, byte [0x1402ae381]
imul edx, edx, 0x69
mov r9d, r8d
add r8d, r8d
shl r9d, 7
sub r9d, r8d
mov r8d, r9d
add r8b, dl
mov edx, r8d
add dl, 0x6f
nop
sub rsp, 0x20
call qword [rax + 0x40]
add rsp, 0x20
nop
mov ebx, eax
mov rax, qword [rbp - 8]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140086ffc
mov rax, qword [rcx]
sub rsp, 0x20
call qword [rax + reloc.WS2_32.dll_recv]
add rsp, 0x20
test rax, rax
je 0x140086ffc
mov rcx, rax
mov rax, qword [rax]
mov edx, dword [0x1402ae384]
mov r8d, dword [0x1402ae388]
shrd r8d, edx, 0xc
mov edx, r8d
xor edx, 0x3703d9e4
sub rsp, 0x20
call qword [rax]
add rsp, 0x20
mov r8, qword [rsi]
mov r10, qword [rsi + 8]
movabs rax, 0x46d847bd679f11cc
imul rax, qword [0x1402ae390]
movabs rcx, 0x806cbac9c9c562f2
imul rcx, qword [0x1402ae398]
add rcx, rax
movabs r9, 0xc1fcf5b8cadba434
add r9, rcx
mov rax, r10
sub rax, r8
cqo
idiv r9
mov qword [rbp - 0x10], r10
cmp r10, r8
je 0x14008730e
mov rcx, rdi
sub rcx, rax
jbe 0x140087637
mov r10, r15
imul eax, dword [0x1402ae450], 0xb6c70bd7
imul edx, dword [0x1402ae454], 0x1c31535
add eax, edx
add eax, 0xec98503e
mov dword [r15], eax
xor eax, eax
mov qword [r15 + 8], rax
mov rdx, qword [0x1402ae458]
mov r9, qword [0x1402ae460]
shrd r9, rdx, 0x3a
movabs rdx, 0xcad736ace9aee492
xor rdx, r9
mov qword [r15 + 0x18], rdx
movabs rdx, 0x3391afa4b8c12d1e
imul rdx, qword [0x1402ae468]
movabs r9, 0xa5564710c2af7eb5
imul r9, qword [0x1402ae470]
add r9, rdx
movabs rdx, 0xebcb364fb3e0d190
add rdx, r9
mov qword [r15 + 0x20], rdx
mov dl, byte [0x1402ae478]
mov r9b, byte [0x1402ae479]
shr r9b, 3
shl dl, 5
or dl, r9b
xor dl, 0xe
mov byte [r15 + 8], dl
mov qword [r15 + 0x28], rax
mov rax, qword [0x1402ae480]
mov rdx, qword [0x1402ae488]
shrd rdx, rax, 0x3b
movabs rax, 0x2933bea79fe363ae
xor rax, rdx
mov qword [r15 + 0x38], rax
movabs rax, 0x5688e349f5dc6433
imul rax, qword [0x1402ae490]
movabs rdx, 0xb6a2114679fcd102
imul rdx, qword [0x1402ae498]
add rdx, rax
movabs rax, 0xf73056d6f1f406fe
add rax, rdx
mov qword [r15 + 0x40], rax
movzx eax, byte [0x1402ae4a0]
movzx edx, byte [0x1402ae4a1]
lea eax, [rax + rax*8]
lea eax, [rax + rax*4]
imul edx, edx, 0xffffffbd
add dl, al
add dl, 0x3b
mov byte [r15 + 0x28], dl
movzx eax, byte [0x1402ae4a2]
movzx edx, byte [0x1402ae4a3]
imul eax, eax, 0x67
imul edx, edx, 0xffffffca
add dl, al
add dl, 0x75
mov byte [r15 + 0x68], dl
mov rax, qword [0x1402ae4a8]
mov rdx, qword [0x1402ae4b0]
shrd rdx, rax, 0x39
movabs rax, 0x809948410ac40d94
xor rax, rdx
mov qword [r15 + 0x48], rax
movabs rax, 0x3db6aa1d1e7db96
imul rax, qword [0x1402ae4b8]
movabs rdx, 0xdc0a274fefca1078
imul rdx, qword [0x1402ae4c0]
add rdx, rax
movabs rax, 0x90c0ca640fe1f05a
add rax, rdx
mov qword [r15 + 0x50], rax
mov byte [r15 + 0x58], bl
mov eax, dword [0x1402ae4c8]
mov edx, dword [0x1402ae4cc]
shrd edx, eax, 5
xor edx, 0x4c0f6385
mov dword [r15 + 0x5c], edx
mov eax, dword [0x1402ae4d0]
mov edx, dword [0x1402ae4d4]
shrd edx, eax, 0xb
xor edx, 0xc0bd6718
mov dword [r15 + 0x64], edx
mov eax, dword [0x1402ae4d8]
mov edx, dword [0x1402ae4dc]
shrd edx, eax, 0xb
xor edx, 0xce81c8bc
movabs rax, 0x70869050ed296253
imul rax, qword [0x1402ae4e0]
movabs r9, 0xcf61e096024a05bc
imul r9, qword [0x1402ae4e8]
mov dword [r15 + 0x60], edx
add r9, rax
movabs rax, 0xb7ff5f739c794f91
add rax, r9
imul edx, dword [0x1402ae4f0], 0xba909c55
mov qword [r15 + 0x80], rax
imul eax, dword [0x1402ae4f4], 0x23a5101d
add eax, edx
add eax, 0x82485b00
mov dword [r15 + 0x88], eax
mov rax, qword [rsi + 0x10]
sub rax, r8
movabs rdx, 0x9dc224fecb07bec9
imul rdx, qword [0x1402ae4f8]
movabs r8, 0xc6443753399a9a13
imul r8, qword [0x1402ae500]
add r8, rdx
movabs r9, 0xcdd77573d0204246
add r9, r8
cqo
idiv r9
cmp rax, rdi
mov qword [rbp - 0x18], r15
jae 0x140087551
nop
sub rsp, 0x20
mov rcx, rsi
mov rdx, rdi
mov r8, r10
call fcn.14008b494
add rsp, 0x20
nop
jmp 0x140087626
mov r8, r14
mov eax, dword [0x1402ae3a0]
mov ecx, dword [0x1402ae3a4]
shrd ecx, eax, 0x1a
xor ecx, 0x89d79b4d
mov dword [r14], ecx
xor eax, eax
mov qword [r14 + 8], rax
mov rcx, qword [0x1402ae3a8]
mov rdx, qword [0x1402ae3b0]
shrd rdx, rcx, 0x2a
movabs rcx, 0x7b214368c2659522
xor rcx, rdx
mov qword [r14 + 0x18], rcx
movabs rcx, 0x7aae2d8e1283c1f8
imul rcx, qword [0x1402ae3b8]
movabs rdx, 0xe561d471a3138c19
imul rdx, qword [0x1402ae3c0]
add rdx, rcx
movabs rcx, 0xffada547147ca0c1
add rcx, rdx
mov qword [r14 + 0x20], rcx
mov cl, byte [reloc.WS2_32.dll_setsockopt]
mov dl, byte [0x1402ae3c9]
shr dl, 3
shl cl, 5
or cl, dl
xor cl, 0xa7
mov byte [r14 + 8], cl
mov qword [r14 + 0x28], rax
movabs rax, 0x46ec4c776153f178
imul rax, qword [0x1402ae3d0]
movabs rcx, 0x6da463f4bd8bad18
imul rcx, qword [0x1402ae3d8]
add rcx, rax
movabs rax, 0xfc7518b0c4910260
add rax, rcx
mov qword [r14 + 0x38], rax
mov rax, qword [str.7_r_]
mov rcx, qword [0x1402ae3e8]
shrd rcx, rax, 0x17
movabs rax, 0x6f0d9823c34b7aeb
xor rax, rcx
mov qword [r14 + 0x40], rax
mov al, byte [0x1402ae3f0]
mov cl, byte [0x1402ae3f1]
shr cl, 7
add al, al
or al, cl
xor al, 0x9e
mov byte [r14 + 0x28], al
mov al, byte [0x1402ae3f2]
movzx ecx, byte [0x1402ae3f3]
lea edx, [rcx + rcx*8]
lea ecx, [rcx + rdx*4]
shl al, 5
sub cl, al
add cl, 0x6d
mov rax, qword [0x1402ae3f8]
mov rdx, qword [0x1402ae400]
shrd rdx, rax, 5
mov byte [r14 + 0x68], cl
movabs rax, 0x2c4d17230eac9cda
xor rax, rdx
mov qword [r14 + 0x48], rax
mov rax, qword [0x1402ae408]
mov rcx, qword [0x1402ae410]
shrd rcx, rax, 0x3d
movabs rax, 0xddf6122a9de568c9
xor rax, rcx
mov qword [r14 + 0x50], rax
mov byte [r14 + 0x58], bl
mov eax, dword [0x1402ae418]
mov ecx, dword [0x1402ae41c]
shrd ecx, eax, 0xc
xor ecx, 0x506bc0ee
mov dword [r14 + 0x5c], ecx
mov eax, dword [0x1402ae420]
mov ecx, dword [0x1402ae424]
shrd ecx, eax, 0x1d
xor ecx, 0x6bbe3632
imul eax, dword [0x1402ae428], 0x10574d5e
mov dword [r14 + 0x64], ecx
imul ecx, dword [0x1402ae42c], 0x3cda5a18
add eax, ecx
add eax, 0x503fc6
mov dword [r14 + 0x60], eax
mov rax, qword [0x1402ae430]
mov rcx, qword [0x1402ae438]
shrd rcx, rax, 0x1b
movabs rax, 0x28f4f4590180c781
xor rax, rcx
mov ecx, dword [0x1402ae440]
mov edx, dword [0x1402ae444]
shrd edx, ecx, 0x1c
mov qword [r14 + 0x80], rax
xor edx, 0x1fcc517
mov dword [r14 + 0x88], edx
nop
sub rsp, 0x20
mov rcx, rsi
mov rdx, rdi
mov qword [rbp - 8], r14
call fcn.140089190
add rsp, 0x20
nop
sub rsp, 0x20
mov rcx, qword [rbp - 8]
call fcn.14007c8c0
add rsp, 0x20
jmp 0x14008770e
movabs rax, 0x7cee79b95ca92e77
imul rax, qword [0x1402ae508]
movabs rdx, 0xc35adda71c760ef6
imul rdx, qword [0x1402ae510]
add rdx, rax
movabs rax, 0xfd0afab9cb32639f
add rax, rdx
cmp rcx, rax
jne 0x140087593
mov rax, qword [rbp - 0x10]
jmp 0x140087622
movabs r14, 0x6b6fc2c918357da6
movabs r15, 0xe4c8e191303a8ad9
xor edx, edx
mov r12, rcx
mov rax, qword [rbp - 0x10]
mov qword [rbp - 8], rdx
lea rcx, [rax + rdx]
nop
sub rsp, 0x20
mov rdx, r10
call fcn.14008a37e
add rsp, 0x20
nop
mov rax, qword [0x1402ae518]
mov rcx, qword [0x1402ae520]
shrd rcx, rax, 0x18
xor rcx, r14
mov r8, r12
mov rax, qword [0x1402ae528]
mov rdx, qword [0x1402ae530]
shrd rdx, rax, 0x32
add r8, rcx
mov rcx, rdx
xor rcx, r15
mov rax, qword [rbp - 8]
add rax, 0x90
mov rdx, rax
mov r12, r8
cmp r8, rcx
mov r10, qword [rbp - 0x18]
jne 0x1400875ac
mov rcx, qword [rbp - 0x10]
add rcx, rax
mov rax, rcx
mov qword [rsi + 8], rax
sub rsp, 0x20
mov rcx, qword [rbp - 0x18]
call fcn.14007c8c0
add rsp, 0x20
lea rcx, [rsi + 0x18]
movabs rax, 0xf1563e27e3421716
imul rax, qword [0x1402ae538]
movabs rdx, 0x59697a69527d5b7d
imul rdx, qword [0x1402ae540]
mov r8, rdx
add r8, rax
movabs rdx, 0x72652a39399a84bf
add rdx, r8
sub rsp, 0x20
xor r8d, r8d
call fcn.140089648
add rsp, 0x20
mov rax, qword [0x1402ae548]
mov rcx, qword [0x1402ae550]
shrd rcx, rax, 0x27
movabs rax, 0x6070649de3704cdc
xor rax, rcx
cmp rdi, rax
je 0x14008770e
movabs r14, 0x668cc602b57a0330
movabs r15, 0x53d6beebc892e690
movabs r12, 0xbfd98415d9d60bc1
xor eax, eax
mov r13, rax
lea rax, [rax + rax*8]
shl rax, 4
mov rcx, rax
add rcx, qword [rsi]
sub rsp, 0x20
mov edx, ebx
call fcn.140089cfa
add rsp, 0x20
mov rax, qword [0x1402ae558]
imul rax, r14
mov rcx, qword [0x1402ae560]
imul rcx, r15
add rcx, rax
add r13, r12
add r13, rcx
mov rax, r13
cmp r13, rdi
jne 0x1400876c7
movabs rcx, 0x9cc3b011acb2d2cf
imul rcx, qword [0x1402ae568]
movabs rdx, 0xdbd0500d7707f9f1
imul rdx, qword [0x1402ae570]
lea rax, [rsi + 0x48]
add rdx, rcx
movabs rcx, 0x515a7a80875a696c
add rcx, rdx
cmp qword [rsi + 0x60], rcx
jbe 0x14008774f
mov rax, qword [rax]
mov rcx, qword [0x1402ae578]
mov rdx, qword [0x1402ae580]
shrd rdx, rcx, 0x15
movabs rcx, 0x1e8cd6f4489ae37d
xor rcx, rdx
mov qword [rsi + 0x58], rcx
mov cl, byte [0x1402ae588]
mov dl, byte [0x1402ae589]
shr dl, 6
shl cl, 2
or cl, dl
xor cl, 0xbf
mov byte [rax], cl
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret